Сформировать массив из чисел, больших среднего - 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.
Решение задачи: «Сформировать массив из чисел, больших среднего»
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.
Объяснение кода листинга программы
Этот код написан на языке Pascal ABC и выполняет следующие действия:
- Создает тип данных MAS, который представляет собой массив из 100 чисел с плавающей точкой.
- Объявляет две переменные типа MAS: A и b.
- Вызывает процедуру VVOD, которая формирует массив A из чисел, больших среднего значения, определенного переменной RA.
- Выводит на экран
НОМЕР ВАРИАНТА=
, а затем считывает значение RA с помощью функции READLN. - Увеличивает значение RA на 50 и формирует массив A из 100 чисел, используя вложенный цикл for.
- Выводит на экран
massiv a
и выводит массив A с помощью функции VIVOD. - Вызывает процедуру BSr, которая вычисляет среднее значение чисел в массиве A и сохраняет его в переменной SRAR.
- Использует вложенный цикл for для подсчета количества чисел в массиве A, которые больше среднего значения.
- Сохраняет эти числа в массив y.
- Выводит на экран
Среднее число:
, значение SRAR, а затем выводит массив y с помощью функции VIVOD. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д