const
AOper: array [0..3] of string = ('+', '-', '*', '/');
var
a, b, Oper: Integer;
r: Real;
begin
Randomize; // инициализация датчика случайных чисел
a := Random (1001);
b := Random (1001);
Oper := Random (4);
case Oper of
0: r := a + b;
1: r := a - b;
2: r := a * b;
3:if b <> 0 then begin
r := a / b;
end else begin
WriteLn ('Произошла ошибка при делении на ноль');
Exit;
end
else r := -1;
end;
WriteLn (a);
WriteLn (b);
WriteLn (Aoper [Oper]);
if (r >= 0) and (r - Trunc (r) = 0) then begin // если в результате получилось положительное целое число
WriteLn ('yes');
WriteLn (r :6 :0);
end else
WriteLn (' no');
ReadLn;
end.
Объяснение:
r - Trunc (r) // это выделение дробной части числа
a: array [1..15] of integer;
avg, avgpol, avgotr: real;
i, k1, k2: byte;
begin
avg := 0; avgpol := 0; avgotr := 0;
writeln('Massiv:');
Randomize;
for i:=1 to 15 do
begin
a[i]:=random(20)-10;
write(a[i], ' ');
avg:=avg + a[i];
if a[i] > 0 then
begin
avgpol := avgpol + a[i];
inc(k1);
end;
if a[i] < 0 then
begin
avgotr := avgotr + a[i];
inc(k2);
end;
end;
avg:=avg/15;
avgpol:= avgpol/k1;
avgotr:= avgotr/k2;
writeln;
writeln('Srednee massiva = ', avg:3:2);
writeln('Srednee polozh. elementov = ', avgpol:3:2);
writeln('Srednee otric. elementov = ', avgotr:3:2);
readln;
end.