Паскаль. Основы программирования


Сочетания - часть 2


Выходной параметр для значения сочетания обозначим c, имя процедуры - Сombination.

Получим: Procedure Combination(n, k : integer; var  с : longint);

Входные параметры имеют тип integer, а выходной - longint, так как значение числа сочетаний может быть даже очень большим числом.

Переменные самой процедуры - i, - переменная для цикла for и p - промежуточная переменная для факториала k!.

В процедуре устанавливаются первоначальные значения для числа сочетаний (c := 1).

Организуется цикл for от 1 до k, в котором в переменную с будет накапливаться произведение, которое и является числом сочетаний из n элементов по k:

 ,   (1)  где 
-  знак произведения от 1 до k.

Давайте проверим, будет ли эта формула выдавать нам число сочетаний из n элементов по k. Пусть n = 5, k = 3, тогда по формуле для числа сочетаний будем иметь:

а по формуле (1), получаем:

Таким образом, этой формулой можно пользоваться при подсчете числа сочетаний в программе.

Окончательно процедура вычисления числа сочетаний будет следующей:

Procedure combination(n, k : integer;  var

с : longint);

    var

        i : longint;

    begin

       с := 1;

       for i := 1 to k do с := с*(n - k + i) div i

    end;

Для составления программы решения данной задачи, надо в основной программе обратиться к процедуре combination, причем фактические значения переменных будут 10, - общее число точек и 3 - число точек через которые проходит одна плоскость.

Программа

 

Program Problem9;

     uses WinCrt;

     var

        pl : longint;

{----------------------------------------------------------------------------------------}

    Procedure combination(n, k : integer;  var c : longint);

         var

            i : longint;

         begin

             c := 1;

            for i := 1 to n - k do c := c*(n - k + i) div i

         end;

{----------------------------------------------------------------------------------------}

     begin

        combination(10, 3, pl);

        writeln('Число плоскостей равно: ', pl)




- Начало -  - Назад -  - Вперед -



Книжный магазин