104.90K
Category: programmingprogramming

Сумма и количество элементов массива (урок 1)

1.

СУММА И КОЛИЧЕСТВО
ЭЛЕМЕНТОВ МАССИВА
Урок 1
Учитель: Н.В. Фоменко

2.

СУММА ВСЕХ ЭЛЕМЕНТОВ МАССИВА
Для нахождения суммы элементов массива
используется стандартный метод накопления суммы
по шагам:
1. Сначала предполагается, что сумма равна 0
2. Далее на каждом шаге цикла к имеющемуся
значению суммы добавляется очередное
s := 0
слагаемое
3. Полученный результат сохраняется как
i = 1, n
значение переменной S
s:=0;
for i:=1 to n do
s:=s+a[i];
writeln (s)
s := s+a[i]
s

3.

СУММА ВСЕХ ЭЛЕМЕНТОВ МАССИВА
Трассировка алгоритма
i
1
2
3
4
5
a[i]
8
7
-2
10
3
s:=0;
for i:=1 to n do
s:=s+a[i];
writeln (s)
i
s
0
1
0+a[1]
8
2
0+a[1]+a[2]
8+7=15
3
0+a[1]+a[2]+a[3]
15-2=13
4
0+a[1]+a[2]+a[3]+a[4]
13+10=223
5
0+a[1]+a[2]+a[3]+a[4]+a[5]
23+3=26

4.

СУММА ВСЕХ ЭЛЕМЕНТОВ, УДОВЛЕТВОРЯЮЩИХ
НЕКОТОРОМУ УСЛОВИЮ
В этом случае в тело цикла добавляется условный
оператор
s:=0;
сумму положительных
forУсловие
i:=1Найти
to
n
do
может
быть
сложным.
Найти сумму
четных
простые условия
соединяются
ifТогда
a[i]=условие
then s:=s+a[i];
логическими
операциями and, or, xor
writeln
(s)
s:=0;
s:=0;
Найти сумму
элементов,
принадлежащих интервалу [0;10]
i:=1
n do
forfor
i:=1
to to
n do
if a[i]
>0 2=0
thenthen
s:=s+a[i];
if
a[i]
mod
s:=s+a[i];
s:=0;
writeln
writeln
(s)(s)to n do
for i:=1
if a[i] >=0 and a[i]<=10 then
s:=s+a[i];
writeln (s)

5.

НАХОЖДЕНИЕ СРЕДНЕГО АРИФМЕТИЧЕСКОГО
1. Переменная S должна быть описана как real
s:=0;
for i:=1 to n do
s:=s+a[i];
s:=s/n
writeln (s)
Внимание! Деление суммы на количество элементов должно
осуществляться после окончания цикла.

6.

НАХОЖДЕНИЕ ПРОИЗВЕДЕНИЯ
p:=1;
for i:=1 to n do
p:=p*a[i];
writeln (p)
Внимание! Переменной р перед входом в цикл должна быть присвоена
единица!

7.

НАХОЖДЕНИЕ КОЛИЧЕСТВА ЭЛЕМЕНТОВ С
ЗАДАННЫМИ СВОЙСТВАМИ
k:=0;
for i:=1 to n do
if a[i]=условие then k:=k+1;
writeln (k)
Как найти среднее арифметическое элементов, удовлетворяющих
определенному условию?
k:=0; s:=0;
for i:=1 to n do
if a[i]=условие then
begin
k:=k+1; s:=s+a[i]
end;
s:=s/k
writeln (s)

8.

ПРИМЕР. ОБНУЛИТЬ ВСЕ ОТРИЦАТЕЛЬНЫЕ
ЭЛЕМЕНТЫ МАССИВА И ПОДСЧИТАТЬ КОЛИЧЕСТВО
ОСТАЛЬНЫХ
const n=20;
var a: array[1..n] of integer; i,k:integer;
begin
for i:=1 to n do
Предположим, что элементы массива
находятся в диапазоне [-50;50]
begin
a[i]:=-50+random(101)
write(a[i]:4)
end;
Внимание! НЕ смешивать циклы
ввода и обработки!!!
writeln;
k:=0;
for i:=1 to n do
if a[i]<0 then a[i]:=0
else k:=k+1;
writeln (‘ количество неотрицательных элементов=‘,k);
for i:=1 to n do
write (a[i]:4);
end.
English     Русский Rules