Дана символьная квадратная матрица порядка n. Вычислить количество букв “a” над главной диагональю то количество букв “b” под побочной диагональю, и заменить в матрице эти буквы на символ «*» — Pascal(Паскаль)

uses crt;
const n=10;{размер матрицы, больше не надо}
var a:array[1..n,1..n] of char;{матрица символов}
    i,j,ka,kb:byte;
begin
clrscr;
randomize;
writeln('Ishodnaya matrica:');
for i:=1 to n do
  begin
    for j:=1 to n do
      begin
       a[i,j]:=chr(ord(random(10)+97));{возьмем первые 9 маленьких латинских букв}
       if ((j>i)and(a[i,j]='a')){если символы по условию, выделим их красным цветом}
       or ((j>n-i+1)and(a[i,j]='b'))then
         begin
          textcolor(12);
          write(a[i,j]:3);
         end
       else
        begin
         textcolor(15);{остальные по умолчанию, обычно белый}
         write(a[i,j]:3);
        end;
      end;
    writeln;
  end;
ka:=0;kb:=0;
for i:=1 to n do
for j:=1 to n do
if (j>i)and(a[i,j]='a') then{если выше главной и а}
  begin
    ka:=ka+1;{считаем}
    a[i,j]:='*';{заменяем звездочкой}
  end
else if (j>n-i+1)and(a[i,j]='b') then{если ниже побочной и b}
  begin
    kb:=kb+1;{считаем}
    a[i,j]:='*';{заменяем звездочкой}
  end;
writeln('Izmenemnaya matrica:');
for i:=1 to n do
  begin
    for j:=1 to n do
    if a[i,j]='*' then
      begin
        textcolor(12);{звездочки красным}
        write(a[i,j]:3);
      end
    else
      begin
        textcolor(15);{остальные белым}
        write(a[i,j]:3);
      end;
    writeln;
  end;
writeln('Kolichestvo a=',ka);
writeln('Kolichestvo b=',kb);
readln
end.

Leave a Comment

+ 29 = 32