Напечатать те матрицы, в которых под главной диагональю нет заданного пользователем символа - 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.
Объяснение кода листинга программы
Список элементов кода:
- Объявление переменных:
- 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; (символьная переменная для сравнения)
- Процедуры чтения и записи матрицы:
- Procedure read_matr (var matr:sr); (чтение матрицы в переменную matr)
- Procedure write_matr (var matr:sr); (запись матрицы из переменной matr)
- Функции поиска и проверки всех элементов матрицы:
- Function search (var matst:st):boolean; (поиск заданного символа в строке)
- Function all(var matr:sr):boolean; (проверка наличия заданного символа во всех строках матрицы)
- Основной цикл программы:
- 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; При вводе символа и двух матриц, программа проверяет наличие этого символа в каждой строке матрицы и выводит на экран только те матрицы, в которых символ не найден.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д