Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ(Лек)МФ+ФГГиНД(2).docx
Скачиваний:
18
Добавлен:
11.04.2015
Размер:
617.66 Кб
Скачать

Тема № 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;

Фрагменты операций с одномерными массивами

Рассмотрим фрагменты программ в таблице 2.

Таблица 2

Операция

Фрагмент программы

  1. Ввод элементов массива

for i:=1 to n do

read(A[i]);

  1. Вывод элементов массива

for i:=1 to n do

writeln(A[i]);

  1. Замена элементов массива на величину z

for i:=1 to n do

A[i]:=z;

  1. Увеличение элементов массива на величину z

(аналогично уменьшение, умножение, деление)

for i:=1 to n do

A[i]:=A[i]+z;

  1. Вычисление элементов массива Bприбавлением к элементам массиваAвеличины z

(аналогично вычитанием, умножением, делением)

for i:=1 to n do

B[i]:=A[i]+z;

  1. Вычисление индекса максимального элемента imax

(аналогично минимального)

max:=A[1];

imax:=1;

for i:=2 to n do

if A[i]>max then

begin

max:=A[i];

imax:=i;

end;

  1. Вывод индексов для части элементов

for i:=1 to n do

if A[i]>z then

writeln(i);

  1. Перестановка 1-го и 2-го элементов одномерного массива

c:=A[1];

A[1]:=A[2];

A[2]:=c;