begin hidecursor; repeat write('Сторона квадрата от 20 до 100 a='); read(a); until a in [20..100]; repeat writeln('Введите 2 числа для определения соотношени m<n:'); read(m,n); until m<n; clearwindow; k:=m/n;//отношение kg:=windowwidth div a+1; //кол. кв. по горизонтали kv:=windowheight div a+1; //по вертикали for j:=1 to kg do for p:=1 to kv do begin for i:=1 to 50 do //рисуем 50 вложенных квадратов в 1 месте begin kvadrat; x1:=trunc(x1+(x2-x1)*k); y1:=trunc(y1+(y2-y1)*k); x2:=trunc(x2+(x3-x2)*k); y2:=trunc(y2+(y3-y2)*k); x3:=trunc(x3+(x4-x3)*k); y3:=trunc(y3+(y4-y3)*k); x4:=trunc(x4+(x1-x4)*k); y4:=trunc(y4+(y1-y4)*k); end; x1:=a*(j-1); y1:=a*(p-1); //на новое место x2:=a*j; y2:=a*(p-1); x3:=a*j; y3:=a*p; x4:=a*(j-1); y4:=a*p; end;
// PascalABC.NET 3.3, сборка 1576 от 16.11.2017 // Внимание! Если программа не работает, обновите версию!
begin var V:=MatrRandom(7,7,-15,15);v.Println; var com:= V.Row(2).Aggregate(BigInteger(1),(x,y)->(x*y)); Writeln('Произведение эл-в 3ей строки = ', com); var cnt := 0; Foreach var x in V.Row(2) do if x > com then inc(cnt); Writeln('Количество элементов, больших чем это произведение = ', cnt); Writeln('Максимальный элемент 3го столбца = ', V.Col(2).Max); end.
Пример: 2 -4 -15 10 -1 2 6 15 -8 11 5 14 10 15 0 15 -10 13 -8 -13 14 14 6 13 -10 9 6 -12 -14 1 8 -9 1 -12 12 15 9 10 -7 -14 6 -3 9 9 -1 -14 1 1 3 Произведение эл-в 3ей строки = 0 Количество элементов, больших чем это произведение = 3 Максимальный элемент 3го столбца = 13
var a,m,n,j,i,x1,y1,x2,y2,x3,y3,x4,y4,kg,kv,p:integer;
k:real;
procedure kvadrat;//рисование 1 квадрата
begin
setpencolor(clBlue);
moveto(x1,y1);
lineto(x2,y2);
lineto(x3,y3);
lineto(x4,y4);
lineto(x1,y1);
end;
begin
hidecursor;
repeat
write('Сторона квадрата от 20 до 100 a=');
read(a);
until a in [20..100];
repeat
writeln('Введите 2 числа для определения соотношени m<n:');
read(m,n);
until m<n;
clearwindow;
k:=m/n;//отношение
kg:=windowwidth div a+1; //кол. кв. по горизонтали
kv:=windowheight div a+1; //по вертикали
for j:=1 to kg do
for p:=1 to kv do
begin
for i:=1 to 50 do //рисуем 50 вложенных квадратов в 1 месте
begin
kvadrat;
x1:=trunc(x1+(x2-x1)*k); y1:=trunc(y1+(y2-y1)*k);
x2:=trunc(x2+(x3-x2)*k); y2:=trunc(y2+(y3-y2)*k);
x3:=trunc(x3+(x4-x3)*k); y3:=trunc(y3+(y4-y3)*k);
x4:=trunc(x4+(x1-x4)*k); y4:=trunc(y4+(y1-y4)*k);
end;
x1:=a*(j-1); y1:=a*(p-1); //на новое место
x2:=a*j; y2:=a*(p-1);
x3:=a*j; y3:=a*p;
x4:=a*(j-1); y4:=a*p;
end;
end.
// Внимание! Если программа не работает, обновите версию!
begin
var V:=MatrRandom(7,7,-15,15);v.Println;
var com:= V.Row(2).Aggregate(BigInteger(1),(x,y)->(x*y));
Writeln('Произведение эл-в 3ей строки = ', com);
var cnt := 0;
Foreach var x in V.Row(2) do
if x > com then inc(cnt);
Writeln('Количество элементов, больших чем это произведение = ', cnt);
Writeln('Максимальный элемент 3го столбца = ', V.Col(2).Max);
end.
Пример:
2 -4 -15 10 -1 2 6
15 -8 11 5 14 10 15
0 15 -10 13 -8 -13 14
14 6 13 -10 9 6 -12
-14 1 8 -9 1 -12 12
15 9 10 -7 -14 6 -3
9 9 -1 -14 1 1 3
Произведение эл-в 3ей строки = 0
Количество элементов, больших чем это произведение = 3
Максимальный элемент 3го столбца = 13
Правил