Вычислить сумму ряда для всех n от минимального до заданного - Free Pascal
Формулировка задачи:
Вычислить сумму ряда для всех n от минимального до заданного. Вывести на экран результат вычисления в форме:
<n> - <значение y для данного n>
Решение задачи: «Вычислить сумму ряда для всех n от минимального до заданного»
textual
Листинг программы
uses crt; //модуль для работы с экраном (в данном случае)
const nmax=100; //максимальный размер массива, можно поменять
var a:array[1..nmax] of real; //массив значений функции
n,i,j:integer; //размер и счетчики в циклах
x,t,y:real;//вспомогательные переменные при расчетах
begin
clrscr; //очищаем экран
write('x=');//вводим х
readln(x);
write('n=');//вводим n
readln(n);
for i:=1 to n do //в цикле от 1 до n
begin
t:=x; //запоминаем х
y:=0; //сумма=0
for j:=1 to i do//возводим х в степень
t:=t*x*x; //x^3;x^5;x^7.....
y:=y+t/(2*i+1);//вычисляем сумму по формуле x^(2i+1)/(2i+1)
//кстати у меня здесь была ошибка, нужно заменить j на i
//и убрать это из вложенного цикла
y:=2*y;//умножаем сумму на 2
a[i]:=y;//пишем ее в массив
end;
for i:=1 to n do //вывод элементов массива
writeln(a[i]:0:3);
readln
end.
Объяснение кода листинга программы
- Объявляются переменные: n, i, j - целочисленные счетчики и размер; x, t, y - вспомогательные переменные для расчета; a - массив значений функции.
- С помощью функции readln() вводятся значения переменных x и n.
- Два вложенных цикла: Внешний цикл выполняется от 1 до n. Внутренний цикл выполняет возведение x в степень от 1 до i.
- Внутренний цикл завершается досрочно, когда значение j становится равным i.
- Внутренний цикл вычисляет сумму по формуле x^(2i+1)/(2i+1).
- Сумма умножается на 2.
- Полученное значение записывается в массив a.
- Вложенные циклы завершаются.
- Внутренний цикл выводит значения массива a.
- Программа завершается.