Помощь - Поиск - Пользователи - Календарь
Полная версия: Абрамов. задача 758г > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
savedata
Дано действительное число x. Вычислить с точностью до 10^(-6).

Изображение

program z758g;
uses crt;
var
a,k:integer;
S,x,y:real;
begin
clrscr;

writeln('введите действительное число x - ');
readln(x);

a:=0;
S:=0;
k:=1;

while (a<4) do
begin
y:=1/(sqrt(abs(x))+(k*k));
S:=S+y;
k:=k+1;
write(y:0:8);
writeln(' - ',a:0);
if abs(y)<0.000001 then a:=a+1 else a:=0;
end;

writeln('сумма вычислений с точностью до 10^(-6) равна',S:0:3);
readln;
end.
Тролль
Не могу понять - программа какая-то странная. Она по-моему вообще ничего не считает. Что такое g?
savedata
g я уже убрал...это я чисто для себя вводил переменную, чтобы отследить сколько циклов программа сделала

исправил код
Тролль
И в чем заключается ее неработа? Ничего не выводит? Или неправильно считает?
savedata
Цитата
Дано действительное число x. Вычислить с точностью до 10^(-6).


ничего не выводит
и k суммирует почему то неправильно...
с каждым циклом k должно увеличиваться на 1, а мне паскаль такой бред выдает
Тролль
А что это значит?
write(y:0:8);
writeln(' - ',a:0);
Сейчас попробую эту программу в другой язык забить.


Хм, программа работает. Правда я убрал фразу else a = 0

А можно и ещё проще:
k:=1;
y:=1;
while (y > 0.000001) do
begin
y:=1/(sqrt(abs(x))+(k*k));
S:=S+y;
k:=k+1;
end;
writeln('сумма вычислений с точностью до 10^(-6) равна',S:0:3);
readln;
end.

Вот и всё. Тоже вроде работает.
savedata
Цитата
А что это значит?
write(y:0:8);
writeln(' - ',a:0);


это я на экран выводил результаты промежуточных вычислений
Тролль
Попробуйте сделать, как я сказал.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.