Удалите из прямоугольной матрицы те строки, в которых есть число 7 - Turbo Pascal
Формулировка задачи:
Удалите из прямоугольной матрицы A(N*M), где N и M - заданные натуральные числа, те строки, в которых есть число 7. Если таких нет, выдать текстовое сообщение
Решение задачи: «Удалите из прямоугольной матрицы те строки, в которых есть число 7»
textual
Листинг программы
uses Crt;
type Tmatr=array[1..10,1..15] of byte;
var n,m,i,j,t,k,e:byte;
a:Tmatr;
c:boolean;
begin
ClrScr;
repeat
Write('0<N<11 = '); Readln(n);
Write('0<M<16 = '); Readln(m);
until (n>0) and (n<11) and (m>0) and(m<16);
Writeln('Ishodnaja matrica:');
Writeln; Randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=Random(21);
Write(a[i,j]:4);
end;
Writeln;
end;
Writeln;
t:=0; i:=1; c:=false;
repeat
for j:=1 to m do
if a[i,j]=7 then
begin
c:=true;
Break
end;
if c
then begin
Inc(t);
for k:=i to n-1 do
for e:=1 to m do
a[k,e]:=a[k+1,e];
Dec(n);
c:=false
end
else Inc(i);
until i>n;
if t=0
then Writeln('V matrice net cisel = 7')
else
begin
Writeln('Preobrazovannaja matrica:'); Writeln;
for i:=1 to n do
begin
for j:=1 to m do
Write(a[i,j]:4);
Writeln;
end;
end;
ReadKey;
end.
Объяснение кода листинга программы
- В начале программы объявляются переменные n, m, i, j, t, k, e, которые будут использоваться для работы с матрицей.
- Создается переменная a типа Tmatr, которая будет представлять собой прямоугольную матрицу.
- Переменная c инициализируется значением false. Она будет использоваться для отслеживания наличия числа 7 в текущей строке матрицы.
- Запускается цикл while, который будет выполняться до тех пор, пока условие (n>0) and (n<11) and (m>0) and(m<16) выполняется.
- Внутри цикла while происходит чтение входных данных от пользователя.
- Затем происходит инициализация матрицы a случайными значениями.
- Далее идет вывод сообщения
Ishodnaja matrica:и пробел. - Затем идет вывод чисел матрицы в консоль.
- После этого идет вывод сообщения
Preobrazovannaja matrica:. - Если значение переменной t равно 0, то выводится сообщение
V matrice net cisel = 7. - Если значение переменной t не равно 0, то выводится матрица после преобразования.
- В конце программы вызывается функция ReadKey, чтобы дождаться нажатия клавиши перед завершением программы.