 |
Нужно срочно решить задачу по паскалю |
 |
06.06.2007, 10:39
|
#1
|
Пользователь
Макс вне форума
Регистрация: 09.05.2006
Адрес: Уфа
Сообщений: 78
|
Нужно срочно решить задачу по паскалю
Вычислить сумму
1+x1/1! +x2/2! +x3/3! +… +xn! , где k!=1* 2*3* ... *k
Значение n вводится с клавиатуры (1 < n 10).
__________________
Все легко и просто.....
Ася 404-800-144
|
|
|
06.06.2007, 11:21
|
#2
|
Местный
Ghostep вне форума
Регистрация: 23.05.2006
Адрес: Wireless
Сообщений: 383
|
ничего не понял, факториалы не изучал
__________________
=]
|
|
|
06.06.2007, 11:37
|
#3
|
Завсегдатай форума
YaKuT-ST вне форума
Регистрация: 09.06.2006
Адрес: Стр
Сообщений: 847
|
що за "x" в условии задачи?
__________________
"Кто этот гений, **ядь? Дайте я пожму ему горло!" (с)
|
|
|
06.06.2007, 11:43
|
#4
|
Местный
Ghostep вне форума
Регистрация: 23.05.2006
Адрес: Wireless
Сообщений: 383
|
может x - это k... хрень какая-то
__________________
=]
|
|
|
 |
Затратил 6 минут |
 |
07.06.2007, 00:17
|
#5
|
Местный
InternetStranger вне форума
Регистрация: 09.07.2006
Адрес: откуда надо...
Сообщений: 533
|
Затратил 6 минут
Вот прям так и пишется. Вставь в txt-файл и смени раширение на pas! И можешь смело запускать
Program Ryad;
Var i,n : integer;
s,x,r : real;
Begin
Write('Vvedite X :>'); ReadLn(x);
Write('Vvedite N :>'); ReadLn(n);
s:=0; r:=1;
for i:=1 to n do begin
r:= r*x/i;
s:= s+ r;
end;
WriteLn;
WriteLn('Ryad = ',s:10:10);
ReadLn;
End.
|
|
|
07.06.2007, 07:26
|
#6
|
Завсегдатай форума
YaKuT-ST вне форума
Регистрация: 09.06.2006
Адрес: Стр
Сообщений: 847
|
программа не правильна...в числителе вычисляется факториал...
вот так правильнее
Program Ryad;
Var i,n,k : integer;
s,x,l : real;
Begin
Write('Vvedite X :>'); ReadLn(x);
Write('Vvedite N :>'); ReadLn(n);
s:=0; l:=0;
for i:=1 to n do begin
l:=0;
for k:=1 to i do l:=l+1/k;
s:= s+ l;
end;
WriteLn;
WriteLn('Ryad = ',s:10:10);
ReadLn;
End.
__________________
"Кто этот гений, **ядь? Дайте я пожму ему горло!" (с)
|
|
|
07.06.2007, 19:12
|
#7
|
Завсегдатай форума
Shang-i вне форума
Регистрация: 17.02.2007
Сообщений: 1,098
|
Не, ересь. Не так надо
Добавлено через 8 минут
Program Votvam;
Var i,n,k : integer;
l : real;
x: array [1..10000] of real;
Function fakt(k:integer):integer;
var j,f: integer;
begin
f:=1;
For j:=k downto 1 do f:=f*j;
result:=f;
end;
Begin
Write('Vvedite n :>'); ReadLn(n);
for i:=1 to n do
begin
Write('Vvedite x',n,' :>'); ReadLn(x[i]);
end;
l:=0;
for i:=1 to n do
begin
l:=l+x[i]/Fakt(k);
end;
WriteLn;
WriteLn('Ryad = ',l);
ReadLn;
End.
__________________
А я чет не в теме
Последний раз редактировалось Shang-i; 07.06.2007 в 19:20..
Причина: Добавлено сообщение
|
|
|
07.06.2007, 21:35
|
#8
|
Местный
InternetStranger вне форума
Регистрация: 09.07.2006
Адрес: откуда надо...
Сообщений: 533
|
Цитата:
Сообщение от Shang-i
Не, ересь. Не так надо
Добавлено через 8 минут
Program Votvam;
Var i,n,k : integer;
l : real;
x: array [1..10000] of real;
Function fakt(k:integer):integer;
var j,f: integer;
begin
f:=1;
For j:=k downto 1 do f:=f*j;
result:=f;
end;
Begin
Write('Vvedite n :>'); ReadLn(n);
for i:=1 to n do
begin
Write('Vvedite x',n,' :>'); ReadLn(x[i]);
end;
l:=0;
for i:=1 to n do
begin
l:=l+x[i]/Fakt(k);
end;
WriteLn;
WriteLn('Ryad = ',l);
ReadLn;
End.
|
Скорее всего не проканает! Преподы за такой алгоритм буксуют из-за не оптимальности и лишнем расходе ресурса!
Добавлено через 2 минуты
)))) Shang-i, не бузи, сё правильно. ти читай про факториалы
Последний раз редактировалось InternetStranger; 07.06.2007 в 21:38..
Причина: Добавлено сообщение
|
|
|
08.06.2007, 14:49
|
#9
|
Завсегдатай форума
Shang-i вне форума
Регистрация: 17.02.2007
Сообщений: 1,098
|
Цитата:
)))) Shang-i, не бузи, сё правильно. ти читай про факториалы
|
С каких пор 1/n! стало равно 1+1/1+1/2+...+1/n????
Добавлено через 1 минуту
Лично я всегда считал, что n!=n*(n-1)*(n-2)*...*1,
вы уж извините, не силен я в математике
__________________
А я чет не в теме
Последний раз редактировалось Shang-i; 08.06.2007 в 14:51..
Причина: Добавлено сообщение
|
|
|
11.06.2007, 22:30
|
#10
|
Местный
InternetStranger вне форума
Регистрация: 09.07.2006
Адрес: откуда надо...
Сообщений: 533
|
Ой, да совсем не прогер. У меня в цикле в переменной r сохраняется значение! Внимательно код смотри:
Цитата:
for i:=1 to n do begin
r:= r*x/i;
s:= s+ r;
end;
|
предыдущий член r, при каждой i-й итерации домножается на x/i.
Цитата:
вначале был r=1.
i=1 => r:= 1*x/1= x/1!;
i=2 => r:= r*x/2 = x^2/(1*2) = x^2/2!;
i=3 => r:= r*x/3 = x^3/(1*2*3) = x^3/3!;
.....
i=n => r:= r*x/n = x^n/(1*...*n) = x^n/n!
|
Посмотри мой первый пост в этой теме и найди десять отличий.
Если не веришь, перепиши аккуратно на листочек и посчитай! В подобных задачах основная задача, как из предыдущего члена получить последующий!
|
|
|
12.06.2007, 09:14
|
#11
|
Завсегдатай форума
Shang-i вне форума
Регистрация: 17.02.2007
Сообщений: 1,098
|
Тьфу ты, да я не про твою версию вообще говорю, я про последнюю, которая перед моей
__________________
А я чет не в теме
|
|
|
12.06.2007, 17:43
|
#12
|
Местный
InternetStranger вне форума
Регистрация: 09.07.2006
Адрес: откуда надо...
Сообщений: 533
|
Ну та, точно. Я про ту вопче молчу - там кабанство какое-то)))
|
|
|
12.06.2007, 17:45
|
#13
|
Местный
Ghostep вне форума
Регистрация: 23.05.2006
Адрес: Wireless
Сообщений: 383
|
зайдите в профайл к автору:
Цитата:
Последняя активность: 06.06.2007 13:05
|
так что хз 
__________________
=]
|
|
|
12.06.2007, 18:50
|
#14
|
Местный
Ferrari вне форума
Регистрация: 18.11.2006
Сообщений: 663
|
Цитата:
Сообщение от Макс
Вычислить сумму
1+x1/1! +x2/2! +x3/3! +… +xn! , где k!=1* 2*3* ... *k
Значение n вводится с клавиатуры (1 < n 10).
|
мне на первом курсе на экзамене попалась поищу, помню что там функцию писать надо рекурсивную с сумматором
Добавлено через 1 минуту
Я делала через функцию, после писала faktorial(a), где а-значение, затем формула с использованием функции, найду напишу
Последний раз редактировалось Ferrari; 12.06.2007 в 18:52..
Причина: Добавлено сообщение
|
|
|
12.06.2007, 19:19
|
#15
|
Пользователь
mADviser вне форума
Регистрация: 01.05.2006
Адрес: Уфа
Сообщений: 55
|
Вот текст
var
n,i:integer;
x,sum:real;
begin
readln(n);
readln(x);
p:=1;
f:=1;
sum:=1;
for i:=1 to n do begin
p:=p*x;
f:=f*i;
sum:=sum+p/f;
end;
writeln(sum:5:4);
end;
p.s. Давно не програмлю на Паскале и такое чувство что автору поста это уже не нужно))
Последний раз редактировалось mADviser; 12.06.2007 в 19:23..
|
|
|
Опции темы |
|
Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 17:33. Часовой пояс GMT +3. |
|
|
|