Оглавление:
Задача — Функция, вычисляющая среднее арифметическое элементов массива
— программирование на Pascal, Си, Кумир, Basic-256, Python
Написать функцию, которая вычисляет среднее арифметическое элементов массива, переданного ей в качестве аргумента.
Среднее арифметическое определяется как сумма элементов, деленная на их количество.
Параметром функции является целочисленный массив, возвращает она вещественное число.
В теле функции элементы перебираются в цикле, каждый добавляется к переменной, в которой накапливается сумма. После завершения работы цикла полученная сумма делится на количество элементов в массиве. Полученное значение возвращается из функции в основную ветку программы. Здесь оно может быть присвоено какой-либо переменной или сразу выведено на экран.
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
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)