- •Алфавит языка
- •Данные языка Turbo Pascal
- •Типы данных в языке Turbo Pascal
- •Целочисленные (целые) типы данных
- •Операции и выражения в языке Паскаль
- •Стандартные арифметические функции в Паскаль (см методичку)
- •Лекции 4-7
- •Оператор вывода write и writeln
- •Структурные операторы языка Паскаль
- •Составной оператор
- •Условные операторы
- •Массивы
- •Описание одномерного массива.
- •Действия над элементами одномерного массива.
- •Алгоритм поиска максимального элемента в массиве и его номера
- •Сортировка массивов
- •Генерация случайных чисел
- •Двумерный массив
- •Ввод-вывод матриц
- •Обработка символьных и строковых данных
- •Лекции 15-17
- •Подпрограммы
- •1. Описание процедуры.
- •2. Описание функции.
- •Список литературы
Массивы
Цель: изучение одномерных и двумерных массивов на языке Паскаль.
Задачи:
Изучить описание массивов.
Рассмотреть действия над массивами и над элементами массива.
Рассмотреть алгоритмы нахождения суммы элементов массива и поиска максимального элемента в массиве.
Разобрать различные способы сортировки массивов
Массив – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип, упорядоченных по индексам, определяющим местоположение каждого элемента массива.
Если за каждым элементом массива закреплен только один индекс (порядковый номер), то такой массив называется линейным или одномерным, если два индекса – двумерным, если n индексов – n-мерным. Одномерные массивы обычно используются для представления векторов, а двумерные – для представления матриц.
Описание одномерного массива.
Var <идентификатор,…>: array [тип индекса] of <тип компонента>;
Пример:
Var a,b: array[1..4] of integer; {массив из 4 элементов целого типа}
C: array[-2..7] of real; {массив из 10 элементов вещественного типа}
Действия над элементами одномерного массива.
После объявления массива каждый его элемент можно обработать, указав идентификатор (имя) массива и индекс элемента в квадратных скобках. Например, запись А[2] позволяет обратиться ко второму элементу массива А.
1. Инициализация - присвоение начальных значений, причем это значение одинаково для всех элементов массива. Присвоить каждому элементу массива одно и тоже значение можно вручную или при помощи оператора цикла с известным числом повторений for:
Пример:
a[1] := 0; a[2]:= 0; a[3]:=0;
for i:=1 to 3 do a[i]:=0;
2. Ввод и вывод элементов массива. Ввод/вывод элементов массива осуществляется при помощи цикла for.
Ввод: for i:= 1 to N do Read (x[i]);
где N – число элементов массива.
Блок-схема алгоритма ввода элементов массива:
Пример: for i:= 1 to 10 do Read (x[i]);
Можно также вводить значения отдельных элементов массива, например Read(A[3]).
Вывод массива организуется аналогично вводу, только для этого используется оператор вывода write (writeln). Приведем несколько вариантов:
Вариант 1.
for i:=1 to N do Write(a[i]); - вывод в строку слитно
Вариант 2.
for i:=1 to N do Writeln(a[i]:6:2); - вывод в столбец
3. Копирование – присваивание всех значений элементов одного массива всем соответствующим элементам другого массива. Копирование можно выполнить одним оператором присваивания, например A:=D; или с помощью оператора for:
For i:=1 to 4 do
A[i]:=d[i];
В обоих случаях значение элементов массива D не изменяется, а значения элементов массива А становятся равными значениям соответствующих элементов массива D.
4. Перестановка элементов массива осуществляется при помощи дополнительной переменной.
Пример: В массиве A нужно поменять местами второй и пятый элементы.
buffer:= a[2];
a[2]:= a[5];
a[5]:= buffer;
Переменной buffer присваивается значение второго элемента массива А. Затем второму элементу присваивается значение пятого элемента массива А. Последняя операция присваивает пятому элементу значение второго элемента, который был записали в переменную buffer.
Алгоритм нахождения суммы элементом массива
Дан массив X, состоящий из n элементов. Необходимо найти сумму элементов этого массива. Фрагмент программы будет иметь вид:
S:=0;
for i:=1 to n do S:=S+X[i].