Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Posibnik_Pascal

.pdf
Скачиваний:
75
Добавлен:
17.02.2016
Размер:
1.49 Mб
Скачать

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

1.

червоний

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

зелений

синій

 

 

3.

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.

жовтий

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

3

 

 

 

 

 

1.

червоний

 

 

 

 

 

 

 

 

 

 

 

яскраво-

синій

2. жовтий

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

 

 

 

 

 

 

 

 

 

 

 

 

блакитний

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.

зелений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

1

 

 

 

 

 

 

 

1.

червоний

 

 

 

 

 

 

 

 

 

 

 

 

білий

чорний

 

 

5.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.

коричневий

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

1.

жовтий

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.

 

 

 

 

 

 

 

 

 

 

 

світло-сірий

темно-сірий

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

2.

коричневий

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

1.

білий

 

 

 

 

 

 

 

 

 

 

 

жовтий

чорний

 

 

7.

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.

синій

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

коричневий

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8.

 

 

1

 

 

 

2

 

 

 

 

білий

чорний

2. сірий

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.

чорний

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

1.

світло-сірий

 

 

 

 

 

 

 

 

 

 

 

 

білий

чорний

 

 

9.

 

 

 

 

 

 

 

 

 

 

 

 

2. коричневий

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

151

 

1.

коричневий

білий

темно-сірий

 

10.

2.

блакитний

1

 

 

2

 

 

1

3

фіолетовий

чорний

1.

червоний

11.

4

 

 

2.

жовтий

 

2

 

 

3.

зелений

 

 

 

 

 

1

чорний

жовтий

1.

червоний

12.

 

 

2.

зелений

2

 

 

 

 

 

 

13.

Samsung

сірий

 

 

 

 

G

 

 

14.

L

сірий –

 

 

 

жовтий

15.

 

 

2. Написати програму побудови графіка функції, знайшовши попередньо область визначення.

1.

y =

 

 

7x

 

.

 

2x 2 3x + 2

2.

y

=

x3

4

.

 

(x 1)3

 

 

 

 

 

 

 

3.

y = x 4

x 2 6 .

 

 

 

x + 4

 

 

 

 

 

 

 

 

 

152

4.y = 2 arctg x 219 + 12 .

5.y = 2sin3 x + cos3 x pi .

6

 

y = x

 

2 2

1

+ 2 .

6.

ln

 

 

 

 

 

x

2

7.y = x2 +5x .

x4

8. y = x 2 4 x + 3 .

9.y = x 2 x2 .

 

y =

 

x

 

3

10.

 

 

.

3 4x2

 

 

 

 

 

11.

y =

 

x arctg

1 .

 

 

 

 

 

x

12.y = ln 2 x x .

13.

 

3

+ 3

 

+ x 2

+1 .

y =

2x2

 

 

 

x

1

 

 

 

14.

y = (a

b) arctg

a x

.

 

 

 

 

x b

15.

y = a

x2 +1 e x .

3. Створити програму зображення довільного малюнка з анімаційними ефектами.

Питання для самоконтролю

1.Як здійснюється ініціалізація графічного режиму?

2.Який вигляд має екранна система координат дисплея в графічному режимі?

3.Як зобразити на екрані точку, відрізок, прямокутник, коло, еліпс, ламану лінію?

4.За допомогою якої вказівки можна встановити колір точок та ліній?

5.За допомогою якої вказівки можна змінювати колір фону?

6.За допомогою якої вказівки можна встановити вид та колір штрихування?

7.Як здійснюється очищення екрану?

8.За допомогою якої вказівки здійснюється закриття графічного режиму?

9.Чи можна за допомогою процедури PutPixel зобразити невидиму точку?

10.Чи можна за допомогою процедури Rectangle зобразити квадрат? трапецію?

11.Як зобразити повне коло за допомогою процедури Arc?

12.Які параметри містить процедура встановлення стилю зображення ліній?

13.Які процедури зафарбовують замкнену область екрана?

153

Лабораторна робота № 22

Тема: Модулі користувача

Студент повинен знати: поняття модуля та його структуру, призначення різних розділів модуля, компіляцію та підключення модулів, стандартні модулі та їх можливості.

Теоретичні відомості

Модуль у мові Паскаль – це програмна одиниця, що автономно компілюється в окремий бінарний файл із розширенням *.tpu або *.tpw. До складу модуля можна включати оголошення констант, типів, змінних, а також оголошення і реалізацію процедур і функцій. Модуль зв’язується з Паскаль-програмою, що дає можливість використовувати в програмі різні об’єкти модуля.

До складу системи Turbo Pascal 7.0 входять стандартні модулі. Модулі, які використовуються найчастіше, містяться в файлі TURBO.TPL, і він містить модулі System, Overlay, Dos, Crt, Printer. Інші модулі (Graph, Strings, WinDos, Turbo3, Graph3) містяться в окремих файлах із розширенням TPU. Також у системі Turbo Pascal є модулі бібліотеки

Turbo Vision.

Модуль System – це бібліотека підтримки Турбо Паскаля. Модуль забезпечує виконання низькорівневих програм підтримки для всіх вбудованих можливостей, таких як файлове введення-виведення, обробку рядків, операції з плаваючою комою і управління динамічною пам’яттю. Цей модуль автоматично під’єднується до програм і модулів.

Модулі Dos i WinDos підтримують більшість функцій операційної системи і функцій обробки файлів, які найчастіше використовуються. На відміну від модуля Dos модуль WinDos використовує особливий тип рядків – рядки із завершальним нулем – і призначений для написання програм, що взаємодіють із Windows.

Модуль Crt містить підпрограми управління текстовим режимом екрану, читання розширених кодів клавіатури, використання кольорів, вікон і звуку.

Модуль Printer дозволяє перенаправляти стандартне виведення Турбо Паскаля на принтер, використовуючи Write i WriteLn.

Модуль Overlay містить процедури, функції і змінні, які використовує програма управління оверлеями Турбо Паскаля. Він дозволяє зменшити обсяг пам’яті, що потрібна програмам, які виконуються в реальному режимі Dos. Фактично, він дозволяє писати програми, яким потрібно більше пам’яті, ніж реально доступно на комп’ютері, оскільки під час роботи програми в пам’яті буде знаходитися лише її частина.

Модуль Strings дає можливість програмі використовувати рядки із завершальним нулем і створювати програми, сумісні з Windows-додатками.

Модуль Graph містить потужну бібліотеку підпрограм універсального призначення для роботи з графікою.

Модулі Turbo3 i Graph3 забезпечують сумісність із ранніми версіями Турбо Паскаля. Розглянемо структуру модуля. Він складається із декількох частин: заголовку,

інтерфейсу, реалізації та ініціалізації. Повна структура модуля наведена нижче.

unit <ім’я модуля>;

{заголовок модуля}

{$...}

{директиви компілятора}

interface

{інтерфейсний розділ}

uses

{розділ підключення модулів, необхідних при оголошенні}

const

{розділ оголошення глобальних констант}

type

{розділ оголошення глобальних типів}

var

{розділ оголошення глобальних змінних}

procedure

{розділ оголошення заголовків глобальних процедур}

function

{розділ оголошення заголовків глобальних функцій}

implementation

{розділ реалізації}

154

uses

{розділ підключення модулів, необхідних при реалізації}

const

{розділ оголошення локальних (невидимих) констант}

type

{розділ оголошення локальних типів}

var

{розділ оголошення локальних змінних}

procedure

{розділ реалізації процедур}

function

{розділ реалізації функцій}

begin

{розділ ініціалізації}

<оператори>

 

end.

 

Заголовок модуля складається зі службового слова unit та імені модуля. Ім’я модуля повинно співпадати з іменем файлу, у якому зберігатиметься модуль. Цей файл спочатку матиме розширення pas, а після компіляції – розширення tpu.

Інтерфейсний розділ починається зі службового слова interface. У ньому оголошуються константи, змінні, типи, процедури та функції, які будуть доступні тим програмам, до яких підключається модуль. Оголошені об’єкти називають також видимими або глобальними об’єктами модуля. Оголошення процедур чи функцій складаються лише із заголовку, а повний опис цих процедур чи функцій міститься в розділі реалізації.

Розділ реалізації починається зі службового слова implementation. Він може містити оголошення констант, змінних і типів. Ці оголошення є локальними для модуля, вони необхідні лише для потреб даного розділу і недоступні програмам, до яких підключається модуль. Такі об’єкти ще називаються невидимими. Розділ реалізації містить повні описи процедур і функцій і тому він має таку назву, бо містить описи реалізацій підпрограм. У цьому розділі перш за все описуються ті глобальні процедури і функції, заголовки яких оголошені в інтерфейсному розділі. Крім того, можуть міститися описи допоміжних підпрограм, які необхідні для реалізації глобальних підпрограм.

Розділ ініціалізації становить виконувану частину модуля. Найчастіше ця частина є порожньою. Але вона може містити оператори, завдання яких полягає у початковій ініціалізації (надання початкового значення) глобальним об’єктам (змінним). Якщо модуль підключений до програми, то перед виконанням програми спочатку виконується розділ ініціалізації модуля, а вже потім програма може використовувати глобальні об’єкти модуля у своїй роботі.

Створений у середовищі Паскаль модуль треба зберегти у файлі на диску під іменем, що співпадає з іменем модуля, і такий файл матиме розширення pas. Далі цей файл можна компілювати. У результаті компіляції буде створений бінарний файл з розширенням tpu. Перед компіляцією для опції Compile/Destination треба встановити значення Disk, щоб tpuфайл був створений на диску, а не в оперативній пам’яті. Треба також подбати, щоб tpu-файл був створений у тому каталозі, де система Turbo Pascal 7.0 зможе його відшукати у випадку підключення модуля до програми. Для цього треба перевірити відповідні опції меню Options/Directories/Unit Directories. Під час створення виконуваного файлу (ехе файлу) програми, яка використовує модулі, або під час її запуску tpu-файли зв’язуються із її відкомпільованим кодом. Система Turbo Pascal 7.0 зазвичай це робить автоматично, але таке зв’язування можна виконувати також командами make і build меню Compile.

Модуль підключається до програми у розділі uses, що має бути розташований на початку програми:

uses <ім’я модуля>;

155

Приклад

Створити модуль, який містить процедуру розв’язування квадратного рівняння.

Unit Kvad_kor;

{модуль, що містить процедуру розв’язування квадратного рівняння} {ім’я даного модуля співпадає з іменем файлу}

Interface

{інтерфейсний розділ}

 

procedure Kvadr(a,b,c:real;var x1,x2:real;var y:boolean);

{заголовок глобальної

 

процедури, що може використовуватися у програмі при підключенні модуля}

implementation

{розділ реалізації}

 

Procedure kvadr;

{реалізація глобальної процедури}

 

var

d:real;

{змінна для дискримінанта}

 

begin

 

 

 

d:=sqr(b)-4*a*c;

if d<0 then y:=false else

begin

y:=true; x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a);

end;

end;

begin {розділ ініціалізації порожній} end.

Завдання для виконання

Основний рівень

1.Створити модуль, що реалізує арифметику комплексних чисел. Використати його для обчислення виразу з комплексними числами.

2.Створити модуль, який реалізує обчислення об’єму, площі основи, бічну та повні поверхні циліндра. Використати його для обчислення відповідних характеристик декількох циліндрів.

3.Створити модуль, що реалізує операції додавання та віднімання квадратних матриць порядку n. Використати його для обчислення матричного виразу.

4.Створити модуль, що реалізує операцію множення матриць. Використати його для обчислення виразу А5, де А - деяка квадратна матриця.

5.Створити модуль, що реалізує операції над векторами на площині. Використати його для обчислення площі паралелограма і його кутів, якщо паралелограм заданий на площині координатами своїх вершин.

6.Створити модуль, який реалізує обчислення об’єму, площі основи, бічної та повної поверхні конуса. Використати його для обчислення відповідних характеристик конусів.

7.Створити модуль, який реалізує обчислення площ квадрата, прямокутника, рівностороннього трикутника і круга. Використати його для обчислення площі прямокутного листа, із якого вирізали три круги, два прямокутники, чотири квадрати і один рівносторонній трикутник.

8.Створити модуль, який реалізує обчислення площ прямокутника, трикутника і трапеції, якщо відомі сторони цих фігур. Використати його для обчислення загальної площі фігур, вирізаних із прямокутного листа жесті, якщо вирізали 10 трикутників, 6 прямокутників і 5 трапецій та виміряли їхні сторони.

156

9.Створити модуль, що реалізує операції над векторами на площині. Використати його для обчислення площі, кутів і довжин сторін трикутнику, якщо трикутник заданий на площині координатами своїх вершин.

10.Створити модуль, який містить підпрограми створення зображення вікна, даху, дверей, стіни. Використати його для малювання хатинки.

11.Створити модуль, який містить підпрограми зображення елементів секції будинку. Використати його для побудови трисекційного будинку.

12.Створити модуль, який містить підпрограми обчислення об’ємів кулі, циліндра, куба і конуса. Використати його для обчислення об’єму води, що виллється із заповненої водою циліндричної бочки, якщо у бочку закинули 3 кулі, 4 куби і 5 конусів (вважати розміри всіх фігур відомими, і закинуті у бочку фігури повністю у ній поміщаються).

13.Створити модуль, який містить підпрограми малювання зображень елементів снігової баби. Використати його для малювання снігової баби.

14.Створити модуль, який містить підпрограми обчислення визначників матриць другого і третього порядків. Використати його для розв’язування декількох систем лінійних рівнянь відповідного порядку.

15.Створити модуль, який містить підпрограми малювання зображень елементів автомобіля. Використати його для малювання автомобіля.

Підвищений рівень

1.Створити модуль, що реалізує операції додавання, віднімання та множення квадратних матриць порядку n. Використати модуль для обчислення виразу А3+В*А2-С*А, де А,В,С - матриці.

2.Створити модуль, що реалізує операції над стеком: добавлення та вилучення елементів, очищення стеку, виведення даних на екран. Продемонструвати можливості модуля на прикладі роботи зі стеком.

3.Створити модуль, що реалізує операції над чергою: добавлення та вилучення елементів, очищення черги, виведення даних на екран. Продемонструвати можливості модуля на прикладі роботи з чергою.

4.Стек реалізований у вигляді масиву. Створити модуль, що реалізує операції над стеком: добавлення та вилучення елементів, очищення стеку, виведення даних на екран. Продемонструвати можливості модуля на прикладі роботи зі стеком.

5.Черга реалізована у вигляді масиву (аналогу кільця). Створити модуль, що реалізує операції над чергою: добавлення та вилучення елементів, очищення черги, виведення даних на екран. Продемонструвати можливості модуля на прикладі роботи з чергою.

6.Створити модуль, який містить підпрограми створення графічних зображень компонентів секції будинку. Використати модуль для побудови двоповерхового будинку з двома під’їздами.

7.Створити модуль, що реалізує операції додавання, віднімання та множення на сталий множник многочленів. Продемонструвати можливості модуля на прикладах.

8.Створити модуль, що містить алгоритми сортування масиву та файлу: метод бульбашки, швидке сортування. Продемонструвати можливості модуля на прикладах.

9.Створити модуль, що містить алгоритми пірамідального сортування масиву та файлу. Продемонструвати можливості модуля на прикладах.

10.Створити модуль, що реалізує операції над векторами в тривимірному просторі. Використати модуль для обчислення об’єму паралелепіпеда, площ та кутів його граней.

11.Створити модуль, що містить підпрограми сортування елементів стеку та пошуку мінімального і максимального елементів. Продемонструвати можливості модуля на прикладі конкретного стеку.

12.Створити модуль, що містить підпрограми сортування елементів черги та пошуку мінімального і максимального елементів. Продемонструвати можливості модуля на прикладі конкретної черги.

157

13.Створити модуль, який містить алгоритми відшукання НСД та НСК двох чисел. Використати модуль для обчислення НСД та НСК чотирьох натуральних чисел.

14.Створити модуль, що містить підпрограми пошуку елементів у масиві: бінарний пошук, пошук всіх мінімальних (максимальних) елементів, пошук всіх елементів, рівних даному. Продемонструвати можливості модуля на прикладі конкретного масиву.

15.Створити модуль, що містить підпрограми пошуку елементів у файлі: бінарний пошук, пошук всіх мінімальних (максимальних) елементів, пошук всіх елементів, рівних даному. Продемонструвати можливості модуля на прикладі конкретного файла.

Питання для самоконтролю

1.Запишіть структуру модуля.

2.Призначення інтерфейсного розділу модуля.

3.Призначення розділу ініціалізації.

4.Призначення розділу реалізації.

5.Які режими компіляції модулів ви знаєте?

6.У чому різниця між режимами компіляції COMPILE, MAKE, BUILD?

7.Призначення стандартних модулів.

8.Як пов’язано ім’я файлу модуля з іменем модуля?

9.Чи може трапитися випадок, коли відкомпільований модуль міститься на диску і підключається до програми, але при виконанні програми з’являється повідомлення, що модуля немає?

10.Як система Турбо Паскаль здійснює пошук модулів, що записані в розділі uses програми?

158

ЛІТЕРАТУРА

1.Абрамов С.А., Гнєздилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию. – М.: Наука, 1988.

2.Абрамов С.А., Зима Е.В. Начала информатики. – М.: Наука, 1989.

3.Абрамов С.А., Зима Е.В. Начала программирования на языке Паскаль. – М.: Наука, 1987.

4.Вирт Н. Алгоритмы +структуры данных = программы. – М.: Мир, 1989.

5.Емелина Е.И. Основы программирования на языке Паскаль. – М.: Финансы и статистика, 1997.

6.Зеленяк О.П. Практикум программирования на Turbo Pascal. Задачи, алгоритмы и решения. – К.: ДиаСофт, 2001.

7.Зуев Е.А. Язык программирования Turbo Pascal 6.0, 7.0. – М.: Веста, Радио и связь, 1993.

8.Ковалюк Т.В. – Основи програмування. – К.: Видавнича група BHV, 2005.

9.Коффман Э.Б. Turbo Pascal. – М.: Издательский дом «Вильямс», 2002.

10.Немнюгин С.А. Turbo Pascal. Практикум. – СПб.: Питер, 2002.

11.Немнюгин С.А. Turbo Pascal. Учебник. – СПб.: Питер, 2002.

12.Немнюгин С.А., Перколаб Л.В. Изучаем Turbo Pascal. Учебник. – СПб.: Питер, 2002.

13.Пильщиков В.Н. Сборник упражнений по язику Паскаль. –М.: Наука, 1989.

14.Турбо Паскаль 7.0. – К.: Издательская группа BHV, 1996.

15.Фаронов В.В. Turbo Pascal 7.0: Учебное пособие. – М.: Нолидж, 1997.

16.Юркин А.Г. Задачник по программированию. – СПб.: Питер, 2002.

159

ПРОГРАМУВАННЯ МОВОЮ ПАСКАЛЬ

ЛАБОРАТОРНИЙ ПРАКТИКУМ

Навчальний посібник для студентів вищих закладів освіти

Авторський колектив:

Паращук Степан Дмитрович

Троценко Захар Миколайович

Підписано до друку 24.01.08р.

Папір офсетний. Друк різограф. Ум. др. арк. 9,4 Тираж 100.

160

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]