Передача аргументов процедурам и функциям в языке Pascal 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Передача аргументов процедурам и функциям в языке Pascal



При использовании процедур и функций следует различать локальные и глобальные переменные. Локальными называются переменные, описанные в разделе описаний подпрограммы. Локальные данные могут использоваться и изменяться только операторами внутри данной подпрограммы.

В головной программе тоже есть свой раздел описаний. Глобальными называются переменные, описанные в разделе описаний головной программы. Они доступны из любой точки программы.

В программировании существует понятие передачи параметров по значению и по ссылке. Разница между этими способами заключается в следующем: При передаче параметра по значению изменение этого параметра внутри процедуры (функции) никак не отразится на вызывающей программе. При передаче же по ссылке изменение параметра внутри процедуры (функции) влечет за собой изменение и самой передаваемой переменной

Для передачи параметра по ссылке используется ключевое слово var перед именем параметра. Любое изменение такого параметра внутри процедуры отразится на значении переменной в головной программе.

Понятие массива. Объявление массива в языке Pascal

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

Для массивов характерно следующее:

q каждый компонент массива может быть явно обозначен и к нему имеется прямой доступ;

q число компонент массива определяется при его описании и в дальнейшем не меняется.

Доступ к элементам массива осуществляется по имени массива и номеру элемента в массиве (индексу): arr[12]; matr[i]; vect[k+1].

Объявление массива имеет вид:

имя: array[нач_индекс..кон_индекс] of тип_элементов;

Количество элементов в массиве должно быть определено при его объявлении. Пример объявления:

vector: array[1..12] of real;

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

Массивы относятся к структурам прямого доступа. Это означает, что возможно напрямую (не перебирая предварительно все предшествующие компоненты) обратиться к любой компоненте массива.

Массивы могут быть многомерными. Многомерный массив можно рассматривать как «массив массивов». Поэтому, например двумерный массив (матрицу) можно объявлять двояко:

var m: array[1..3] of array[1..4] of integer;

var m: array[1..3,1..4] of integer;

Методы сортировки массивов

Сортировкой или упорядочением массива называется расположение его элементов по возрастанию (или убыванию). Существует много методов сортировки массивов. Эффективность метода определяют путем сравнения времени сортировки и размера массива.

Простейшими методами сортировки являются метод пузырька (обменами) и метод отбора (последовательных минимумов). Время сортировки массивов этими методами пропорционально квадрату размера массива (т.е. при увеличении размера массива в 10 раз время сортировки увеличивается в среднем в 100 раз).

(быть готовым рассказать алгоритм одного из этих методов)

Более сложными являются алгоритмы: «быстрая сортировка» (Quick Sort), сортировка «кучей» (Heap Sort), сортировка слиянием, пирамидальная сортировка. Время сортировки этими методами пропорционально log N, где N – размер массива.

Идея метода сортировки вставками: последовательное пополнение ранее упорядоченных элементов. На первом шаге сортируются два первые элемента. Затем на свое место среди них вставляется третий элемент. К трем упорядоченным добавляется четвертый, который занимает свое место в четверке и т.д. Примерно так игроки упорядочивают свои карты при сдаче их по одной.

Идея метода быстрой сортировки (Quick Sort): Сначала выбирается средний элемент в сортируемом массиве. Все, что больше этого элемента переносится в правую часть массива, а все, что меньше – в левую. После первого шага средний элемент оказывается на своем месте. Затем аналогичная процедура повторяется для каждой половины массива. На каждом последующем шаге размер обрабатываемого фрагмента массива уменьшается вдвое.



Поделиться:


Последнее изменение этой страницы: 2017-01-24; просмотров: 346; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.200.66 (0.007 с.)