МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИИ Томский политехнический университет ____________________________________________________...
7 downloads
333 Views
146KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИИ Томский политехнический университет ______________________________________________________________
УТВЕРЖДАЮ Декан АВТФ Мельников Ю.С. “__” ______2002 г.
ОТКРЫТЫЕ МАССИВЫ В OBJECT PASCAL Методические указания к лабораторной работе № 136 по курсу “Программирование и основы алгоритмизации” для студентов направления 550200 “Автоматизация и управление”
Томск - 2002
УДК 681.3 Открытые массивы в Object Pascal. Методические указания к лабораторной работе № 136 по курсу “Программирование и основы алгоритмизации” для студентов направления 550200 “Автоматизация и управление”. Томск: Изд. ТПУ, 2002. - 6 с.
Составитель Н.М. Семёнов Рецензент к.т.н., доцент Е.И. Громаков
Методические указания рассмотрены и рекомендованы методическим семинаром кафедры интегрированных компьютерных систем управления “___” ___________ 2002 г. Зав. кафедрой
А.М. Малышенко
2
ОТКРЫТЫЕ МАССИВЫ В OBJECT PASCAL Цель работы: познакомить студентов с некоторыми особенностями массивов в Object Pascal и развить навыки работы со средой Delphi. Массивы являются примером структурированного типа данных. Массив структура сохраняемых в памяти данных, состоящих из последовательности значений, относящихся к одному типу. В качестве базового может использоваться любой объявленный тип. При разработке подпрограмм общего назначения желательна возможность обрабатывать массивы различной длины. Но Паскаль позволяет указывать параметры, тип которых - массивы с определенным количеством элементов. Такие параметры требуют, чтобы у аргументов был такой же тип данных. Это требование ограничивает полезность подобных подпрограмм. 1. Открытые параметры В Object Pascal имеется возможность использования открытых массивов, которые позволяют указывать базовый тип массива, не фиксируя при этом его размер. У аргумента для параметра - открытого массива должен быть такой же тип элемента. Общий синтаксис открытого массива выглядит так: openArray: array of типЭлемента; Базовый тип параметра openArray - типЭлемента. У этого параметра нет фиксированного размера. Параметр openArray отображается на диапазоне индексов 0 .. (N-1), где N - количество элементов в фактическом аргументе параметра openArray. Пример: function sumArray (var arr: array of real) : real; procedure linearRegression (var X,Y: array of real; var slope, intercept,R2: real); Параметр arr функции sumArray - открытый массив элементов типа real. У процедуры linearRegression два параметра - открытых массивов, а именно X и Y. Открытые массивы следует использовать при разработке обобщенных подпрограмм, работающих с массивами данных. Не следует забывать, что нижний индекс открытого массива всегда равен 0, а не 1.
2. Функции Low и High 3
Предопределенные функции Low и High возвращают наименьший и наибольший индексы для массива, включая и параметры - открытые массивы. Используя эти функции (или, по крайней мере, функцию High), можно эффективно обрабатывать весь массив. Пример реализации функции sumArray, написанной с использованием функции High. function sumArray (var arr: array of real): real; var i:word; begin Result:=0; for i:=0 to High(arr) do Result := Result + arr[i]; end; Задание1: реализуйте эту функцию в приложении Delphi. 3. Строки как открытые массивы Паскалевский тип String ограничен 255 символами. Можно использовать тип array of char при разработке подпрограмм для работы со строками, максимальная длина которых может превышать этот лимит. При этом надо учитывать, что такие строки заканчиваются нулевым символом (то есть ASCII 0, или #0). Такие строки называются ASCIIZ - строками. Пример процедуры, которая преобразует символ в ASCIIZ - строке в верхний регистр: procedure toUpcaseStr(var aStr: array of char); var i:Integer: begin i:=0; while(aStr[i] <>#0) and (i<= High(aStr)) do begin aStr[i]:=UpCase(aStr[i]); inc(i); end; end; Аргументами для параметра aStr служат массивы символов. Задание 2: Реализуйте эту процедуру в приложении Delphi. 4. Дополнительные задания 4
1. Напишите, используя параметр array of char, процедуру toLoCaseSTR, которая преобразует символы ASCIIZ - строки в нижний регистр. 2. Напишите процедуру MinMax, возвращающую наименьшее и наибольшее значения в массиве вещественных чисел. Для того, чтобы процедура могла работать с массивами различной длины, используйте в качестве параметра открытый массив. 3. Методом выбора определите максимальную и минимальную суммы элементов матрицы m × n при условии, что при вычислении очередной суммы в каждой строке и каждом столбце может быть выбран только один элемент. При решении задачи применить обычные массивы. 5. Литература 1. Возневич Э. Delphi. Освой самостоятельно. - М.: Восточная Книжная Компания, 1996.-73с. 2. Рубенкинг Н. Программирование в Delphi для “чайников”. - К.: Диалектика, 1996.-304с. 3. Фаронов В. Delphi 6: учебный курс. – СПб.: Питер, 2002. – 512 с.
ОТКРЫТЫЕ МАССИВЫ В OBJECT PASCAL Методические указания Составитель Николай Михайлович Семёнов Подписано к печати Формат 60*84/16. Бумага писчая №2. Плоская печать. Усл. печ. л. . Уч. - изд. л. . Тираж экз. Заказ № . Цена С. ИПФ ТПУ. Лицензия ЛТ № 1 от 18.07.94. Ротапринт ТПУ. 634034, Томск, пр. Ленина,30.
5