Напечатать те матрицы, в которых под главной диагональю нет заданного пользователем символа - PascalABC.NET

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

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

Доброго времени суток. Помогите разобраться с задачей. Задана последовательность символьных матриц. Напечатать те их них, в которых под главной диагональю нет заданного пользователем символа.

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

textual
Листинг программы
  1. Type st=array[1..4] of char;
  2.      sr=array[1..4] of st;
  3.  
  4. Var p:array[1..4] of sr;
  5.     i:integer;
  6.     s:char;
  7.      
  8. Procedure read_matr (var matr:sr);
  9.   Var i,j:integer;
  10.     Begin
  11.       For i:=1 to 4 do
  12.         For j:=1 to 4 do
  13.           Readln(matr[i,j]);
  14.     End;
  15.  
  16. Procedure write_matr (var matr:sr);
  17.   Var i,j:integer;
  18.     Begin
  19.       For i:=1 to 4 do
  20.         Begin
  21.           For j:=1 to 4 do
  22.             Write(matr[i,j]);
  23.           Writeln;
  24.         End;  
  25.     End;
  26.  
  27. Function search (var matst:st):boolean;
  28.   Var i:integer;
  29.       ok:boolean;
  30.     Begin
  31.       ok:=true;
  32.       i:=1;
  33.       While ok and (i<=3) do
  34.         If matst[i]=s then ok:=false
  35.         Else inc(i);
  36.       search:=ok;
  37.     End;
  38.  
  39. Function all(var matr:sr):boolean;
  40.   Var i:integer; ok:boolean;
  41.   Begin
  42.     ok:=true;
  43.     i:=2;
  44.     While ok and (i<=4)do
  45.       If search(matr[i]) then inc(i)
  46.       Else ok:=false;
  47.     all:=ok;
  48.   End;
  49.  
  50. Begin
  51.   Writeln('Введите символ');
  52.   Readln(s);
  53.   Writeln('Введите матрицы');
  54.   For i:=1 to 2 do
  55.     Read_matr(p[i]);
  56.   Writeln('До');  
  57.   For i:=1 to 2 do
  58.     Write_matr(p[i]);
  59.   Writeln('После');  
  60.   For i:=1 to 2 do
  61.     If all(p[i]) then write_matr(p[i]);
  62. End.

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

Список элементов кода:

  1. Объявление переменных:
    • Type st=array[1..4] of char; (строка, массив из 4 символов)
    • sr=array[1..4] of st; (массив из строк, массив из 4 строк)
    • Var p:array[1..4] of sr; (массив из 4 строк, каждая строка - массив из 4 символов)
    • i:integer; (целочисленная переменная для цикла)
    • s:char; (символьная переменная для сравнения)
  2. Процедуры чтения и записи матрицы:
    • Procedure read_matr (var matr:sr); (чтение матрицы в переменную matr)
    • Procedure write_matr (var matr:sr); (запись матрицы из переменной matr)
  3. Функции поиска и проверки всех элементов матрицы:
    • Function search (var matst:st):boolean; (поиск заданного символа в строке)
    • Function all(var matr:sr):boolean; (проверка наличия заданного символа во всех строках матрицы)
  4. Основной цикл программы:
    • Begin
    • Writeln('Введите символ');
    • Readln(s);
    • Writeln('Введите матрицы');
    • For i:=1 to 2 do
      • Read_matr(p[i]);
    • Writeln('До');
    • For i:=1 to 2 do
      • Write_matr(p[i]);
    • Writeln('После');
    • For i:=1 to 2 do
      • If all(p[i]) then write_matr(p[i]);
    • End; При вводе символа и двух матриц, программа проверяет наличие этого символа в каждой строке матрицы и выводит на экран только те матрицы, в которых символ не найден.

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


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

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

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

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

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

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