Loading [MathJax]/extensions/Safe.js

Образовательный форум - онлайн помощь в учебе

Помощь в решении задач => Программирование => Тема начата: PandaPivovar от 28 Ноября 2009, 21:18:00

Название: Задание по Delphi (при введении данных возникает ошибка)
Отправлено: PandaPivovar от 28 Ноября 2009, 21:18:00
При запуске работы и введении в поле числа с запятой возникает ошибка. При целых значениях выдаёт цивильный ответ, в задании есть тело программы, но даже с ним не выходит(у меня). Выкладываю куски с кодом.
procedure TTmemo.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','-','.',#8]) then key:=#0;
end;

procedure TTmemo.Button1Click(Sender: TObject);
var x,y,a,b,esp:real;
    n:byte;
begin
Tmemo.Lines.Clear;
y:=0;
n:=0;
b:=-1.0;
x:=StrToFloat(Edit1.Text);
esp:=StrToFloat(Edit2.Text);
Repeat
b:=-b*x;
inc(n);
a:=b/n;
y:=y+a;
Tmemo.Lines.Add('Интерация'+IntTostr(n)+'   a=' +
FormatFloat('0.00000',a)+'  y='+
FOrmatfloat('0.00000',y));
Until abs(a)< esp
Название: Re: Задание по Delphi (при введении данных возникает ошибка)
Отправлено: InfStudent от 28 Ноября 2009, 21:35:54
Во первых посмотри вот что в Delphi в компоненте edit есть свойство котоое определяет знак, который будет разделитлем в числе с точкой. Во вторых применяй точку а не запятую) И в третьих используй функцию val вместо StrToFloat . Она выдает номер символа который не преобразуется.  
Название: Re: Задание по Delphi (при введении данных возникает ошибка)
Отправлено: PandaPivovar от 28 Ноября 2009, 23:10:58
Val неактуальная переменная
Название: Re: Задание по Delphi (при введении данных возникает ошибка)
Отправлено: InfStudent от 28 Ноября 2009, 23:23:19
val это функция во-первых)А что значит неактуальная она решает задачу и гораздо информативней чем ту что вы используете
Название: Re: Задание по Delphi (при введении данных возникает ошибка)
Отправлено: PandaPivovar от 28 Ноября 2009, 23:26:41
Когда переменую засовываю в функцую выдаёт ошибку:) вот о чём я:)
Название: Re: Задание по Delphi (при введении данных возникает ошибка)
Отправлено: InfStudent от 28 Ноября 2009, 23:28:18
Во первых для нее нужно три параметра, последний это переменная где код ошибки.  
Название: Re: Задание по Delphi (при введении данных возникает ошибка)
Отправлено: InfStudent от 28 Ноября 2009, 23:28:58
В чем ошибка?
Название: Re: Задание по Delphi (при введении данных возникает ошибка)
Отправлено: PandaPivovar от 29 Ноября 2009, 01:11:15
При вводе в поле Edit1 значение 0.25(значение из примера), возникает окно с ошибкой 0.25 is not valit floating point value. Как я понимаю проблема в значении с точкой.
Название: Re: Задание по Delphi (при введении данных возникает ошибка)
Отправлено: InfStudent от 29 Ноября 2009, 14:25:53
У меня с запятой сработал ввод (я  написал простую маленькую прогу берущую из edit'ов) два значения, а с точкой как у вас. Однако решением может быть  DecimalSeparator:='.'. Это переменная отвечает в Delphi за символ который отдлеляет целую часть от дробной. Поэтому в программу можно добавить код, просящий пользователя определить символ отделения дробной части от целой. У меня с точкой все корректно обработалось после того как я перед вызовом функции StrToFloat(); вставил инструкцию DecimalSeparator:='.'  
Название: Re: Задание по Delphi (при введении данных возникает ошибка)
Отправлено: PandaPivovar от 29 Ноября 2009, 15:55:57
Спасибо за ответ:) Ваш совет помог избавиться от этой ошибки:)