1нахождение суммы (произведения, количества) элементов ( заданным свойством). заполнить одномерный массив а из 10 элементов случайными числами из отрезка [-20,50]. любую на массив можно разбить на . так, в данной две : 1. формирование массива; 2. вывод массива на экран. поэтому программа решения данной будет содержать процедуры: vvod и vivod. заметим, что заполнение и вывод на экран массива можно осуществить только поэлементно, то есть можно сначала присвоить значение первому элементу, затем второму и так далее. поскольку известно количество повторений команды ввода или вывода элементов массива, то при составлении программ на массивы используется цикл с параметром: program massiv1; uses crt; type mas=array [1..10] of real; var a: mas; procedure vvod(var x: mas); var i: integer; begin for i: =1 to 10 do x[i]: =30*random+20; {(b-a)*random+a} end; procedure vivod(var x: mas); var i: integer; begin for i: =1 to 10 do write(x[i]: 8: 2) end; begin vvod(a); vivod(a); end. дополним программу, решив : найти среднее арифметическое положительных элементов массива процедурой: procedure sr_arif(var x: mas; var c: real); var i,k: integer; begin c: =0; k: =0; for i: =1 to 10 do if x[i]> 0 then begin c: =c+x[i]; k: =k+1 end; c: =c/k end; в программу добавятся строки: sr_arif(a,s); writeln('среднее ариф. положительных элементов = ',s: 8: 2); модифицируйте программу для решения следующих : 1)найти сумму элементов, кратных заданному числу; 2)найти количество отрицательных элементов. 3)найти произведение элементов, меньших десяти. : это 10-11 класс.
Program massiv1;
Uses Crt;
Type Mas=Array [1..10] of integer;
Var a:Mas; d,s:integer;
Procedure Vvod(Var x:Mas);
Var i:Integer;
Begin For i:=1 To 10 Do
x[i]:=Random(50);
End;
Procedure Vivod(Var x:Mas);
Var i:Integer;
Begin
For i:=1 To 10 do Write(x[i]:4);
writeln;
End;
Procedure p1(Var x:Mas; d:integer; Var s:integer);
Var i:Integer;
Begin
s:=0;
For i:=1 To 10 Do
If x[i] mod d=0 Then s:=s+x[i];
End;
Begin
Vvod(a);
Vivod(a);
write('d = ');
readln(d);
p1(a,d,s);
Writeln('Сумма элементов, кратных ',d,' = ',s);
End.
Пример:
4 18 37 15 45 4 9 48 47 27
d = 3
Сумма элементов, кратных 3 = 162
2)
Program massiv2;
Uses Crt;
Type Mas=Array [1..10] of Real;
Var a:Mas; k:integer;
Procedure Vvod(Var x:Mas);
Var i:Integer;
Begin For i:=1 To 10 Do
x[i]:=30*Random-20;{(B-A)*random+A}
End;
Procedure Vivod(Var x:Mas);
Var i:Integer;
Begin
For i:=1 To 10 do Write(x[i]:8:2);
writeln;
End;
Procedure p2(Var x:Mas;Var k:integer);
Var i:Integer;
Begin
k:=0;
For i:=1 To 10 Do
If x[i]<0 Then k:=k+1;
End;
Begin
Vvod(a);
Vivod(a);
p2(a,k);
Writeln('Количество отрицательных элементов = ',k);
End.
Пример:
-13.77 -11.34 -2.35 7.69 -18.85 -12.48 -6.11 -17.10 7.12 -9.60
Количество отрицательных элементов = 8
3)
Program massiv3;
Uses Crt;
Type Mas=Array [1..10] of Real;
Var a:Mas; p:real;
Procedure Vvod(Var x:Mas);
Var i:Integer;
Begin For i:=1 To 10 Do
x[i]:=30*Random;{(B-A)*random+A}
End;
Procedure Vivod(Var x:Mas);
Var i:Integer;
Begin
For i:=1 To 10 do Write(x[i]:8:2);
writeln;
End;
Procedure p3(Var x:Mas;Var p:real);
Var i:Integer;
Begin
p:=1;
For i:=1 To 10 Do
If x[i]<10 Then p:=p*x[i];
End;
Begin
Vvod(a);
Vivod(a);
p3(a,p);
Writeln('Произведение элементов, меньших десяти = ',p:8:3);
End.
Пример:
24.36 22.50 3.31 5.50 21.68 8.22 19.89 24.86 2.69 23.78
Произведение элементов, меньших десяти = 402.027