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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 04.11.2009, 09:25   #1
hitman12
Пользователь
 
Аватар для hitman12
 
Регистрация: 20.09.2009
Сообщений: 88
Вопрос В чем ошибка?

вот решил вроде простенькие задачки а в каждой выпрыгивает ошибка как ее исправить чет уму не приложу подскажите плиз

первая задача:
Код:
var
A,B,D,S,h,V,x,y:real;
U:real;
begin
write('A='); readln(a);
write('B='); readln(b);
write('D='); readln(d);
write('S='); readln(s);
write('shag H='); readln(h);
U:=a+exp(ln(b)*2)+s;
 while y<0 do
  begin
   x:=x+h;
   if (a*cos(b*x))>(s-d*x) then
   v:=a*cos(b*x);
   if (a*cos(b*x))=(s-d*x) then
   v:=24;
   if (a*cos(b*x))<(s-d*x) then
   v:=s-d*x;
   y:=-exp(x)+u+v;
  end;
 write('y=',y);
 readln
end.
вторая задача:
Код:
var
a,t1,t2,h,b,c,i,d,x1,x2:real;
begin
write('shag H='); readln(h);
write('B='); readln(b);
write('C='); readln(c);
t1:=0;
t2:=2.1;
 while t1<=t2 do
  begin
   t1:=t1+h;
   if t1>b then a:=t1;
   if t1=b then a:=10;
   if t1<b then a:=3*t1;
   d:=exp(ln(b)*2)-4*a*c;
   if d>=0 then
    begin
     x1:=(-b+exp(ln(d)*(1/2)))/(2*a);
     x2:=(-b-exp(ln(d)*(1/2)))/(2*a);
     write('X1=',x1); writeln(' X2=',x2);
    end
   else
   writeln('NET KORHEI');
 end;
end.

Последний раз редактировалось Stilet; 04.11.2009 в 10:00.
hitman12 вне форума
Старый 04.11.2009, 09:48   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

И какие же ошибки "выпрыгивают"? Или это секретная информация?
Если в первой задаче переменная y при входе в программу инициализируется паскалем в 0, то условие входа в цикл (while y < 0 do ...) никогда не выполняется. Какая тут может ошибка "выпригивать"? Программа благополучно заканчивается без вычислений.
Во второй задаче "Invalid floating point operation" обязательно будет, если значение переменной b отрицательное. Если положительное, то также прога заканчивается нормально с выдачей сообщения "NET KORNEI".
Вопрос в чем?

Последний раз редактировалось Скандербег; 04.11.2009 в 09:51.
Скандербег вне форума
Старый 04.11.2009, 10:01   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
выпрыгивает ошибка
Ну и пусть выпрыгивает. Не мешает же.
I'm learning to live...
Stilet вне форума
Старый 04.11.2009, 10:32   #4
hitman12
Пользователь
 
Аватар для hitman12
 
Регистрация: 20.09.2009
Сообщений: 88
По умолчанию

в обеих задачах выходит ошибка: Invalid floating point operation в первой задаче она выпрыгивает на уровне U:=a+exp(ln(b)*2)+s со второй спасибо за помощь

Последний раз редактировалось hitman12; 04.11.2009 в 10:58.
hitman12 вне форума
Старый 04.11.2009, 10:35   #5
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

а вы данные как вводите с . или с , надо с .
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума
Старый 04.11.2009, 10:47   #6
hitman12
Пользователь
 
Аватар для hitman12
 
Регистрация: 20.09.2009
Сообщений: 88
По умолчанию

все данные ввожу с точкой во второй задаче коэфиценты у меня такие вот A=11.2 B=-0.13 D=0.001 S=244.1 H=0.5 и выходит ошибка на уровне U:=a+exp(ln(b)*2)+s цикл в задаче заменил с while на until

Последний раз редактировалось hitman12; 04.11.2009 в 10:51.
hitman12 вне форума
Старый 04.11.2009, 10:48   #7
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Не знаю как у вас, но по первой задаче никаких вычислений не производится, поэтому у меня ошибок вообще нет.
По второй странновато получается. перед вычислением выражения d:=exp(ln(b)*2)-4*a*c; нет проверки на отрицательность аргумента b, хотя именно отрицательное значение и дает ошибку. Здесь вообще то надо упростить выражение.
Для чего возводить в квадрат таким странным способом (который, к тому же ошибку дает). Надо просто умножить параметр сам на себя - и все дела:
d:=b*b-4*a*c; Тогда и на отрицательное значение b можно проверку не делать.
Разве в отладке сложно посмотреть что происходит?
Скандербег вне форума
Старый 04.11.2009, 10:57   #8
hitman12
Пользователь
 
Аватар для hitman12
 
Регистрация: 20.09.2009
Сообщений: 88
По умолчанию

во второй все исправил проблема только с первой
hitman12 вне форума
Старый 04.11.2009, 11:00   #9
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Опять таимся. Проблема то в чем? Я только одну пока увидел (два раза уже говорил про нее).
Скандербег вне форума
Старый 04.11.2009, 11:06   #10
hitman12
Пользователь
 
Аватар для hitman12
 
Регистрация: 20.09.2009
Сообщений: 88
По умолчанию

проблема в том что я не знаю как сделать рабочей программу 1 с начальными данными A=11.2 B=-0.13 D=0.001 S=244.1 H=0.5 как исправить ошибку Invalid floating point operation что бы она наконец стала работать?
hitman12 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем ошибка? Smartbass Паскаль, Turbo Pascal, PascalABC.NET 1 28.05.2009 21:55
В чем ошибка? AleNa666 Паскаль, Turbo Pascal, PascalABC.NET 2 28.04.2009 14:28
в чем ошибка Arassir Помощь студентам 3 01.04.2009 21:51
В чем ошибка? delphyok Паскаль, Turbo Pascal, PascalABC.NET 6 24.02.2009 23:33
В ЧЕМ ОШИБКА? salmanbaz Общие вопросы C/C++ 5 11.01.2009 13:21