Скачиваний:
80
Добавлен:
10.02.2014
Размер:
144.38 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Саратовский государственный технический университет

Балаковский институт техники, технологии и управления

Обработка одномерных массивов на языке turbo pascal

Методические указания к выполнению лабораторных работ

по курсу “Программирование и основы алгоритмизации”

для студентов специальности 210100 дневной и вечерней форм

обучения

Одобрено

редакционно-издательским советом

Балаковского института техники,

технологии и управления

Балаково 2007

Основные понятия

Массив – это структурированный тип данных, состоящий из фикси­рованного числа переменных. Набор переменных, входящих в массив, имеет один и тот же тип (от целочисленного до строкового).

Элементы массива объединены общим именем и занимают в компь­ютере определённую область памяти. Количество элементов в массиве всегда конечно. Эти элементы упорядочены таким образом, что каждому элементу соответствует совокупность номеров (индексов), определяющих его местоположение в общей последовательности. Доступ к каждому от­дельному элементу осуществляется путем индексирования элементов мас­сива. Индексы представляют собой выражения любого целого типа. Мас­сив используют для хранения и обработки однородной информации, на­пример таблиц и списков. Если за каждым элементом массива закреплен только один его порядковый номер, то такой массив называется линейным или одномерным.

Массив описывается в разделе переменных.

Var

<имя массива>: array[тип индекса] of <тип данных>;

Пример:

Var

A: array[1..10] of real;

Одномерный массив А содержит десять элементов вещественного типа. Если несколько массивов имеют одинаковое количество элементов и один и тот же тип, то в разделе описания переменных их можно перечис­лить через запятую:

Var

B, C: array[1..20] of integer;

Операции над массивами в целом

Чтобы работать с массивами в целом, то есть как с единым целым, используется имя массива без указания индекса. Для этого необходимо выполнение двух обязательных условий: массивы должны иметь одинако­вое количество элементов; элементы массивов должны иметь один и тот же тип.

Над массивами в целом можно выполнять следующие операции:

  1. Присвоения: А:= В

Значения элементов массива В присваиваются соответствующим эле­ментам массива А, при этом сам массив В не меняется.

2. Операция равно: А=В

Если значение каждого элемента массива А равно соответствующим элементам массива В, то выражение истинно.

3. Операция сравнения: A<>В

Выражение истинно, если хотя бы один элемент из массива А не ра­вен соответствующему элементу массива В.

Действия над элементами массива

По индексу определяется положение элемента в массиве. Индекс за­ключается в квадратные скобки и может быть целым числом

Например:

А[4] - элемент массива А находится на 4 позиции;

А[I] - элемент массива А находится на I позиции.

Индекс элемента массива можно задать выражением целого типа.

Пример:

А[2i+3]

Такое задание номера элемента используют при описании некоторой последовательности.

1. Инициализация- присвоение начальных значений, причем это зна­чение одинаково для всех элементов массива. Присвоить каждому эле­менту массива одно и тоже значение вручную или при помощи оператора цикла с известным числом повтора for:

a[1] := 1; a[2]:= 1; a[3]:=1;

for i:=1 to 3 do a[i]:=1;

2. Ввод и вывод элементов массива. Ввод/вывод элементов массива осуществляется при помощи цикла for .

Ввод:

for i:= 1 to 10 do Read (a[i]);

Вывод:

for i:=1 to 10 do Write(a[i]);

3. Копирование массивов - присвоение значений всех элементов од­ного массива соответствующим элементам другого массива.

for i:= 1 to 10 do a[i]:=b[i];

4. Перестановка элементов массива осуществляется при помощи дополнительной переменной.

Пример: В массиве A нужно поменять местами второй и пятый эле­ментами.

buffer:= a[2];

a[2]:= a[5];

a[5]:= buffer;

Переменной buffer присваивается значение второго элемента массива А. Затем второму элементу присваивается значение пятого элемента массива А. Последняя операция присваивает пятому элементу значение второго элемента, который мы записали в переменную buffer.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТ

Порядковый номер студента по списку группы соответствует номеру варианта. По проведенному заданию требуется:

1. Определить порядок реализации вычислений.

2. Составить графическую схему алгоритма.

3. Записать программу на языке Turbo Pascal.

4. Выполнить расчеты на ЭВМ.

5. Написать отчет по лабораторной работе.

ПРИМЕРЫ ВЫПОЛНЕНИЯ РАБОТ

Пример 1. Найти сумму и количество положительных элементов массива

program summa_massiv;

var

a : array [1..10] of integer;

I : byte; S: integer;

begin

Write('Введите массив');

for i:= 1 to 10 do Read(a[i]); // ввод элементов массива

S:=0;n:=0; // переменной S и n присваивается значе­ние 0

for i:=1 to 10 do if a[i]>0 then

begin

S:=S+ a[i];

n:=n+1;

End;

WriteLn ('S =', S:6:3, ' n =', n );

end.

Рис. 1 Блок- схема программы summa_massiv.

Пример 2. Найти максимальный и минимальный элементы массива

program max-min;

var

a : array [1..10] of integer;

i : byte; max, min: integer;

begin

write('введите массив');

for i:= 1 to 10 do read(a[i]); // ввод элементов массива

max:=a[1]; // переменной max присваивается значение первого элемента массива

for i:=2 to 10 do if a[i]> max then max:= a[i];

min:= a[1]; // переменной min присваивается значение

первого элемента массива

for i:=2 to 10 do if a[i]< min then min:= a[i];

writeln ('максимальный элемент массива =', max);

writeln ('минимальный элемент массива =', min);

end.

Рис.2. Блок – схема программы max-min.

Пример 3. Сортировка элементов массива по возрастанию (линейная сортировка).

program sortirovka;

var x: array [1..10] of real;

i, j: byte; buffer : real;

begin

writeln('Введите массив'); // вывод комментария

for i:=1 to 10 do read(x[i]); // ввод элементов массива

for i:= 1 to 9 do

for j:= i+1 to 10 do if x[i] >= x[j] then

begin

buffer:= x[i];

x[i]:= x[j];

x[j]:= buffer;

end;

for i:=1 to 10 do write(‘ ’,x[i]:6:3); // вывод отсортированного массива

end.

Сначала сравнивается 1-ый и 2-ой элементы массива. Если 2-й эле­мент меньше 1-го, то они меняются местами. Затем сравнивается 1-ый с 3-им и т.д., пока все элементы не будут обработаны. Идея линейной сортировки по возрастанию заключается в том, чтобы последовательно просматривая весь массив, отыскать наименьшее число и поместить его на первую позицию, обменяв его с элементом, который ранее занимал первую позицию. Затем просматриваются все остальные элементы массива и выполняется аналогичная операция по отбору из рассматриваемой части массива минимального элемента и обмену местами этого элемента и первого из рассматриваемой части ит.д.

Рис. 3. Блок схема программы sortirovka.

Пример 4. Создать массив В из положительных элементов массива А

program massiv;

var

a, в : array [1..10] of integer; i, n : byte;

begin

write('введите массив')

for i:= 1 to 10 do read(a[i]); // ввод элементов массива

n:=0;

for i:=1 to 10 do if a[i]>0 then

begin

n:=n+1;

b[n]:= a[i];

end;

for i:= 1 to n do write (' ‘,b[i] );

end.

Рис.4. Блок – схема программы massiv.

Соседние файлы в папке методические указания для лабораторных работ