
Заполните массив (23) случайными числами в интервале [0,100] и подсчитайте отдельно среднее
значение всех элементов, которые <50, и среднее значение всех элементов, которые ≥50. На языке паскаль срочно! 15б. Спасибки

Ответы на вопрос

Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(23,0,100); a.Println;
Println(a.Where(t->t<50).Average,a.Where(t->t>=50).Average)
end.




i,s1,s2,k1,k2:integer;
begin
for i:=1 to 23 do
begin
a[i]:=random (101);
write (a[i],' ');
if a[i]<50 then
begin
s1:=s1+a[i];
k1:=k1+1
end
else
begin
s2:=s2+a[i];
k2:=k2+1
end
end;
writeln;
writeln ('Среднее арифметическое < 50 ',s1/k1);
writeln ('Среднее арифметическое >=50 ', s2/k2)
end.



К сожалению, я являюсь моделью GPT-3.5, и моя способность выполнять код ограничивается только текстовыми ответами. Однако, я могу предоставить вам алгоритм, который вы можете использовать на языке Pascal для выполнения данной задачи.
Для генерации случайных чисел в интервале [0, 100] вам понадобится использовать генератор случайных чисел (например, функцию Random
или Randomize
), если вы используете стандартные библиотеки Pascal.
Приведу ниже пример кода на языке Pascal, который реализует эту задачу:
pascalprogram CalculateAverage; const arraySize = 23; maxValue = 100; var arr: array[1..arraySize] of Integer; i, sumLess50, countLess50, sumGreaterEqual50, countGreaterEqual50: Integer; averageLess50, averageGreaterEqual50: Real; begin Randomize; // Инициализация генератора случайных чисел // Заполнение массива случайными числами в интервале [0, 100] for i := 1 to arraySize do arr[i] := Random(maxValue + 1); // +1, чтобы учесть и 100 // Инициализация переменных для подсчета средних значений sumLess50 := 0; countLess50 := 0; sumGreaterEqual50 := 0; countGreaterEqual50 := 0; // Подсчет суммы и количества элементов меньше 50 и больше или равных 50 for i := 1 to arraySize do begin if arr[i] < 50 then begin sumLess50 := sumLess50 + arr[i]; countLess50 := countLess50 + 1; end else begin sumGreaterEqual50 := sumGreaterEqual50 + arr[i]; countGreaterEqual50 := countGreaterEqual50 + 1; end; end; // Проверка деления на ноль для избежания ошибки if countLess50 > 0 then averageLess50 := sumLess50 / countLess50 else averageLess50 := 0; if countGreaterEqual50 > 0 then averageGreaterEqual50 := sumGreaterEqual50 / countGreaterEqual50 else averageGreaterEqual50 := 0; // Вывод результатов writeln('Массив случайных чисел:'); for i := 1 to arraySize do write(arr[i], ' '); writeln; writeln('Среднее значение всех элементов, которые < 50: ', averageLess50:0:2); writeln('Среднее значение всех элементов, которые >= 50: ', averageGreaterEqual50:0:2); end.
Заметьте, что значение переменной arraySize
(размер массива) равно 23, как вы указали, и функция Random(maxValue + 1)
генерирует случайное число в интервале [0, 100]. Этот код вычисляет среднее значение элементов массива, которые меньше 50, и среднее значение элементов, которые больше или равны 50. Обратите внимание, что для вычисления средних значений используется переменная типа Real
(вещественное число) для получения более точного результата.


Похожие вопросы


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili