Программа


USES CRT;
CONST Power=5;  { Размерность матрицы }
TYPE Matrix=array[1..Power,1..Power] of integer;  { Тип - матрица }
PROCEDURE InputMatrix (var B:Matrix); { Процедура ввода матрицы }
  Var i,j:word;  { Счетчики }
  Begin
    for i:=1 to Power do { Цикл ввода строк матрицы }
      for j:=1 to Power do { Цикл ввода элементов матрицы }
        begin
          Write('Введите элемент [',i,',',j,'] ');
                                 { Вывод приглашения ввести элемент матрицы }
          ReadLn(B[i,j]);   { Ввод элемента матрицы }
        end
  End;
PROCEDURE OutputMatrix (B:Matrix); { Процедура вывода матрицы }
  Var i,j:word;   { Счетчики }
  Begin
    for i:=1 to Power do { Цикл вывода строк матрицы }
      begin
        for j:=1 to Power do { Цикл вывода элементов матрицы }
          Write (B[i,j],'  ');  { Вывод элемента матрицы }
        WriteLn  { Вывод конца строки }
      end
  End;
PROCEDURE GetList(M:Matrix); { Процедура получения списка групп пар }
  Var i1,i2,i3,i4,i5:integer; { Счетчики циклов образующих группы пар }
      SumMax:integer;  { Максимальная сумма перебраных групп }
      Sum:integer; { Сумма }
  Begin
    ClrScr; { Очистка экрана }
    WriteLn('ИСХОДНАЯ МАТРИЦА:');  { Вывод заголовка }
    WriteLn; { Пропуск строки }
    OutputMatrix(M);  { Вывод матрицы }
    WriteLn; { Пропуск строки }
    Window(1,4+Power,80,25); { Определение окна вывода }
    SumMax:=0; { Сброс максимальной суммы }
    { Цикл перебора вариантов групп: }
    for i1:=1 to Power do
      for i2:=1 to Power do
        if i2<>i1 then  { Проверка "пересечения" }
          for i3:=1 to Power do
            if not (i3 in [i1,i2]) then { Проверка "пересечения" }
              for i4:=1 to Power do
                if not (i4 in [i1,i2,i3]) then  { Проверка "пересечения" }
                  for i5:=1 to Power do
                    if not (i5 in [i1,i2,i3,i4]) then  { Проверка "пересечения" }
                    begin
                      Sum:=M[1,i1]+M[2,i2]+M[3,i3]+M[4,i4]+M[5,i5];
                                                          { Вычисление суммы }
                      if Sum>SumMax then
                      begin
                        SumMax:=Sum;
                        ClrScr;
                        WriteLn('Сумма групп ',SumMax);
                        WriteLn('Список групп:');
                      end;
                      if Sum=SumMax then Write(i1,i2,i3,i4,i5,'   ')
                    end
  End;
VAR M:Matrix;  { Переменная - матрица }
BEGIN
  Randomize;
  ClrScr; { Очистка экрана }
  InputMatrix(M);  { Ввод матрицы }
  GetList(M)  { Получение списка групп пар }
END.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию