Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.04;
Скачать: CL | DM;

Вниз

Мастера, подкажите пожалуйста   Найти похожие ветки 

 
bioss ©   (2008-11-25 11:00) [0]

Все-таки как в Делфи 7 описываются функции?
После написания классического кода типа
function IsFloat(ch : char; st: string) : Boolean;
begin
if (ch >= "0") and (ch <= "9") // цифры
or (ch = #13) // клавиша <Enter>
or (ch = #8) // клавиша <Backspace>
then
begin
IsFloat := True; // символ верный
Exit; // выход из функции
end;

Выдается сообщение :

statemen expected, but "FUNCTION" found

бьюсь три часа безрезультатно(


 
Поросенок Винни-Пух ©   (2008-11-25 11:03) [1]

ищи ошибку по тексту выше своей IsFloat


 
Palladin ©   (2008-11-25 11:03) [2]

код нормально форматируй и все будет хорошо... а пока можешь посчитать сколько у тебя begin, сколько end и удивится


 
Amoeba ©   (2008-11-25 11:04) [3]

Переписать так:

function IsFloat(ch : char; st: string) : Boolean;
begin
 if (ch >= "0") and (ch <= "9") // цифры
 or (ch = #13) // клавиша <Enter>
 or (ch = #8) // клавиша <Backspace>
 then
   Result := True; // символ верный
end;


и читать букварь


 
Amoeba ©   (2008-11-25 11:06) [4]

Правильно будет так:

function IsFloat(ch : char; st: string) : Boolean;
begin
Result := (ch >= "0") and (ch <= "9") // цифры
or (ch = #13) // клавиша <Enter>
or (ch = #8) // клавиша <Backspace>
end;


 
bioss ©   (2008-11-25 11:06) [5]


> Palladin ©   (25.11.08 11:03) [2]
> код нормально форматируй и все будет хорошо... а пока можешь
> посчитать сколько у тебя begin, сколько end и удивится

Ну да) но деле не в этом ende- его я просто не докопировал


 
Palladin ©   (2008-11-25 11:08) [6]

я про глобально в модуле, а не про эту функцию конкретно. и надеюсь ты знаешь, что нельзя объявлять функцию/процедуру внутри операторных скобок?


 
Amoeba ©   (2008-11-25 11:08) [7]

Ни if ... then, ни Exit не нужны.


 
bioss ©   (2008-11-25 11:13) [8]


> Amoeba ©   (25.11.08 11:04) [3]
> Переписать так:function IsFloat(ch : char; st: string) :
>  Boolean;begin  if (ch >= "0") and (ch <= "9") // цифры
>  or (ch = #13) // клавиша <Enter>  or (ch = #8) // клавиша
> <Backspace>  then    Result := True; // символ верныйend;
> и читать букварь

Да, букварь читать точно нужно) Но сейчар надо срочно решать задачу, а пока не получается даже функцию описать((

вот я записал ваш код, ОШИБКА ТА ЖЕ!!! вот полный текст

program Project1;

{$APPTYPE CONSOLE}

uses
 SysUtils;

begin
function IsFloat(ch : char; st: string) : Boolean;
begin
if (ch >= "0") and (ch <= "9") // цифры
or (ch = #13) // клавиша <Enter>
or (ch = #8) // клавиша <Backspace>
then
  Result := True; // символ верный
end;
end.


 
sniknik ©   (2008-11-25 11:13) [9]

> statemen expected, but "FUNCTION" found
пытайся понять что тебе в ошибках пишут. они не просто та набор слов.
конкретно здесь, "ожидается statement, но найдена "FUNCTION"", что непонятного? не "функция описана неправильно" чтобы искать как ее описывать, а "ожидается что-то, а найдена функция" т.е. в неправильном месте...

------------
вот пришёл ты с работы, садишься ужинать, снимаешь ботинки, и ставишь их на стол... и что на тебя жена будет кричать, "неправильные ботинки"? или "ты куда гад их поставил!". разницу улавливаешь?


 
sniknik ©   (2008-11-25 11:15) [10]

> Но сейчар надо срочно решать задачу
с таким подходом срочно не бывает, обычно бывает гораздо медленнее чем если бы сначала прочитал букварь.


 
Palladin ©   (2008-11-25 11:16) [11]


> bioss ©   (25.11.08 11:13) [8]

читать второе предложение в [6] до полного просветления. и не называй этот бред "классический код", бо классику ты не знаешь


 
bioss ©   (2008-11-25 11:17) [12]


> sniknik ©   (25.11.08 11:13) [9]
> > statemen expected, but "FUNCTION" foundпытайся понять
> что тебе в ошибках пишут. они не просто та набор слов.конкретно
> здесь, "ожидается statement, но найдена "FUNCTION"", что
> непонятного? не "функция описана неправильно" чтобы искать
> как ее описывать, а "ожидается что-то, а найдена функция"
> т.е. в неправильном месте...


Да) Ну подскажи тогда, где сдесь правильное место?


 
bioss ©   (2008-11-25 11:19) [13]


> Palladin ©   (25.11.08 11:16) [11]
> > bioss ©   (25.11.08 11:13) [8]читать второе предложение
> в [6] до полного просветления. и не называй этот бред "классический
> код", бо классику ты не знаешь

Спасибо! Буду учить классику))


 
sniknik ©   (2008-11-25 11:21) [14]

в букварь!
это не то что нужно подсказывать. имхо. научить думать в правильном направлении  еще куда ни шло.


 
Ega23 ©   (2008-11-25 11:21) [15]


> Да) Ну подскажи тогда, где сдесь правильное место?


Букварь по паскалю почитай. Любой. Какова структура программы? С какого волшебного слова начинается тело программы? Каким волшебным словом оно заканчивается? Зачем секция uses? ЗАчем нужна секция uses в разделе implemenation? Что это за раздел?

Ну и т.д. и т.п.


 
bioss ©   (2008-11-25 11:22) [16]

sniknik,Amoeba, Palladin БОЛЬШОЕ СПАСИБО!


 
дед Маздай ©   (2008-11-25 11:59) [17]

А почему никто не написал так;
Result := ch in ["0".."9", #8, #13];
или это неверно?
Просто я всегда записываю так, но может я незаю каких-нибудь подводных камней.


 
Palladin ©   (2008-11-25 12:02) [18]


> или это неверно?Просто я всегда записываю так, но может
> я незаю каких-нибудь подводных камней.

все нормально, это тоже самое и записано куда лаконичней


 
Ega23 ©   (2008-11-25 12:10) [19]


> Result := ch in ["0".."9", #8, #13];
> или это неверно?


В общем случае - нет.

ShowMessage(IntToStr(StrToInt("$FF")));


 
Palladin ©   (2008-11-25 12:14) [20]


> Ega23 ©   (25.11.08 12:10) [19]



> В общем случае - нет.

в общем это каком?


> ShowMessage(IntToStr(StrToInt("$FF")));

и? вселенная должна прекратить свое существание? :)


 
Ega23 ©   (2008-11-25 12:25) [21]


> в общем это каком?


В общем - в N-ричной системе счисления. Про dec я нигде в ветке не увидел.
Могу предположить, что товарищ делает проверку ввода чисел в TEdit, но настораживает отсутствие DecimalSeparator и присутствие #13.


> и? вселенная должна прекратить свое существание? :)


Нет. Но ни один из выделенных символов в заявленное множество не попадает, однако код нормально компилируется.


 
Palladin ©   (2008-11-25 12:35) [22]


> В общем - в N-ричной системе счисления. Про dec я нигде
> в ветке не увидел.Могу предположить, что товарищ делает
> проверку ввода чисел в TEdit, но настораживает отсутствие
> DecimalSeparator и присутствие #13.

будь проще :) речь идет, всего лишь, о вхождении символа в определенный набор, если присмотришься, то ch - это char


> Нет. Но ни один из выделенных символов в заявленное множество
> не попадает, однако код нормально компилируется.

а чего бы ему не компилироваться? :) проверка вхождения символа в определенный набор никакого отношения к функциям перевода строки в число не имеет :)


 
Ega23 ©   (2008-11-25 12:39) [23]


> будь проще :) речь идет, всего лишь, о вхождении символа
> в определенный набор, если присмотришься, то ch - это char


Ну я вижу, что char. В TKeyPressEvent тоже char сидит.



Страницы: 1 вся ветка

Текущий архив: 2009.01.04;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.011 c
2-1227161056
Valerik
2008-11-20 09:04
2009.01.04
ComboBox


15-1225336888
Slider007
2008-10-30 06:21
2009.01.04
С днем рождения ! 30 октября 2008 четверг


2-1227180191
Андрей Алекс.
2008-11-20 14:23
2009.01.04
Отправка почты


15-1225441518
Vlad Oshin
2008-10-31 11:25
2009.01.04
Работа. Программиста никому не надо? :)


15-1226065299
Галинка
2008-11-07 16:41
2009.01.04
можно ли ставить MacOS на неМаки