Вывести двумерный массив в таблицу с помощу псевдографики - Pascal ABC

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

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

у меня есть двумерн. массив , мне нужно занисти его в табилицу (в псевдографике ) помогите
нужно вывести двумерный массив в таблицу , таблица должна быть нарисовано с помощу псевдографики

Решение задачи: «Вывести двумерный массив в таблицу с помощу псевдографики»

textual
Листинг программы
uses crt;
type mtr=array[1..10,1..10] of integer;
procedure vvod(var a:mtr;var n,w:byte);
var i,j:byte;
    s:string;
begin
clrscr;
repeat
write('Размер матрицы от 3 до 10 n=');
readln(n);
until n in [3..10];
writeln('Введите элементы матрицы, целые числа');
w:=0;
for i:=1 to n do
for j:=1 to n do
 begin
  write('a[',i,',',j,']=');
  readln(a[i,j]);
  str(a[i,j],s);
  if length(s)>w then w:=length(s);
 end;
w:=w+3;
clrscr;
end;
procedure Tabl(n,w:byte;s:string);
var i,j:byte;
begin
writeln(s);
write(#201);
for i:=1 to n*w-1 do
if ((i<>n*w-1)and(i mod w=0)) then write(#209)else write(#205);
writeln(#187);
for j:=1 to n-1 do
 begin
  write(#186);
  for i:=2 to n*w-1 do
  if i mod w=0 then write(#179:w);
  writeln(#186:w);
  write(#199);
  for i:=1 to n*w-1 do
  if ((i<>n*w-1)and(i mod w=0)) then write(#197)else write(#196);
  writeln(#182);
 end;
write(#186);
for i:=2 to n*w-1 do
if i mod w=0 then write(#179:w);
writeln(#186:w);
write(#200);
for i:=1 to n*w-1 do
if ((i<>n*w-1)and(i mod w=0)) then write(#207)else write(#205);
writeln(#188);
end;
procedure vyvod(a:mtr;n,w:byte);
var i,j:byte;
begin
for i:=1 to n do
 begin
  gotoXY(2,2*i+1);
  for j:=1 to n do
   begin
    gotoXY((j-1)*w+2,whereY);
    write(a[i,j]:w-2);
   end;
 end;
gotoXY(1,2*n+3);
end;
var n,w,i,j:byte;
    x:integer;
    a:mtr;
begin
vvod(a,n,w);
Tabl(n,w,'Исходная матрица');
vyvod(a,n,w);
write('Нажмите Enter для продолжения');
readln;
clrscr;
{обмен диагоналей}
for i:=1 to n do
 begin
  x:=a[i,i];
  a[i,i]:=a[i,n-i+1];
  a[i,n-i+1]:=x;
 end;
for i:=1 to n do
for j:=1 to n do
if((j>i)and(j<n-i+1))or((j<i)and(j>n-i+1))then a[i,j]:=0
else if(j<>i)and(j<>n-i+1)then a[i,j]:=2*a[i,j];
Tabl(n,w,'Измененная матрица');
vyvod(a,n,w);
write('Нажмите Enter для выхода');
readln
end.

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

  1. В процедуре vvod считывается размер матрицы и затем происходит чтение элементов матрицы.
  2. В процедуре Tabl выводится таблица с помощью символов #201, #205, #187, #179, #186, #197, #196, #182, #200, #207, #188.
  3. В процедуре vyvod происходит вывод измененной матрицы.
  4. В основной части программы происходит обмен диагоналей, а затем вывод исходной и измененной матрицы.
  5. В конце программы происходит выход из программы при нажатии клавиши Enter.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы