//Pascal var A: array [1 .. 5, 1 .. 4] of integer; V: array [1 .. 20] of integer; i, j, z: byte; SUM1, SUM2, SUM3, MIN: integer; begin randomize; writeln('***Сгенерированный массив***'); SUM1 := 0; SUM2 := 0; SUM3 := 0; for i := 1 to 5 do begin for j := 1 to 4 do begin A[i, j] := random(30); if ((A[i, j] >= 0) and (A[i, j] <= 5)) then SUM1 := SUM1 + A[i, j]; if ((A[i, j] >= 5) and (A[i, j] <= 15)) then SUM2 := SUM2 + A[i, j]; write(A[i, j]:6) end; writeln; end; writeln('Сумма элементов [0 5] = ', SUM1); writeln('Сумма элементов [5 15] = ', SUM2); MIN := A[3, 1]; for j := 1 to 4 do if A[3, j] < MIN then MIN := A[3, j]; writeln('Минимальный элемент в третьей строке = ', MIN); writeln('***Вектор***'); j := 1; z := 0; while (z < 20) do begin for i := 1 to 5 do begin z := z + 1; V[z] := A[i, j]; end; j := j + 1; end; for i := 1 to 20 do writeln(V[i]:6); for i := 20 downto 10 do SUM3 := SUM3 + V[i]; writeln('Сумма последних 10-ти элементов = ', SUM3); readln; end.
1. Современное решение (быстро, просто и легко) // PascalABC.NET 3.2, сборка 1439 от 09.05.2017 // Внимание! Если программа не работает, обновите версию!
begin Writeln('Ср.арифм: ',ReadSeqRealWhile(k->k>=0).Average:0:4) end.
Пример 23 11.7 0 12.9 16.7 13 -12 Ср.арифм: 12.8833
2. Школьный вариант в стиле "1983г." (Turbo Pascal 7.0)
uses Crt; var n:integer; x,a:real; begin a:=0; n:=0; repeat Read(x); if x>=0 then begin n:=n+1; a:=a+x end until x<0; a:=a/n; Writeln('Ср.арифм: ',a:0:4); ReadKey end.
var
A: array [1 .. 5, 1 .. 4] of integer;
V: array [1 .. 20] of integer;
i, j, z: byte;
SUM1, SUM2, SUM3, MIN: integer;
begin
randomize;
writeln('***Сгенерированный массив***');
SUM1 := 0; SUM2 := 0; SUM3 := 0;
for i := 1 to 5 do
begin
for j := 1 to 4 do
begin
A[i, j] := random(30);
if ((A[i, j] >= 0) and (A[i, j] <= 5)) then SUM1 := SUM1 + A[i, j];
if ((A[i, j] >= 5) and (A[i, j] <= 15)) then SUM2 := SUM2 + A[i, j];
write(A[i, j]:6)
end;
writeln;
end;
writeln('Сумма элементов [0 5] = ', SUM1);
writeln('Сумма элементов [5 15] = ', SUM2);
MIN := A[3, 1];
for j := 1 to 4 do if A[3, j] < MIN then MIN := A[3, j];
writeln('Минимальный элемент в третьей строке = ', MIN);
writeln('***Вектор***');
j := 1;
z := 0;
while (z < 20) do
begin
for i := 1 to 5 do
begin
z := z + 1;
V[z] := A[i, j];
end;
j := j + 1;
end;
for i := 1 to 20 do writeln(V[i]:6);
for i := 20 downto 10 do SUM3 := SUM3 + V[i];
writeln('Сумма последних 10-ти элементов = ', SUM3);
readln;
end.
// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!
begin
Writeln('Ср.арифм: ',ReadSeqRealWhile(k->k>=0).Average:0:4)
end.
Пример
23 11.7 0 12.9 16.7 13 -12
Ср.арифм: 12.8833
2. Школьный вариант в стиле "1983г." (Turbo Pascal 7.0)
uses Crt;
var
n:integer;
x,a:real;
begin
a:=0;
n:=0;
repeat
Read(x);
if x>=0 then begin
n:=n+1;
a:=a+x
end
until x<0;
a:=a/n;
Writeln('Ср.арифм: ',a:0:4);
ReadKey
end.