Массивы в языках Pascal и Basic

Министерство образования РФСредняя школа 4РЕФЕРАТпо информатикеТема Массивы в языках Pascal и Basic Выполнила ученица 10 А классаРудых ЕленаПреподаватель Иркутск, 2002С понятием массив приходится сталкиваться при решениинаучно-технических и экономических задач обработки совокупностей большого количества значений.Массив- это множество однотипных элементов, объедин нных общим именеми занимающих в компьютереопредел нную область памяти.Количествоэлементов в массиве всегдаконечно.

В общемслучае массив - это структурированный тип данных, состоя- щийиз фиксированного числа элементов, имеющих один и тот же тип. Названиерегулярный тип или ряды массивыполучили за то, что в нихобъединены однотипные логически однородные элементы, упоря- доченные урегулированные по индексам, определяющим положение каждогоэлемента в массиве.В качествеэлементов массива можно использовать любой тип дан- ных, поэтому вполне правомерно существование массивов записей, массивовуказателей, массивов строк, массивов массивов и т.д. Элементамимассива могут быть данные любого типа, включая струк- турированные.Типэлементов массива называется базовым.

Особенностью языка Паскальявляется то, что число элементов массива фиксируется при описаниии в процессе выполненияпрограммы не меняется.Элементы,образующие массив, упорядочены таким образом, что каж- домуэлементу соответствует совокупность номеров индексов , оп- ределяющихего местоположение в общейпоследовательности.

Доступ ккаждому отдельному элементу осуществляется путем индексирования элементовмассива. Индексы представляют собой выражения любого скалярноготипа чаще целого , кроме вещественного. Типиндекса определяет границы изменения значений индекса. Для описаниямассива предназначено словосочетание array of массив из . Одномерные массивыМассивомназывается совокупность данных, выполняющих аналогичные функции,и обозначаемая одним именем.Если за каждым элементом массивазакреплен только один его порядковый номер, то такой мас- сивназывается линейным, или одномерным.

Массив в Бейсике Описыватьмассив DIM A N - это значит предоставить lt N gt свободныхячеек в памяти ЭВМ для массива сименем А. Еслиописание массива отсутствует, то под одномерный массиввыделяется 10 ячеек памяти. Каждыйэлемент массива в общем видеописывается как А I , где А- имя массива, I- номер или индекс массива 0 lt I lt N, но практически употребляется1 lt I lt N A I - значение элемента массива.Массивв Паскале lt имямассива gt array lt количество элементов gt of lt тип переменной gt Каждыйэлемент массива в общем видеописывается как А I , где А- имя массива, I- номер или индекс массива 0 lt I lt N, но практически употребляется1 lt I lt N A I - значение элемента массива.

Действиянад массивами Дляработы с массивом как единым целым используется идентифика- тормассива без указания индекса вквадратных скобках.Массив мо- жетучаствовать только в операцияхотношения равно , не равно ив операторе присваивания.

Массивы, участвующие в этих действи- ях,должны быть идентичны по структуре, т. е. иметь одинаковые типыиндексов и одинаковые типы компонентов.Например,если массивы А и В описаны как varА, В array 1 20 of real топрименение к ним допустимых операцийдаст следующий результат ВыражениеРезультат А В True, если значение каждого элементамассива А равно соответствующемузначению элемента массива В А lt gt В True, если хотя бы одно значениеэлемента массива А неравно значению соответствующего элемента массива В А В Все значения элементов массива В присваиваются соответ- ствующимэлементам массива А. Значения элементов массиваВ остаются неизменны.

Действия над элементами массива Послеобъявления массива каждый его элемент можно обработать, указавидентификатор имя массива и индекс элемента вквадратных скобках.Например, запись Mas 2 , VectorZ 10 позволяет обратить- сяко второму элементу массива Mas и десятому элементу массива VectorZ.Приработе с двумерным массивом указываются два индекса, с n-мерныммассивом - n индексов.

Например, запись MatrU 4,4 дела- етдоступным для обработки значение элемента, находящегося в чет- вертойстроке четвертого столбца массива MatrU. Индексированныеэлементы массива называются индексированными пе- ременнымии могут быть использованы так же, как и простые пере- менные.Например, они могут находиться ввыражениях в качестве операндов,использоваться в операторах for,while, repeat, вхо- дитьв качестве параметров в операторы Read, Readln, Write, Wri-teln им можно присваивать любые значения, соответствующие их ти- пу. Алгоритмы сортировки одномерных массивов Сортировка- один из наиболее распростран нных процессов совре- меннойобработки данных.

Сортировкой называется распределение элементовмассива в соответствии сопредел нными правилами. Нап- ример,сортировка массива по возрастанию или убыванию его элемен- тов.Обменная сортировка метод пузырька . Алгоритмначинается со сравнения 1-го и 2-го элементов массива.Если2-й элемент меньше 1-го, то они меняются местами.

Этот про- цессповторяется для каждой пары соседних элементов массива, пока всеN элементов не будут обработаны. За один проход массива са- мыйбольшой элемент встанет на старшее N-е место. Далее алго- ритмповторяется, причем на р-м проходе первые N-p элементов сравниваютсясо своими правыми соседями. Если на очередном про- ходе перестановок не было, то алгоритм свою работу закончил.Та- кимобразом, самые легкие элементы впроцессе исполнения алго- ритмапостепенно всплывают . Сортировка вставками.

Вначалеупорядочиваются два первых элемента массива. Они образу- ютначальное упорядоченное множество S. Далее на каждом шаге бе- ретсяследующий по порядку элемент и вставляется вуже упорядо- ченноемножество S так, чтобы слева от него все элементы были не больше,а справа - не меньше обрабатываемого. Место для вставки текущегоэлемента в упорядоченноемножество S ищется методом де- ленияпополам.Алгоритм сортировки заканчивает свою работу, когда элемент,стоящий на N-м месте, будет обработан.

Именно таким об- разомигроки в бридж обычноупорядочивают свои карты . Сортировка выбором.Находитсянаибольший элемент в массиве изN элементов пусть он имеетномер р и меняется местами с элементом, стоящим на N-м месте,при условии, что N lt gt p. Из оставшихся N-1 элементов снова выделяетсянаибольший и меняется местами с элементом, стоящим на N-1 -мместе и т. д. Алгоритм заканчивает свою работу, когда элементы,стоящие на 1-м и 2-м местах вмассиве, будут упорядоче- ны для этого понадобится N-1 проход алгоритма . Аналогично данныйалгоритм можно применять и к наименьшим элементам.

Двумерные массивыДвумернымназывается массив, элемент которого зависит от его местоположенияв строке и в столбце. В общем виде элемент матрицы обозначаетсякак A I,J , где А - имя массива, I- индекс номер строки, J- индекс номер столбца.Описание матрицы на языке Бейсик DIMA I,J - описать матрицу двумерный массив это значит пре- доставитьсвободные ячейки в памяти ЭВМдля элементов данной мат- рицы.В памяти ЭВМ элементы матрицырасполагаются по строкам, по- этомуиндекс строки изменяется медленнее, чем индекс столбца.

Прямоугольнойназывается матрица, в которойколичество строк не равноколичеству столбцов. Квадратнойназывается матрица, в которойколичество строк равно количествустолбцов.Описание матрицы на языке Паскаль Матрицуможно задать двумя способами I. lt имя матрицы gt array lt количество строк gt of array lt количествостолбцов gt of lt тип переменной gt II. lt имя матрицы gt array lt количество строк gt , lt количество столб-цов gt оf lt тип переменной gt . Соотношение индексов вквадратной матрице I Jэлементы матрицы расположены на главной диагоналиI lt Jэлементы матрицы расположены над главной диагональюI gt Jэлементы матрицы расположены под главной диагональюI J N Iэлементы матрицы расположены на побочной диагонали N - количество строк или столбцовв квадратной матрице I J lt N Iэлементы матрицы расположены над побочной диагональюI J gt N Iэлементы матрицы расположены под побочной диагональю.

Нижеприведены примеры задач с массивами на языке Turbo Pascal.

Пример1. Ввод значений элементов массива с помощью генератора случайныхчисел и вывод их в строчку.Примечание Дляиспользования случайных чисел вTP используются операторы random real- генерирует случайные числа вдиапазоне 0 0.99. random i word word- генерирует случайные числа вдиапазоне 0 1.randomize- изменение базы генератора случайных чисел. program mas1 var a array 1 10 of integer i integer begin randomize for i 1 to 10 do begin a i random 20 write a , i, , a i , end readln end. Пример2. Составить программу заполнения одномерного массива, так чтобы его i-ый элемент был равен a i i i 1 sin i . program mas2 var a array 1 10 of real i integer begin for i 1 to 10 do begin a i i i 1 sin i writeln a , i, , a i , end readln end. Пример3. Составить программу определения количества элементов одномерногомассива, значение элементов которых меньше заданногодействительного числа t. program mas3 var a array 1 10 of real i,k integer t real begin write Введите число t read t k 0 for i 1 to 10 do beginwrite Введитезначение элемента a , i, readln a i if a i lt t then k k 1 end writeln Ответ Количество элементов, меньших заданного числа t, writeln равно k ,k readln end. Пример4. Нахождение среди значений элементов, находящихся на главнойдиагонали матрицы, наибольшего и наименьшего. program mas4 var a array 1 10,1 10 of integer i,j,max,min integer begin for i 1 to 10 do for j 1 to 10 do beginwrite Введитезначение элемента матрицы readln a i,j end max a 1,1 min a 1,1 for i 1 to 10 do begin if a i,i gt max then max a i,i if a i,i lt min then min a i,i end writeln Наибольшеезначение , max writeln Наименьшеезначение , min readln end. Пример5. Сортировка массива по возрастанию. program SortingMax var i,j integer r,q real x array 1 20 of real beginwriteln Ведитемассив, cостоящий из 20 чисел for i 1 to 20 do read x i for i 1 to 19 do for j i 1 to 20 do if x i gt x j then begin r x i x i x j x j r end writeln Сортировкамассива по возрастанию произведена for i 1 to 20 do writeln x i writeln Длявыхода введите любое число. readln q end.Источник Львовский М.Б. Методическое пособие BOOK по информатике для 9-11 классов.Адрес http markbook.chat.ru book.