Учебное пособие по курсу Программирование на языке высокого уровня для вузов по специальности 230105 Программное обеспечение вычислительной техники и автоматизированных систем
Скачать 0.64 Mb.
|
1 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное Образовательное Учреждение Высшего Профессионального Образования « Московский Государственный Университет Приборостроения и Информатики » Кафедра « Управление и моделирование систем » УЧЕБНОЕ ПОСОБИЕ Программирование (Турбо–Паскаль). Часть 2. ПО КУРСУ Программирование на языке высокого уровня Специальность 230105 « Программное обеспечение вычислительной техники и автоматизированных систем » Направление 230100 « Информатика и вычислительная техника » Москва 2007 PDF created with pdfFactory Pro trial version www.pdffactory.com 2 УДК 681.324 Рекомендовано УМУ МГУПИ в качестве учебного пособия. Выжигин А.Ю. Программирование. (Турбо-Паскаль). Часть 2. Учебное пособие по курсу «Программирование на языке высокого уровня» для вузов по специальности 230105 «Программное обеспечение вычислительной техники и автоматизированных систем» и направлению 23100 «Информатика и вычислительная техника». – М.: МГУПИ, 2007 - С. 69. Данное учебное пособие посвящено вопросам программирования на языке Турбо-Паскаль версии не ниже 5.0. В нем изложены основные теоретические моменты и приведено много практических задач по рассмотренным вопросам. Рекомендуется в качестве учебного пособия для студентов вузов, обучающихся по специальности 230105 «Программное обеспечение вычислительной техники и автоматизированных систем» и направлению 23100 «Информатика и вычислительная техника». Рецензент: Заведующий кафедрой информатики и математики Московского гуманитарного университета к.т.н., доцент Ю.К. Щипин; ISBN Л XXXXXX XXXXX PDF created with pdfFactory Pro trial version www.pdffactory.com 3 ОГЛАВЛЕНИЕ ЛЕКЦИЯ 14. ТИП ЗАПИСЬ. .........................................................................................................................5 Записи и обозначения полей.......................................................................................................................7 Оператор над записями with...................................................................................................................7 Константы с типом запись..........................................................................................................................9 Записи с вариантами ..................................................................................................................................9 ПРАВИЛА : ..........................................................................................................................................10 Семинар. Работа с типом данных «Записи». ...........................................................................................11 ЗАДАЧА : .................................................................................................................................................11 ЗАДАЧА : .................................................................................................................................................13 ЛЕКЦИЯ 15. МНОЖЕСТВЕННЫЙ ТИП ДАННЫХ..................................................................................15 Переменные множественных типов данных. ...........................................................................................15 Операции над множествами.....................................................................................................................15 Семинар. Работа с множественным типом данных. ................................................................................17 ЗАДАЧА ...................................................................................................................................................17 ЗАДАЧА : .................................................................................................................................................17 ЗАДАЧА : .................................................................................................................................................18 ЗАДАЧА ...................................................................................................................................................19 ЗАДАЧА ...................................................................................................................................................19 ЗАДАЧА : .................................................................................................................................................19 ЛЕКЦИЯ 16. ФАЙЛЫ .................................................................................................................................22 Доступ к файлам.......................................................................................................................................23 Имена файлов. ..........................................................................................................................................24 Логические устройства. ............................................................................................................................25 Инициализация файла ..............................................................................................................................26 ЛЕКЦИЯ 17. Процедуры и функции для работы с файлами.......................................................................29 Процедура CLOSE....................................................................................................................................29 Процедура RENAME................................................................................................................................29 Процедура ERASE....................................................................................................................................29 Процедура FLUSH. ...................................................................................................................................31 Функция EOF (<ф.п.>):Boolean...............................................................................................................31 Процедура CHDIR. ...................................................................................................................................31 Процедура GETDIR. .................................................................................................................................31 Процедура MKDIR. ..................................................................................................................................32 Процедура RMDIR....................................................................................................................................32 Функция IORESULT:WORD. ...................................................................................................................32 Функция DISKFREE(<диск>):LONGINT.................................................................................................32 Функция DISKSIZE(<диск>):LONGINT. .................................................................................................33 Процедура FINDFIRST.............................................................................................................................33 Процедура FINDNEXT.............................................................................................................................35 Процедура GETFTIME. ............................................................................................................................35 Процедура SETFTIME..............................................................................................................................35 Процедура GETFATTR. ...........................................................................................................................35 Процедура SETFATTR. ............................................................................................................................36 Функция FSEARCH типа PATHSTR. .......................................................................................................36 Процедура FSPLIT....................................................................................................................................36 Функция FEXPAND типа PATHSTR. ......................................................................................................37 ЛЕКЦИЯ 18. ТЕКСТОВЫЕ ФАЙЛЫ. ........................................................................................................38 Процедура READ......................................................................................................................................38 ПРОЦЕДУРА READLN. ..........................................................................................................................40 ПРОЦЕДУРА WRITE. .............................................................................................................................41 ПРОЦЕДУРА WRITELN. ........................................................................................................................42 ЛОГИЧЕСКАЯ ФУНКЦИЯ EOLN........................................................................................................42 ЛОГИЧЕСКАЯ ФУНКЦИЯ SEEKEOLN. ..............................................................................................43 ЛОГИЧЕСКАЯ ФУНКЦИЯ SEEKEOF. ..................................................................................................43 PDF created with pdfFactory Pro trial version www.pdffactory.com 4 ЛЕКЦИЯ 19. ТИПИЗИРОВАННЫЕ ФАЙЛЫ. ...........................................................................................45 ПРОЦЕДУРА READ. ...............................................................................................................................45 ПРОЦЕДУРА WRITE. .............................................................................................................................45 ПРОЦЕДУРА SEEK.................................................................................................................................45 ФУНКЦИЯ FILESIZE. .............................................................................................................................46 ФУНКЦИЯ FILEPOS. ..............................................................................................................................46 ЛЕКЦИЯ 20. НЕТИПИЗИРОВАННЫЕ ФАЙЛЫ. ......................................................................................47 Семинар. Работа с файлами. ....................................................................................................................49 ЗАДАЧА. ..................................................................................................................................................49 ЗАДАЧА ...................................................................................................................................................49 Пример:.....................................................................................................................................................50 ЗАДАЧА ...................................................................................................................................................52 ЗАДАЧА ...................................................................................................................................................52 ЗАДАЧА ...................................................................................................................................................53 ЛЕКЦИЯ 1, 2 для 2-го семестра 1 курса УКАЗАТЕЛИ И ДИНАМИЧЕСКАЯ ПАМЯТЬ .......................55 Динамическая память...............................................................................................................................55 Адреса и указатели. ..............................................................................................................................56 Объявление указателей.........................................................................................................................57 Пример списочной структуры данных .................................................................................................58 Выделение и освобождение динамической памяти. ................................................................................59 Использование указателей........................................................................................................................63 Процедуры и функции для работы с динамической памятью. ................................................................67 Функция ADDR.....................................................................................................................................67 Функция CSEG......................................................................................................................................67 Процедура DISPOSE.............................................................................................................................67 Функция DSEG. ....................................................................................................................................68 Процедура FREEMEM..........................................................................................................................68 Процедура GETMEM............................................................................................................................68 Процедура MARK.................................................................................................................................68 Функция MAXAVAIL...........................................................................................................................68 Функция MEMAVAIL. .........................................................................................................................69 Процедура NEW....................................................................................................................................69 Функция OFS. .......................................................................................................................................69 Функция PTR. .......................................................................................................................................69 Процедура RELEASE............................................................................................................................70 Функция SEG. .......................................................................................................................................70 Функция SIZEOF. .................................................................................................................................70 Администратор кучи. ...............................................................................................................................70 PDF created with pdfFactory Pro trial version www.pdffactory.com 5 ЛЕКЦИЯ 14. ТИП ЗАПИСЬ . Тип запись cодержит установленное число компонент или полей, которые могут быть различных типов. Объявление типа запись указывает тип каждого поля и идентификатор, который именует поле. Фиксированная часть типа запись содержит список фиксированных полей вместе с идентификатором и типом для каждого поля. Каждое поле содержит информацию, которая всегда отыскивается одним и тем же способом. Приведем пример типа запись: type DateRec = record Year : Integer; Month : 1 .. 12; Day : 1 .. 31; end; В вариантной части, изображенной на синтаксической диаграмме объявления типа запись, память распределяется более чем для одного списка полей, поэтому доступ к информации может быть осуществлен более чем одним способом. Каждый список полей является вариантом. Варианты налагаются друг на друга в памяти, поэтому в любое время возможен доступ ко всем полям во всех вариантах. Тип запись RECORD Список полей END Список полей Фиксирован- ная часть ; Вариантная часть ; Вариантная часть PDF created with pdfFactory Pro trial version www.pdffactory.com 6 Вы можете видеть на диаграмме, то каждый вариант идентифицируется, по крайней мере, одной константой. Все константы должны быть отличными друг от друга и иметь порядковый тип, совместимый с типом поля признака. Доступ к вариантным и фиксированным полям один и тот же. В вариантной части можно указать необязательный идентификатор - идентификатор признака поля. При наличии идентификатора признака поля он становится идентификатором дополнительного фиксированного поля записи - поля признака. Программа может использовать значение поля признака для указания, какой вариант является активным в настоящий момент. Без указания поля признака программа выбирает вариант по другому критерию. Ниже приводится несколько примеров типа запись: type Person = record FirstName, LastName: string[40]; BirthDate: Date; case Citizen: Boolean of True: (BirthPlace : string[40]); False: (Country: string[20]; EntryPort: string[20]; EntryDate: Date; ExitDate: Date); end; Polygon = record X, Y: Real; case Kind: Figure of Rectangle: (Height, Width: Real); Triangle: (Size1, Size2, Angle: Real); Circle: (Radius: Real); end; CASE Иденти- фикатор : Тип поля признака OF Вариант ; PDF created with pdfFactory Pro trial version www.pdffactory.com 7 Записи и обозначения полей . Конкретное поле переменной записи обозначается с помощью ссылки на переменную записи, после которой указывается обозначение поля, задающее это поле. Приведем несколько примеров обозначения полей: Today.Year Results[1].Count Results[1].When.Month Оператор над записями with. В операторе, входящем в оператор with, обозначению поля не должна предшествовать ссылка на переменную, содержащую запись. В операциях над записями оператор with удобно использовать для краткого обращения к полям записи и к полям, методам, констрактору и дестрактору объекта. В операторе with к полям одной или более конкретных переменных типа запись можно обращаться, используя только идентификаторы полей. Оператор with имеет следующий синтаксис, согласно приведенным примерам: with Data do if Month = 12 then begin Month := 1; Year := Year + 1; end else Month := Month + 1; Это эквивалентно следующему: if Date.Month = 12 then begin Date.Month := 1; Date.Year := Date.Year + 1; end else Date.Month := Date.Month + 1; PDF created with pdfFactory Pro trial version www.pdffactory.com 8 В операторе with сначала производится проверка каждой ссылки на переменную, а именно: можно ли ее интерпретировать, как поле записи. Если можно, то она всегда интерпретируется именно таким образом, даже если имеется доступ к переменной с тем же именем. Допустим, объявлены следующие переменные: type Point = record X, Y: Integer; end; var X : Point; Y : Integer; В этом случае и к X, и к Y можно обращаться, как к переменной или как к полю записи. В операторе: with X do begin X := 10; Y := 25; end; X между ключевыми словами with и do относится к переменной типа point, а в составном операторе X и Y ссылаются на X.X и X.Y. Оператор with V1, V2, ... Vn do S; эквивалентен операторам: with V1 do with V2 do with Vn do S; В обоих случаях, если Vn является полем и V1, и V2, то она интерпретируется как V2.Vn, а не как V1.Vn. Если выборка переменной типа запись связана с индексированием массива или вычислением указателя, то эти действия производятся до того, как будет выполняться составной оператор. PDF created with pdfFactory Pro trial version www.pdffactory.com 9 Константы с типом запись . Объявление константы с типом запись содержит идентификатор и значение каждого поля, заключенное в скобки и разделенные точками с запятой. Приведем несколько примеров констант-записей: type Point = record X, Y : Real; end; Vector = array [0..1] of Point; Month = (Jan,Feb,Mar,Apr,May,Jun,Jly,Aug,Sep,Oct,Nov,Dec); Date = record D : 1..31; M : Month; Y : 1900..1999; end; const Origin : Point = (X : 0.0; Y : 0.0); Line : Vector= ((X : -3.1; Y : 1.5), (X : 5.8; Y : 3.0)); SomDay : Date = (D : 2; M : Dec; Y : 1960); Поля должны указываться в том же порядке, как они следуют в объявлении типа запись. Если запись содержит поля файлового типа, то для этого типа записи нельзя объявить константу. Если запись содержит вариант, то можно указывать только поля выбранного варианта. Если вариант содержит поле признака, то его значение должно быть определено. Записи с вариантами При определении комбинированного типа в него можно включать вариантную часть. Это означает, что разные переменные, хотя они и относятся к одному типу, могут иметь различные структуры. Например, пусть необходимо задать информацию о некотором человеке, указав фамилию и год рождения, а также, если это мужчина, то сообщить, военнообязанный ли он и какую имеет специальность; если это женщина, то указать, замужем ли она и сколько имеет детей: PDF created with pdfFactory Pro trial version www.pdffactory.com 10 TYPE ПОЛ=(МУЖ,ЖЕН); ЧЕЛ=RECORD ФАМ: ARRAY[1..10] OF CHAR; ГОДРОЖ:1800..2000; МЖ: ПОЛ; CASE ПОЛ OF МУЖ:(ВОЕН:BOOLEAN; СПЕЦ:P.A [1..15] OF CHAR); ЖЕН:(ЗАМУЖ:BOOLEAN;ДЕТИ:INTEGER) END; |