Задачи по Pascal. Найти факториал числа

pascalУсловие задачи : Найти факториал числа. Число вводит пользователь.

Сложность : легкая .

До того как мы начнем делать эту задачу надо сказать как вообще ищется факториал числа. Делается это легко …

Допустим мы хотим найти факториал 4-х. Для этого :

4! = 1 * 2 * 3 * 4

Если 5-ти :

5! = 1 * 2 * 3 * 4 * 5

Информация
! — этот значок ставиться перед числом, тем самым показывая что это факториал.

Думаю что смысл понятен. Теперь как это сделать на языке Pascal?

Делается это очень просто с помощью цикла for.
Для решения задачи нам понадобиться три переменные :
1. Под число
2. Под результат
3. Переменная которая будет служить нам счетчиком в цикле for

Создаём каркас :

uses crt ;
var 
    num , i : integer ;
    res : longint;
begin
end.

Переменной res я дал тип longint, затем чтобы можно было сосчитать факториал числа больше 7. Т.е. если переменная res была бы у нас типа integer , то максимальное число которое мы могли бы ввести было бы 7.

Теперь просим пользователя ввести число и присвоим нашей переменной res число 1, если будет 0, то считаться значение не будет , а будет постоянно 0.

write('Введите число больше 1 : '); readln(num);
res := 1 ;

Ну а дальше делаем цикл, работать у нас он будет следующим образом :

Мы берем первое число и умножаем его на результат, и так до тех пор пока не достигнем границы цикла .

Первая граница будет у нас 2 , так как при умножение на единицу, единица и получиться. А вторая граница будет у нас числом которое мы вводим.

Допустим факториал 4-х :

for i:=2 to 4 do 
сначала подставляем 2 : 
        res := 1 * 2 = 2;
дальше 3 :
        res := 2 * 3 = 6;
И теперь 4 :
        res := 6 * 4 = 24;

Вот примерчик работы цикла. Сам цикл смотрите в готовом коде.

Ну в принципе и всё. Осталось только вывести.

Весь код программы:

uses crt ;
var 
    num , res , i : integer ;
begin
clrscr; {очищаем экран}
write('Введите число больше 1 : '); readln(num);
res := 1 ;

for i:=2 to num do  {вот}
    res := res * i ; {цикл}

writeln('Факториал числа ', num , ' равен ', res);

readln; {чтобы программы не закрывалась}
end.

Вот результат :

ris18

Написать ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *