Одномерные массивы
Одномерный массив(вектор) – массив, элементы которого имеют один неповторяющийся номер.
Индекс одномерного массива– порядковый номер элемента в одномерном массиве.
В одномерном массиве элементы упорядочены в порядке возрастания их индексов.
Описание одномерного массива в разделе описания переменных (Var) на языке Pascal имеет вид:
Mas : array [ IMin .. IMax ] of T ;
где array – массив, of – из, Mas – имя массива, IMin – минимальное значение индекса, IMax – максимальное значение индекса, T – тип элементов.
Это означает, что переменная Mas является массивом, который может иметь индексы от IMin до IMax у элементов типа T .
Пример.
Var A : array [1..100] of real;
Это означает, что переменная A – массив, который может содержать от 1 до 100 элементов вещественного типа.
Доступ к элементу одномерного массива на языке Pascal имеет вид:
Mas [ Ind ]
где Mas – имя массива, Ind – индекс.
Это означает доступ к элементу массива Mas с индексом Ind .
Пример.
A[1]
b[3]
c[i]
d[n]
f[k+1]
Это означает 1-й элемент массива A и т.д.
Задача 1.
Условие задачи. Дан массив A, состоящий из n элементов (n £ 100). Найти сумму элементов массива:
.
Блок-схема.
Программа.
Program z1;
Var
A:array[1..100] of real;
i,n:integer;
s:real;
Begin
read(n);
s:=0;
for i:=1 to n do
begin
read(A[i]);
s:=s+A[i];
end;
writeln(s);
End.
Пусть A - одномерный массив, n - количество элементов в массиве, i - индекс элементов массива. Рассмотрим следующие фрагменты программ.
Характеристика
| Для всех элементов
| Для части элементов
|
1. Сумма
s
| s:=0;
for i:=1 to n do
s:=s+A[i];
| s:=0;
for i:=1 to n do
if A[i]>z then
s:=s+A[i];
|
2. Количество
k
| k:=n;
| k:=0;
for i:=1 to n do
if A[i]>z then
k:=k+1;
|
3. Произведение
p
| p:=1;
for i:=1 to n do
p:=p*A[i];
| p:=1;
for i:=1 to n do
if A[i]>z then
p:=p*A[i];
|
4. Максимальное значение
max
| max:=A[1];
for i:=2 to n do
if A[i]>max then
max:=A[i];
| max:=-1E10;
for i:=1 to n do
if (A[i]>max) and (A[i]>z) then
max:=A[i];
|
5. Минимальное значение
min
| min:=A[1];
for i:=2 to n do
if A[i]<min then
min:=A[i];
| min:=1E10;
for i:=1 to n do
if (A[i]<min) and (A[i]>z) then
min:=A[i];
|
6. Среднее значение
sr
| s:=0;
for i:=1 to n do
s:=s+A[i];
sr:=s/n;
| s:=0;
k:=0;
for i:=1 to n do
if A[i]>z then
begin
s:=s+A[i];
k:=k+1;
end;
sr:=s/k;
|