zadach146.PAS

{* Задача 146 *}

Unit ZADACH146;
Interface
Implementation
Begin
 writeln('Сколько различ. ожерелий можно сост. из 2-ух белых, 2-ух синих и 2-ух красных бусин.Напечатать возможные варианты и их кол-во. ');
End.

Program pas13581;

Uses zadach146.pas; {* Эту строку можно удалить *}
Uses crt; {* Вызов внешних функций *}
Var {* Объявление переменных *}
  n  : longint;
  n1 : longint;
  n2 : longint;
  n3 : longint;
  a  : longint;
  b  : longint;
  c  : longint;
  d  : longint;
  e  : longint;
  f  : longint;
  m1 : longint;
  i  : longint;
  m  : String;
Begin
  clrscr; {* Очистка экрана *}
  n := 0;
  n1 := 0;
  n2 := 0;
  n3 := 0;
  For a := 1 To 3 Do {* Цикл для a => [1 .. 3] *}
    For b := 1 To 3 Do {* Переменная b увеличивается с 1 до 3 *}
      For c := 1 To 3 Do {* Увеличиваем c от 1 до 3 с шагом 1 *}
        For d := 1 To 3 Do {* Переменная d увеличивается с 1 до 3 *}
          For e := 1 To 3 Do {* Увеличиваем e от 1 до 3 с шагом 1 *}
            For f := 1 To 3 Do {* Увеличиваем f от 1 до 3 с шагом 1 *}
            Begin
              m1 := a * 100000 + b * 10000 + c * 1000 + d * 100 + e * 10 + f;
              str(m1, m);
              For i := 1 To 6 Do {* Увеличиваем i от 1 до 6 с шагом 1 *}
              Begin
                If m[i] = '1' Then
                  inc(n1); {* Увеличиваем n1 на 1 *}
                If m[i] = '2' Then
                  inc(n2); {* n2++ *}
                If m[i] = '3' Then
                  inc(n3); {* n3++ *}
              End;
              If (n1 = 2)And(n2 = 2)And(n3 = 2) Then
              Begin
                inc(n); {* n++ *}
                write(' ', m1);
              End;
              n1 := 0;
              n2 := 0;
              n3 := 0;
            End;
  writeln('');
  write(' кол-во способов:', n);
  readln; {* Ждем подтверждения пользователя *}
End.