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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.12.2013, 18:51   #1
neolanta
Новичок
Джуниор
 
Регистрация: 17.12.2013
Сообщений: 19
По умолчанию Вычисление выражений на паскале

Помогите пожалуйста,исправить ошибку.
Вычисление двойного факториала (2n+1)!! (например 9!!=9*7*5*3*1);
Код:
PROGRAM PR;
USES CRT;
VAR N,I,k:INTEGER;
    P:longint;
BEGIN
CLRSCR;
WRITELN('INPUT N');READLN(N);
IF N=0 THEN WRITELN('O!=1') ELSE
IF N<0 THEN WRITELN('VVEDITE POLOGITELNOE CHISLO') ELSE
BEGIN
P:=1;
k:=2*n+1;
FOR I:=k downTO 1 DO begin
dec(i,2);
P:=P*k;
end;
WRITELN(P);
END;
READKEY;
END.
не правильно выводит ответ. Ввожу n=4, выводит 729, а должно быть 945!!!

Последний раз редактировалось Stilet; 17.12.2013 в 19:02.
neolanta вне форума
Старый 17.12.2013, 19:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
i:=7; p:=9; while i>0 do begin
 p:=p*i;
 dec(i,2);
end;
I'm learning to live...
Stilet вне форума
Старый 17.12.2013, 19:09   #3
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Код:
PROGRAM PR;
USES CRT;
VAR N,I,k:INTEGER;
P:longint;
BEGIN
CLRSCR;
WRITELN('INPUT N');READLN(N);
IF N=0 THEN WRITELN('O!=1') ELSE
IF N<0 THEN WRITELN('VVEDITE POLOGITELNOE CHISLO') ELSE
BEGIN
P:=1;
k:=2*n+1;
i:=k;
while i>1 do begin

P:=P*i;
i:=i-2;
end;
WRITELN(P);
END;
READKEY;
END.
ZX Spectrum-128 вне форума
Старый 17.12.2013, 19:17   #4
neolanta
Новичок
Джуниор
 
Регистрация: 17.12.2013
Сообщений: 19
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Код:
PROGRAM PR;
USES CRT;
VAR N,I,k:INTEGER;
P:longint;
BEGIN
CLRSCR;
WRITELN('INPUT N');READLN(N);
IF N=0 THEN WRITELN('O!=1') ELSE
IF N<0 THEN WRITELN('VVEDITE POLOGITELNOE CHISLO') ELSE
BEGIN
P:=1;
k:=2*n+1;
i:=k;
while i>1 do begin

P:=P*i;
i:=i-2;
end;
WRITELN(P);
END;
READKEY;
END.
Спасибо огромное. Я Вам очень признательна!!!
neolanta вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление выражений _Лето_ Общие вопросы C/C++ 2 07.11.2013 20:50
Вычисление математических выражений lassoles Microsoft Office Excel 1 13.12.2012 20:22
Вычисление выражений на этапе компиляции M1zantr0p Общие вопросы Delphi 12 05.05.2012 22:13
вычисление арифметических выражений на с++ Euforia_PZAS09_1 Помощь студентам 1 09.03.2010 17:40
вычисление выражений (pascal) вкусняшка Помощь студентам 4 14.03.2009 16:42