Тема. Матрицы.
Задание. Решить поставленную задачу, используя средства управления вводом/выводом. Сформировать массив D(n,n) следующим образом: элемент массива равен 1, если он расположен на диагонали (главной или побочной), в противном случае он равен 0. Вывести на экран отдельно правую и левую половины массива так, чтобы они были расположены рядом, но правая половина была бы опущена на 1 строку вниз по отношению к левой.
Скриншот программы:
Исходный код программы для Delphi 7:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,Windows;
const n=10;
var mas:array[1..n,1..n] of integer;
i,j:integer;
Con: Integer; // Дескриптор консольного окна
procedure GotoXY(X, Y: Word);
var Coord: TCoord; // Для хранения/установки позиции экрана
begin
Coord.X := X;
Coord.Y := Y;
SetConsoleCursorPosition(Con, Coord);
end;
begin
Con := GetStdHandle(STD_OUTPUT_HANDLE);
for i := 1 to n do
begin
for j:=1 to n do
begin
if i=j then mas[i,j]:=1 //главная диагональ
else mas[i,j]:=0; //остальные элементы
end;
mas[i,n-i+1]:=1; //побочная диагональ
end;
For i:=1 to n do
For j:=1 to n do
Begin
GotoXY (i, j);
if i<=n/2 then //первая половина
write(mas[i,j]);
End;
For i:=1 to n do
For j:=1 to n do
Begin
GotoXY (i+1, j+1); //вторая половина
if i>n/2 then
write(mas[i,j]);
End;
Readln;
end.
Для вывода результата пользуемся процедурой GOTOXY:
procedure GotoXY(X, Y: Word);
var Coord: TCoord; // Для хранения/установки позиции экрана
begin
Coord.X := X;
Coord.Y := Y;
SetConsoleCursorPosition(Con, Coord);
end;
Блок схема процедуры GotoXY:
Блок схема программы:
|