Массивы. Основные алгоритмы обработки массивов на примере языка программирования Pascal

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

Пробная работа.Массивы.doc

— 221.00 Кб (Скачать файл)

readln(mas[i]); {заполняем массив}

if (mas[i] mod 7 =0) and (mas[i]<>0) then kol:=kol+1 

{если  элемент делится на 7 и в остатке  ноль и при этом сам элемент  не равен нулю, то увеличиваем  счетчик kol}

end;

writeln(“Количество чисел кратных 7 -”, kol) {вывод результата}

end. 

Ход выполнения:

9 -7 0 14 5 21 -5 Элементы
1 2 3 4 5 6 7 Индексы

Введенный массив  
 

  i = Readln(mas[i]) Проверка

(mas[i] mod 7 =0) and (mas[i]<>0)

Действие
Шаг 1 1 Mas[1]=9 ложь Kol=0
Шаг 2 2 Mas[2]=-7 истина Kol=0+1
Шаг 3 3 Mas[3]=0 ложь Kol=1
Шаг 4 4 Mas[4]=14 истина Kol=1+1
Шаг 5 5 Mas[5]=5 ложь Kol=2
Шаг 6 6 Mas[6]=21 истина Kol=2+1
Шаг 7 7 Mas[7]= -5 ложь Kol=3
Вывод результата на экран

2.4 Поиск максимального и минимального элементов массива

Общий алгоритм работы можно представить  в следующем виде:

  • определяются переменные (max и min), в которых в результате выполнения алгоритма разместятся соответственно максимальное и минимальное значения;
  • начинается перебор массива с одновременной проверкой «является ли просматриваемый элемент больше максимального или меньше минимального»; в случае, если условие истинно – значение элемента массива присваивается соответствующей переменной;

Основной  алгоритм выглядит следующим образом:

Max:= - 32000;

Min:= 32000;

For i:=1 to n do

begin

If mas[i]>max then max:=mas[i];

If mas[i]<min then min:=mas[i];

End;

Ход выполнения:

9 -7 0 -10 Элементы
1 2 3 4 Индексы

Введенный массив  
 

  i = Данные Условие Ответ Действие
Шаг 1 1 Max=-32000

Min=32000

Mas[1] = 9

9 > -32000     9 < 32000 истина

истина

Max=9

Min=9

Шаг 2 2 Max=9

Min=9

Mas[2]= - 7

-7 > 9

-7 < 0

ложь

истина

Max=9

Min= - 7

Шаг 3 3 Max=9

Min= - 7

Mas[3]=0

0 > 9

0 < -7

ложь

ложь

Max=9

Min= - 7

Шаг 4 4 Max=9

Min= - 7

Mas[4] = - 10

-10 > 9

- 10 < -7

ложь

истина

Max=9

Min= - 10

 
 

2.5 Сортировка элементов массива

     Существует  много алгоритмов сортировки массива, но наиболее простым и понятным является сортировка методом «пузырька», при  которой самый «легкий» элемент  «всплывает», а самый тяжелый  «тонет».

Например,

9 -7 0 -8 Элементы
1 2 3 7 Индексы

Дан массив

  

     Необходимо  расположить эти элементы в порядке  возрастания, т.е. в результате работы программы необходимо получить массив

-8 -7 0 9 Элементы
1 2 3 7 Индексы
 
 
 

     При сортировке методом «пузырька» сравниваются два соседних элемента (mas[i] и mas[i+1]). Если mas[i] > mas[i+1], то происходит перестановка элементов. Визуально процесс сортировки можно представить в виде:

 
 
 
 
 
 

Рисунок 2. Сортировка методом «пузырька»

     Таким образом, для организации сортировки потребуется два цикла, которые выстраиваются в следующем порядке:

(n-размерность массива)

For j:=1 to n do    {количество просмотров массива}

For i:=1 to n-1 do  {перебор элементов массива}

If mas[i] > mas[i+1] then begin

          t:=mas[i];

          mas[i]:=mas[i+1];

          mas[i+1]:=t;

          end; 

      Как видно из примера для перестановки элементов массива требуется  дополнительная переменная, которая  служит временным хранилищем значения ячейки массива.

9 -7 0 -8

Шаг 1.

9 -7 0 -8
 
 
9 -7 0 -8
-7 -7 0 -8

Шаг 2.  

-7 -7 0 -8
-7 9 0 -8

Шаг 3. 

 

3. Особенности  обработки двумерных массивов

     Двумерный массив – структура данных, хранящая в себе прямоугольную матрицу. В матрице каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен.

     Для описания двумерных массивов используются те же способы, что и для одномерных массивов, но в качестве размерности массива задается двойное значение (Например, [1..10,1..10]).

     Таким образом, для создания двумерного целочисленного массива размерностью 5×7 (5 строк, 7 столбцов) необходимо записать:

Способ 1

Type mas=array[1..5,1..7] of integer;

Способ 2

Var mas:array[1..5,1..7] of integer; 

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

For i:=1 to 5 do  {перебор строк матрицы}

For j:=1 to 7 do  {перебор столбцов (ячеек) в строке}

Т.е. значение индекса строки (i) увеличится только в том случае, если индекс столбца (j) дойдет до своего конечного значения (в примере j = 7).

      При такой организации перебора элементов массива процесс перебора будет проходить по следующей схеме: 

11 12 13 14 15 16 17
21 22 23 24 25 26 27
31 32 33 34 35 36 37
41 42 43 44 45 46 47
51 52 53 54 55 56 57
 

Рисунок 3. Процесс перебора элементов двумерного массива

Ход выполнения:

  i = j= Условие перехода на следующую  строку j=7 Обрабатываемый  элемент
Шаг 1 1 1 нет Mas[1,1]
Шаг 2 1 2 нет Mas[1,2]
Шаг 3 1 3 нет Mas[1,3]
Шаг 4 1 4 нет Mas[1,4]
Шаг 5 1 5 нет Mas[1,5]
Шаг 6 1 6 нет Mas[1,6]
Шаг 7 1 7 да Mas[1,7]
Шаг 8 2 1 нет Mas[2,1]
Шаг 9 2 2 нет Mas[2,2]
Шаг 10 2 3 нет Mas[2,3]

Информация о работе Массивы. Основные алгоритмы обработки массивов на примере языка программирования Pascal