- •Vіі. Завдання для самостійної роботи
- •Тема 1. Основи інформатики та програмного забезпечення (6 год)
- •Функції природної мови
- •Властивості природної мови
- •Тема 2. Апаратне забезпечення пк (4 год)
- •Тема 3-4. Програмне забезпеченя пк (8 год)
- •Інтерфейс командного рядка
- •Переваги та недоліки
- •Тема 5. Робота з офісними пакетами (8 год)
- •Математичні основи векторної графіки
- •Переваги векторної графіки:
- •Користувачами векторних редакторів можуть бути:
- •Найпопулярнішими прикладними програмами є продукти фірм:
- •Фрактальна графіка
- •Растрова графіка
- •Програми растрової графіки можуть використовувати:
- •Переваги растрової графіки:
- •Недоліки растрової графіки:
- •Тривимірна графіка
- •Області застосування тривимірної графіки
- •Тема 6. Основи комп’ютерних мереж (6 год)
- •Класифікація мов програмування
- •Способи реалізації мов
- •Синтаксис і мовні конструкції
- •Hello world
- •Покажчики
- •Процедурний тип
- •Оператори управління виконанням програми
- •Процедури і функції
- •Структура
Покажчики
Паскаль підтримує використання покажчиків (типізовані ^тип і нетипізовані pointer):
type a = ^ B; b = record x : Integer ; Y : Char ; Z : a; end ; var pointer_to_b : a;
Тут змінна pointer_to_b - покажчик на тип даних b, є записом. Тип типізованого покажчика може бути заданий перед оголошенням типу, на який він посилається. Цей виняток до правила, яке говорить, що будь-яка річ належна бути оголошена перед тим, як використовується. Введення цього винятку дозволило організовувати рекурентні визначення структур даних, у тому числі такі, як лінійні списки, стеки і черзі, включаючи покажчик на запис в описі цього запису (див. також: нульовий покажчик - nil).
Для типізованого покажчика визначена операція разименованія (її синтаксис: указатель^).
Щоб створити новий запис і присвоїти значення 10 і символ A полям a і b в ній, необхідні наступні оператори:
new ( pointer_to_b ) ; {Виділення пам'яті вказівником} pointer_to_b ^. x : = 10 ; {Разименовиваніе покажчика та звернення до поля запису} pointer_to_b ^. y : = 'A' ; Pointer_to_b ^. z : = nil ; ... dispose ( pointer_to_b ) ; {Звільнення пам'яті з-під покажчика}
Для цілей звернення до полів записів і об'єктів можна також використовувати оператор with, як показано в прикладі:
new ( pointer_to_b ) ; With pointer_to_b ^ do begin x : = 10 ; Y : = 'A' ; Z : = nil end ; ... dispose ( pointer_to_b ) ;
Процедурний тип
В оригінальному мовою Паскаль Йенсен і Вірта процедурний тип використовувався тільки при описі формального параметра. Вже в TP існував повноправний процедурний тип. В оголошенні типу ставиться заголовок процедури або функції (без імені), узагальнено описує інтерфейс підпрограми. Значення цього типу містить покажчик на підпрограму з заголовком, відповідну описаному в оголошенні типу. За допомогою ідентифікатора змінної може відбуватися виклик відповідної процедури або функції.
type myfunc = function : string ; function func1 : string ; begin func1 : = 'Func N 1' end ; function func2 : string ; begin func2 : = 'Func N 2' end ; var fun : myfunc; begin fun : = @ Func1; writeln ( fun ) {Відбувається виклик функції func1} end .
Оператори управління виконанням програми
Паскаль - мова структурного програмування, що означає, що програма складається з виконуються послідовно окремих стандартних операторів, в ідеалі - без використання команди GOTO GOTO.
while a <> b do {Цикл з передумовою} writeln ( 'Очікування' ) ; if a> b then {Умовний оператор} writeln ( 'Умова виповнилося' ) else {Else-секція - може бути відсутнім} writeln ( 'Умова не виповнилося' ) ; for i : = 1 to 10 do {Ітераційний цикл} writeln ( 'Ітерація №' , i : 1 ) ; With a do {Оператор With - метод прискорення доступу до полів запису} begin l : = 1 ; K : = 2 ; P : =- 3 ; end ; repeat {Цикл з постусловіем} a : = a + 1 until a = 10 ; case i of {Умовний оператор множинного вибору} 0 : write ( 'Нуль' ) ; 1 : write ( 'Один' ) ; 2 : write ( 'Два' ) else write ( 'Невідоме число' ) {Else-секція - може бути відсутнім} end ;
В операторах while, for, if, case як виконуваного оператора може використовуватися блок. Така конструкція, що представляє собою звичайний оператор або блок, називається складним оператором.
Для управління процесом компіляції в паскалі існують директиви компілятора. Вони поміщаються в коментарі і дозволяють перемикати режими роботи компілятора, наприклад, включати і відключати перевірку операцій введення-виведення, перевірки переповнення:
assign ( inp , 'Text.txt' ) ; {$ I-} {Відключення режиму IO checking-генерації коду завершення програми у разі помилки введення-виведення} {(Для випадку, якщо файл не знайдено)} reset ( inp ) ; {$ I +} {Включення режиму IO checking} if IOresult = 0 then begin {Перевіряємо значення зміною ioresult (<> 0 в разі помилки вводу-виводу)} ... close ( inp ) ; end else writeln ( 'File not found' )
Існують директиви, аналогічні директивам препроцесора C / C + + ( $ifdef, $define, $include), вони обробляються компілятором в процесі компіляції.