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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2012, 20:18   #1
homa371
Пользователь
 
Регистрация: 20.01.2011
Сообщений: 23
По умолчанию Pascal.Error 207.Division by zero

Код:
program a1;
uses crt;
var
x,a,k:real;
begin
clrscr;
writeln('Vvedite a');
readln(a);
k:=3.14;
while x<6.281 do
begin
k:=ln(cos(x)/sin(x)-1);
if k=a then
k:=k+0.001;
end;
clrscr;
writeln(' ',x:2:2);
end.
Такой код.После ввода а выдает ошибку.Может Что-то не правильно делаю,но не могу заметить.Жду комментариев.
homa371 вне форума Ответить с цитированием
Старый 20.02.2012, 20:31   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,310
По умолчанию

В принципе можно воспользоваться отладчиком и понять, что деление на ноль вызвано в вычислении Ctg(x) = Cos(x)/tg(x).
Это вызвано двумя причинами:
1. Инициализируйте переменные перед их использованием в выражении.
Переменная x - не инициализирована;
2. Паскаль, перед запуском программы, очищает сегмент данных. Т.о. значение переменной х равно нулю.
Ещё одна ошибка появится, когда Ctg(x) будет <=1, например, при x = pi/4.
Эта ошибка будет связана с тем, аргумент функции ln() должен быть >0.


Как то так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 20.02.2012, 20:34   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

не успел
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 21.02.2012, 06:47   #4
homa371
Пользователь
 
Регистрация: 20.01.2011
Сообщений: 23
По умолчанию

Код:
program a1;
uses crt;
var
x,a,k:real;
begin
clrscr;
writeln('Vvedite a');
readln(a);
k:=3.14;
while x<6.281 do
begin
k:=ln(cos(x)/sin(x)-1);
if k=a then
x:=x+0.001;
end;
clrscr;
writeln(' ',x:2:2);
end.
исправил а вот так error 207. Invalid floating point operation.
Для заданного а вычислить принадлежащий интервалу (p;2p) корень уравнения ln(ctgx-1)=a.
корни в программе это х, меняю с интервалом в 0.001.Если значение функции равно заданному а то корень уравнения найден.
homa371 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Error 207: Invalid floating point operation Apricus Помощь студентам 7 19.01.2011 10:50
Error 207, Invalid floating point operation westlinex Паскаль, Turbo Pascal, PascalABC.NET 5 21.12.2010 22:38
Pascal. Поиск линейно зависимых строк матрицы. Error 200: Division by zero, хотя нулей в матрице нет Paul-SFL Помощь студентам 8 27.11.2010 21:52
Division by zero на Turbo Pascal Kingdom_Reborn Помощь студентам 7 27.10.2010 13:20
error 207 gest Паскаль, Turbo Pascal, PascalABC.NET 0 02.06.2010 19:48