Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Дані процедури і функції роботи з рядками (на відмінну від процедур і функцій модуля string) використовують стандартні рядки мови Pascal.
Содержание книги
- Опис математичної моделі. Реальне явище або процес замінюється певним математичним співвідношенням, при цьому допускаються певні спрощення в математичній моделі.
- Крім оцінки ефективності алгоритму встановлюють такі властивості, як стійкість та коректність, а для алгоритмів послідовних наближень ще й збіжність.
- Проміжок – незаповнена позиція в тексті. Можна сказати, що це невидимий, але такий, що сприймається еом символ, який займає в тексті одну позицію.
- Форматний вивід застосовується до даних стандартних типів і означає відведення для величини відповідної кількості позицій.
- Необхідно відзначити, що, при виході значень даних цілого типу за вказаний діапазон, помилки виконання програми не виникає, але результат при цьому буде неправильний.
- У випадку багатовимірних масивів елементи їх розміщуються послідовно в пам’яті в порядку задання розмірностей.
- Таким чином, якщо поле pol має значення male, то запис повинен мати два додаткових поля (армія, зріст). Якщо ж pol дорівнює female, то потрібно три додаткові поля. Решта ж полів мають бути однакові.
- В даній програмі, якщо множина не надавати початкового значення, то вона приймається пустою, тому попередньо до Формування множини с їй потрібно надати початкове значення, що рівне повній множині.
- Тому виникає потреба в організації даних таким чином, щоб і Розмір і час існування їх були як завгодно великими. Це стало можливим завдяки використання файлів.
- Розглянуті раніше підпрограми дозволяють перезаписувати або доповнювати елементи у файл. Якщо потрібно навпаки вилучити частину записів
- Доступ до об’єктів за адресою пам'яті здійснюється через спеціальні величини.
- Використання вказівників типу pointer дозволяє узгодити поля пам'яті різних типів. Це один із способів перетворення типів.
- Якщо елементи списку мають два вказівних поля, але список не лінійних, а розгалужений, то отримується список у вигляді бінарного дерева.
- Бінарні дерева заповнюються не довільним чином або у порядку слідування елементів, а за алгоритмом, який формує їх у вигляді впорядкованої структури.
- Дані процедури і функції роботи з рядками (на відмінну від процедур і функцій модуля string) використовують стандартні рядки мови Pascal.
- При завершенні роботи програми, яка використовує вікна, відбувається автоматичне відновлення параметрів текстового режиму, встановлених перед запуском програми, і поточним вікном стає весь екран.
- Використання клавіш редагування рядків
- Обробка помилок ініціалізації
- Відображення числової інформації
- Процедури обслуговування переривань
- Як вже було сказано, якщо виникає необхідність переконатися в правильності запису важливої інформації на диск, необхідно включити прапор перевірки. Для цього призначена процедура
- Перехід у пасивний чи активний стан.
- Віртуальні методи можуть працювати дійсно як віртуальні або як звичайні методи. Необхідний режим пізнього зв’язування, якщо ж цього режиму немає, то віртуальний Метод працює як звичайно.
- Недоліки: в більшості випадків надзвичайно великий об’єм обчислень, що суттєво збільшує час роботи програми.
| Назва
| Призначення
| | Concat
| виконує конкатенацію декількох рядків
| | Copy
| Повертає підрядок з рядка
| | Delete
| видаляє підрядок з рядка
| | Insert
| Вставляє підрядок у рядок
| | Length
| Повертає поточну довжину рядка
| | Pos
| Здійснює пошук підрядка в рядку
| | Srt
| перетворює числове значення аргументу в його рядкове представлення
| | Val
| перетворює рядковий аргумент в його числове представлення
|
ПРОЦЕДУРИ ТА ФУНКЦІЇ УПРАВЛІННЯ ДИНАМІЧНОЮ ПАМ’ЯТТЮ
Ці процедури та функції використовуються для управління кучею (Heap-областю) – так називають частину вільної пам'яті, яка залишається при виконанні програми.
| Назва
| призначення
| | Dispose
| видаляє динамічну змінну
| | Freemem
| видаляє динамічну змінну заданого розміру
| | Getmem
| створює нову динамічну змінну заданого розміру
| | MaxAvail
| повертає розмір найбільшого неперервного вільного блоку кучі, відповідного розміру найбільшої динамічної змінної, яка може бути розміщена в кучі в час виклику функції
| | Mark
| фіксує поточний стан кучі
| | MemAvail
| повертає кількість вільних байтів кучі, доступних для використання
| | New
| створює нову динамічну змінну
| | Release
| Повертає кучу в стан, збережений процедурою mark
|
ФУНКЦІЇ РОБОТИ З ВКАЗІВНИКАМИ І АДРЕСНІ ФУНКЦІЇ
Ці функції дозволяють отримувати адреси змінних, процедур і функцій програми, а також здійснюють доступ до вмісту ряду регістрів процесора.
| Назва
| призначення
| | Addr
| Повертає адресу заданого об’єкта
| | Assigned
| Визначає чи рівний вказівник чи процедурна змінна nil
| | CSeg
| Повертає поточне значення регістра cs
| | DSeg
| Повертає поточне значення регістра ds
| | Ofs
| Повертає зміщення заданого об’єкту
| | Ptr
| перетворює базову сегментну адресу і зміщення в значення типу pointer
| | Seg
| Повертає сегментну адресу заданого об’єкту
| | SPtr
| Повертає поточне значення регістра sp
| | SSeg
| Повертає поточне значення регістру ss
|
ПРОЦЕДУРИ ВВОДУ-ВИВОДУ І РОБОТИ З ФАЙЛАМИ І КАТАЛОГАМИ
В модулі System визначені слідуючи процедури і функції управління вводом-виводом і роботи з файлами і каталогами:
| Назва
| Призначення
| | Append
| відкриває існуючий файл для доповнення
| | Assign
| Зв’язує ім’я зовнішнього файлу з файловою змінною
| | BlockRead
| читає один чи декілька записів з нетипізованого файлу
| | BlockWrite
| Записує один чи декілька записів в не типізований файл
| | ChDir
| встановлює поточний каталог
| | Close
| закриває поточний файл
| | EOF
| повертає ознаку кінця файлу
| | EOLn
| повертає ознаку кінця рядка текстового файлу
| | Erase
| Видаляє зовнішній файл
| | FilePos
| повертає поточну позицію в типізованому чи не типізованому файлі
| | FileSize
| повертає поточний розмір файлу; не використовується для текстових файлів
| | Flush
| звільняє буфер вводу-виводу текстового файлу
| | GetDir
| повертає поточний каталог вказаного диску
| | IOResult
| повертає ціле значення, яке визначає стан останньої виконаної операції вводу-виводу
| | MkDir
| Створює підкаталог
| | Read
| зчитує одне чи декілька значень з файлу в одну чи декілька змінних відповідно
| | ReadLn
| виконує ті ж дії, що і read, і переходить на початок слідую чого рядка текстового файла
| | Rename
| перейменування зовнішнього файлу
| | Reset
| відкриває існуючий файл для читання
| | Rewrite
| створює і одкриває новий файл
| | RmDir
| видаляє пустий каталог
| | Seek
| встановлює поточну позицію в типізованому чи не типізованому файлі на вказаний елемент; не використовується в текстових файлах
| | SeekEOF
| повертає ознаку кінця текстового файлу
| | SeekEOLn
| повертає ознаку кінця рядка текстового файлу
| | SetTextBuf
| призначає буфер вводу-виводу текстового файлу
| | Truncate
| обмежує розмір типізованого чи нетипізованого файлу поточною позицією у файлі
| | Write
| записує в текстовий файл одну чи декілька змінних
| | WriteLn
| виконує ті ж дії, що і write, а потім добавляє у файл маркер кінця рядка
|
ІНШІ ПРОЦЕДУРИ І ФУНКЦІЇ
В модулі System визначене також велике число процедур і функцій, які не можна віднести не до однієї з груп, описаних мною раніше.
| Назва
| призначення
| | Exclude
| Видаляє елемент з множини
| | FillChar
| заповнює задану кількість послідовних байтів змінною вказаного значення (виразом будь-якого порядкового типу)
| | Hi
| повертає старший байт аргументу
| | Include
| включає елемент в множину
| | Lo
| повертає молодший байт аргументу
| | Move
| копіює задану кількість послідовних байтів з вихідної області пам'яті в назначену область
| | ParamCount
| повертає число параметрів, переданих в програму з командного рядка
| | ParamStr
| повертає вказаний параметр командного рядка
| | Random
| повертає псевдо-випадкове число
| | Randomize
| прив’язує стартове значення функції random до поточного системного часу
| | SizeOf
| повертає число байтів, які займає аргумент
| | Swap
| Міняє місцями старший і молодший байти двохбайтного аргументу
| | TypeOf
| повертає вказівник на таблицю віртуальних методів аргументу типу object
| | UpCase
| перетворює рядкову букву в прописну
|
ЗМІННІ ТА КОНСТАНТИ МОДУЛЯ
Крім процедур і функцій в модулі System описаний ряд раніше оголошених змінних:
| Змінна
| Тип
| Опис
| | Input
| TEXT
| стандартна файлова змінна, яка визначає прилад вводу. По замовчуванню таким приладом являється клавіатура
| | Output
| TEXT
| стандартна файлова змінна, яка визначає прилад виводу. По замовчуванню таким приладом являється екран
| | SaveInt00
| POINTER
| змінна для збереження вектора переривання $00
| | SaveInt02
| POINTER
| Те ж, що $02
| | SaveInt1B
| POINTER
| Те ж, що $1B
| | SaveInt21
| POINTER
| Те ж, що $21
| | SaveInt23
| POINTER
| Те ж, що $23
| | SaveInt24
| POINTER
| Те ж, що $24
| | SaveInt34
| POINTER
| Те ж, що $34
| | SaveInt35
| POINTER
| Те ж, що $35
| | SaveInt36
| POINTER
| Те ж, що $36
| | SaveInt37
| POINTER
| Те ж, що $37
| | SaveInt38
| POINTER
| Те ж, що $38
| | SaveInt39
| POINTER
| Те ж, що $39
| | SaveInt3A
| POINTER
| Те ж, що $3A
| | SaveInt3B
| POINTER
| Те ж, що $3B
| | SaveInt3C
| POINTER
| Те ж, що $3C
| | SaveInt3D
| POINTER
| Те ж, що $3D
| | SaveInt3E
| POINTER
| Те ж, що $3E
| | SaveInt3F
| POINTER
| Те ж, що $3F
| | SaveInt75
| POINTER
| Те ж, що $75
|
В момент завантаження середовища Turbo Pascal змінює значення 18 векторів переривання. В змінних SaveIntXX зберігається старі значення цих векторів.
Крім змінних, в модулі System також міститься ряд типізованих констант.
| Константа
| Тип
| початкове значення
| Опис
| | ErrorAddr
| POINTER
| NIL
| адреса помилки виконання
| | ExitCode
| INTEGER
|
| код завершення
| | ExitProc
| POINTER
| NIL
| адреса процедури завершення
| | FileMode
| BYTE
|
| Режим доступу до файлу
| | FileList
| POINTER
| NIL
| вказівник списку вільних блоків кучі
| | FreeZero
| POINTER
| NIL
| зарезервована
| | HeapEnd
| POINTER
| NIL
| вказівник на кінець кучі
| | HeapError
| POINTER
| NIL
| вказівник на функцію обробки помилок кучі
| | HeapOrg
| POINTER
| NIL
| вказівник на початок кучі
| | HeapPtr
| POINTER
| NIL
| вказівник кучі
| | InOutRes
| INTEGER
|
| буфер результату операції вводу-виводу
| | OvrCodeList
| WORD
|
| список оверлейних сегментів
| | OvrDebugPtr
| POINTER
| NIL
| вказівник відладчика оверлеєв
| | OvrDosHandle
| WORD
|
| параметр зв’язку оверлеєв з DOS
| | OvrEmsHandle
| WORD
| $FFFF
| параметр зв’язку оверлеєв з EMS
| | OvrHeapEnd
| WORD
|
| кінець оверлейного буфера
| | OvrHeapOrg
| WORD
|
| початок оверлейного буферу
| | OvrHeapPtr
| WORD
|
| вказівник оверлейного буферу
| | OvrHeapSize
| WORD
|
| початковий розмір оверлейного буферу
| | OvrLoadList
| WORD
|
| список завантажених оверлеєв
| | PrefixSeg
| WORD
|
| префікс програмного сегменту
| | RandSeed
| LONGINT
|
| параметр ініціалізації генератора випадкових чисел
| | Seg0040
| WORD
| $0040
| селектор сегменту $0040
| | SegA000
| WORD
| $A000
| селектор сегменту $A000
| | SegB000
| WORD
| $B000
| селектор сегменту $B000
| | SegB800
| WORD
| $B800
| селектор сегменту $B800
| | SelectorInc
| WORD
| $1000
| перетворення селектора
| | StackLimit
| WORD
|
| границя стеку
| | Test8086
| BYTE
|
| результат тестування процесора 80х86
| | Test8087
| BYTE
|
| результат тестування процесора 80х87
|
Змінні OvrCodeList, OvrDebugPtr, OvrDosHandle, OvrEmsHandle, OvrHeapEnd, OvrHeapOrg, OvrHeapPtr, OvrHeapSize і OvrLoadList використовуються модулем Overlay для роботи адміністратора оверлеєв.
Змінні FreeList, HeapEnd, HeapError, HeapOrg, HeapPtr використовується адміністратором кучі для реалізації розподілу динамічної пам'яті.
Змінні ErrorAddr, ExitCode і ExitProc використовується процедурами виходу.
Змінна PrefixSeg являє собою змінну довжиною в слово, яка містить адресу префікса програмного сегменту (PSP), яка створюється при виконанні програми системою DOS.
|