Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
GreatPiraT
0 / 0 / 1
Регистрация: 15.01.2010
Сообщений: 23
#1

Как в цикле увеличивать значение факториала? - Turbo Pascal

15.01.2010, 16:01. Просмотров 615. Ответов 8
Метки нет (Все метки)

Я уже третий день голову ломаю...Даны натуральное число n, действительные чиcла a1,a2..an. (a1-число а с индексом 1 и т.д.)
Вычислить a1+1!, a2+2!, an+n!. Как в цикле увеличивать значение факториала? И насколько я понял массив заполняется случайно. Никак не могу придумать чтобы факториал сам прибовлялся и считался в цикле. Помогите плиз
http://www.cyberforum.ru/pascal/thread1122865.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2010, 16:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как в цикле увеличивать значение факториала? (Turbo Pascal):

Значение двойного факториала
Возникли осложнения с решением этой задачи, пожалуйста помогите: Описать...

Значение факториала не помещается даже в QWord
Нужно найти значение числа с формулой: C=N!/M!*(N-M)!. Пробовал все типы...

Вычислить значение факториала рекурсивно и с помощью цикла
Для приведенных ниже заданий составить два варианта программы с использованием...

Описать функцию, вычисляющую значение «двойного факториала»
Помогите пожалуйста. Не могу их решить. 1) Описать функцию, вычисляющую...

Составить функцию нахождения факториала и вычислить значение выражения y=k!/(n+k)!*(k-m)!
Составить функцию нахождения факториала и вычислить значение выражения ...

8
Тамила
751 / 545 / 209
Регистрация: 12.11.2009
Сообщений: 1,100
15.01.2010, 16:12 #2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
uses crt;
var
a:array[1..100]of real;
n,i,f:integer;
s:real;
begin clrscr;
write('n=');
read(n);
for i:=1 to n do
 begin
  write('a[',i,']=');
  read(a[i]);
 end;
f:=1;
s:=0;
for i:=1 to n do
 begin
  f:=f*i;
  s:=a[i]+f;
  writeln(a[i]:2:2,'+',i,'!=',s:2:2);
 end;
readkey;
end.
Добавлено через 53 секунды
Цитата Сообщение от GreatPiraT Посмотреть сообщение
И насколько я понял массив заполняется случайно.
нет... random использовать в Вашей задаче нельзя.
1
vad2211
118 / 118 / 41
Регистрация: 21.12.2009
Сообщений: 194
15.01.2010, 16:16 #3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
program zad4;
uses crt;
var
   a:array[1..100] of integer;
   i,j,n,ft:integer;
begin
  clrscr;
  randomize;
  write('ГђГ*çìåðГ*îñòü Г¬Г*Г±Г±ГЁГўГ*: ');
  readln(n);
  writeln('ÔîðìèðîâГ*Г*ГЁГҐ Г¬Г*Г±Г±ГЁГўГ*...');
  for i:=1 to n do
   begin
    a[i]:=random(20)-9;
    write(a[i]:4);
   end;
  writeln;
  writeln('New massiv');
  for i:=1 to n do
   begin
    ft:=1;
    for j:=1 to i do
     ft:=ft*j;
    a[i]:=a[i]+ft;
    writeln(a[i]);
   end;
  readln;
end.
Добавлено через 42 секунды
Тамила, почему рандом нельзя использовать?
1
Тамила
751 / 545 / 209
Регистрация: 12.11.2009
Сообщений: 1,100
15.01.2010, 16:22 #4
Цитата Сообщение от vad2211 Посмотреть сообщение
Тамила, почему рандом нельзя использовать?
по заданию.

Добавлено через 14 секунд
Цитата Сообщение от GreatPiraT Посмотреть сообщение
действительные чиcла a1,a2..an.
вот.
0
vad2211
118 / 118 / 41
Регистрация: 21.12.2009
Сообщений: 194
15.01.2010, 16:27 #5

Не по теме:

не внимательное чтение задания


Ну ладно, допустим вещественные данные даны, но это же ведь все равно не мешает нам воспользоваться рандомом:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
program zad4;
uses crt;
var
   a:array[1..100] of real;
   i,j,n,ft:integer;
begin
  clrscr;
  randomize;
  write('ГђГ*çìåðГ*îñòü Г¬Г*Г±Г±ГЁГўГ*: ');
  readln(n);
  writeln('ÔîðìèðîâГ*Г*ГЁГҐ Г¬Г*Г±Г±ГЁГўГ*...');
  for i:=1 to n do
   begin
    a[i]:=1/random;
    write(a[i]:6:2);
   end;
  writeln;
  writeln('New massiv');
  writeln;
  for i:=1 to n do
   begin
    ft:=1;
    for j:=1 to i do
     ft:=ft*j;
    a[i]:=a[i]+ft;
    writeln(a[i]:6:2);
   end;
  readln;
end.
1
Тамила
751 / 545 / 209
Регистрация: 12.11.2009
Сообщений: 1,100
15.01.2010, 16:32 #6
Цитата Сообщение от vad2211 Посмотреть сообщение
Ну ладно, допустим вещественные данные даны, но это же ведь все равно не мешает нам воспользоваться рандомом
в моей программе пользователь сам вводит данные.
0
vad2211
118 / 118 / 41
Регистрация: 21.12.2009
Сообщений: 194
15.01.2010, 16:34 #7
Или, к примеру:
Pascal
1
a[i]:=random(1001)/(1+random(1000))
В знаменателе мы сдвигаем число на 1, чтобы не получилось того что придется делить на ноль.
0
GreatPiraT
0 / 0 / 1
Регистрация: 15.01.2010
Сообщений: 23
15.01.2010, 17:00  [ТС] #8
Спасибо огромное вам обоим, я погляжу как что делается, и хоть узнаю какие коды использовать.
0
vad2211
118 / 118 / 41
Регистрация: 21.12.2009
Сообщений: 194
15.01.2010, 17:25 #9
GreatPiraT, может пригодится.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
program zad4; {название программы}
uses crt;{подключаем модуль crt}
var  {раздел операторов}
   a:array[1..100] of real;{массив вещественных чисел}
   i,j,n,ft:integer;{переменные целого типа}
begin  {начало программы}
  clrscr;{процедура Очистки экрана}
  randomize;{включаем модуль генератора случайных чисел}
  write('Размерность массива: ');{указываем размер массива}
  readln(n); {читаем переменную n}
  writeln('Формирование массива...');
  for i:=1 to n do {начало: формирование массива}
   begin
    a[i]:=random(1001)/(1+random(1000));{рандомное заполнение i-ого элемента массива}
    write(a[i]:6:2);{выводим его на экран; 6:2 - это формат вывода, 6 знаков до зопятой, 2 знака после}
   end; {конец: формирование массива}
  writeln; {делаем новую строка (абзац)}
  writeln('New massiv'); {выводим сообщение}
  writeln;{делаем новую строку (абзац)}
  for i:=1 to n do{начало: преобразовываем массив}
   begin
    ft:=1;{переменная в которую записывается факториал числа i}
    for j:=1 to i do{цикл для вычисления факториала}
     ft:=ft*j;{считаем факториал числа i}
    a[i]:=a[i]+ft;{элементу массива a[i] присваеваем новое значение}
    writeln(a[i]:6:2);{выводим его на экран}
   end;{коне: преобразование массива}
  readln; {конец программы завериштся после того,как будет нажата любая клавиша,актуально для консольных трансляторов}
end. {конец}
1
15.01.2010, 17:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2010, 17:25
Привет! Вот еще темы с решениями:

Написать программу, которая вычисляет значение p = (для вычисления факториала использовать функцию)
Написать программу, которая вычисляет значение p =m!*(m-n)!/n! (для...

Описать функцию, вычисляющую значение "двойного факториала"
описать функцию, вычисляющую значение "двойного факториала" N!!=1*3*5*..*N,...

Описать функцию, вычисляющую значение "двойного факториала"
Нужно из этой задачи сделать модуль, вот условие: Описать функцию Fact2(N)...

В цикле с параметром нужно посчитать значение функции
В цикле с параметром нужно посчитать значение функции f=х-sin(х). На промежутке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru