Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции к экзамену ГТК.docx
Скачиваний:
16
Добавлен:
26.09.2019
Размер:
339.82 Кб
Скачать

Тема № 3. Программирование задач с массивами

3.1. Одномерные массивы

Одномерный массив (вектор) – массив, элементы которого имеют один неповторяющийся номер.

Индекс одномерного массива – порядковый номер элемента в одномерном массиве.

В одномерном массиве элементы упорядочены в порядке возрастания их индексов.

Описание одномерного массива в разделе описания переменных (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.

Таблица 1

Характеристика

Для всех элементов

Для части элементов

  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];

  1. Количество

k

k:=n;

k:=0;

for i:=1 to n do

if A[i]>z then

k:=k+1;

  1. Произведение

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];

  1. Максимальное значение

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];

  1. Минимальное значение

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];

  1. Среднее значение

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;