Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2012, 14:57   #1
Radius100
 
Регистрация: 02.02.2012
Сообщений: 6
По умолчанию Используя оператор цикла с параметром, вычислить значения выражений при заданном n.

Помогите решить пожалуйста
(1-1*2) * (1-1*2+1*2*3) * (1-1*2+1*2*3-1*2*3*4)... (n сомножителей)
Radius100 вне форума Ответить с цитированием
Старый 02.02.2012, 20:53   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Думаю, что можно, примерно, так:
1. Трем переменным присвоить начальное значение по единице;
2. В цикле (начинается с двойки):
а) первой переменной присвоим произведение этой переменной на параметр цикла, но со знаком минус (это позволит чередовать знак);
б) второй переменной присвоим сумму второй переменной с первой;
в) Третьей переменной присвоим произведение этой переменной на вторую переменную.


Как-то так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 02.02.2012, 21:37   #3
Inv1s
Форумчанин
 
Аватар для Inv1s
 
Регистрация: 06.11.2011
Сообщений: 214
По умолчанию

Отдельно в переменных хранить факториал произведения.
И отдельно разность прошлой скобки.
Это Облегчит программу. Дальше сам додумывай
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL
Inv1s вне форума Ответить с цитированием
Старый 02.02.2012, 23:34   #4
Radius100
 
Регистрация: 02.02.2012
Сообщений: 6
По умолчанию

Спасибо вам большое сейчас попробую.
Radius100 вне форума Ответить с цитированием
Старый 03.02.2012, 08:57   #5
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

Код:
f:=1; z:=1; p:=1; s:=1;
for i:=2 to n do begin
  f:=f*i; z:=-z; s:=s+z*f;
  p:=p*s;
end;
writeln(p);
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 03.02.2012, 15:43   #6
Radius100
 
Регистрация: 02.02.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от rubius2008 Посмотреть сообщение
Код:
f:=1; z:=1; p:=1; s:=1;
for i:=2 to n do begin
  f:=f*i; z:=-z; s:=s+z*f;
  p:=p*s;
end;
writeln(p);
Проверь пожалуйста он так и должен работать не ?
Или я что то тут накосячил?

program aa;
var f,z,p,s,i,n:integer;
begin
f:=1;
z:=1;
p:=1;
s:=1;
for i:=2 to n do begin
f:=f*i; z:=-z; s:=s+z*f;
p:=p*s;
end;
writeln(p);
end.
Radius100 вне форума Ответить с цитированием
Старый 03.02.2012, 19:54   #7
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

Забыл ввести n, например так
Код:
readln(n);
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 03.02.2012, 22:03   #8
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Ну да. Как-то так.
Вот только тип переменных лучше выбрать другой, не integer.
так, что-бы в них можно было хранить число побольше.
Иначе диапазон решений задачи будет мал - результат будет "захлёбываться" уже при небольших n. Переполнение -
Код:
f:=-f*i;
s:=s+f;
p:=p*s;
Или как то так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тема: Оператор цикла с параметром. Кристина Н Паскаль, Turbo Pascal, PascalABC.NET 0 04.12.2011 17:41
оператор цикла с параметром for to do D1zz1 Помощь студентам 1 08.06.2011 17:07
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 10:24
Оператор цикла с параметром cudalover Помощь студентам 2 29.12.2008 19:38