Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2011, 22:57   #1
Antidelphik_)
Пользователь
 
Регистрация: 22.03.2011
Сообщений: 29
По умолчанию Delphi выдает аномальную ошибку с Memo, не понимаю в чем дело (

текст программы:
Код:
var Xmin,Xmax,h:real;
begin
try
Xmin:=StrToFloat(LabeledEdit1.Text);
Xmax:=StrToFloat(LabeledEdit2.Text);
h:=StrToFloat(LabeledEdit3.Text);
except
MessageDlg('Íåâåðíûå äàííûå',mtError,[mbOK],0);
exit
end;
if Xmax<=Xmin then
begin
MessageDlg('Xmax<Xmin!',mtError,[mbOK],0);
exit
end
end;
Memo1.Lines.Clear;
while Xmin<=Xmax do
begin
Memo1.Lines.Add('sin('+FloatToStr(Xmin,ffFixed,10,4,)+')='+FloatToStr(sin(Xmin),ffFixed,10,4));
Xmin:=Xmin+h;
end
end;


end.
ошибку выдает на Memo1.Lines.Clear; пишет [Error] Unit1.pas(47): Declaration expected but identifier 'Memo1' found что это за ошибка?? Хелп =(


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 16.04.2011 в 11:56.
Antidelphik_) вне форума Ответить с цитированием
Старый 15.04.2011, 23:06   #2
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Вот твой код, только структурированный. Смотри сам в чем у тебя ошибка. См. операторные скобки.
Код:
var Xmin,Xmax,h:real;
begin
  try
    Xmin:=StrToFloat(LabeledEdit1.Text) ;
    Xmax:=StrToFloat(LabeledEdit2.Text) ;
    h:=StrToFloat(LabeledEdit3.Text);
  except
    MessageDlg('Iaaa?iua aaiiua',mtError,[mbOK],0);
    exit
  end;
  if Xmax<=Xmin then
  begin
    MessageDlg('Xmax<Xmin!',mtError,[mbOK],0);
    exit
  end
end;
  Memo1.Lines.Clear;
  while Xmin<=Xmax do
  begin
    Memo1.Lines.Add('sin('+FloatToStr(X min,ffFixed,10,4,)+')='+FloatToStr( sin(Xmin),ffFixed,10,4));
    Xmin:=Xmin+h;
  end
end;
Совет: всегда структурируй код, тогда не будет проблем такого рода.
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 15.04.2011 в 23:57.
MyLastHit вне форума Ответить с цитированием
Старый 15.04.2011, 23:18   #3
Antidelphik_)
Пользователь
 
Регистрация: 22.03.2011
Сообщений: 29
По умолчанию

MyLastHit, ща будет очень дебильный вопрос...что значит структурированный в этой программе? надо было просто красиво расстояния от полей расставить? )
Antidelphik_) вне форума Ответить с цитированием
Старый 15.04.2011, 23:19   #4
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Цитата:
надо было просто красиво расстояния от полей расставить? )
Yes
Самому же потом приятно читать.

Update: загляните сюда - Tools-Source Formatter-Current File
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 15.04.2011 в 23:24.
MyLastHit вне форума Ответить с цитированием
Старый 15.04.2011, 23:26   #5
Antidelphik_)
Пользователь
 
Регистрация: 22.03.2011
Сообщений: 29
По умолчанию

=(''''' всё равно та же ошибка =('''''''''
Antidelphik_) вне форума Ответить с цитированием
Старый 15.04.2011, 23:29   #6
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

End удалил? Вот так должно быть:
Код:
var Xmin,Xmax,h:real;
begin
  try
    Xmin:=StrToFloat(LabeledEdit1.Text) ;
    Xmax:=StrToFloat(LabeledEdit2.Text) ;
    h:=StrToFloat(LabeledEdit3.Text);
  except
    MessageDlg('Iaaa?iua aaiiua',mtError,[mbOK],0);
    exit
  end;
  if Xmax<=Xmin then
  begin
    MessageDlg('Xmax<Xmin!',mtError,[mbOK],0);
    exit
  end;
  Memo1.Lines.Clear;
  while Xmin<=Xmax do
  begin
    Memo1.Lines.Add('sin('+FloatToStr(X min,ffFixed,10,4,)+')='+FloatToStr( sin(Xmin),ffFixed,10,4));
    Xmin:=Xmin+h;
  end
end;
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 15.04.2011, 23:36   #7
Antidelphik_)
Пользователь
 
Регистрация: 22.03.2011
Сообщений: 29
По умолчанию

а почему тут begin
MessageDlg('Xmax<Xmin!',mtError,[mbOK],0);
exit
end;
endы же должны быть и после begin и после exit, разве нет?
Antidelphik_) вне форума Ответить с цитированием
Старый 15.04.2011, 23:38   #8
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

End ставится в конце подпрограммы и в качестве операторных скобок(закрытие begin, try и тд). А Exit это всего лишь оператор выхода, чтобы выйти из блока операторных скобок не доходя до end. По хорошему они у Вас там вообще не нужны.
читаем тут
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 15.04.2011 в 23:43.
MyLastHit вне форума Ответить с цитированием
Старый 15.04.2011, 23:50   #9
Antidelphik_)
Пользователь
 
Регистрация: 22.03.2011
Сообщений: 29
По умолчанию

блин, а в методичке энды после каждого exitа были =) спасибо большое, ошибок намного меньше выдает но в той строке где позиции под целую и дробную часть числа выдаются пишет теперь такую ошибку: [Error] Unit1.pas(49): Too many actual parameters я так понимаю слишком много позиций, уменьшила их блин до 4 и 3 а всё равно то же пишет, не подскажешь в чем тут дело?
Antidelphik_) вне форума Ответить с цитированием
Старый 15.04.2011, 23:54   #10
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
я так понимаю слишком много позиций
Цитата:
Too many actual parameters
слишком много параметров вы передаете в функцию а не позиций)
Цитата:
в той строке где позиции
код покажите этой строчки
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем дело(Процедуры)??? Dima DDM Общие вопросы Delphi 2 10.01.2011 14:43
В чем дело? sanja155 Помощь студентам 1 17.12.2010 01:51
Не понимаю в чем дело с MS SQL! Umbrella90 Помощь студентам 1 05.07.2010 20:40
Excel 2007 и Delphi 7 выдает ошибку. 4sense Общие вопросы Delphi 6 16.03.2010 23:42
на компьютере нет Delphi, приложение не запускается, выдает ошибку - не является приложением Win32 Vadim_Haritonov Общие вопросы Delphi 3 30.10.2008 12:23