Написать процедуру, которая в заданном одномерном массиве меняет местами максимальный и первый элемент - Pascal ABC

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

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

Добрый день. мне нужно исправить программу(думаю процедуру замена) {Написать процедуру, которая в заданном одномерном массиве меняет местами максимальный и первый элемент.Применить эту процедуру к каждому столбцу заданной прямоугольной матрицы}

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

textual
Листинг программы
type
  mas = array[1..10] of integer;//столбец
  mas1 = array[1..10] of mas; //массив столбцов
//procedure zamena
procedure zamena(var b:mas; n,m:integer);
var temp, max, nmax, i: integer;
begin
nmax := 1;
max := b[1];
for i := 2 to n do
if b[i] > max then
 begin
  max := b[i];
  nmax := i
 end;
temp:=b[1];
b[1] := b[nmax];
b[nmax] := temp;
end;
 
procedure vvod(var a: mas1; var n, m: integer);
var i, j: integer;
begin
repeat
write('Введите количество строк от 2 до 10 n=');
readln(n);
until n in [2..10];
repeat
write('Введите количество столбцов от 2 до 10 n=');
readln(m);
until m in [2..10];
writeln('Введите элементы матрицы по столбцам');
for j:=1 to m do
 begin
  writeln('Столбец ',j);
  for i := 1 to n do
   begin
    write('a[', i, ',', j, ']=');
    readln(a[j][i])
   end;
 end;
end;
 
procedure vid(a: mas1; n, m: integer; s:string);
var i, j: integer;
begin
writeln(s);
for i := 1 to n do
 begin
  for j := 1 to m do
  write(a[j][i]:5);//выводим транспонировано
  writeln;
 end;
end;
var a: mas1;
    m, n, j: integer;
begin
vvod(a, n, m);
vid(a, n, m,'Исходный массив');
for j:=1 to m do
zamena(a[j],n,m);
vid(a, n, m,'Измененный массив');
end.

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

  1. Создается тип данных mas для представления одномерного массива целых чисел.
  2. Создается процедура zamena, которая принимает в качестве параметров одномерный массив b, его размерность n и m. Она выполняет следующие действия:
    • Инициализирует переменные temp, max и nmax со значениями по умолчанию.
    • Находит максимальное значение в массиве b, сохраняет его в переменной max и запоминает индекс этого элемента в переменной nmax.
    • Заменяет местами первый элемент массива b и элемент с индексом nmax.
    • Возвращает значение max.
  3. Создается процедура vvod, которая принимает в качестве параметров переменную a типа mas1, переменные n и m типа integer. Она выполняет следующие действия:
    • Выводит приглашение для ввода количества строк и столбцов матрицы.
    • Считывает значения n и m с помощью функции readln.
    • Выводит информацию о введенных значениях n и m.
    • Выводит приглашение для ввода элементов матрицы по столбцам.
    • Считывает элементы матрицы a с помощью функции readln.
  4. Создается процедура vid, которая принимает в качестве параметров переменную a типа mas1, переменные n и m типа integer, а также строку s. Она выполняет следующие действия:
    • Выводит строку s.
    • Выводит элементы матрицы a транспонированным образом.
    • Выводит символ новой строки после каждого элемента.
  5. Создается основной блок программы, который включает в себя вызов процедур vvod, zamena и vid.
    • Выводит приглашение для ввода значений n и m.
    • Выводит информацию о введенных значениях n и m.
    • Вызывает процедуру vvod с передачей в нее переменных a, n и m.
    • Вызывает процедуру zamena с передачей в нее переменных b, n и m.
    • Вызывает процедуру vid с передачей в нее переменных a, n и m, а также строки Исходный массив.
    • Вызывает процедуру vid с передачей в нее переменных a, n и m, а также строки Измененный массив.
    • Ожидает ввода для завершения программы.

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


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

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

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