словие задачи: Массив А вводится с клавиатуры. Найти среднее арифметическое его элементов с нечетными номерами. Размер произвольный. (Язык Pascal)
Сложность: легкая.
Решение задачи
Для начала продумаем решение. Нам сказано найти среднее арифметическое элементов массива с нечетными номерами, что это значит? Как вы знаете у массива каждое значение под своим номером, например:
1
2
|
mass[ 1 ] := 32 ; mass[ 2 ] := 43 ; |
Т.е. под номером 1 в массиве значение 32, под номером 2 значение 43, вот нам надо найти среднее арифметическое элементов массива с нечетными номерами, т.е. 1 3 5 и т.д.
Среднее арифметическое — это сумма всех элементов деленное на кол-во элементов, в нашем случаи сумма всех элементов с нечетными номерами деленное на их кол-во.
Массив мы будем вводить в самой программе, т.е. введем число, и проверим его номер, если он нечетный тогда этот элемент занесем в сумму, чтобы потом найти среднее арифметическое.
Для того чтобы решить задачу нам понадобятся следующие переменные:
- Переменная mass — для массива
- Переменная i — для цикла
- Переменная n — для кол-ва элементов массива
- Переменная count — для кол-во нечетных номеров
- Переменная summa — для сумма элементов с нечетными номерами
- Переменная sred — для сред.ариф.
Начнем мы с каркаса нашей программы
1
2
3
4
5
6
7
8
9
10
11
12
13
|
type massiv = array [ 1..1000 ] of integer ; // создаём свой тип данных для массива var mass : massiv; // объявляем переменные i, n, summa, count : integer ; // объявляем переменные sred : real ; // объявляем переменные begin write ( 'Введите длину массива : ' );readln(n); // просим пользователя ввести длину массива readln; // чтобы программа не закрывалась end . |
Тут мы создали свой тип данных для массива, как и зачем читайте ( тут ), попросили пользователя ввести кол-во элементов массива.
Теперь надо заполнять массив вручную, заполняется массив в цикле, как только мы введем число, нам надо проверить его номер на нечетность с помощью условия и операции mod, как это делается читайте (тут) и если номер нечетный то мы просто увеличиваем общую сумму чисел с нечетными номерами и их кол-во:
1
2
3
4
5
6
7
8
9
|
for i:= 1 to n do // делаем цикл для заполнения массива begin write ( 'Введите ' , i , ' элемент : ' );readln(mass[i]); // заполняем массива вручную if (i mod 2 <> 0 ) then // проверяем на нечетность номер элемента, если нечетный, то begin count := count + 1 ; // увеличиваем кол-во нечетных номеров summa := summa + mass[i]; // и увеличиваем сумму end ; end ; |
Теперь нам осталось поделить сумму на кол-во и мы найдем среднее арифметическое:
1
|
sred := summa / count; // находим среднее арифметическое |
Всё решение задачи Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
type massiv = array [ 1..1000 ] of integer ; // создаём свой тип данных для массива var mass : massiv; // объявляем переменные i, n, summa, count : integer ; // объявляем переменные sred : real ; // объявляем переменные begin write ( 'Введите длину массива : ' );readln(n); // просим пользователя ввести длину массива for i:= 1 to n do // делаем цикл для заполнения массива begin write ( 'Введите ' , i , ' элемент : ' );readln(mass[i]); // заполняем массива вручную if (i mod 2 <> 0 ) then // проверяем на нечетность номер элемента, если нечетный, то begin count := count + 1 ; // увеличиваем кол-во нечетных номеров summa := summa + mass[i]; // и увеличиваем сумму end ; end ; sred := summa / count; // находим среднее арифметическое writeln ( 'Среднее арифметическое с нечетными номерами : ' , sred); // выводим результат readln; // чтобы программа не закрывалась end . |