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

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

Форум «Всё о Паскале» _ Задачи _ Вычисление суммы первых членов

Автор: Juhn 9.12.2007 7:10

привет!
Задача: Вычислить в данном порядке сумму первых членов N.
Формула: s=k+1/k2 (k2 - k в квадрате)

Попытаюсь обьяснить в двух словах для лучшего понимания. Компьютер запрашивает число N, например мы указываем 3, это значит что в место К (в формуле) компьютер должен подставить 3 числа, сначала подставит вместо К число 1 и посчитает S, затем число 2, и число 3, и в итоге компьютер должен сложить все 3 S и посчитать конечный результат. Если при запросе N мы указываем число 5, то комьютер должен посчитать сначала подставив вместо К 1, потом 2,3,4,5.
Вот такая задача. Если честно не имею представления как её решить.
Народ если кто - то может помочь, очень прошу напишите. Буду благодарен
Заранее спасибо!
P.S да и ещё было сказано что эту задачу можно решить используя какой - то цикл... С циклом в паскале я тоже не знаком поэтому не знаю.

Автор: Client 9.12.2007 14:59

Так пойдет:

uses crt;
var
i,n:integer;
s:real;
begin
clrscr;
write(' Vvedite N ');
readln(n);
s:=0;
for i:=1 to n do
s:=s+i+1/sqr(i);
write(' S= ',s:0:5);
readkey
end.

Автор: Juhn 9.12.2007 16:42

Что - то не много нитак.
Ввёл N например 1, дал ответ 2. Всё правильно: 1+1/1(2) = 2
Ввёл N 2, ответ дал 4.25. Если посчитать: сначала подставили 1 и это = 2, теперь подставляем вместо n 2: 2+1/2(2) = 3/4 Теперь нужно сложить: 2 +3/4 = 2.75. А ответ дал 4.25. или тут что - то нитак, или может я неправильно понял как точно нужно складывать, так как такие задачи никогда не решал.

Автор: Client 9.12.2007 16:50

Смотри, задали 2, S=1+1/1(1 в квадрате=1), S стало 2
Теперь прибавляем к S 2+1/4. Ответ 2+2+1/4=4,25
Ведь в задании сказано

Цитата
Вычислить в данном порядке сумму первых членов N.

Автор: Juhn 9.12.2007 16:58

Всё понял. smile.gif
Огромное спасибо, ты меня спас smile.gif
Только по мимо задачи ещё нудно написать вывод? в котором описать значение каждой строчки (что она делает, какие команды выполняет)
Так вот помжно разьяснить что означают вот эти строки:
s:=0;
for i:=1 to n do
s:=s+i+1/sqr(i);
Что значит s:=0, команды for,to n do, и что такое i ? Все остальные строки я знаю и описать могу, а вот эти нужно обьяснить словами что они делают конкретно. Просто с циклом я не сталкивался, не знаю как это описать. smile.gif Пожалуйста опишите словами значение этих 3 строк.

Автор: Client 9.12.2007 17:09

s=0 //Здесь зануляем S
for i:=1 to n do // Это цикл с параметром, который выполнится N раз
s:=s+i+1/sqr(i); // Это рекуррентная формула, в которой S будет увеличиваться на I+1/(I*I)
For, TO, DO это ключевые слова паскаля
ТО - означает что управляющая переменная I получает при каждой итерации приращение +1

Автор: Juhn 9.12.2007 17:10

smile.gif good.gif