Сформировать массив из чисел, больших среднего - Pascal ABC

Формулировка задачи:

Проверьте, правильно ли работает программа. А именно PROCEDURE BSr, и правильность передачи переменных в основную программу. ЗАДАНИЕ: Сформировать массив из чисел, больших среднего.
Program oMassiv;
TYPE MAS=ARRAY [1..100] OF REAL;
 VAR A,X:MAS;
 VAR RA:INTEGER;
 
     PROCEDURE VVOD (VAR kol:INTEGER; VAR X:MAS);
 VAR I,K,N,M: INTEGER;
 BEGIN
  WRITE(' НОМЕР ВАРИАНТА= ');
  READLN (M);
  kol :=M+50;
  FOR I:=1 TO (kol) DO
   BEGIN
   N:=(-(20+M));
   K:=(20+M);
    X[I]:=N+(K-N)*RANDOM(I);
   END;
   
 END;
 
     PROCEDURE VIVOD (N:INTEGER;  X: MAS);
 VAR I,M:INTEGER;
 BEGIN
   FOR I:=1 TO N DO WRITE (' (',i:2,')=',x[i]:5:2);
   WRITELN()
 END;
 
     PROCEDURE  BSr (N:INTEGER;  X: MAS);
 VAR I,M,KOL:INTEGER; S,SRAR:REAL;
 
 BEGIN
 S:=S+X[I];
 SRAR:=S/KOL;
 WRITELN(SRAR);
 FOR I:=1 TO N DO
   IF X[I] >SRAR THEN WRITE (' (',i:2,')=',x[i]:5:2);
   WRITELN()
 
 END;
 
 {Основная программа}
 BEGIN
  VVOD(RA, A);
  WRITELN ('massiv a');
  VIVOD (RA, A);
  BSr(RA, A);
 END.

Код к задаче: «Сформировать массив из чисел, больших среднего - Pascal ABC»

textual
program oMassiv;
 
type
  MAS = ARRAY [1..100] OF REAL;
 
var
  A, b: MAS;
 
var
  RA: INTEGER;
 
procedure VVOD(var kol: INTEGER; var X: MAS);
var
  I, K, N, M: INTEGER;
begin
  WRITE(' НОМЕР ВАРИАНТА= ');
  READLN(M);
  kol := M + 50;
  for I := 1 TO kol DO
  begin
    N := (-(20 + M));
    K := (20 + M);
    X[I] := N + (K - N) * RANDOM(I);
  end;
  
end;
 
procedure VIVOD(N: INTEGER; X: MAS);
var
  I, M: INTEGER;
begin
  for I := 1 TO N DO 
    WRITE(' (', i:2, ')=', x[i]:8:2);
  WRITELN;
end;
 
procedure BSr(N: INTEGER; X: MAS; var y: mas);
var
  I, M, KOL: INTEGER;
  S, SRAR: REAL;
begin
  for I := 1 TO N DO
    S := S + X[I];
  SRAR := S / n;
  WRITELN('Среднее число: ', SRAR);
  m := 0;
  for I := 1 TO N DO
    if X[I] > SRAR THEN 
    begin
      inc(m);
      y[m] := x[i];
    end;
  for I := 1 TO m DO
    WRITE(' (', i:2, ')=', y[i]:8:2);  
  WRITELN;      
end;
 
 {Основная программа}
begin
  VVOD(RA, A);
  WRITELN('massiv a');
  VIVOD(RA, A);
  BSr(RA, A, b);
end.

5   голосов, оценка 4.200 из 5


СОХРАНИТЬ ССЫЛКУ