Лучшие помощники
- Megamozg 2205 б
- Matalya1 1800 б
- DevAdmin 1720 б
- arkasha_bortnikov 900 б
- Dwayne_Johnson 870 б
16 мая 2023 23:03
564
Напишите программу, которая в последовательности целых чисел определяет среднее арифметическое положительных и отрицательных чисел. Программа получает на вход целые числа в интервале от -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
Остались вопросы?
Еще вопросы по категории Информатика
На каком языке программирования написан дневник ру...
2. Тактильную информацию человек получает посредством: 1)специальных приборов; 3)органов слуха; 2)органов осязания; 4)термометра. ...
Что такое форматирование ( в частности для жесткого диска или дискеты) и его виды....
В данном фрагменте программы program error; begin SuMmA:=25-14; end. ошибкой является: a. некорректное имя переменной b. не определенное имя пер...
ПОМОГИТЕ ПОЖАЛУЙСТА 1.Составить таблицы сложения и умножения в двоичной системе счисления и выполнить вычисления: а) 1110 + 101; б) 10101 - 11; в) 10...