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

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

Форум «Всё о Паскале» _ Задачи _ фомула

Автор: Izo 6.06.2008 10:08

Напишите как эта формула в паскале будет записана... а то у меня подозрение, что я не правильно ее записал.

Добавлено через 5 мин.
Если кому интересно , вот сама задача :

Составить Паскаль-программу, позволяющую найти корень уравнения на заданном отрезке. Приближенное значение корня представлено в последнем столбце таблицы.


Эскизы прикрепленных изображений
Прикрепленное изображение Прикрепленное изображение

Автор: volvo 6.06.2008 12:34

Цитата
а то у меня подозрение, что я не правильно ее записал.
Ну, вот и покажи, как записал. Тогда и посмотрим, правильно или нет...

Автор: Izo 6.06.2008 13:06

ну типа вот:

f:=(sin(x)/cos(x))-1/3*(sqr(sin(x)/cos(x))*(sin(x)/cos(x)))+1/5*(sqr(sqr(sin(x)/cos(x)))*(sin(x)/cos(x)))-1/3

Автор: volvo 6.06.2008 13:15

А что, разбить на 2 строки - никак?

t := sin(x) / cos(x); { <-- не забудь проверить на cos(x) <> 0 }
f := t - (1/3) * t * sqr(t) + (1/5) * t * sqr(sqr(t)) - (1/3);


Автор: Izo 6.06.2008 13:27

хм...логично....я просто Pascal ток в этом семестре изучать начал...

Автор: Izo 6.06.2008 13:53

чет у меня не так получается... Я так понял должно получаться 0,3333 приблизительно. По книге делал. Скажите че не так.

uses crt;
function f(x:real):real;
begin
f:=(sin(x)/cos(x))-1/3*(sqr(sin(x)/cos(x))*(sin(x)/cos(x)))+1/5*(sqr(sqr(sin(x)/cos(x)))*(sin(x)/cos(x)))-1/3
end;
Var
a,b,c,x,e:real;
Begin
clrscr;
a:=0;
b:=0.08;
write('e=');
readln(e);
repeat
c:=(a+b)/2;
if (f(a)*f©)<0 then
b:=c
else
a:=c;
until (b-a)<=e;
x:=(a+b)/2;
writeln('x=',x:5);
readkey;
End.

Автор: volvo 6.06.2008 13:57

Ты интервал 0 .. 1 сделай (а не от 0 до 0,08 как у тебя сейчас), может и получится что-нибудь wink.gif

Автор: Izo 6.06.2008 14:03

по заданию интервал такой...
данные задани в первом посте, второй добавленый рисунок.

Автор: volvo 6.06.2008 14:14

По заданию интервал НЕ до 0.08, а в 10 раз больше, до 0.8...

Автор: Izo 6.06.2008 14:25

хм...ну да...это я от недосыпа наверно...молодец,что увидел. Но всеравно прога чет не то выдает...

Автор: volvo 6.06.2008 14:33

Меняешь формат вывода на

writeln('x=',x:10:5);
, и получаешь результат:
Цитата
e=0.01
x= 0.33203

Что именно не то?

Автор: Izo 6.06.2008 14:44

да уж...эт видать я уже туплю...надо спать идти...спс за помощь smile.gif