Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры информатика 2012.doc
Скачиваний:
16
Добавлен:
17.04.2019
Размер:
11.54 Mб
Скачать

7. Переменные с индексами. Массивы. Таблицы.

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

Массивом называется порядочная совокупность данных одного типа объединенных общим именем.

Переменная с индексом позволяет представить большое количество величин или компонентов с одним общим именем. Каждая отдельная величина определяется индексом в скобках после наименования переменной. Полная система таких величин называется массивом, а каждая отдельная величина – компонентом или элементом массива. Массив может быть одномерным(вектор), двумерным(матрица или таблица), трехмерным(тензор) и т.д. Термин «одномерный» определяет количество индексов, а не количество переменных. Число индексов определяет размерность массива. Первый компонент одномерного массива – это элемент с номером 1, второй – 2 и.т.д, до тех пор, пока не будут пронумерованы все элементы массива. Двумерный массив представляет собой таблицу или матрицу из горизонтальных строк и вертикальных столбцов. Первый индекс – определяет номер строки, он изменяется от 1 до М, где М – полное количество строк. Второй номер столбца изменяется от 1 до N, где N – полное число столбцов. Индексы отделяются запятыми. Главная диагональ в двумерном массиве это, где номер строки = номеру столбцов. Квадратная матрица – если количество строк равная количеству столбцов. Задавая соответствующие значения индексов, можно выполнить прямой доступ к любому компоненту массива. Текущие значения индексов не должны выходить за пределы заданного диапазона. В противном случае переменная с индексом не может быть определена. Обычный прием работы с массивами, в особенности с большими массивами, - выборочное изменение отдельных его компонентов. На месте индекса может быть выражение соответствующее значению индекса, которое идентифицирует соответствующий компонент массива. Основные характеристики: имя массива, типа компонентов, размерность, равная количеству индексных позиций массива, порядок нумерации компонентов в последовательности, количество компонентов – длина массива или размер массива. Последовательную обработку массивов позволяет обеспечить цикл с параметром, который осуществляет прямой доступ к каждому элементу массива. Для обработки двумерных массивов используются те же приемы, что и для одномерных массивов.

Описание типа линейного массива выглядит так:

Type <Имя типа>=Array [<Диапазон индексов>] Of <Тип элементов>;

Описать переменную-массив можно и сразу (без предварительного описания типа) в разделе описания переменных:

Var <Переменная-массив> : Array [<Диапазон индексов>] Of <Тип элементов>;

N : Array ['A'..'Z'] Of Integer

8. Примеры алгоритмов линейных и с разветвлением.

  1. у=(b2-ас):(а+с). Линейный.

  2. Решение квадратного уравнения

1

2

2

9. Пример циклического алгоритма вычисления суммы десяти чисел.

10. Поиск минимального и максимального элемента последовательности.

Для поиска минимального элемента необходимо назначить некоторый эталон – переменную, которой заранее присваивается значение, например, первого элемента. Поиск производится путем последовательного сравнения всех элементов с эталоном min. После того как эталонная переменная определена, сравниваем с ней первый элемент. Если он меньше эталона, то изменить эталон. Для этого присвоить эталону значение первого элемента и продолжить сравнение – теперь со вторым элементом. Таким образом, можно сравнить все элементы последовательности. Обозначим исследуемую последовательность х1,х2,..хN. Начнем поиск с первого элемента и его принимаем за min=X(1), переменной Nom присвоим начальное значение, равное 1, это соответствует номеру элемента, который назначен эталоном для мин элемента. Для определения номера минимального элемента алгоритм будет иметь аналогичную структуру. Полученный алгоритм можно преобразовать в алгоритм определения номера максимального значения.

var ar: array [1..4] of integer;

max,i:integer;

begin

for i:=1 to 4 do readln (ar[i]);

max:=ar[1];

for i:=2 to 4 do

if ar[i]>max then max:=ar[i];

writeln (max);

readln;

end.