Необходимо получить третий массив, из имеющихся двух массивов а(14) и b(14). посредством перемножения элементов первого массива на элементы второго, взятых в обратном порядке. написать программу в freepascal. все массивы вывести на экран.
Const n=10; var a,b,c:array[1..n] of integer; i:integer; begin Randomize; writeln('A:'); for i:=1 to n do begin a[i]:=random(21); write(a[i]:4); end; writeln; writeln('B:'); for i:=1 to n do begin b[i]:=random(21); write(b[i]:4); end; writeln; for i:=1 to n do c[i]:=a[i]*b[n-i+1]; writeln('C:'); for i:=1 to n do write(c[i]:4); writeln; end.
Вот код, написанный в среде PascalABC.NET 3.2 и проверенный в среде Free Pascal (fpc):
const n=14; var a,b,c:array[1..n] of integer; i:integer; begin Randomize; for i:=1 to n do begin a[i]:=random(199)-99; // [-99;99] Write(a[i],' '); b[i]:=random(199)-99; // [-99;99] end; Writeln; for i:=1 to n do Write(b[i],' '); Writeln; for i:=1 to n do begin c[i]:=a[i]*b[n+1-i]; Write(c[i],' ') end; Writeln end.
В качестве бонуса и вопроса "в воздух" - та же самая программа, написанная с учетом современных возможностей PascalABC.NET 3.2
begin var a:=ArrRandom(14,-99,99); a.Println; var b:=ArrRandom(14,-99,99); b.Println; var c:=a.Zip(b.Reverse,(x,y)->x*y).ToArray; c.Println end.
И обещанный вопрос: Если Паскаль, как система программирования, в настоящее время используется только в целях обучения (следовательно, критерий "fpc шире распространен" отпадает), то зачем учиться на давным-давно устаревшей версии? Чтобы писать было сложнее, больше и допускать при этом больше ошибок?
var a,b,c:array[1..n] of integer;
i:integer;
begin
Randomize;
writeln('A:');
for i:=1 to n do begin
a[i]:=random(21);
write(a[i]:4);
end;
writeln;
writeln('B:');
for i:=1 to n do begin
b[i]:=random(21);
write(b[i]:4);
end;
writeln;
for i:=1 to n do
c[i]:=a[i]*b[n-i+1];
writeln('C:');
for i:=1 to n do write(c[i]:4);
writeln;
end.
Пример:
A:
20 10 18 11 5 9 0 9 10 8
B:
12 7 20 15 8 19 6 16 1 2
C:
40 10 288 66 95 72 0 180 70 96
const
n=14;
var
a,b,c:array[1..n] of integer;
i:integer;
begin
Randomize;
for i:=1 to n do begin
a[i]:=random(199)-99; // [-99;99]
Write(a[i],' ');
b[i]:=random(199)-99; // [-99;99]
end;
Writeln;
for i:=1 to n do Write(b[i],' ');
Writeln;
for i:=1 to n do begin c[i]:=a[i]*b[n+1-i]; Write(c[i],' ') end;
Writeln
end.
Пример
70 92 -92 19 -33 8 10 -37 -87 51 -29 -4 -3 25
20 -69 7 -36 -91 -74 -38 -16 49 -46 93 0 -73 40
2800 -6716 0 1767 1518 392 -160 1406 6438 -4641 1044 -28 207 500
В качестве бонуса и вопроса "в воздух" - та же самая программа, написанная с учетом современных возможностей PascalABC.NET 3.2
begin
var a:=ArrRandom(14,-99,99); a.Println;
var b:=ArrRandom(14,-99,99); b.Println;
var c:=a.Zip(b.Reverse,(x,y)->x*y).ToArray; c.Println
end.
И обещанный вопрос: Если Паскаль, как система программирования, в настоящее время используется только в целях обучения (следовательно, критерий "fpc шире распространен" отпадает), то зачем учиться на давным-давно устаревшей версии? Чтобы писать было сложнее, больше и допускать при этом больше ошибок?