Вопрос задан 02.04.2021 в 20:45. Предмет Информатика. Спрашивает Васюченко Никита.

Нужно поменять местами макс. и мин. значения. Что не так? PROGRAM MATRICA; USES CRT; CONST N=3;

M=4; A=-20; B=20; VAR I, J, MIN, MAX, T: INTEGER; Y:ARRAY [1..N, 1..M] OF INTEGER; BEGIN CLRSCR; RANDOMIZE; WRITELN('MATRICA Y'); MIN:=0; MAX:=0; T:=0; FOR I:=1 TO N DO BEGIN FOR J:=1 TO M DO BEGIN Y[I,J]:=TRUNC((B-A)*RANDOM+A); WRITE(Y[I,J]:6); IF Y[I,J]MAX THEN MAX:=Y[I,J]; END; WRITELN; END; WRITELN('Минимальное значение = ', MIN); WRITELN('Максимальное значение = ', MAX); T:=MIN; MIN:=MAX; MAX:=T; FOR I:=1 TO N DO BEGIN FOR J:=1 TO M DO BEGIN WRITE(Y[I,J]:6); END; WRITELN; END; READKEY; END.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Никитина-Дикова Ольга.
Program matrix;
var  A: array[1..10, 1..10] of integer;
i, j, mini, minj, maxi, maxj, temp: integer;
begin  Randomize;
  for i := 1 to 10 do  begin
    for j := 1 to 10 do    begin
      A[i, j] := random(100);
      write(A[i, j], ' ');
   end;
   writeln;
   end;
   mini := 1;
   minj:=1;
   maxi := 1;
   maxj:=1;
   for i := 1 to 10 do 
   for j := 1 to 10 do
    begin 
     if A[i, j] < A[mini,minj] then  begin 
      mini := i;
      minj := j;
     end;
      if A[i, j] > A[maxi,maxj] then      begin
       maxi := i;
       maxj := j;
      end;
      end;
      WriteLn('min = ',A[mini,minj],' это ',mini,' ряд ',minj,' столбца.' );
      WriteLn('max = ',A[maxi,maxj],' это ',maxi,' ряд ',maxj,' столбца.' );
       temp := A[maxi, maxj];
       A[maxi, maxj] := A[mini, minj];
       A[mini, minj] := temp;
       writeln;
       for i := 1 to 10 do  begin
        for j := 1 to 10 do
         write(A[i, j], ' ');
         writeln;
       end; 
       readln;
       end.
temp - переменная для временного хранения минимальных и максимальных элементов.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

В этой программе неверно определены значения минимального и максимального элементов матрицы Y. В строке 18 необходимо заменить условие "IF Y[I,J]MAX THEN MAX:=Y[I,J];" на "IF Y[I,J]>MAX THEN MAX:=Y[I,J];" для корректного нахождения максимального элемента.

Кроме того, после нахождения минимального и максимального элементов необходимо поменять их местами. Это можно сделать, например, с использованием дополнительной переменной T, как это сделано в строках 23-25. Однако, необходимо помнить, что значения MIN и MAX также нужно поменять местами, чтобы отразить изменения в матрице.

Вот исправленный код:

css
PROGRAM MATRICA; USES CRT; CONST N=3; M=4; A=-20; B=20; VAR I, J, MIN, MAX, T: INTEGER; Y: ARRAY [1..N, 1..M] OF INTEGER; BEGIN CLRSCR; RANDOMIZE; WRITELN('MATRICA Y'); MIN:=B; MAX:=A; T:=0; FOR I:=1 TO N DO BEGIN FOR J:=1 TO M DO BEGIN Y[I,J]:=TRUNC((B-A)*RANDOM+A); WRITE(Y[I,J]:6); IF Y[I,J]<MIN THEN MIN:=Y[I,J]; IF Y[I,J]>MAX THEN MAX:=Y[I,J]; END; WRITELN; END; WRITELN('Минимальное значение = ', MIN); WRITELN('Максимальное значение = ', MAX); T:=MIN; MIN:=MAX; MAX:=T; FOR I:=1 TO N DO BEGIN FOR J:=1 TO M DO BEGIN WRITE(Y[I,J]:6); END; WRITELN; END; READKEY; END.
0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос