Каким должен быть заголовок таблицы? 1.Максимально длинным, наиболее подробно описывающий содержимое таблицы 2.Крупным, ярким 3.Кратким и не содержащим сокращений и лишних слов
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(15,-28,25); a.Println; Writeln('П = ',a.Aggregate(BigInteger(1),(p,q)->p*q)); Writeln('Положительных элементов: ',a.Where(t->t>0).Count); var imin:=a.IndexMin; Writeln('Номер минимального элемента- ',imin+1, ', его значение равно ',a[imin]) end.
Пример 4 10 23 9 22 -6 -28 -24 20 -28 12 -18 10 -24 -21 П = -447760579166208000 Положительных элементов: 8 Номер минимального элемента- 7, его значение равно -28
procedure FillArray(n:integer; var a:tA); var i:integer; begin Randomize; for i:=1 to n do a[i]:=Random(21)-10 end;
procedure PrintArray(n:integer; a:tA); var i:integer; begin for i:=1 to n do Write(a[i],' '); Writeln end;
function PartSum(n:integer; a:tA):integer; var i,i1,i2,s:integer; begin i:=1; while (a[i]<=0) and (i<=n) do i:=i+1; if i>n then begin PartSum:=0; exit end; i1:=i+1; i:=n; while (i>i1) and (a[i]<=0) do i:=i-1; i2:=i-1; if i2<=i1 then PartSum:=0 else begin s:=0; for i:=i1 to i2 do s:=s+a[i] end; PartSum:=s end;
procedure SwapZeros(n:integer; var a:tA); var i,j:integer; begin for i:=1 to n do if a[i]=0 then begin for j:=i downto 2 do a[j]:=a[j-1]; a[1]:=0; end; end;
var n:integer; a:tA;
begin Write('n= '); Read(n); FillArray(n,a); PrintArray(n,a); Writeln('S=',PartSum(n,a)); SwapZeros(n,a); PrintArray(n,a) end.
В качестве бонуса - современное решение без всех этих долгописаний.
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-10,10); a.Println; var i:=a.IndexesOf(t->t>0); Writeln('S=',a[i.First+1:i.Last].Sum); a:=(a.Where(t->t=0)+a.Where(t->t<>0)).ToArray; a.Println end.
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(15,-28,25); a.Println;
Writeln('П = ',a.Aggregate(BigInteger(1),(p,q)->p*q));
Writeln('Положительных элементов: ',a.Where(t->t>0).Count);
var imin:=a.IndexMin;
Writeln('Номер минимального элемента- ',imin+1,
', его значение равно ',a[imin])
end.
Пример
4 10 23 9 22 -6 -28 -24 20 -28 12 -18 10 -24 -21
П = -447760579166208000
Положительных элементов: 8
Номер минимального элемента- 7, его значение равно -28