IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Помогите найти ошибку в коде
nowichok9
сообщение 4.02.2011 13:08
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской
Реальное имя: Андрей

Репутация: -  0  +


Помогите найти ошибку

Код

program algebra23;
var a,b,c,d,i,e,f: integer;
begin
     writeln('видите a b c');
     readln(a, b, c);
     writeln;
     for i:= -10 to 10 do
     begin
          e:=a*sqr(i)+b*i+c;
          write('  (',i,';',e,')');
     end;
     write('нахождение дискриминанта');
     D:= sqr(b)-(4*a*b);
     writeln;
     writeln('дискриминант  = ',d);
     writeln('x1=',-b,'+',sqrt(d),' / ',2*a,' = ',(-b+sqrt(d))/(2*a),' ');  {ошибка 207: ошибочная операция с плавающей точкой}
     writeln('x2 = ',-b*-1,'-',sqrt(d),'  / ',2*a,' = ',(b*-1-sqrt(d))/(2*a));
     readln;
end.

если дискриминант = 0 то выполняется
чувствую какая то простая ошибка а понять в чём не могу wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 4.02.2011 13:11
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Если дискриминант меньше нуля, то облом наступает при попытке извлечь квадратный корень из отрицательного числа. Если равен, то ничего происходить не должно.
Ещё облом - если a=0 - тогда деление нуля на ноль будет.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
nowichok9
сообщение 4.02.2011 13:18
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Мужской
Реальное имя: Андрей

Репутация: -  0  +


Спасибо good.gif
тогда как сделать что бы программа не завершалась

Добавлено через 7 мин.
всё догадался попробую через метки smile.gif

Сообщение отредактировано: nowichok9 - 4.02.2011 13:26
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 4.02.2011 13:31
Сообщение #4


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Зачем метки?!


if d>= 0 then begin
writeln;
writeln('дискриминант = ',d);
writeln('x1=',-b,'+',sqrt(d),' / ',2*a,' = ',(-b+sqrt(d))/(2*a),' ');
writeln('x2 = ',-b*-1,'-',sqrt(d),' / ',2*a,' = ',(b*-1-sqrt(d))/(2*a));
end else begin
writeln('дискрииминант меньшу нуля, решений нет');
end;



--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 5.02.2011 4:57
Сообщение #5


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(TarasBer @ 4.02.2011 13:31) *
Зачем метки?!

хи-хи ))
Тарас настолько испугался, что сразу выложил код ))
страааашный GOTO diablo.gif !fire.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasB
сообщение 5.02.2011 12:13
Сообщение #6


Гость






Lapp, тут тогда нужна картинка не с демоном, а с велоцераптором.
 К началу страницы 
+ Ответить 
TarasBer
сообщение 3.06.2011 13:19
Сообщение #7


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Изображение

Сообщение отредактировано: TarasBer - 3.06.2011 13:19


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 3.06.2011 22:48
Сообщение #8


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(TarasB @ 5.02.2011 13:13) *
Lapp, тут тогда нужна картинка не с демоном, а с велоцераптором.

Спасибо. А то я все ломал голову, что за зверь такой (про WD знаю, и даже использую)).


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 4.11.2024 3:46
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"