Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Найти значения функции

Автор: Amir 4.06.2008 18:07

Дана функция A-((X-C)^2/(B+1)) надо высчитать и напечатать значения этой функции для последовательных значений X=C, C+(B+1), C+2(B+1),C+3(b+1) и т.д., до тех пор, пока сумма Y+A+5 не станет отрицательной. Числа А, В, С вводятся с клавиатуры.
Вот что сам написал

program z3;
var x,w:real;
a,b,c,d,i,z:integer;
begin
writeln('введите 3 последнии цифры зачётки через пробел и нажмите enter ');
readln(a,b,c);
i:=0;
d:=b+1;
x:=c;
while w+a+5>0 do
begin
x:=c+i*b+i*1;
i:=i+1;
w:=a-x*x/d-c*x/d-c*x/d-c*c/d;
writeln(w);
writeln('Последнии цифры зачётки',a,b,c);
end;
end.

Но правильные ответы не получаются, подскажите что делаю не так?

Автор: compiler 4.06.2008 19:19

>> x:=c;
Это не обязательно..
>> x:=c+i*b+i*1;
ну это можна проще x:=c+i*(b+1);
>> w:=a-x*x/d-c*x/d-c*x/d-c*c/d;
Это откуда? upd а я понял.. это почленное деление.. но по-моему w := a - (x*x+c*c-2*x*c) / (b+1); , смотрится лучше... кстате, если делишь почленно, будь окуратен со знаками, запиши выражение сначало на листок и сверь с тем что ты ввел в программу..

Автор: Amir 4.06.2008 20:03

Цитата(compiler @ 4.06.2008 15:19) *

>> x:=c;
Это не обязательно..
>> x:=c+i*b+i*1;
ну это можна проще x:=c+i*(b+1);
>> w:=a-x*x/d-c*x/d-c*x/d-c*c/d;
Это откуда? upd а я понял.. это почленное деление.. но по-моему w := a - (x*x+c*c-2*x*c) / (b+1); , смотрится лучше... кстате, если делишь почленно, будь окуратен со знаками, запиши выражение сначало на листок и сверь с тем что ты ввел в программу..

w:=a-x*x/d-c*x/d-c*x/d-c*c/d
Это я без скобок пытался сделать.

Автор: compiler 4.06.2008 21:14

Цитата(Amir @ 4.06.2008 16:03) *
Это я без скобок пытался сделать.
тогда проверяй знаки...