Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Дані процедури і функції роботи з рядками (на відмінну від процедур і функцій модуля 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.
|