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

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

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

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

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

textual
Листинг программы
Type st=array[1..4] of char;
     sr=array[1..4] of st;
  
Var p:array[1..4] of sr;
    i:integer;
    s:char;
     
Procedure read_matr (var matr:sr);
  Var i,j:integer;
    Begin
      For i:=1 to 4 do
        For j:=1 to 4 do
          Readln(matr[i,j]);
    End;
 
Procedure write_matr (var matr:sr);
  Var i,j:integer;
    Begin
      For i:=1 to 4 do
        Begin
          For j:=1 to 4 do
            Write(matr[i,j]);
          Writeln;
        End;  
    End;
 
Function search (var matst:st):boolean;
  Var i:integer;
      ok:boolean;
    Begin
      ok:=true;
      i:=1;
      While ok and (i<=3) do
        If matst[i]=s then ok:=false
        Else inc(i);
      search:=ok;
    End;
 
Function all(var matr:sr):boolean;
  Var i:integer; ok:boolean;
  Begin
    ok:=true;
    i:=2;
    While ok and (i<=4)do
      If search(matr[i]) then inc(i)
      Else ok:=false;
    all:=ok;
  End;
 
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.

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

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

  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
Похожие ответы