В строке матрицы, содержащей максимальный элемент, заменить все отрицательные числа нулями - Turbo Pascal

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

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

Добрый день! Подскажите, пожалуйста, что я сделала неправильно. Задание звучит так: Сформировать двумерный массив F размером 4 x 8 с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. В строке матрицы F, содержащей максимальный элемент, заменить все отрицательные числа нулями (оформить нахождение максимального элемента в виде функции). Вывести на экран и в файл номер этой строки и максимальный элемент.
После выполнения программы всегда пишет, что максимальный элемент в строке 4 и почему-то через раз заменяет отрицательные числа на нули(

Решение задачи: «В строке матрицы, содержащей максимальный элемент, заменить все отрицательные числа нулями»

textual
Листинг программы
uses crt;
const m=4;
      n=8;
type mass=array [1..m,1..n] of real;
procedure matrix(var a:mass;var f:text);
var i,j:byte;
begin
writeln('Исходная матрица');
writeln(f,'Matrix');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=-5+11*random;
    write(a[i,j]:6:2);
    write(f,a[i,j]:6:2);
   end;
  writeln;
  writeln(f);
 end;
end;
function max (a:mass;var s:byte):real;
var i,j:byte;
    mx:real;
begin
mx:=a[1,1];
s:=1;
for i:=1 to m do
for j:=1 to n do
if a[i,j]>mx then
 begin
  mx:=a[i,j];
  s:=i;
 end;
max:=mx;
end;
procedure preobr (var a:mass;var f:text);
var i,j,s:byte;
    x:real;
begin
x:=max(a,s);
writeln('Максимальный элемент=',x:0:2,' в строке ',s);
writeln(f,'max=',x:0:2,' Nstr=',s);
writeln('Измененная матрица');
writeln(f,'New matrix');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    if(i=s)and(a[i,j]<0) then a[i,j]:=0;
    write(a[i,j]:6:2);
    write(f,a[i,j]:6:2);
   end;
  writeln;
  writeln(f);
 end;
end;
 
var c: text;
    f:mass;
begin
clrscr;
assign (c,'text.txt'); {в папку с программмой}
rewrite (c);
randomize;
matrix(f,c);
preobr(f,c);
readln;
end.

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

  1. В строке матрицы, содержащей максимальный элемент, заменить все отрицательные числа нулями.
  2. Исходная матрица.
  3. Вывести матрицу.
  4. Найти максимальное значение в матрице.
  5. Записать максимальное значение и его строку в текстовый файл.
  6. Заменить все отрицательные числа в строке нулями.
  7. Вывести измененную матрицу.
  8. Записать измененную матрицу в текстовый файл.

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


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

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

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