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

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

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

Дан двумерный квадратный массив. Переставить столбец и строку, в которой находится первый отрицательный элемент. Если такого элемента нет, то выдать сообщение
Листинг программы
  1. Program perest;
  2. type
  3. Mass=array[1..4,1..4] of integer;
  4. Var
  5. b:Mass;
  6. n,m,i,j:integer;
  7. procedure WWOD(var a: Mass);
  8. var i,j:integer;
  9. begin
  10. for i:=1 to n do
  11. begin
  12. for j:=1 to m do
  13. begin
  14. a[i,j]:=random(20)-random(10);{i-ому элементу массива присваивается случайное значение от -10 до 20}
  15. end;
  16. end;
  17. end;
  18. procedure WIWOD (var a: Mass); {вывод исходного массива на экран}
  19. var i,j:integer;
  20. begin
  21. for i:=1 to n do
  22. begin
  23. for j:=1 to m do
  24. begin
  25. write(a[i,j]:4);
  26. end;
  27. writeln;
  28. end;
  29. end;
  30. procedure PER1 (var a: Mass ..);
  31. var ...;
  32. begin
  33. этой процедуре столбик должен стать строкой}
  34. end;
  35. procedure PER2 (var a: Mass ...);
  36. var ...;
  37. begin
  38. этой процедуре строка должен стать столбцом}
  39. end;
  40. Begin
  41. n:=4;
  42. m:=4;
  43. WWOD(b);
  44. writeln('Исходная матрица: ');
  45. WIWOD(b);
  46. writeln;
  47. {использование процедур}
  48. writeln('Полученный матрица: ');
  49. WIWOD(b);
  50. end.

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

textual
Листинг программы
  1. Program perest;
  2. const
  3.   n=4;
  4. type
  5.   Mass=array[1..n,1..n] of integer;
  6. Var
  7.   b:Mass;
  8.   k,i,j:integer;
  9.  
  10. procedure WWOD(var a: Mass);
  11. var
  12.   i,j:integer;
  13. begin
  14.   for i:=1 to n do
  15.     for j:=1 to n do
  16.       a[i,j]:=random(20)-random(10);{i-ому элементу массива присваивается случайное значение от -10 до 20}
  17. end;
  18.  
  19. procedure WIWOD (a: Mass);     {вывод исходного массива на экран}
  20. var
  21.   i,j:integer;
  22. begin
  23.   for i:=1 to n do
  24.     begin
  25.       for j:=1 to n do
  26.         write(a[i,j]:4);
  27.       writeln;
  28.     end;
  29. end;
  30.  
  31. procedure PER1 (var a: Mass;k:integer);
  32. var
  33.   x,i,j:integer;
  34. begin
  35. этой процедуре столбик должен стать строкой}
  36.   for i:=1 to n do
  37.     begin
  38.       x:=a[i,k];
  39.       a[i,k]:=a[k,i];
  40.       a[k,i]:=x;
  41.     end;
  42.  end;
  43.  
  44. Begin
  45.   randomize;
  46.   WWOD(b);
  47.   writeln('Исходная матрица: ');
  48.   WIWOD(b);
  49.   writeln;
  50.   {использование процедур}
  51.   for i:=1 to n do
  52.     for j:=1 to n do
  53.       if b[i,j]<0 then
  54.         begin
  55.           k:=j;
  56.           break;
  57.         end;
  58.  
  59.   per1(b,k);
  60.   writeln('Полученная матрица: ');
  61.   WIWOD(b);
  62.   readln;
  63. end.

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

  1. В программе объявлены переменные n и Mass, которые имеют описания типов данных.
  2. Объявлены переменные b, k, i и j, которые являются целочисленными типами данных.
  3. В процедуре WWOD присваиваются случайные значения от -10 до 20 всем элементам массива b.
  4. В процедуре WIWOD выводится на экран каждый элемент массива b.
  5. В процедуре PER1 происходит перестановка столбца и строки, в которой находится первый отрицательный элемент. Для этого используется цикл for, который проходит по всем элементам массива b.
  6. В процедуре Begin выполняется инициализация генератора случайных чисел, вызывается процедура WWOD для создания исходной матрицы, выводится эта матрица на экран, вызывается процедура WIWOD для вывода исходной матрицы, затем вызываются процедуры PER1 и WIWOD для использования процедур и получения полученной матрицы, которая выводится на экран.
  7. В конце программы считывается ввод пользователя и программа завершается.

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


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

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

15   голосов , оценка 4.067 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы