Другие языки программирования и технологии

Помогите найти ошибку в программе (паскаль)

write('Задайте Е='); readLn(E); <-- Лучше применять ReadLn
writeln ('Àðãóìåíò Òî÷íîå çíà÷åíèå Ïðèáëèæåííîå çíà÷åíèå Êîëè÷åñòâî ñëàãàåìûõ Îøèáêà'); <-- не смог расшифровать
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
для цикла проще было использовать следующий механизм - нагляднее и проще (переменная i не нужна
x := 0.1;
repeat
...
x := x + 0.2;
until x > 0.7;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Формула - это вообще что-то!
((exp(n * ln(sqr(2))) * cos(pi * n / 4) * exp(n * ln(x))) / fact(n))
Корень sqrt(2) вместо exp(n * ln(sqr(2))) - это раз!
Посмотрим, что происходит на каждом шаге со слагаемым:
1) sqrt(2) * cos(pi/4 * 1) * x/1
2) sqrt(2)*sqrt(2) + cos(pi/4 * 2) * x*x/1/2
3) sqrt(2)*sqrt(2)*sqrt(2) + cos(pi/4 * 3) * x*x*x/1/2/3
Видно, что можно упростить:
0) N := 0; T := 1; S := 3;
1) N := N + 1; T := T * sqrt(2) * x / N; A := T * cos(N * Pi/4); S := S + A;
2) N := N + 1; T := T * sqrt(2) * x / N; A := T * cos(N * Pi/4); S := S + A;
3) N := N + 1; T := T * sqrt(2) * x / N; A := T * cos(N * Pi/4); S := S + A;
Что означает "с" - тоже не понятно!
Итого конечный вариант программы:
program L4;
var
x, y, s, E, b, T, A: real;
n : integer;
begin
write('Задайте Е='); readLn(E);
writeln('????');
x := 0.1;
repeat
y := exp(x) * cos(x) + 2;
N := 0; T := 1; S := 3;
repeat
N := N + 1; T := T * sqrt(2) * x / N; A := T * cos(N * Pi/4); S := S + A;
until abs(y - s) <= E;
b := y - s;
writeln(x, ' ', y:1:5, ' ', s:1:5, ' ', n, ' ', b:1:5);
x := x + 0.2;
until x > 0.7;
end.
ЗЫ Начальные данные для каждого цикла нужно заново определять как я написал.
А у тебя они определялись перед начальным циклом. Потом брались уже найденные ранее значения!
RA
Rinat Akifov
92 159
Лучший ответ
ошибка какая? В чем проблема?
Искать по всему коду - лень. Назовешь проблему, решу ошибку
Дамир ......
Дамир ......
20 142
где код?