Автор работы: Пользователь скрыл имя, 06 Февраля 2011 в 23:33, курсовая работа
Массив является удобным способом хранения нескольких связанных элементов данных в едином контейнере для большего удобства и эффективности программирования. Массив позволяет сохранять и манипулировать многими элементами данных посредством единственной переменной. Кроме уменьшения общего числа различных имен переменных, которые необходимо отслеживать, другим основным преимуществом использования массивов является то, что можно использовать циклы для легкой обработки различных элементов массивов. Объединяя массивы и циклы можно написать небольшое число операторов, которые обрабатывают большой объем данных. Выполнение тех же задач с использованием отдельных переменных может потребовать написания сотен операторов.
Введение 3
1. Определение и типы массивов 4
2. Основные операции обработки массивов 7
2.1 Определение размерности массива, заполнение массива 7
2.2 Вывод массива на экран 9
2.3 Поиск требуемого элемента в массиве 10
2.4 Поиск максимального и минимального элементов массива 12
2.5 Сортировка элементов массива 13
3. Особенности обработки двумерных массивов 15
4. Обработка квадратных матриц 17
4.1 Определение диагоналей массива 17
4.2 Определение четвертей матрицы 18
5. Открытые массивы 20
Список литературы 21
Массивы.
Основные алгоритмы
обработки массивов
на примере языка
программирования Pascal
Оглавление
Введение
Тема данного реферата «Массивы. Основные алгоритмы обработки массивов на примере языка программирования Pascal». Актуальность выбранной темы обусловлена тем, что массивы очень широко используются при разработке различного рода приложений. Массивы являются распространенным и полезным способом сохранения многих различных частей связанных данных. Массивы полезны при создании отсортированных и неотсортированных списков данных, при сохранении таблиц данных и для выполнения многих других задач. С понятием «массив» приходится работать и при решении научно-технических и экономических задач, связанных с обработкой совокупностей большого количества значений.
Массив является удобным способом хранения нескольких связанных элементов данных в едином контейнере для большего удобства и эффективности программирования. Массив позволяет сохранять и манипулировать многими элементами данных посредством единственной переменной. Кроме уменьшения общего числа различных имен переменных, которые необходимо отслеживать, другим основным преимуществом использования массивов является то, что можно использовать циклы для легкой обработки различных элементов массивов. Объединяя массивы и циклы можно написать небольшое число операторов, которые обрабатывают большой объем данных. Выполнение тех же задач с использованием отдельных переменных может потребовать написания сотен операторов.
В
связи со всем изложенным выше цель
данной работы – рассмотреть основные
алгоритмы обработки массивов максимально
близко к практическому их применению.
1. Определение и типы массивов
Массив - это множество однотипных элементов, объединённых общим именем и занимающих в компьютере определённую область памяти. Количество элементов в массиве всегда конечно. В общем случае массив - это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип.
Другими словами можно сказать, что массив представляет собой фиксированное количество упорядоченных однотипных компонент, снабженных индексами, т.е. является совокупностью конечного числа данных одного типа. В качестве элементов массива можно использовать любой тип данных, поэтому вполне правомерно существование массивов записей, массивов указателей, массивов строк, массивов и т.д.
Массивы могут быть:
Для создания массива его предварительно необходимо описать либо в разделе var, либо в разделе type. Для задания массива используется зарезервированное слово array, после которого указывается тип индекса (-ов) компонент (в квадратных скобках) и после слова of - тип самих компонент:
Type
<имя массива>=array[<тип индекса(-ов)>] of <тип компонент>;
Или
Var
<имя
массива>:array[<тип
индекса(-ов)>] of <тип
компонент>;
Введя
тип массив, можно задавать переменные
или типизированные константы этого
типа. Размерность массива может
быть любой, компоненты массива могут
быть любого, в том числе и
При задании значений константе-массиву компоненты указываются в круглых скобках и разделяются запятыми, причем, если массив многомерный, внешние круглые скобки соответствуют левому индексу, вложенные в них круглые скобки - следующему индексу и т.д.
Например,
Type
arr = array [1..3] of real;
matrix = array [1..3, 1..2] of integer;
Const
mas1: arr = (1, 2, 3);
mas2:
matrix = ((1, 2), (3, 4), (5, 6));
Тип
массив можно вводить и
Например,
Var
m1, m2 : array [1..3] of integer;
matr : array [1..3, 1..3] of real;
Доступ
к компонентам массива
Например,
m1 [2], matr[i,j].
Для
обработки массива и
Например,
for i:=1 to
10 do read(mas[i]);
Обработка элементов двумерного массива обычно выполняется с помощью двойного цикла. Один цикл управляет перебором номеров строк, другой - столбцов.
Например,
for i:=1 to 10 do
for j:=1 to
10 do read(mas[i, j]);
Над
элементами массива можно производить
те же операции, которые допустимы для
данных его базового типа. Если два массива
имеют одинаковые типы индексов и одинаковые
типы элементов, то к ним применимы булевы
операции (<>=).
2. Основные операции обработки массивов
2.1 Определение размерности массива, заполнение массива
Размерностью массива называется количество ячеек данного массива. При описании массива необходимо указывать конкретное число ячеек, но при реализации задачи не всегда необходимо заполнять все зарезервированные ячейки.
Например,
Задача 1. «Дан одномерный массив из 10 компонент...» - эта формулировка означает, что и при описании и при обработке массива всегда будут использоваться 10 ячеек.
Задача 2. «Дан массив размерность N…» - данная формулировка означает, что размерность массива будет определяться самим пользователем. Т.е. от разработчика такой программы требуется:
readln(n)-
теперь n обозначает размерность).
Для
того чтобы заполнить массив необходимо
последовательно перебрать все
ячейки (компоненты) массива и записать
в них некоторые значения. Для
перебора ячеек массива используется
цикл for, в котором с помощью счетчика
перебираются индексы ячеек. Заносимые
в массив данные могут запрашиваться как
с клавиатуры, так и выбираться случайным
образом с помощью генератора случайных
чисел Random.
Например,
Способ 1. Заполнение одномерного массива с клавиатуры
writeln(“Введите размерность массива”);
readln(n);
For i:=1 to n do
Begin
Writeln(“Введите ”,i,” элемент массива”);
Readln(mas[i]);
End;
Ход выполнения:
i = | Writeln | Readln | Действие | |
Шаг 1 | 1 | Введите 1 элемент массива | Mas[1] | Считываем число в 1 ячейку |
Шаг 2 | 2 | Введите 1 элемент массива | Mas[2] | Считываем число в 2 ячейку |
Шаг 3 | 3 | Введите 1 элемент массива | Mas[3] | Считываем число в 3 ячейку |
… | … | … | … | … |
Шаг n | n | Введите n элемент массива | Mas[n] | Считываем число в последнюю ячейку |
Способ 2. Заполнение массива случайными числами
writeln(“Введите размерность массива”);
readln(n); {определяем размерность массива}
Randomize; {включаем генератор случайных чисел}
For i:=1 to n do {начинаем перебирать массив}
Mas[i]:=random(100)
{выбор любого числа из указанного диапазона
и размещение его в массиве}
Ход выполнения:
i = | Random | Mas[i] | Действие | |
Шаг 1 | 1 | Любое число до 100 | Любое число до 100 | Считываем выбранное число в массив |
Шаг 2 | 2 | Любое число до 100 | Любое число до 100 | Считываем число в 2 ячейку |
Шаг 3 | 3 | Любое число до 100 | Любое число до 100 | Считываем число в 3 ячейку |
… | … | … | ||
Шаг n | n | Любое число до 100 | Любое число до 100 | Считываем число в последнюю ячейку |
Примечание: в случае, если размерность массива известна заранее, то чикл for выполняется от 1 до определенного числа.
Например,
for i:=1 to 5 do – перебор
5 ячеек массива.
2.2 Вывод массива на экран
Для вывода массива необходимо последовательно перебрать все ячейки (компоненты) массива и вывести лежащие там значения на экран с помощью оператора write / writeln.
Оператор write выведет значения массива в строку
Оператор writeln выведет значения массива в столбец
Для перебора
ячеек массива используется цикл
for, в котором с помощью счетчика перебираются
индексы ячеек.
Способ 1. Вывод одномерного массива размерностью 3 с помощью оператора writeln
Writeln(‘Массив’);
For i:=1 to 3 do
Writeln(mas[i]);
Экранное
представление
Способ 2. Вывод одномерного массива размерностью 3 с помощью оператора write
Writeln(‘Массив:’);
For i:=1 to 3 do
Write(mas[i],’ ‘);
Экранное
представление
2.3 Поиск требуемого элемента в массиве
Общий алгоритм поиска в массиве определенного элемента можно представить следующим образом:
Рисунок
1. Блок-схема поиска требуемого элемента
в массиве
Например,
Дан одномерный массив из 7 ячеек. Определить, сколько в нем чисел кратных 7.
Var
mas:array[1..7] of integer;
i:integer; {необходима для перебора массива}
kol:integer; {количество подходящих элементов}
begin
for i:=1 to 7 do
begin
write(‘Введите’ ,i, ‘ элемент’);