Задан двумерный массив, состоящий из 10 строк и 10 столбцов. сконструируйте программу, которая бы подсчитывала положительные и отрицательные элементы и записывала их в два разных массива
const n=10; var a:array[1..n,1..n] of integer; i,j,kp,kq:integer; p,q:array of integer; // динамические массивы begin Randomize; Writeln('Исходный массив из случайных чисел'); kp:=0; kq:=0; SetLength(p,n*n); SetLength(q,n*n); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=Random(101)-50; // диапазон [-50;50] Write(a[i,j]:4); if a[i,j]>0 then begin p[kp]:=a[i,j]; Inc(kp) end else if a[i,j]<0 then begin q[kq]:=a[i,j]; Inc(kq) end end; Writeln end; SetLength(p,kp); SetLength(q,kq); // отрегулировали по заполнению Writeln('Положительные'); for i:=0 to kp-1 do Write(p[i],' '); Writeln; Writeln('Отрицательные'); for i:=0 to kq-1 do Write(q[i],' '); Writeln end.
//Решение с использованием длинной арифметики var i, j, sum, len, rem: integer; mult: array[1..1205] of integer; begin len := 1; mult[1] := 1; i := 100; while i < 1000 do begin for j := 1 to len do begin rem := mult[j] * i + rem; mult[j] := rem mod 10; rem := rem div 10; end; while rem > 0 do begin inc(len); mult[len] := rem mod 10; rem := rem div 10; end; sum := sum + i; i := i + 2; end; writeln('Сумма: ', sum); write('Произведение: '); for i := len downto 1 do write(mult[i]); writeln; end.
Результат работы программы: Сумма: 247050 Произведение: 11663575674444359823002008139390746528142707402328361705647495301216245827892256323421573853031635648105175857107321864360366071385039128549679496343675509640183219826717346573458260381851930244150425562315833417515264123698581740276921937117732298873364203269398167251131992557619396626253824845619285980851485012131859200089180731617159967796785692496658820266554970195579987101761437467345295469560091019643416890744175485355715583034412689664621367823158491721734017238669568797130683826947437814864890599291484009747561514288528353178159298856645624289518581586947168677504742711452824976368290519747367284033226821443792754573564848344600041433089899538479032717299413920051538113896509134682791976736868238046387230383008696853107977931851651379555533347652931008271572588724198961970056163028633888796670948358527288343719100865852117339478785474064397937004993302565523495403857150309972891503340949896943795594807214141508464167055846685872109706922589562538698747726222566785521882450614299594376824656706451033378744188256788426310583732611392640652066952551824890922829689995132928000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016 begin var a:=MatrixRandom(7,7,0,9); var k:=0; for var i:=0 to 6 do begin for var j:=0 to 6 do begin Write(a[i,j]:3); if a[i,j] in [1..5] then Inc(k) end; Writeln end; Writeln('Кол-во элементов на [1,5]: ',k) end.
const n=7; var a:array[1..n,1..n] of integer; i,j,k:integer; begin Randomize; k:=0; for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=Random(10); Write(a[i,j]:3); if a[i,j] in [1..5] then Inc(k) end; Writeln end; Writeln('Кол-во элементов на [1,5]: ',k) end.
const
n=10;
var
a:array[1..n,1..n] of integer;
i,j,kp,kq:integer;
p,q:array of integer; // динамические массивы
begin
Randomize;
Writeln('Исходный массив из случайных чисел');
kp:=0; kq:=0;
SetLength(p,n*n); SetLength(q,n*n);
for i:=1 to n do begin
for j:=1 to n do begin
a[i,j]:=Random(101)-50; // диапазон [-50;50]
Write(a[i,j]:4);
if a[i,j]>0 then begin p[kp]:=a[i,j]; Inc(kp) end
else
if a[i,j]<0 then begin q[kq]:=a[i,j]; Inc(kq) end
end;
Writeln
end;
SetLength(p,kp); SetLength(q,kq); // отрегулировали по заполнению
Writeln('Положительные');
for i:=0 to kp-1 do Write(p[i],' '); Writeln;
Writeln('Отрицательные');
for i:=0 to kq-1 do Write(q[i],' '); Writeln
end.
Пример
Исходный массив из случайных чисел
46 47 -8 -32 36 41 -49 -15 25 -33
18 15 1 15 21 43 30 41 -15 -21
-48 15 -5 17 19 30 -38 0 10 11
-16 10 48 -30 -40 -49 -48 24 18 24
47 45 50 44 -3 -15 19 29 -13 38
-23 3 -23 19 19 -19 1 26 0 -45
28 1 26 -36 34 -43 18 -19 4 19
41 -45 -27 12 -18 -43 16 1 -31 -17
-39 -16 -37 22 -17 31 -17 -22 1 30
0 -24 -27 12 46 -4 -32 36 -40 -11
Положительные
46 47 36 41 25 18 15 1 15 21 43 30 41 15 17 19 30 10 11 10 48 24 18 24 47 45 50 44 19 29 38 3 19 19 1 26 28 1 26 34 18 4 19 41 12 16 1 22 31 1 30 12 46 36
Отрицательные
-8 -32 -49 -15 -33 -15 -21 -48 -5 -38 -16 -30 -40 -49 -48 -3 -15 -13 -23 -23 -19 -45 -36 -43 -19 -45 -27 -18 -43 -31 -17 -39 -16 -37 -17 -17 -22 -24 -27 -4 -32 -40 -11