Как составить программу в паскале для вычисления среднего арифметического

Перейти к содержанию

Функция, вычисляющая среднее арифметическое элементов массива

Просмотров 11.9к. Обновлено 15 октября 2021

Написать функцию, которая вычисляет среднее арифметическое элементов массива, переданного ей в качестве аргумента.

Среднее арифметическое определяется как сумма элементов, деленная на их количество.

Параметром функции является целочисленный массив, возвращает она вещественное число.

В теле функции элементы перебираются в цикле, каждый добавляется к переменной, в которой накапливается сумма. После завершения работы цикла полученная сумма делится на количество элементов в массиве. Полученное значение возвращается из функции в основную ветку программы. Здесь оно может быть присвоено какой-либо переменной или сразу выведено на экран.

Pascal

паскаль среднее арифметическое чисел


const N = 10;
type
arrtype = array[1..N] of integer;
var
arr: arrtype;
i: byte;
avrg: real;

procedure fill_array(var a: arrtype);
begin
for i:=1 to N do a[i]:=random(50)+1;
end;

function average(a:arrtype):real;
var sum:integer;
begin
sum := 0;
for i:=1 to N do sum:=sum+a[i];
average := sum / n;
end;

begin
randomize;
fill_array(arr);
for i:=1 to N do write(arr[i]:4);
writeln;
avrg := average(arr);
writeln(avrg:3:2);
end.



3 31 24 25 42 5 26 39 27 43
26.50

В данном случае, кроме функции, определяющей среднее арифметическое, используется процедура заполнения массива случайными числами.

Язык Си


#include < stdio.h>
#define N 10
float average(int arr[]);

main() {
int a[N];
int i, min1, min2, buff;
srand(time(NULL));
for (i=0; i< N; i++) {
a[i] = rand() % 100;
printf("%3d", a[i]);
}
printf("n %.2fn", average(a));
}

float average(int arr[]) {
int sum, i;
sum = 0;
for (i=0; i< N; i++) sum += arr[i];
return sum/N;
}



82 35 2 32 56 55 33 41 99 45
48.00

Python

среднее арифметическое python


from random import random
N = 10

def average(a):
s = 0
for i in range(N):
s += a[i]
return s/N

arr = [0] * N
for i in range(N):
arr[i] = int(random() * 100)

b = average(arr)
print(arr)
print(b)



[30, 63, 67, 29, 29, 54, 30, 29, 41, 0]
37.2

В языке Python есть встроенная функция sum(), которая возвращает сумму элементов переданного ей списка. Поэтому код

s = 0
for i in range(N):
s += a[i]
можно заменить на

s = sum(a)

1 / 1 / 5

Регистрация: 21.11.2009

Сообщений: 87

1

Написать программу, вычисляющую среднее арифметическое

29.03.2010, 20:45. Показов 36242. Ответов 11


Студворк — интернет-сервис помощи студентам

Написать программу, вычисляющую среднее арифметическое последовательности положительных чисел. Числа вводятся с клавиатуры, ввод нуля – это признак конца последовательности



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

29.03.2010, 20:45

11

NoNameUser

6 / 6 / 1

Регистрация: 29.03.2010

Сообщений: 29

29.03.2010, 21:11

2

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program zzz;
var
i:integer;
z:real;
begin
writeln('Введите числа');
while z>0 do
begin
readln(z);
z:=z+z;
i:=i+1;
end;
z:=z/i;
writeln('Среднее арифметическое',z);
readln;
end.

Вроде так..



1



1 / 1 / 5

Регистрация: 21.11.2009

Сообщений: 87

29.03.2010, 21:19

 [ТС]

3

деление на ноль выдает



0



6 / 6 / 1

Регистрация: 29.03.2010

Сообщений: 29

29.03.2010, 21:21

4

Обрати внимание на 10ю строчку
readln(z);
Я первый раз забыл написать.потом исправил.



1



1 / 1 / 5

Регистрация: 21.11.2009

Сообщений: 87

29.03.2010, 21:25

 [ТС]

5

все равно пишет деление на ноль и останавливается на 14 строке



0



NoNameUser

6 / 6 / 1

Регистрация: 29.03.2010

Сообщений: 29

29.03.2010, 21:27

6

А,понял.Перед while присвой z:=1;

Pascal
1
2
3
4
....
z:=1;
while z>0 do
....



1



yuivanenko

34 / 33 / 12

Регистрация: 09.01.2010

Сообщений: 202

29.03.2010, 21:31

7

Выдает не деление на ноль, а ноль (т.к. while сразу не работает). Лови нормальную программу

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 var
i:integer;
z,s:real;
begin
s:=0;i:=0;
writeln('vvedite chisla');
repeat
readln(z);
S:=S+z;
i:=i+1;
until z=0;
z:=S/(i-1);
writeln('Srednee arifm',z:0:3);
readln;
end.



1



NoNameUser

6 / 6 / 1

Регистрация: 29.03.2010

Сообщений: 29

29.03.2010, 21:34

8

Давно ничего на паскале не писал..
Вот рабочая

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program zzz;
var
i:integer;
z:real;
c:real;
begin
writeln('Введите числа');
z:=1;
while z>0 do
begin
readln(z);
c:=c+z;
i:=i+1;
end;
c:=c/i;
writeln('Среднее арифметическое',c);
readln;
end.



1



boing

1 / 1 / 5

Регистрация: 21.11.2009

Сообщений: 87

29.03.2010, 21:35

 [ТС]

9

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program zzz;
var
i:integer;
z:real;
begin
writeln('Введите числа');
z:=1;
while z>0 do
begin
readln(z);
z:=z+z;
i:=i+1;
end;
z:=z/i;
writeln('Среднее арифметическое',z);
readln;
end.

не могу отладить программу уходит в цикл постоянный помогите пожалуйста



0



lera8

636 / 219 / 64

Регистрация: 03.11.2009

Сообщений: 488

29.03.2010, 21:36

10

Подправила код
NoNameUser,

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program zzz;
var
z,s,i:real;
begin
s:=0; z:=1;
writeln('Введите числа');
while z>0 do
begin
readln(z);
s:=s+z;
i:=i+1;
end;
writeln('Среднее арифметическое',(s/i):0:3);
end.



1



6 / 6 / 1

Регистрация: 29.03.2010

Сообщений: 29

29.03.2010, 21:38

11

Да,нужно было еще одну переменную)



1



1 / 1 / 5

Регистрация: 21.11.2009

Сообщений: 87

29.03.2010, 21:43

 [ТС]

12

работает всеми способами :good:



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

29.03.2010, 21:43

Помогаю со студенческими работами здесь

Написать программу, которая подсчитывает текущее среднее арифметическое введённых чисел
Написать программу, которая подсчитывает текущее среднее арифметическое введённых чисел и после…

Составить функцию, вычисляющую среднее арифметическое положительных элементов одномерного массива
Составить функцию, вычисляющую среднее арифметическое положительных элементов
одномерного массива….

Описать функцию average(ar, n), вычисляющую среднее арифметическое первых n элементов массива
Дано описание:
Type artype=array of real;
Описать функцию average(ar,n), вычисляющую среднее…

Описать процедуру Mean(X, Y, AMean, GMean), вычисляющую среднее арифметическое AMean = (X + Y)/2 и среднее геометрическое GMean =sqrt(X ⋅Y)
2. Описать процедуру Mean(X, Y, AMean, GMean), вычисляющую среднее арифметическое AMean = (X + Y)/2…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

12

 Решение задач по программированию из огэ по информатике на паскале.

В этой статье мы научимся решать на паскаль задачи с номером 20  огэ по информатике. 
Чтобы успешно решать задачи огэ по программированию на паскаль нужно уметь
определять и вводить с клавиатуры переменные в Паскаль 
вводить данные с помощью цикла for в Паскаль, 
проверять введенные данные с помощью оператора условия if Паскаль, 

Разберем как решать на паскаль задачу огэ по программированию на поиск суммы

Напишем программу на паскаль, которая в последовательности натуральных чисел определяет сумму чисел, оканчивающихся на 5. 
В начале программы зададим переменные 
n отвечает за количество элементов в последовательности 
i счетчик цикла
s отвечает за сумму
a отвечает за элемент последовательности

В  начале программы введем число элементов последовательности, значению суммы присвоим 0
var i,n,s,a: integer;
begin
s:=0;
writeln(‘введите число элементов’);
readln(n);

С помощью цикла for организуем ввод элементов последовательности. Для каждого элемента последовательности проверяем его последнюю цифру, равна ли она 5. Чтобы получить последнюю цифру числа, нужно применить операцию
Переменная mod 10
Поэтому, чтобы проверить, является ли последняя цифра 5, нужно применить оператор условия if
if (a mod 10 = 5) then
 begin
s = s+a;
end;

Полная версия программы для поиска суммы элементов последовательности, последняя цифра которых 5 на паскале
var i,n,s,a: integer;
begin
s:=0;
writeln(‘введите число элементов’);
readln(n);
for i:=1 to n do
begin
readln (a);
if (a mod 10=5) then
begin
s:=s+a;
end;
end;
writeln (s);
end.

Разберем как решать на паскаль задачу огэ по программированию на расчёт среднего арифметического элементов последовательности, удовлетворяющих заданному условию

Напишем программу на паскале, которая в последовательности натуральных чисел находит среднее арифметическое чисел, кратных 7, или сообщает, что таких чисел нет (выводит «NO»). 

В начале программы зададим переменные
n – количество элементов в последовательности
i – счётчик цикла
s – сумма элементов
a – текущий элемент последовательности
k – количество элементов, кратных семи

Задаём количество элементов в последовательности, обнуляем сумму и переменную счётчика.
var i,n,s,k, a: integer;
begin
s:=0;
k:=0;
writeln(‘введите число элементов’);
readln(n);

В цикле for вводим с клавиатуры элементы последовательности. С помощью условия if проверяем, кратен ли элемент семи, с помощью выражения a mod 7 = 0. Если элемент кратен, то прибавляем его к сумме, и увеличиваем количество элементов на 1.
for i:=1 to n do
begin
readln (a);
if (a mod 7=0) then
begin
s:=s+a;
k:=k+1;
end;
end;

В конце программы проверяем, есть ли элементы, кратные семи, если их нет, то выводим сообщение «Элементов нет», иначе выводим среднее арифметическое элементов, кратных семи. Чтобы подсчитать среднее арифметическое, нужно сумму поделить на количество элементов. 
if (k=0) then
begin
writeln (‘Элементов нет’);
end
else 
begin
writeln (‘Среднее арифметическое’, s/k);
end

Полная версия программы на паскаль, которая подсчитывает среднее арифметическое элементов, кратных семи
var i,n,s,k, a: integer;
begin
s:=0;
k:=0;
writeln(‘введите число элементов’);
readln(n);
for i:=1 to n do
begin
readln (a);
if (a mod 7=0) then
begin
s:=s+a;
k:=k+1;
end;
end;
if (k=0) then
begin
writeln (‘Элементов нет’);
end
else 
begin
writeln (‘Среднее арифметическое’, s/k);
end
end.

Перейти к курсу паскаль

Полезно почитать по теме задачи огэ по информатике на паскале

Решение на паскале задач огэ по информатике на поиск числа элементов удовлетворяющих заданному условию 

Решение задач на паскале из демо вариантов огэ по информатике

Поделиться:

Нет комментариев. Ваш будет первым!

Составить программу для вычисления среднего арифметического числа одномерного массива.

Для решения данной задачи, первоначально необходимо сложить все элементы массива и разделить получившуюся сумму на количество элементов (в данном примере константа n).

В примере количество элементов для массива задается константой n, т.е. для увеличения или уменьшения размерности массива необходимо сменить значение данной константы до выполнения программы. У данного метода решения есть один недостаток: не возможно задать размерность массива в процессе выполнения программы.

Uses Crt;
Const n=10;
Var
	a:Array[1..n] of Integer;
	s: Real;
 	sum,n,i: Integer;
Begin
	ClrScr;
	For i:=1 To n Do
	Begin
		Write('a[',i,']=');
		Readln(a[i]);
    End;
	sum:=0;
	For i:=1 To n Do
		sum:=sum+a[i];
	s:=sum/n;
	Writeln('Ср.ариф.массива = ',s);
	Repeat Until KeyPressed
End.

Внесено изменение для для https://www.onlinegdb.com/online_pascal_compiler

вместо sum,n,i: Integer; объявление sum,i: Integer;

Uses Crt;
Const n=10;
Var
	a:Array[1..n] of Integer;
	s: Real;
 	sum,i: Integer;
 
Begin
	ClrScr;
	For i:=1 To n Do
	Begin
		Write('a[',i,']=');
		Readln(a[i]);
    End;
	sum:=0;
	For i:=1 To n Do
		sum:=sum+a[i];
	s:=sum/n;
	Writeln('Ср.ариф.массива = ',s);
	Repeat Until KeyPressed
End.

Добавить комментарий