Напечатать те матрицы, в которых под главной диагональю нет заданного пользователем символа - 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; При вводе символа и двух матриц, программа проверяет наличие этого символа в каждой строке матрицы и выводит на экран только те матрицы, в которых символ не найден.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д