Перейти к содержанию
Функция, вычисляющая среднее арифметическое элементов массива
Просмотров 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 = 10def average(a):
s = 0
for i in range(N):
s += a[i]
return s/Narr = [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)
Лучший ответ
ElemenT
Профи
(797)
13 лет назад
uses crt;
var
a,b,c,d:byte
begin
Writeln(‘Введите 3 числа через пробел’)
readln(a,b,c)
d:=(a+b+c) div 3
Writeln(‘Среднее арифметическое ‘, d)
Readln
End.
Остальные ответы
Hicks
Гуру
(2516)
13 лет назад
сложи все числа и подели на n
~SoWeLu~
Профи
(552)
13 лет назад
Uses crt;
var n,i,S,M:integer;
Begin
clrscr;
S:=0;
readln(n);
for i:=1 to n do
begin
read(M);
S:=S+M;
end;
S:=S/n; //среднее арифметическое
writeln(S);
readln;
End.
f f
Ученик
(169)
13 лет назад
for i:=1 to n do
begin
read(x);
s := s + x;
end;
writeln(s/n);
Решение задач по программированию из огэ по информатике на паскале.
В этой статье мы научимся решать на паскаль задачи с номером 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.
Перейти к курсу паскаль
Полезно почитать по теме задачи огэ по информатике на паскале
Решение на паскале задач огэ по информатике на поиск числа элементов удовлетворяющих заданному условию
Решение задач на паскале из демо вариантов огэ по информатике
Поделиться:
Нет комментариев. Ваш будет первым!
На занятии будет объяснен алгоритм работы с функциями на Паскале, рассмотрены стандартные функции. Будут разобраны примеры использования функций с параметрами и без параметров.
Содержание:
- Стандартные функции языка Pascal
- Арифметические функции (основные)
- Функции преобразования типов
- Пользовательские функции Pascal
- Самостоятельная работа
Арифметические функции (основные)
Функция | Назначение | Тип результата |
---|---|---|
abs (x) | абсолютное значение аргумента | совпадает с типом аргумента |
sqr (x) | квадрат аргумента | совпадает с типом аргумента |
sqrt (x) | квадратный корень аргумента | вещественный |
cos (x) | косинус аргумента | вещественный |
sin (x) | синус аргумента | вещественный |
arctan (x) | арктангенс аргумента | вещественный |
exp (x) | ex | вещественный |
ln (x) | натуральный логарифм | вещественный |
int (x) | целая часть числа | вещественный |
frac (x) | дробная часть числа | вещественный |
Функции преобразования типов
round (x) | — округляет вещественное число до ближайшего целого. |
trunc (x) | — выдает целую часть вещественного числа, отбрасывая дробную. |
Пользовательские функции Pascal
Функция в Паскале — это подпрограмма, которая в отличие от процедуры всегда возвращает какое-либо значение. Для этого в теле функции её имени присваивается вычисленное значение — результат, который она возвращает.
- Функция – это подпрограмма, результатом работы которой является определенное значение.
- Функции используются для:
- выполнения одинаковых расчетов в различных местах программы;
- для создания общедоступных библиотек функций.
- Синтаксис:
- заголовок начинается служебным словом
function
- описание формальных параметров (тех, значения которых передаются из основной программы в функцию):
- параметры-переменные — параметры, значения которых становятся доступны и в основной программе (возвращаются в программу)
- тип возвращаемого функцией результата описывается в конце заголовка функции через двоеточие:
- Вызывается функция в теле основной программы, только если ее имя фигурирует в каком-либо выражении. В отличие от процедуры, которая вызывается отдельно.
- Внутри функции можно объявлять и использовать локальные переменные:
- значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции; объявлять ее НЕ НАДО:
Рассмотрим синтаксис:
var …;{объявление глобальных переменных} function название (параметры): тип результата; var…; {объявление локальных переменных} begin … {тело функции} название:=результат; {результат вычислений всегда присваивается функции} end; begin … {тело основной программы} end.
Пример: написать функцию, которая вычисляет наибольшее из заданных двух значений
Решение:
Вызов функции:
PascalABC.NET
:
Правила описания функции:
1. Мы должны написать тип значения, которое возвращает функция.
2. Переменная Result
хранит результат функции.
function f(x: real): real; begin Result := x * x + 1; end;
Вызов функции стоит в выражении:
// основная программа begin var x := 5; var r := Sqrt(x) + f(x); end.
Задача function 0. Написать функцию, которая вычисляет наибольшее из заданных трех значений. Функция с тремя параметрами.
✍ Пример результата:
Введите три числа: 4 1 6 наибольшее = 6
Пример: Написать функцию на Паскале, которая складывает два любых числа
✍ Пример результата:
первое число: 2 второе число: 5 сумма = 7
✍ Решение:
1 2 3 4 5 6 7 8 9 10 11 12 |
var x,y:integer; function f(a,b:integer):integer; begin f:= a+b; end; begin writeln('первое число:'); readln(x); writeln('второе число:'); readln(y); writeln('сумма= ',f(x,y)); end. |
В рассмотренном примере использования функции в Паскале: функция f
имеет два целочисленных параметра — a
и b
. Через двоеточие в заголовке функции (строка 2) указано, что значение, вычисляемое функцией, будет тоже целочисленным. В теле функции вычисляемая сумма присваивается имени функции. А в основной программе вызов функции осуществляется в качестве параметра оператора writeln
.
Таким образом, главное отличие функции от процедуры — это то, что функция производит какие-либо вычисления и выдает в программу результат в виде значения, в то время как процедура чаще всего выполняет какие-либо действия с результатом, например, выводит его на экран (функция этого делать не может).
Задача function 1. При помощи функции найти среднее арифметическое двух чисел (функция с двумя параметрами).
✍ Пример результата:
Введите два числа: 4 7 среднее арифметическое = 5,5
Пример: Составить программу с функцией для вычисления факториала числа.
Показать решение:
Pascal | PascalABC.NET | ||||
|
|
В рассмотренном примере функция имеет один параметр — a
. Вычисляемое функцией значение имеет целочисленный тип, это указывается в заголовке функции (строка 2). В теле функции в цикле for
вычисляется факториал числа. Результат вычисления присваивается имени функции (строка 9). В теле программы для вывода результата функции она вызывается в операторе writeln
(строка 14), который и выводит результат на экран.
PascalABC.NET
:
Короткое определение функции:
function Sq(x: real) := x * x + 1; begin var x := 10; var r := Sq(x) + Sq(2) end.
Короткая запись
Если тело функции состоит только из одного оператора, PascalABC.NET позволяет использовать при описании сокращенный синтаксис, без ключевых слов begin
и end
:
1 2 3 4 5 6 |
## function SumXY(x,y: real) := x + y; // основная программа begin Print (SumXY(9,2)); //11 end; |
Задача function 2. Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример ее использования. N — параметр функции.
Пример:
Введите число: 100 сумма = 5050
Задача function 3. Составить функцию, которая определяет, сколько зерен попросил положить на N-ую клетку изобретатель шахмат (на 1-ую – 1 зерно, на 2-ую – 2 зерна (в два раза больше предыдущего результата), на 3-ю – 4 зерна, на 4-ю – 8 зерен…). N
— параметр функции.
Пример:
Введите номер клетки: 28 На 28-ой клетке 134217728 зерен.
Задача function 4. Описать функцию IsDigit(A)
, которая возвращает истину, если целое число A
представляет цифру (то есть A
лежит в диапазоне 0–9). В основной программе вывести значение этой функции для N
(N ≥ 0) данных чисел.
Пример:
Введите N: 3 Введите число: 2 >>> true Введите число: 34 >>> false Введите число: 4 >>> true
Задача function 5. Вычисление степени числа с помощью функции на языке Паскаль.
Пример:
Введите число: 3 Введите степень числа: 2 Результат 3^2 = 9
Задача function 6. Описать функцию Calc(A, B, Operation)
вещественного типа, выполняющую над ненулевыми вещественными числами A
и B
одну из арифметических операций и возвращающую ее результат. Вид операции определяется целым параметром Operation
: 1
— вычитание, 2
— умножение, 3
— деление, остальные значения — сложение. С помощью Calc
выполнить для данных A
и B
операции, определяемые данными целыми N1
, N2
, N3
.
Пример:
Введите два числа: 5 7 Введите номер операции (1 — вычитание, 2 — умножение, 3 — деление, остальные значения — сложение): 2 Результат 5*7 = 35
* Из задачника М. Э. Абрамян (Proc22)
Самостоятельная работа
1 вариант: Описать функцию CircleS(R)
вещественного типа, находящую площадь круга радиуса R
(R
— вещественное). С помощью этой функции найти площади трех кругов с данными радиусами. Площадь круга радиуса R вычисляется по формуле S=π∗R2
. В качестве значения Пи использовать 3.14
.
* Из задачника М. Э. Абрамян (Proc18)
Пример:
Введите радиус: 5.2 Площадь круга = 16,328 ___ Введите радиус: 6.3 Площадь круга = 19,782 ___ Введите радиус: 7.1 Площадь круга = 22,294
2 вариант: Описать функцию TriangleP(a, h)
, находящую периметр равнобедренного треугольника по его основанию a
и высоте h
, проведенной к основанию (a
и h
— вещественные). С помощью этой функции найти периметры трех треугольников, для которых даны основания и высоты (периметр = сумме длин всех сторон). Для нахождения боковой стороны b
треугольника использовать теорему Пифагора: b2=(a/2)2+h2
.
* Из задачника М. Э. Абрамян (Proc20)
Пример:
Введите основание треугольника: 6 Введите высоту треугольника: 5 Периметр треугольника = 17,83095 ___ Введите основание треугольника: ... Введите высоту треугольника: ... Периметр треугольника = ... ___ Введите основание треугольника: ... Введите высоту треугольника: ... Периметр треугольника = ...
Потренируйтесь в решении задач по теме, щелкнув по пиктограмме: