USES Crt;
CONST N=6; M=8;
VAR
A:ARRAY[0..N,0..M] OF INTEGER;
I,J,K,FL:BYTE;
BEGIN
ClrScr; Randomize;
{ Заполнение двумерного массива случайным образом и вывод в виде прямоугольной матрицы }
WriteLn(' Значения элементов двумерного массива');
FOR I:=1 TO N DO Begin
FOR J:=1 TO M DO Begin
A[I,J]:=Random(40)-15; Write(A[I,J]:3);
End; WriteLn;
End; WriteLn; FL:=0;
{ Определение строк, в которых ровно два отрицательных элемента }
FOR I:=1 TO N DO Begin
K:=0;
FOR J:=1 TO M DO
IF A[I,J]<0 THEN Inc(K);
IF K=2 THEN Begin WriteLn('В ',I,' строке ровно два отрицательных элемента');FL:=1; End;
End;
IF FL=0 THEN Writeln(' Нет строк, в которых ровно два отрицательных элемента');
END.
VAR
Dr, Md, M, X, Y, I : INTEGER; Ch:CHAR;
BEGIN
Dr:=Detect;
InitGraph(Dr,Md,'c:\tp7\bgi'); IF GraphResult<>0 then HALT(1);
REPEAT
SetBkColor(1); SetColor(6); SetTextStyle(0,0,2);
ClearDevice;
{ Вывод меню }
OutTextXY(50,140,'Пробел - Красим экран');
OutTextXY(50,170,'Стрелка вверх - Столбик поднимается');
OutTextXY(50,200,'Стрелка вниз - Столбик опускается');
OutTextXY(50,230,'ESC - Выход');
REPEAT
Ch:=ReadKey; {разветвление программы по нажатию клавиши}
CASE Ch OF
#32:Begin { Красим экран }
ClearDevice;
SetBkColor(0); SetFillStyle(1,15);
Bar(0,0,GetMaxX div 2,GetMaxY);
SetFillStyle(1,0);
Bar(GetMaxX div 2,0,GetMaxX,GetMaxY);
OutTextXY(70,GetMaxY-25,'Нажмите DEL');
End;
#72:Begin { Ртутный столбик поднимается }
ClearDevice; SetLineStyle(0,0,1); SetBkColor(1); SetColor(4);
X:=GetMaxX div 2; Y:=GetMaxY div 2;
Rectangle(X,Y,X+40,GetMaxY-20);
FOR I:=1 TO120 DO Begin
SetColor(4); SetLineStyle(0,0,3);
Line(X,GetMaxY-20-I,X+40,GetMaxY-20-i);
Delay(250);
End;
OutTextXY(70,GetMaxY-25,'Нажмите DEL');
End;
#80:Begin { Ртутный столбик опускается }
ClearDevice; SetLineStyle(0,0,1); SetBkColor(1); SetColor(4);
X:=GetMaxX div 2; Y:=GetMaxY div 2;
Rectangle(x,y,x+40,GetMaxY-20);
SetFillStyle(1,4);
Bar(x,GetMaxY-140,x+40,GetMaxY-20);
FOR I:=1 TO 117 DO Begin
SetColor(1); SetLineStyle(0,0,3);
Line(x+1,GetMaxY-140+i,x+39,GetMaxY-140+i);
Delay(250);
End;
SetColor(4); OutTextXY(70,GetMaxY-25,'Нажмите DEL');
End;
End;
UNTIL (Ch=#83) or (Ch=#27);
UNTIL (Ch=#27);
CloseGraph;
END.
CONST N=6; M=8;
VAR
A:ARRAY[0..N,0..M] OF INTEGER;
I,J,K,FL:BYTE;
BEGIN
ClrScr; Randomize;
{ Заполнение двумерного массива случайным образом и вывод в виде прямоугольной матрицы }
WriteLn(' Значения элементов двумерного массива');
FOR I:=1 TO N DO Begin
FOR J:=1 TO M DO Begin
A[I,J]:=Random(40)-15; Write(A[I,J]:3);
End; WriteLn;
End; WriteLn; FL:=0;
{ Определение строк, в которых ровно два отрицательных элемента }
FOR I:=1 TO N DO Begin
K:=0;
FOR J:=1 TO M DO
IF A[I,J]<0 THEN Inc(K);
IF K=2 THEN Begin WriteLn('В ',I,' строке ровно два отрицательных элемента');FL:=1; End;
End;
IF FL=0 THEN Writeln(' Нет строк, в которых ровно два отрицательных элемента');
END.