Program enot; Var a: array [1..22] of integer; i,h,n,k,c:integer; l:real; begin for i:=1 to 22 do a[i]:=random(51)-25; for i:=1 to 22 do begin if a[i]>0 then begin c:=c+a[i]; k:=k+1; end; l:=c/k; n:=0; h:=0; if a[i]<0 then h:=h+1; if a[i]=0 then n:=n + 1; end; writeln(a[i],'среднее арифметическое= ',l:2:2,'; количество отрицательных = ', h,'; количество равных нулю = ',n); end.
Вот и вторая задача: Program enot; Var a: array [1..4,1..4] of integer; i,j,s,p,h:integer; o:real; begin for i:= 1 to 4 do for j:= 1 to 4 do a[i,j]:= random(25)-12; p:=1; for i:= 1 to 4 do begin s:=s+a[i,3]; p:=p*a[i,i]; end; writeln('summa= ',s,'; произведение= ',p); for i:= 1 to 4 do for j:= 1 to 4 do begin h:=h+a[i,j]; o:=h/16; end; writeln('среднее арифметическое= ',o); end.
// PascalABC.NET 3.2, сборка 1389 от 01.03.2017 // Внимание! Если программа не работает, обновите версию!
begin var F:real->real:=x->2*x*x-6*x+8; var a,b:real; Write('a b= '); Read(a,b); Writeln('Min=',Range(a,b,9).Select(x->F(x)).Min) end.
Пример a b= -2 6 Min=3.50617283950617
2. Решение "по-школьному" ("дедушкин метод")
function F(x:real):real; begin F:=2*x*x-6*x+8 end;
var a,b,y,h,min:real; i:integer; begin Write('a b= '); Read(a,b); h:=(b-a)/9; min:=F(a); for i:= 1 to 9 do begin y:=F(a+i*h); if y<min then min:=y end; Writeln('Min=',min) end.
a=5-20/2 > a=-5
-5 меньше чем 20
значит c= b-a = 20 - (-5) = 25