Призначені для користувача типи даних

транскрипт

1 Методичні вказівки «Інформатика» для студентів груп Ф2-ХХ Лабораторна робота 10 Користувальницькі типи даних. Робота з файлами. Призначені для користувача типи даних Опис призначених для користувача типів Безліч типів даних мови Pascal можна розділити на дві групи: стандартні і призначені для користувача. Стандартні типи (наприклад, integer, real, boolean, char, string, array) зумовлені і діють в будь-якій точці програми. Насправді вони описані в стандартному модулі system, який за замовчуванням підключається до списку використовуваних модулів кожної програми, незалежно від того, зазначений він у розділі uses, чи ні. До речі, також в цьому модулі описані стандартні процедури і функції write, writeln, read, sin, sqrt, length і всі інші. Призначені для користувача типи це додаткові типи, які програміст-користувач може задавати самостійно. Задати тип даних означає, визначити безліч його допустимих значень і пов'язати з цим безліччю ім'я типу. Опис призначеного для користувача типу має синтаксис: ІмяТіпа = МножествоДопустімихЗначенійТіпа Користувальницькі типи задаються в розділі опису типів, який позначається ключовим словом, і може міститися в довільному місці описової частини програми або підпрограми: program ІмяПрограмми; uses; const ІмяТіпа1 = ЗначеніяТіпа1; ІмяТіпа2 = ЗначеніяТіпа2; procedure function begin end. 1 описова частина виконавча частина

2 Після опису типів їх ідентифікатори можна використовувати для опису змінних. У найпростішому випадку вираз ЗначеніяТіпа, що стоїть праворуч від знака рівності може бути ім'ям одного зі стандартних типів, наприклад: ext = extended; integer = longint; У першому випадку довге extended замінено коротким ext. У другому випадку перевизначений стандартний тип integer, який після цього буде мати діапазон типу longint. Однак і після такого перевизначення залишається можливість звернення до первісного типу integer за допомогою кваліфікованого (уточненого) ідентифікатора: a. integer; b. system.integer; В інших випадках використовуються різні види користувальницьких типів, описані далі. Види призначених для користувача типів До призначеним для користувача типам відносять: перераховується тип; інтервальний тип; вказівні типи; структуровані типи: тип-масив (array), файловий тип (file), тип-безліч (set), тип-запис (record), об'єктний тип (object); процедурний тип. будуть описані на наступних заняттях З усіх видів користувальницьких типів тільки перераховується і інтервальний типи є порядковими. Перераховуються тип Кожне значення перераховується типу програміст задає сам (тобто «перераховує» всі можливі значення). Опис перераховується типу складається зі списку його елементів (через кому), укладеного в круглі дужки. Кожен з елементів унікальний ідентифікатор. Приклад: season = (spring, summer, autumn, winter); weekday = (Mon, Tue, Wed, Thu, Fri, Sat, Sun); s1, s2. season; today. weekday; 2

3 Ідентифікатори всіх елементів перераховується типу інтерпретуються як константи. У прикладі ідентифікатори spring, summer, autumn, winter це константи типу season. Такі ідентифікатори не є строковими константами і в лапки не полягають. Опис одного і того ж ідентифікатора в різних типах вважається помилкою. У наступному прикладі буде видано повідомлення про помилку: weekday = (Mon, Tue, Wed, Thu, Fri, Sat, Sun); workday = (Mon, Tue, Wed, Thu, Fri); Значеннями перераховується типу не можуть бути константи визначених типів. Приклади некоректних описів типів: digits = (0,1,2,3,4,5,6,7,8,9); digsymbols = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9); weekday = (Mon, Tue, Wed, Thu, Fri, Sat, Sun); Перерахування елементів типу визначає впорядковані набори констант. Порядковий номер константи визначається її позицією в списку, причому перша константа має порядковий номер 0, друга 1, і т.д. До значень перелічуваних типів неспроможні ні стандартні арифметичні операції, ні стандартні процедури введення-виведення (write / writeln, read / readln). Інтервальний тип інтервальний тип даних це діапазон (інтервал) значень будь-якого порядкового типу, званого базовим. При описі інтервального типу вказується найбільше та найменше значення діапазону, розділені лексемою «..» (дві точки). Наприклад: A. Z A. z Приклад опису типів і змінних: const min = 1; max = 31; month = 1..12; date = min..max; m1. month; m2. 1..12; today. date; Як кордонів діапазону можна використовувати константи з опису перераховується типу: weekday = (Mon, Tue, Wed, Thu, Fri, Sat, Sun); workday = Mon. Fri; d1. workday; d2. Mon..Fri; 3

if ($ this-> show_pages_images $ Page_num doc [ 'images_node_id']) // $ snip = Library :: get_smart_snippet ($ text, DocShare_Docs :: CHARS_LIMIT_PAGE_IMAGE_TITLE); $ Snips = Library :: get_text_chunks ($ text, 4); ?>

4 Тип-масив Попередній опис типу-масиву вважається більш суворим описом масиву. Опис типу одновимірного масиву: ІмяТіпа = array [ніжнгран..верхгран] of ТіпЕлементов; ІмяМассіва. ІмяТіпа; Приклад, тип-масив зі ста дійсних чисел: const n = 100; TArr: array [1..n] of real; m: tarr; Попередній опис типу-масиву необхідно при використанні імені масиву в якості параметра процедури або функції. Приклад: const n = 5; TArr = array [1..n] of real; function sum (a: tarr): double; s: double; i: integer; begin s: = 0; for i: = 1 to n do s: = s + a [i]; sum: = s; end; m: tarr; i: integer; begin for i: = 1 to n do begin write (Введіть, i, -й елемент масиву:); readln (m [i]); end; writeln (Сума елементів масиву =, sum (m)); end. 4

5 Фотографії тип даних Поняття фізичного і логічного файлу Зазвичай, поняття файл використовується в одному з двох значень. По-перше, фізичний файл (тобто існуючий фізично на конкретному матеріальному носії інформації) це іменована область зовнішньої пам'яті, що містить будь-яку інформацію. По-друге, логічний файл (тобто існуючий в нашому логічному поданні) це одна з багатьох структур даних, використовуваних в програмуванні. Структура фізичного файлу являє собою сукупність електронних даних пам'яті носія інформації: байт байт байт байт байт байт Структура логічного файлу це спосіб сприйняття файлу в програмі «шаблон», через який ми дивимося на фізичну структуру файлу. У мовах програмування таким «шаблонами» відповідають файлові типи даних. Образне уявлення логічного файлу: елемент елемент елемент елемент елемент кінець файлу (eof) де всі елементи мають однаковий тип. Структура логічного файлу схожа на структуру одновимірного масиву. Відмінності полягають в наступному, у файлу: кількість елементів в кожен момент часу невідомо, воно може змінюватися в процесі роботи програми; нумерація елементів починається з нуля; в кінці розташовується символ кінця файлу (eof end of file) керуючий символ SUB c ASCII-кодом # 26. Файловий тип В мові Pascal є три типи файлів: типізовані (file of Тип), текстові (text), нетипізовані (file). Для роботи з файлами необхідно в розділі опису визначити файлові змінні (які також можна назвати логічними файлами). Наприклад: f1, f2. file of integer; list. text; ftmp. file; Доступ до елементів файлу Першої-ліпшої хвилини в програмі доступний тільки один елемент файлу, на який посилається покажчик поточної позиції файлу (покажчик обробки). Він визначає місце програми, звідки (куди) відбувається читання (запис) даних. 5