Паскаль Можете объяснить как найти столбец в котором все элементы одинаковы?(речь о двумерном массиве) с учетом того, что i - число строк, j-число столбцов т.е элементы a[j] должны быть равны как это сделать? объясните, я нови...

Паскаль Можете объяснить как найти столбец в котором все элементы одинаковы?(речь о двумерном массиве) с учетом того, что i - число строк, j-число столбцов т.е элементы a[j] должны быть равны как это сделать? объясните, я новичок.
Гость
Ответ(ы) на вопрос:
Гость
В начале мы создаем массив случайных элем. Потом работаем с ним. Нам нужны 2 переменные: 1 - переменная, для сохранения результата (номера). 2 - переменная флажок. Мы обходим весь массив ПО СТОЛБЦАМ. В начале обхода конкретного столбца переменной флажка присвоим 1. Сравниваем текущий элемент столбца с последующим, если они не равны то ставим флажок 0 Код: //Размерность массива const n = 3; //Сам массив var  ar : array[1..n,1..n] of integer; //Переменные для работы с массивом var  i,j : integer;  //Переменные для поиска столбца //f - переменная флажок, которая по окончанию обхода столбца будет //показывать одинаковы ли элементы в нем //numb - переменная, в которой сохраним номер столбца с //одинаковыми значениями элементов. var  f,numb : integer; begin //Создание и вывод на экран массива //Элементы генерируются случайным образом //----------------------------------   for i:=1 to n do  begin    for j:=1 to n do    begin      ar[i,j] := random(2);      write(ar[i,j]:3);    end;    writeln;    end;   //----------------------------------  //Вот сам алгоритм поиска //---------------------------------- //Записываем в numb значение -1 //Если в процессе работы значение не изменится (-1) //То означает, что в массиве нет одинаковых столбцов   numb := -1;  //Идем по массиву //!!Внимание i,j (идем по столбцам, а не по строкам)!! for j:=1 to n do //Момент начала конкретного j столбца     begin     //записываем в f значение 1   //Предполагаем, что столбец одинаков   //Если в конце обхода конкретного столбца значение f=1   //Значит, что данный столбец одинаков   f := 1;       //Идем по столбцу //!!До предпоследнего элем!! n-1 //(т.к сравниваем текущий со следующим) for i:=1 to n-1 do    begin   //Сравниваем текущий элемент столбца, со следующим      if (ar[i,j] <> ar[i+1,j]) then     //Если они не равны, то изменяем значение флажка f на 0            f := 0;    end;  //Конец обхода конкретного столбца     //Если столбец одинаков    if (f = 1) then     //то записываем его номер в numb          numb := j;   end;   //----------------------------------   //Вывод результата  if (numb <> -1) then    writeln('Столбец №: ',numb)  else    writeln('Нет ни одного одинакового столбца');     end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы