Дан числовой ряд с общим членом: a_n=100-n!/( ∛n) , n=1,2,…
Найдите сумму членов последовательности больших нуля (использовать цикл с предусловием).
Другие языки программирования и технологии
Срочно.Помогите пожалуйста написать программу на паскале.
Мог ошибиться, поэтому проверь
uses crt;
function fact(n: integer): integer;
begin
if ((n=0) or (n=1)) then fact:=1 else fact:=fact(n-1)*n;
end;
var
s,a: real;
n: integer;
begin
clrscr;
n:=1;
s:=0;
while a>0 do begin
a:=(100-(fact(n)/(exp(ln(n)/3))));
s:=s+a;
inc(n);
a:=0;
end;
writeln(s:5:3);
readln;
end.
uses crt;
function fact(n: integer): integer;
begin
if ((n=0) or (n=1)) then fact:=1 else fact:=fact(n-1)*n;
end;
var
s,a: real;
n: integer;
begin
clrscr;
n:=1;
s:=0;
while a>0 do begin
a:=(100-(fact(n)/(exp(ln(n)/3))));
s:=s+a;
inc(n);
a:=0;
end;
writeln(s:5:3);
readln;
end.
>> Нек Матросов: не совсем так. Ваш код добавит к сумме первый отрицательный элемент последовательности, т. к. , его знак проверяется лишь на следующей итерации цикла.
>> Цикл с предусловием в такой задаче вообще не применим, в связи с чем у меня возникают сомнения в компетентности учителя (скорее всего школьного) , который сформулировал задачу с этим требованием. Здесь циклу с постусловием самое место.
Вот мой вариант решения:
==========================================
PROGRAM sequence;
uses
Math;
var
i: Integer;
n: Integer;
n_fact: Integer;
a_n: Real;
a_n_sum: Real;
begin
{ вычисление первого элемента последовательности }
a_n := 100 - 1 / 1;
n := 1;
a_n_sum := 0;
{ цикл с предусловием }
while a_n > 0 do
begin
{ Пополенение суммы n-м членом }
a_n_sum := a_n_sum + a_n;
n := n + 1;
{ вычисление факториала (n+1) }
n_fact := 1;
for i := 2 to n do
n_fact := n_fact * i;
{ Нахождение (n+1)-го члена последовательности }
a_n := 100 - n_fact / Power(n, 1 / 3);
end;
WriteLn('Summ = ', a_n_sum:4:6);
ReadLn;
end.
==========================================
Вопросы? В ICQ: 228004347 или Агент.
>> Цикл с предусловием в такой задаче вообще не применим, в связи с чем у меня возникают сомнения в компетентности учителя (скорее всего школьного) , который сформулировал задачу с этим требованием. Здесь циклу с постусловием самое место.
Вот мой вариант решения:
==========================================
PROGRAM sequence;
uses
Math;
var
i: Integer;
n: Integer;
n_fact: Integer;
a_n: Real;
a_n_sum: Real;
begin
{ вычисление первого элемента последовательности }
a_n := 100 - 1 / 1;
n := 1;
a_n_sum := 0;
{ цикл с предусловием }
while a_n > 0 do
begin
{ Пополенение суммы n-м членом }
a_n_sum := a_n_sum + a_n;
n := n + 1;
{ вычисление факториала (n+1) }
n_fact := 1;
for i := 2 to n do
n_fact := n_fact * i;
{ Нахождение (n+1)-го члена последовательности }
a_n := 100 - n_fact / Power(n, 1 / 3);
end;
WriteLn('Summ = ', a_n_sum:4:6);
ReadLn;
end.
==========================================
Вопросы? В ICQ: 228004347 или Агент.
Похожие вопросы
- Помогите пожалуйста написать программу в Паскале )) Написать программу для вычисления суммы в массиве из 10 элементов
- Помогите, пожалуйста, написать программу на Паскале хотя бы примерно
- Программирование на Паскале Помогите, пожалуйста , написать программу на паскале
- Помогите пожалуйста написать программу для Паскаля
- Помогите пожалуйста написать программу на паскале:
- помогите, пожалуйста, написать программу в паскале! сложные циклы.
- Помогите пожалуйста создать программу на Паскале. Заранее всем благодарен
- помогите плиз написать программу на паскале...тема массивы...нужно использовать поиск деления пополам!!!нужно срочно!
- люди добрые помогите мне написать программу в паскале, метод Рунге Кутта. Математическое решение есть у меня
- помогите пожалуйста составить программу в паскале