1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
procedure min1;// òóò îøèáêà const n=10; var b,c,d,m,i,min:integer; a: array [1..n] of integer; dat,res:textFile; begin for i := b to c do if a[i]<d then begin min:=a[i] end; writeln(res,min); end; procedure min2; const n=10; var b,c,d,m,i,min:integer; a: array [1..n] of integer; dat,res:textFile; begin for I := 2 to c do if a[i]<d then begin d:=a[i]; end; writeln(res,min); end; procedure TForm1.Button1Click(Sender: TObject); const n=10; var b,c,d,m,i,min:integer; a: array [1..n] of integer; dat,res:textFile; begin assignfile(dat,'dat.txt'); assignfile(res,'res.txt'); readln(dat,m);//êîëè÷åñòâî ýëåìåíòîâ â ìàññèâå c:=0; b:=0; for i := 1 to m do begin readln(dat,a[i]); if b=0 then begin if a[i] mod 5 =0 then begin b:=i;//ïåðâîå ÷èñëî êðàòíîå ïÿòè end; //end; if a[i]>0 then begin c:=i;//ïîñëåäíåå ïîëîæèòåëüíîå ÷èñëî end; //end; d:=a[b]; end; if c=0 then//íè îäíîãî ïîëîæèòåëüíîãî begin writeln(res,'v massive net pologitelnbIx 4isel'); Halt; end; //end; if b>c then begin writeln(res,'v massive est pologitelnbIe 4isla,no oni naxod9ts9 polse 4isla kratnogo p9ti'); Halt; end; if b<=c then begin min1; end; if b=0 then begin min2; end; closefile(dat); closefile(res); end; end; |
← →
pro_xaoc ©
(2010-05-20 23:38)
[0]
Всем привет! Прошу помогите. Вот я написал такой код:
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
procedure poisk();
var
a:boolean;
begin
a:=pos(«,», edit1.text);
end;
if poisk=true then
edit1.Text:=edit1.Text;
if edit1.text<>»0″ then
edit1.Text:=edit1.text+»,»
else edit1.Text:=»,»;
end;
а компилятор ругается «statement expected but «PROCEDURE» found». Блин перепробовал все что знаю, но результата нет. Как можно исправить?
← →
Германн ©
(2010-05-20 23:42)
[1]
> Как можно исправить?
вторую и третью строчку поменять местами.
← →
pro_xaoc ©
(2010-05-20 23:44)
[2]
серьёзно? ща посмотрю))
← →
turbouser ©
(2010-05-20 23:45)
[3]
> pro_xaoc © (20.05.10 23:38)
мда. жесть. здесь как минимум 2 ошибки и 2 нелепости
← →
Германн ©
(2010-05-20 23:45)
[4]
Т.е. вторую строчку перенести после окончания описания процедуры poisk
← →
turbouser ©
(2010-05-20 23:47)
[5]
> Германн © (20.05.10 23:45) [4]
Сейчас будет вопрос о второй ошибке
← →
pro_xaoc ©
(2010-05-20 23:51)
[6]
Код изменил так:
procedure TForm1.SpeedButton4Click(Sender: TObject);
function poisk():boolean;
begin
pos(«,», edit1.text);
end;
begin
if poisk=true then
edit1.Text:=edit1.Text;
if edit1.text<>»0″ then
edit1.Text:=edit1.text+»,»
else edit1.Text:=»,»;
end;
вот теперь, у меня тут ошибка есть (не синтаксическая), как можно сделать так, чтобы когда значение функции было true, то выполнился код if poisk=true then
edit1.Text:=edit1.Text;
?
← →
turbouser ©
(2010-05-21 00:02)
[7]
> pro_xaoc © (20.05.10 23:51) [6]
Ты сам понимаешь, что тебе требуется?
← →
pro_xaoc ©
(2010-05-21 00:05)
[8]
как можно сделать так, чтобы когда значение функции poisk было true, то выполнился код:
if poisk=true then
edit1.Text:=edit1.Text;
← →
turbouser ©
(2010-05-21 00:06)
[9]
> edit1.Text:=edit1.Text;
В чем смыл этого?
← →
pro_xaoc ©
(2010-05-21 00:08)
[10]
ну если истина, то значение edit1.text не изменяется …
← →
turbouser ©
(2010-05-21 00:10)
[11]
if not poisk then
begin
if edit1.text<>"0" then
edit1.Text:=edit1.text+","
else edit1.Text:=",";
end;
← →
pro_xaoc ©
(2010-05-21 00:12)
[12]
ок, ща попробую …
← →
Германн ©
(2010-05-21 00:47)
[13]
Следующим будет вопрос — почему не работает
> if edit1.text<>»0″
.
Имхо
← →
turbouser ©
(2010-05-21 00:52)
[14]
> Германн © (21.05.10 00:47) [13]
..и почему не работает poisk..
← →
turbouser ©
(2010-05-21 00:53)
[15]
Автор, с таким уровнем знаний даже в начинающие рано.
← →
{RASkov} ©
(2010-05-21 00:54)
[16]
> [15] turbouser © (21.05.10 00:53)
Сейчас он тебе расскажет какой ты не хороший помошник…. держись)
← →
Демо ©
(2010-05-21 01:07)
[17]
> pro_xaoc © (20.05.10 23:38)
Ты бы словами сказал, что ты получить хочешь от своих действий…
← →
pro_xaoc ©
(2010-05-21 01:29)
[18]
Методом тыка разобрался! Спс всем за старания!
← →
Германн ©
(2010-05-21 01:46)
[19]
> RASkov} © (21.05.10 00:54) [16]
>
> > [15] turbouser © (21.05.10 00:53)
>
> Сейчас он тебе расскажет какой ты не хороший помошник…
> . держись)
Не рассказал. Знать турбоюзеру пока далеко до Плохиша!
> turbouser © (21.05.10 00:52) [14]
>
>
> > Германн © (21.05.10 00:47) [13]
>
> ..и почему не работает poisk..
Во втором варианте очевидно очепятка.
← →
Германн ©
(2010-05-21 01:47)
[20]
> Демо © (21.05.10 01:07) [17]
>
>
> > pro_xaoc © (20.05.10 23:38)
>
>
> Ты бы словами сказал, что ты получить хочешь от своих действий.
> ..
Автор пока не дотягивает до уровня «правильного новичка».
← →
Anatoly Podgoretsky ©
(2010-05-21 08:39)
[21]
> как можно сделать так, чтобы когда значение функции poisk
> было true, то выполнился код:
> if poisk=true then
> edit1.Text:=edit1.Text;
Так и будет, хотя тут две нелепости.
← →
Lyonux ©
(2010-05-21 13:37)
[22]
Я думаю, эти ссылки будут полезны..
http://www.realcoding.net/articles/obyavlenie-protsedury.html
http://www.realcoding.net/articles/obyavlenie-funktsii.html
Ну так, для общего развития..
← →
Amoeba_
(2010-05-21 18:10)
[23]
Может автору вопроса лучше прежде чем кодить заглянуть все-таки сюда, а не в realcoding?
http://www.delphikingdom.com/lyceum
← →
Демо ©
(2010-05-22 00:28)
[24]
> Я думаю, эти ссылки будут полезны..
Помню как 10 лет назад этот реалколдинг вообще ничего из себя не представлял, а лишь лихорадочно тащил со всего интернета статьи для раскрутки.
← →
Игорь Шевченко ©
(2010-05-22 00:49)
[25]
Демо © (22.05.10 00:28) [24]
ты че на реальных пацанов наезжаешь ?
← →
Германн ©
(2010-05-22 01:03)
[26]
> ты че на реальных пацанов наезжаешь ?
>
Вспомнил свою ДМ-овскую молодость, наверно.
← →
Anatoly Podgoretsky ©
(2010-05-22 08:54)
[27]
> Демо (22.05.2010 00:28:24) [24]
Важно, не что он тогда представлял, а что сейчас представляет.
← →
Lyonux ©
(2010-05-22 09:21)
[28]
мм..да я вообще-то не на сайт, а на статейки ссылку давала.. Завелись-то как все)
← →
Sha ©
(2010-05-22 12:38)
[29]
> Lyonux © (22.05.10 09:21) [28]
> мм..да я вообще-то не на сайт, а на статейки ссылку давала..
Посмотрел статейку про объявление функции.
Описание поехало:// здесь объявления локальных переменных begin
Первая функция, названная Islnt вместо isint:
не откомпилируется из-за скобки }
не откомпилируется из-за сравнения символа с числом 113
Ее проще было бы переписать так:function IsInt(ch: Char): Boolean;
begin
Result:=(ch >= "0") and (ch <= "9") // цифры
or (ch = #13) // клавиша <Enter>
or (ch = #8); // клавиша <Backspace>
end;
Но тут все равно не хватает проверки на допустимость ввода знака (+,-),
на переполнение, на нажатие клавиши Del, на ввод $…
Вторая функция также не без ошибок:
не компилируется из-за лишнего апострофа «
не позволяет вводить знак +
не позволяет вводить порядок
Компилятор предупреждает о неопределенном результате
в двух ветках оператора case
← →
Leonid Troyanovsky ©
(2010-05-22 13:02)
[30]
> Sha © (22.05.10 12:38) [29]
> Ее проще было бы переписать так:
Result := ch in [«0»..»9″,#8, #13];
Только непонятно, зачем #13.
—
Regards, LVT.
← →
turbouser ©
(2010-05-22 13:07)
[31]
> Lyonux © (22.05.10 09:21) [28]
Не обращай внимания Здесь такое вполне обыденно
← →
Sha ©
(2010-05-22 13:10)
[32]
> Leonid Troyanovsky © (22.05.10 13:02) [30]
> Result := ch in [«0»..»9″,#8, #13];
Точно.
> Только непонятно, зачем #13.
Мне тоже.
> Lyonux © (22.05.10 09:21) [28]
Пример к статейке про процедуры:
не компилируется, т.к. объявлена переменная xl, а используется x1
один из корней вычисляется неверно
процедура ломается, если коэффициент при х^2 равен нулю.
← →
turbouser ©
(2010-05-22 13:48)
[33]
> Sha ©
А если я дам ссылку на гуглопоиск, например, http://www.google.ru/search?hl=ru&newwindow=1&client=firefox&hs=aa6&rls=org.mozilla%3Aru%3Aofficial&q=delphi+%2B%D1%88%D0%B5%D0%BB%D0%BB&aq=f&aqi=&aql=&oq=&gs_rfai=
тоже будем ошибки искать?
← →
Sha ©
(2010-05-22 14:00)
[34]
> Lyonux © (22.05.10 09:21) [28]
Это я к тому, что лучше ссылки давать на статейки, где меньше ошибок
> turbouser © (22.05.10 13:48) [33]
> А если я дам ссылку на гуглопоиск, тоже будем ошибки искать?
Не видишь, я с дамой разговариваю. Отвали.
← →
turbouser ©
(2010-05-22 14:04)
[35]
← →
Игорь Шевченко ©
(2010-05-23 00:31)
[36]
turbouser © (22.05.10 13:48) [33]
> тоже будем ошибки искать?
можем удалить. на выбор.
← →
Lyonux ©
(2010-05-24 03:55)
[37]
Мы будем расстреливать неверных из Царь-Пушки! Выживших догонять и карать ржавой секирой ужоса)
Кстати говоря, автору ветки всё это, видимо, не очень интересно))
← →
Германн ©
(2010-05-24 04:04)
[38]
> Lyonux © (24.05.10 03:55) [37]
>
> Мы будем расстреливать неверных из Царь-Пушки! Выживших
> догонять и карать ржавой секирой ужоса)
> Кстати говоря, автору ветки всё это, видимо, не очень интересно))
>
Ещё одна Рипли?
А я, лично, не против. И даже за!
Женьщинов на ДМ не хватает. А женьщины способны на иной взгляд!
← →
Lyonux ©
(2010-05-24 04:07)
[39]
нас просто заткнуть невозможно) тем более меня сутки не было =) Не могу же я дать умереть ветке в моё отсутствие! Теперь можно закрывать =)
← →
Демо ©
(2010-05-25 13:21)
[40]
> Игорь Шевченко © (22.05.10 00:49) [25]
> Демо © (22.05.10 00:28) [24] ты че на реальных пацанов
> наезжаешь ?
Да я так, у стеночки постою…
> Lyonux © (24.05.10 03:55) [37]
> Мы будем расстреливать неверных из Царь-Пушки! Выживших
> догонять и карать ржавой секирой ужоса)Кстати говоря, автору
> ветки всё это, видимо, не очень интересно))
Зато нам интересно!
Выскочила неожиданная ошибка.
[Error] Unit1.pas(191): Statement expected but ‘PROCEDURE’ found
С чем это может быть связано?
Часть кода
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
if checkBox2.Checked = true then
edit3.Enabled := true
else
edit3.Enabled := false;
end;
И ещё такой вопрос. Программа работает нормально, но после выполнения опред действия выскакивает ошибка «Invalid poiner operation».
Модераторы:Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
Twins
- Сообщения:2
- Зарегистрирован:27 ноя 2004, 11:36
- Откуда:Луганск
Help me.
Глупость но факт.
В Delphi 7 не могу открыть форму2 из формы1
Создаю Form1
Создаю Button1 в Form1
Компилирую
Создаю Form2
Вешаю на Button1 в Form1
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.ShowModal;
end;
Компилирую
Пишет
(Ошибка) Unit.pas(35): Undeclared identifier: «form2»
(Фатальная ошибка) Proect1.dpr6: Cold not compile used unit ‘Unit1.pas’
Дальше — мрак. Тишина
Заранее спасибо за помощь.
Чайник (надеюсь не на долго)
-
AiK
- Сообщения:2271
- Зарегистрирован:13 фев 2004, 18:14
- Откуда:СПб
- Контактная информация:
27 ноя 2004, 17:22
Twins, во-первых, ошибка из-за того, что в первом модуле переменная form2 не объявлена.
Во-вторых, прежде чем показывать форму, её создать нужно.
Т.е. тебе нужно что-то вроде этого:
В первом модуле:
Uses Unit2.pas;
procedure TForm1.Button1Click(Sender: TObject);
var form2: TForm2;
begin
form2:=TForm2.Create(Form1);
form2.ShowModal;
end;
Даже самый дурацкий замысел можно воплотить мастерски
-
Twins
- Сообщения:2
- Зарегистрирован:27 ноя 2004, 11:36
- Откуда:Луганск
27 ноя 2004, 22:22
AiK
Большое человеческое спасибо.
Хватило
В первом модуле:
Uses Unit2;
Еще Чайник, но уже меньше.
Twins
-
Лопата:)
- Сообщения:4
- Зарегистрирован:17 дек 2013, 09:32
17 дек 2013, 09:36
AiK писал(а):Twins,
procedure TForm1.Button1Click(Sender: TObject);
вот на этой строчке он меня и мучает:
[Error] Unit1.pas(36): Statement expected but ‘PROCEDURE’ found
что делать??
-
somewhere
- Сообщения:1837
- Зарегистрирован:31 авг 2006, 17:14
- Откуда:71 RUS
- Контактная информация:
17 дек 2013, 10:56
что делать??
Скорее всего процедура не описана в классе TForm1
It’s a long way to the top if you wanna rock’n’roll
-
Лопата:)
- Сообщения:4
- Зарегистрирован:17 дек 2013, 09:32
17 дек 2013, 11:05
А можно подробнее написать, как это сделать, а то я совсем не понимаю
-
somewhere
- Сообщения:1837
- Зарегистрирован:31 авг 2006, 17:14
- Откуда:71 RUS
- Контактная информация:
17 дек 2013, 11:08
В описателе класса добавить
procedure Button1Click(Sender: TObject);
кнопке Button1 событию OnClick присвоить обработчик Button1Click
It’s a long way to the top if you wanna rock’n’roll
-
Лопата:)
- Сообщения:4
- Зарегистрирован:17 дек 2013, 09:32
17 дек 2013, 11:25
type
TForm1 = class(TForm)
Button1Click(Sender: TObject);
теперь он просит заменить ( на :
заменила
теперь опять докопался до процедуры
[Error] Unit1.pas(50): Statement expected but ‘PROCEDURE’ found
-
somewhere
- Сообщения:1837
- Зарегистрирован:31 авг 2006, 17:14
- Откуда:71 RUS
- Контактная информация:
17 дек 2013, 11:40
Дальше ничего не могу сказать — нет полного кода
It’s a long way to the top if you wanna rock’n’roll
-
Лопата:)
- Сообщения:4
- Зарегистрирован:17 дек 2013, 09:32
17 дек 2013, 14:45
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
lbl1: TLabel;
edt1: TEdit;
procedure button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm;
Form2: TForm;
Edit1: TEdit;
implementation
{$R *.dfm}
begin
procedure button1Click(Sender: TObject);
begin
form2.Show;
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ActnList, ComCtrls, StdCtrls, StdActns;
type
TForm1 = class(TForm)
ActionList1: TActionList;
Memo1: TMemo;
MainMenu1: TMainMenu;
SaveDialog1: TSaveDialog;
OpenDialog1: TOpenDialog;
StatusBar1: TStatusBar;
New: TAction;
Open: TAction;
Save: TAction;
SaveAs: TAction;
Close1: TAction;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
EditCut1: TEditCut;
EditCopy1: TEditCopy;
EditPaste1: TEditPaste;
EditSelectAll1: TEditSelectAll;
EditDelete1: TEditDelete;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
procedure NewExecute(Sender: TObject);
procedure OpenExecute(Sender: TObject);
procedure SaveExecute(Sender: TObject);
procedure SaveAsExecute(Sender: TObject);
procedure Close1Execute(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure mnuItemAddClick(Sender: TObject);
procedure mnuItemDeleteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Filename: string;
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.NewExecute(Sender: TObject);
begin
Memo1.Lines.Clear; // â ýòîé ñòðîêå ìû îò÷èùàåì ïîëå Ìåìî
FileName:='new.txt'; // çäåñü ïðèñâàèâàåì ïåðåìåííîé FileName èìÿ new.txt
StatusBar1.Panels[0].Text:=FileName;
end;
procedure TForm1.OpenExecute(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
FileName:=OpenDialog1.FileName;
StatusBar1.Panels[0].Text:=FileName;
end;
end;
procedure TForm1.SaveExecute(Sender: TObject);
begin
if (FileName='new.txt') then SaveAsExecute(Nil)
else
Memo1.Lines.SaveToFile(FileName);
end;
procedure TForm1.SaveAsExecute(Sender: TObject);
begin
FileName:=SaveDialog1.FileName;
SaveDialog1.InitialDir:=ExtractFilePath(FileName);
if SaveDialog1.Execute then
begin
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
FileName:=SaveDialog1.FileName;
StatusBar1.Panels[0].Text:=FileName;
end;
end;
procedure TForm1.Close1Execute(Sender: TObject);
begin
if MessageDlg (' Âû óâåðåíû, ÷òî õîòèòå âûéòè? ', mtConfirmation,
[mbYes, mbNo],0) = mrYes
then Form1.Close;
end;
procedure TForm1.N14Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.mnuItemAddClick(Sender: TObject);
var NewItem : TMenuItem;
begin
NewItem := TMenuItem.Create(Self);
NewItem.Caption := 'Íîâûé ýëåìåíò';
mnuFile.Add(NewItem);
end;
procedure TForm1.mnuItemDeleteClick(Sender: TObject);
begin
if mnuFile.Items[2].Caption ='Âòîðîé ýëåìåíò';
then
mnuFile.Delete(2);
end;
end.