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

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

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

Дана целочисленная прямоугольная матрица. 1) найти номера строк, в которых на всех нечетных позициях стоят нули; 2) определить количество различных элементов матрицы

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

textual
Листинг программы
  1. const n=3;m=4;
  2. type matr=array[1..n,1..m] of integer;
  3. var a:matr;
  4.  procedure in_matr(var x:matr);
  5.  var i,j:integer;
  6.  begin
  7.   for i:=1 to n do
  8.    for j:=1 to m do
  9.     x[i,j]:=random(6)
  10.  end;
  11.  procedure out_matr(x:matr;s:string);
  12.  var i,j:integer;
  13.  begin
  14.   writeln(s);
  15.   for i:=1 to n do
  16.    begin
  17.     for j:=1 to m do write(x[i,j]:4);
  18.     writeln
  19.    end;
  20.  end;  
  21.  procedure n_0(x:matr);
  22.  var i,j:integer;
  23.      f,ff:boolean;
  24.  begin
  25.   ff:=false;
  26.   write('Строки с нулями на всех нечетных позициях ');
  27.   for i:=1 to n do
  28.    begin
  29.     f:=false;
  30.     j:=1;
  31.     while (not f) and (j<=m) do
  32.      begin
  33.       if x[i,j]<>0 then f:=true;
  34.       inc(j,2)
  35.      end;
  36.     if not f then begin write(i,' ');ff:=true end;
  37.    end;
  38.   if not ff then write('отсутствуют');
  39.   writeln
  40.  end;
  41.  function k_r(x:matr):integer;
  42.  type mas=array[1..n*m] of integer;
  43.  var i,j,k,ke:integer;
  44.      b:mas;
  45.      f:boolean;
  46.  begin
  47.   ke:=0;
  48.   for i:=1 to n do
  49.    begin
  50.     for j:=1 to m do
  51.      begin
  52.       k:=1;f:=false;
  53.       while (not f) and (k<=ke) do
  54.        begin
  55.         if b[k]=x[i,j] then f:=true;
  56.         inc(k)
  57.        end;
  58.       if not f then begin inc(ke);b[ke]:=x[i,j] end
  59.      end
  60.    end;
  61.   k_r:=ke
  62.  end;
  63. begin
  64.  in_matr(a);
  65.  out_matr(a,'Исходная матрица ');
  66.  n_0(a);
  67.  writeln('Различных элементов: ',k_r(a))
  68. end.

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

  1. Объявляется константа n с значением 3 и m со значением 4.
  2. Объявляется тип matr как массив размерности n на m, содержащий целые числа.
  3. Объявляется переменная a как matr (матрица).
  4. Описывается процедура in_matr, принимающая матрицу и заполняющая её случайными числами от 0 до 5.
  5. Описывается процедура out_matr, принимающая матрицу и строку s, и выводящая содержимое матрицы в консоль.
  6. Описывается процедура n_0, принимающая матрицу и ищущая строки, в которых находятся нули на нечетных позициях, и выводящая эти строки в консоль.
  7. Описывается функция k_r, принимающая матрицу и возвращающая количество различных элементов в матрице.
  8. В основной части программы вызывается процедура in_matr для заполнения матрицы, процедура out_matr для вывода исходной матрицы в консоль, процедура n_0 для поиска строк с нулями на нечетных позициях, и выводится количество различных элементов в матрице.

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


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

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

13   голосов , оценка 3.769 из 5

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

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

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