Program Massiv; Uses CRT; Const N = 10; {сколько всего элементов} Var a: Array[1..N] of Real; i, j: Byte; Zero: Byte; Min: Real; Summ: Real;
Procedure Print; Begin For i := 1 to N do Write(a[i]:0:1,' '); Writeln; End;
Procedure CreateMassive; Begin Writeln('Исходная последовательность'); For i := 1 to N do Begin a[i] := Random(4); a[i] := a[i] - 2; {Этот и предыдущий операторы можно объединить} End; Print; Writeln; End;
Begin ClrScr; Randomize; CreateMassive; {-------- находим минимальный и сумму элементов после него -------} Min := a[1]; For i := 2 to N do Begin Summ := Summ + a[i]; If (a[i] < Min) then Begin Min := a[i]; Summ := 0; End; End; Writeln('Минимальный элемент ',Min:0:1,'. Сумма элементов после: ',Summ:0:1); {---------------------- конец блока -------------------------}
{---------- Упорядочиваем по возрастанию модулей ---------} For i := 1 to N do Begin For j := i + 1 to N do If (abs(a[j]) < abs(a[i])) then Begin a[i] := a[i] + a[j]; a[j] := a[i] - a[j]; a[i] := a[i] - a[j]; End; End; Writeln(#13#10,'Отсортировання последовательность'); Print; {--------------- конец блока -----------------------------}
{Находим число нулевых элементов} For i := 1 to N do If a[i] = 0 then Inc(Zero); Write(#13#10,'Нулевых элементов: ',Zero); {--------- конец блока -----------} ReadKey; End.