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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2013, 16:07   #1
ferru
Новичок
Джуниор
 
Регистрация: 14.12.2013
Сообщений: 6
По умолчанию найти ошибку

помогите пожалуйста найти ошибку в коде
программа должна подсчитывать количество попаданий точки в заштрихованную поверхность и из этих результатов подсчитывать по 1 из 2 формул результат z, выводить номер формулы NF и количество n
у меня выдает 0 и NaN
условия попадания правильные
Код:
program d1;
var NF, n, zn, a, b, t, y, k1, k2, k3, k4, i   : integer;
     s1, s2, x, sl, eps, c, d, s, z, v : real;
begin
k1:=0; k2:=0; k3:=0; k4:=0;
if (abs(y)<=x+1) and (x<0) then 
k1:=k1+1
else
if (sqr(x)+sqr(y)<=1) and (sqr(x)+sqr(y)>=0.25) and (x>0) and (y>0) then
k2:=k2+1
else
if (sqr(x)+sqr(y)<=1) and (sqr(x)+sqr(y)>=0.25) and (x>0) and (y<0) then
k3:=k3+1
else
k4:=k4+1;
if (k3<k1) or (k2<k4) and (k4<200) then
begin
NF:=1; x:=0.15; eps:=1E-3;
s:=c/d; c:=x-1; d:=x+1; n:=0;
repeat
s:=s+sl; c:=c*(x-1)*(x-1); d:=d*(x+1)*(x+1); n:=n+1; t:=2*n+1; v:=2*s; sl:=c/(t*d);
until (sl<eps);  z:=v;
end
else
begin
NF:=2;
s1:=0; a:=3; b:=1;
s2:=0; zn:=1;
while (a<=27) do
begin
s1:=s1+exp(b*ln(cos(a)));
a:=a+2;
b:=b+2;
end;
For i:=1 to 10 do
begin
s2:=s2*z*(1+1/10*zn);
end;
z:=s1/s2;
end;
writeln('РЕЗУЛЬТАТЫ');
writeln('k1=',k1,',k2=',k2,',k3=',k3,',k4=' ',z=',z,',NF=',NF, ',n=',n);
end.
Изображения
Тип файла: jpg 77.jpg (24.3 Кб, 58 просмотров)

Последний раз редактировалось Stilet; 15.12.2013 в 19:12.
ferru вне форума Ответить с цитированием
Старый 16.12.2013, 11:02   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Код:
s:=c/d;
Деление на 0.
Код:
if (abs(y)<=x+1) and (x<0) then
Чему равны х и y?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 16.12.2013, 11:11   #3
ferru
Новичок
Джуниор
 
Регистрация: 14.12.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Код:
s:=c/d;
Деление на 0.
Код:
if (abs(y)<=x+1) and (x<0) then
Чему равны х и y?

почему на ноль, веди там d=x+1
x и y в [-1;1]
ferru вне форума Ответить с цитированием
Старый 16.12.2013, 11:19   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Цитата:
s:=c/d; c:=x-1; d:=x+1; n:=0;
Что стоит раньше?

Цитата:
x и y в [-1;1]
Нет, они равны 0 изначально. Проверь сам.
Код:
k1:=0; k2:=0; k3:=0; k4:=0;
writeln(x,y); // вставь эту строку
if (abs(y)<=x+1) and (x<0) then 
k1:=k1+1
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 16.12.2013, 11:28   #5
ferru
Новичок
Джуниор
 
Регистрация: 14.12.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Что стоит раньше?


Нет, они равны 0 изначально. Проверь сам.
Код:
k1:=0; k2:=0; k3:=0; k4:=0;
writeln(x,y); // вставь эту строку
if (abs(y)<=x+1) and (x<0) then 
k1:=k1+1
спасибо, я хочу вставить следующий код, а он выдает ошибку что требуется порядковый тип, что это и вообще требуется ли его вставлять?


begin
k1:=0; k2:=0; k3:=0; k4:=0;
writeln(x,y);

for x:=-10 to 10 do
for y:=-10 to 10 do
begin

if (abs(y)<=x+1) and (x<0) then
k1:=k1+1
ferru вне форума Ответить с цитированием
Старый 16.12.2013, 12:27   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

х у тебя типа real. Не может использоваться в качестве параметра цикла
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти ошибку orandzheviyman Паскаль, Turbo Pascal, PascalABC.NET 9 04.12.2013 16:47
Найти ошибку в коде (Для данной целочисленной матрицы размером n*m найти матрицу из 0 и 1...) код на C camel5 Помощь студентам 1 26.11.2013 06:11
найти ошибку! огр Помощь студентам 2 04.06.2013 10:24
найти ошибку SVing Паскаль, Turbo Pascal, PascalABC.NET 5 07.04.2012 19:42
найти ошибку Alex1911 Общие вопросы C/C++ 2 28.03.2011 00:43