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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2009, 20:09   #1
PR0Z0N
Пользователь
 
Регистрация: 28.05.2009
Сообщений: 17
По умолчанию паскаль

Народ,помогите пожалуйста решить задачки на паскале:
1)Составить программу для вычисления суммы: 2! + 4! + 6! + + ... + n! (п < или =16, п — четное). Примечание. Тип результата значения функции — Longint.
2)Дана символьная строка. Для каждого символа определить и напечатать, что этот:
а) символ встречается в тексте один раз;
б) символ встречается в тексте два раза;
в) символ встречается в тексте более двух раз.
Заранее огромное спасибо!
PR0Z0N вне форума Ответить с цитированием
Старый 04.06.2009, 20:26   #2
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Цитата:
1)Составить программу для вычисления суммы: 2! + 4! + 6! + + ... + n! (п < или =16, п — четное). Примечание. Тип результата значения функции — Longint.
Код:
program Project2;

function Factorial(n: word): LongInt;
var
  fact: longint;
begin
  fact := 1;
  if n=0 then exit;
  for n := 1 to n do
  fact := fact*n;
  Factorial := fact;
end;

var i,n:word;
    S:longInt;

begin
write('n= '); readln(n);
for i:=2 to n do
 if i mod 2 = 0 then S:=S+Factorial(i);
Writeln('S= ',S);
readln;
end.
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 04.06.2009, 20:30   #3
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Кстати, вопрос: почему в MathCad-e 2!+4!+6!+8!+10!=3669866, а в Delphi 3669871 ???
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 04.06.2009, 23:19   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, такая тема (задача) здесь была решена буквально пару дней назад.
во-вторых, мне вот интересно, но почему люди так рвутся посчитать факториал для каждого значения!!
ну видно же, что каждый последущий член суммируемой последовательности это предыдущий умноженный на пару натуральных чисел:
4! =2!*3*4
6! = 4! * 5 * 6
8! = 6! * 5 * 6 и т.д.
таким образом не надо каждый раз считать факториал полностью - достаточно хранить предыдущий член суммируемой последовательности...
сравните с программой:
Код:
var i,n:word;
    Fact, S:longInt;

begin
write('n= '); readln(n);
fact := 1;
for i:=2 to n do begin
  Fact := Fact * i;
  if i mod 2 = 0 then S:=S+Fact;
end;  
Writeln('S= ',S);
readln;
end.
p.s. Chudo4258, проверил в TP7 и Delph5,
и Ваша программа и моя, при
n=10 выдаёт результат S= 3669866
exe-шник приложить?!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, Борланд Паскаль-в чем разница??? Vremya-Dengy Паскаль, Turbo Pascal, PascalABC.NET 13 31.05.2011 18:23
Паскаль Stani4nik Паскаль, Turbo Pascal, PascalABC.NET 7 17.05.2009 20:02
паскаль ryz69 Паскаль, Turbo Pascal, PascalABC.NET 0 27.04.2009 21:56
Паскаль Lucky_ Паскаль, Turbo Pascal, PascalABC.NET 4 16.12.2007 16:18
Паскаль Bagsi Помощь студентам 2 30.11.2007 08:14