Раскрасить в массиве при выводе розовым цветом минимальные элементы каждого столбца. Красит строки - Pascal

Узнай цену своей работы

Формулировка задачи:

Подскажите, пожалуйста, что у меня тут нужно изменить.. Задание следующее : "Раскрасить в массиве при выводе розовым цветом минимальные элементы каждого столбца". Прогу вроде бы написал, но красит только элементы каждой строки, а не столбца.. Как сделать так, чтобы все-таки красил мин. эл-ты столбца?
program p91;
 
uses crt;
var a:array [1..5,1..5] of integer;
    i,j,min:integer;
 
begin
randomize;
clrscr;
 
for i:=1 to 5 do begin
for j:=1 to 5 do begin
A[i,j]:=random(200)-100;
Write(A[i, j]:5);
end;
writeln;
end;
 
writeln(' ');
 
for j:=1 to 5 do begin
min:=a[1,j];
for i:=1 to 5 do begin
if min>a[i,j]then
min:=a[i,j];
end;
 
for i:=1 to 5 do begin
if min=a[i,j] then
textcolor(13)
else
textcolor(green);
write(A[i,j]:5);
end;
writeln;
end;
readln;
end.

Решение задачи: «Раскрасить в массиве при выводе розовым цветом минимальные элементы каждого столбца. Красит строки»

textual
Листинг программы
uses crt;
const n=5;
var a:array [1..n,1..n] of integer;
    b:array[1..n] of integer;
    i,j,min:integer;
begin
randomize;
clrscr;
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=-100+random(200);
    write(a[i, j]:5);
   end;
  writeln;
 end;
writeln;
for j:=1 to n do
 begin
  b[j]:=a[1,j];
  for i:=2 to n do
  if b[j]>a[i,j]then b[j]:=a[i,j];
 end;
writeln;
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    if a[i,j]=b[j] then textcolor(13)
    else textcolor(green);
    write(a[i,j]:5);
   end;
  writeln;
  end;
readln
end.

Объяснение кода листинга программы

  1. В первой части кода используется функция randomize, которая генерирует случайное число в заданном диапазоне. Функция clrscr очищает экран перед началом каждой итерации цикла.
  2. Затем следует цикл for i:=1 to n do, который выполняется n раз (где n - это значение переменной n). Внутри этого цикла выполняется вложенный цикл for j:=1 to n do, который также выполняется n раз.
  3. Внутри вложенного цикла for j:=1 to n do вычисляется значение a[i,j] и записывается в экран. Значение a[i,j] устанавливается в -100 + random(200), то есть в случайное число от -100 до 199.
  4. После окончания вложенного цикла выводится символ новой строки (writeln).
  5. Затем идет еще один вложенный цикл for i:=1 to n do, который также выполняется n раз. Внутри этого цикла сравниваются значения a[i,j] и b[j]. Если значение a[i,j] меньше значения b[j], то значение b[j] заменяется на значение a[i,j].
  6. После окончания вложенного цикла выводится символ новой строки (writeln).
  7. Затем идет еще один вложенный цикл for i:=1 to n do, который также выполняется n раз. Внутри этого цикла проверяется, равен ли элемент a[i,j] элементу b[j]. Если да, то цвет текста устанавливается в розовый (текстcolor(13)), иначе цвет текста устанавливается в зеленый (текстcolor(green)).
  8. После окончания вложенного цикла выводится значение a[i,j] в экран.
  9. Цикл for j:=1 to n do заканчивается, и начинается последняя итерация внешнего цикла for i:=1 to n do.
  10. В конце кода вызывается функция readln, которая ждет ввода пользователя и завершает программу.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы