Сформировать массив из чисел, больших среднего - 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»
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
СОХРАНИТЬ ССЫЛКУ