IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Циклы с известным числом повторений
Kelsi
сообщение 9.04.2005 12:07
Сообщение #1


Гость






Нужно вычислить y при x=1.5
y=x^6/1!+x^5/2!+x^4/3!+...+x/6!
Короче, прог-у я написала, но она высчитывает не то, что мне хотелось бы.
Уже мучаюсь непойми сколько, все гениальные идеи давно иссякли. Можа гляните, что нетак и чего не хватает?
Код
Program N;
Var n,i: integer;
y,x: real:
Begin
Writeln ('wwod n');
readln (n);
x:=1.5;
y:=0;
for i:=1 to n do begin
y:=y+exp(i*ln(x))/n;
n:=n*(n+1);
end;
writeln('y=',y);
end.


В первую очередь - не хватает тегов CODE

Сообщение отредактировано: volvo - 9.04.2005 12:08
 К началу страницы 
+ Ответить 
FreeMan
сообщение 9.04.2005 12:11
Сообщение #2


-
****

Группа: Пользователи
Сообщений: 480
Пол: Мужской

Репутация: -  4  +


Цитата
for i:=1 to n do begin
y:=y+exp(i*ln(x))/n;
n:=n*(n+1);
end;

сделай так
Код

m:=1
for i:=1 to n do begin
m:=m*i;
y:=y+exp((n-i+1)*ln(x))/m;
end;


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.04.2005 12:12
Сообщение #3


Гость






Код
Program _N_; { <--- Название программы
не должно совпадать с именами переменных или констант }
const
 n = 6; { <--- Зачем же его вводить? }
Var
 i, divider: integer;
 y,x: real:
Begin
 write('Ввод Х'); readln(X);
 y:=0; divider := 1; { <--- а вот Divider нужен ... }
 for i:=1 to n do begin
   y:=y+exp(i*ln(x))/divider;
   divider := divider * (i+1);
 end;
writeln('y=',y);
end.


FreeMan,
:yes:
 К началу страницы 
+ Ответить 
Kelsi
сообщение 9.04.2005 12:15
Сообщение #4


Гость






Попробую, но если что-я еще вернусь... rolleyes.gif
 К началу страницы 
+ Ответить 
Kelsi
сообщение 9.04.2005 12:50
Сообщение #5


Гость






И так по порядку:
FreeMan, вроде все работает, но я не уверена так ли, т. к. при n=2 должно получится 3, а получается 3.75. такое допустимо?
Volvo, я не знаю, что такое divider sad.gif Мы енто не проходили, а потому я не могу им воспользоваться...
А в общем, спасибо ребята за понимание. Молодцы, что помогаете людям :thanks:
 К началу страницы 
+ Ответить 
volvo
сообщение 9.04.2005 13:14
Сообщение #6


Гость






Цитата(Kelsi @ 9.04.05 12:50)
Volvo, я не знаю, что такое divider  sad.gif  Мы енто не проходили, а потому я не могу им воспользоваться...

Это просто имя переменной smile.gif точно такое же, как и X и Y и N... У тебя просто не совсем правильно было сделано, я немного подправил, и заодно ввел новую переменную с именем Divider (т.е. Делитель)... Не нравится Divider, можешь поменять на M как у FreeMan'а ...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 25.04.2024 22:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"