Код:
program qq;
uses crt;
type
Ttab=array[1..255,1..255] of integer;
var
a,Tab:Ttab;
i,j,n,m,str:integer;
c:char;
procedure vvodstroki(var n:integer);
begin
repeat
write('Введите n строк:');
readln(n);
if n=0 then writeln ('n и m не равны нулю, повторите ввод заново');
until (n<>0)and(n>0);
end;
procedure vvodstolbcov (var m:integer);
begin
repeat
write('Введите m столбцов:');
readln(m);
if m=0 then writeln ('n и m не равны нулю, повторите ввод заново');
until (m<>0)and(m>0);
end;
//куб
//отрицательные элементы
procedure minus(var a,tab:Ttab;i,j,n,m:integer);
begin
Clrscr;
write ('3 матрица__________Исходная матрица (только отрицательные элементы)');
writeln;
writeln;
randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
begin
if a[i,j]<0 then
write(a[i,j]:6) else write('*':6);
end;
write;
end;
writeln;
end;
write ('возвести матрицу в квадрат? (1)-да, (2)-нет.');
writeln;write('ответ:');
readln(str);
case str of
2:begin
writeln ('программа завершена, Удачного Дня');
end;
1:begin
write ('4 матрица__________Элементы данной матрицы возведены в квадрат');writeln;
writeln;
for i:=1 to n do begin
for j:=1 to m do begin
tab[i,j]:=sqr(a[i,j]); write(tab[i,j]:6);
end;writeln;
end;
end;
end;
end;
// положительные и отрицательные элементы
procedure a1(var a,tab:Ttab;i,j,n,m:integer);
begin
Clrscr;
write ('1 матрица__________Исходная матрица');
writeln;
writeln;
randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=3-random(15);
write(a[i,j]:6);
if a[i,j]<>0 then tab[i,j]:=(a[i,j]);
end;
writeln;
end;
writeln;
end;
// куб
procedure a2(var a,tab:Ttab;i,j,n,m:integer);
begin
write ('2 матрица__________Эелементы данной матрицы возведены в куб');
writeln;
writeln;
for i:=1 to n do begin
for j:=1 to m do begin
tab[i,j]:=a[i,j]*a[i,j]*a[i,j]; write(tab[i,j]:6);
end;writeln;
end;
end;
begin
Window(2,2,80,80);
TextAttr:=14;
ClrScr;
TextAttr:=yellow;
Gotoxy (20,6);
WriteLn ('Вашему вниманию предостовляется программа');
Gotoxy (20,7);
WriteLn (' которая работает с матрицами.');
Textattr:=white;
Gotoxy (40,17);
WriteLn ('Программу составил студент');
Gotoxy (40,18);
WriteLn ('');
Gotoxy (40,20);
WriteLn ('');
Gotoxy (40,21);
WriteLn ('Москва,2014');
Gotoxy (40,23);
WriteLn ('Нажмите любую клавишу для продолжения');
c:=readkey;
Clrscr;
//ввод размерности
vvodstroki (n);
vvodstolbcov (m);
Clrscr;
writeln;
randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
//положительные элементы матрицы
a1 (a,tab,i,j,n,m);
//куб
a2 (a,tab,i,j,n,m);
end;
end;
begin
writeln;
write('вывести дополнительный массив из отрицательных чисел матрицы 1, (1)-да (2)-нет?');
writeln;write('ответ:');
readln (str);
clrscr;
case str of
1: Begin
//квадрат
//отрицательные элементы
minus (a,tab,i,j,n,m);
end;
2: Begin
end;
end;
end;
end.