Лучшие помощники
- Megamozg 2205 б
- Matalya1 1800 б
- DevAdmin 1720 б
- arkasha_bortnikov 900 б
- Dwayne_Johnson 865 б
16 мая 2023 23:03
385
Напишите программу, которая в последовательности целых чисел определяет среднее арифметическое положительных и отрицательных чисел. Программа получает на вход целые числа в интервале от -50 до 50, среди которых есть отрицательные и положительные числа. Количество чисел вводится с клавиатуры не превышает 1000. Программа должна вывести одно число: среднее арифметическое положительных и отрицательных чисел с точностью до одного знака после запятой. Если либо положительных, либо отрицательных чисел в последовательности нет, то программа должна вывести одно слово NO. Язык Паскаль.
1
ответ
Привет! Вот готовый код на языке Паскаль:
```
program Average;
var
num, countPos, countNeg, sumPos, sumNeg: integer;
avgPos, avgNeg: real;
begin
countPos := 0;
countNeg := 0;
sumPos := 0;
sumNeg := 0;
repeat
readln(num);
if num > 0 then
begin
countPos := countPos + 1;
sumPos := sumPos + num;
end
else if num < 0 then
begin
countNeg := countNeg + 1;
sumNeg := sumNeg + num;
end;
until num = 0;
if (countPos = 0) or (countNeg = 0) then
writeln('NO')
else
begin
avgPos := sumPos / countPos;
avgNeg := sumNeg / countNeg;
writeln('Average of positive numbers: ', avgPos:0:1);
writeln('Average of negative numbers: ', avgNeg:0:1);
end;
end.
```
Здесь мы используем переменные `countPos` и `countNeg`, чтобы подсчитать количество положительных и отрицательных чисел соответственно, и переменные `sumPos` и `sumNeg`, чтобы найти сумму положительных и отрицательных чисел соответственно. Затем мы используем эти значения, чтобы вычислить среднее арифметическое чисел каждого типа и выводим результаты. Если в последовательности нет положительных или отрицательных чисел, мы выводим "NO".
```
program Average;
var
num, countPos, countNeg, sumPos, sumNeg: integer;
avgPos, avgNeg: real;
begin
countPos := 0;
countNeg := 0;
sumPos := 0;
sumNeg := 0;
repeat
readln(num);
if num > 0 then
begin
countPos := countPos + 1;
sumPos := sumPos + num;
end
else if num < 0 then
begin
countNeg := countNeg + 1;
sumNeg := sumNeg + num;
end;
until num = 0;
if (countPos = 0) or (countNeg = 0) then
writeln('NO')
else
begin
avgPos := sumPos / countPos;
avgNeg := sumNeg / countNeg;
writeln('Average of positive numbers: ', avgPos:0:1);
writeln('Average of negative numbers: ', avgNeg:0:1);
end;
end.
```
Здесь мы используем переменные `countPos` и `countNeg`, чтобы подсчитать количество положительных и отрицательных чисел соответственно, и переменные `sumPos` и `sumNeg`, чтобы найти сумму положительных и отрицательных чисел соответственно. Затем мы используем эти значения, чтобы вычислить среднее арифметическое чисел каждого типа и выводим результаты. Если в последовательности нет положительных или отрицательных чисел, мы выводим "NO".
0
·
Хороший ответ
16 мая 2023 23:06
Остались вопросы?
Еще вопросы по категории Информатика
максимальная скорость передачи данных в локальной сети 100 мега бит в секунду,сколько страниц можно передать в секунду, если одна страница текста соде...
Длина Московской кольцевой автомобильной дороги —109 километров. Байкер Вася стартует с нулевого километра МКАД и едет со скоростью vкилометров в час....
Пусть А= "Ане нравятся уроки математики", а B= "Ане нравятся уроки химии" выразите следующие формулы на обычном языке. ------------ ------------ -----...
В ряду из десяти клеток правее Робота некоторые клетки закрашены. Составьте алгоритм, который закрашивает клетки: а) ниже каждой закрашенной клетки. б...
1.Почему следует придерживаться единого стиля при создании текстового документа? 2. Что такое шаблон документа? 3.Чем маркированный список отличаетс...