Помогите решить.Паскаль Циклы .Из семи красных и восьми белых роз требуется составить...

0 голосов
49 просмотров

Помогите решить.Паскаль Циклы .Из семи красных и восьми белых роз требуется составить букет из пяти роз. Перечислить все возможные варианты.Хотелось бы попросить при составление каждой строчки расписывать что в ней происходит.


Информатика (178 баллов) | 49 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Здесь не нужно учитывать порядок роз в букете, а только их количество.

 

Program Krysatul;
uses crt;
const
  bel=8;
  kras=7;
var
 i,j,nom:integer;
begin
  writeln('*** alphaues is thinking... ***');
  writeln('***          OK             ***');
  writeln();
  nom:=0; {количество вариантов}
  for i:=0 to bel do {организуем цикл перебора для белых роз}
    for j:=0 to kras do {организуем цикл перебора для красных роз}
       if i+j=5 then {если выбрано в сумме 5 цветов}
            begin
              nom:=nom+1; {посчитать это как +1 вариант}
              writeln(nom,'-й вариант: ',i,' белых и ',j,' красных'); {напечатаем номер варианта и количество роз}
            end;
    writeln();
    writeln('Всего вариантов: ',nom);{напечатаем количество вариантов}
end.

(52.6k баллов)
0 голосов

Все возможные варианты это, как я понимаю, с учетом повторений(т.е. используем все 7 красных и 8 белых роз).

Для начала вспоним формулу, а потом на ее основе пишем программу:

C_{n}^{k}=\frac{n!}{(n-k)!k!}

 

Где n - количество всех цветов, n=15;

k - количество цветов в букете, k=5

 

C_{15}^{5}=\frac{15!}{8!5!}

 

Теперь собственно программа:

 

uses crt; {подключение модуля CRT}
var f1,f2,f3,i:longint; c:real; {описание переменных}
begin
f1:=1; f2:=1; f3:=1; {присваивание значений}
for i:=2 to 15 do {цикл}
f1:=f1*i;
for i:=2 to 8 do {цикл}
f2:=f2*i;
for i:=2 to 5 do {цикл}
f3:=f3*i;
c:=1307674368000/(f2*f3); {вычисление и присваивание значения}
write(c); {вывод текста на экран}
end.

 

p.s. получается 270270, поэтому перечислять все варианты не вижу смысла.

И программа не вычисляет факториал 15, поэтому ввела значение вручную, но тем не менее формулу в программу включила, вдруг понадобится.

(7.2k баллов)