Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник_лаб.doc
Скачиваний:
0
Добавлен:
15.11.2019
Размер:
768.51 Кб
Скачать

Контрольні питання до лабораторної роботи № 18:

  1. Що таке модуль користувача (програміста)?

  2. Яку структуру має модуль програміста?

  3. Як створити модуль програміста?

  4. Який формат має файл модуля програміста після компіляції?

  5. Який порядок звернення до модуля програміста?

________________________________________________________________________________________________

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

Тема: Використання можливостей псевдографіки. Створення вікон

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

Хід роботи

Задача1. У текстовому режимі створити вікно з координатами (20,5,60,15) та вивести в нього своє ім’я. За допомогою псевдографічних символів вивести у створене вікно рамку червоного кольору.

Вказівка: для виведення сторін рамки використати оператор циклу

Задача 2. Написати процедуру , яка створює на екрані у текстовому режимі вікно із заданими координатами та заповнює його по горизонталі будь-якими символами певного кольору. Формальні параметри, що передаються у процедуру: координати вікна та номер кольору. Використовуючи створену процедуру, розмістити на екрані 16 різнокольорових вікон, що заповнюють весь екран.

Вказівка:

1.Зміна кольору повинна мати циклічний порядок.

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

Контрольні питання до додаткової лабораторної роботи № 2:

  1. Скільки знакомісць можна розмістити на екрані, що працює у текстовому режимі?

  2. Що таке псевдографічні символи?

  3. Для чого у програмах на Turbo Pascal використовуються псевдографічні символи?

  4. Яка стандартна функція призначена для виведення псевдографічних символів?

  5. Що представляє собою вікно у текстовому режимі?

  6. Яка стандартна процедура призначена для створення вікон?

  7. Який сенс мають параметри процедури Window? _________________________________________________________________________________________

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

Тема: Організація підпрограм з використанням процедур

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

Методичні вказівки до виконання лабораторної роботи.

Процедури та функції аналогічні програмам в мініатюрі і мають загальну назву – підпрограми.

Всі процедури і функції мови Паскаль поділені на два класи: 1)стандартні; 2) визначені користувачем.

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

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

Опис процедури складається із заголовка і тіла процедури. Заголовок включає службове слово Procedure, ім'я процедури і заключний у круглі дужки список формальних параметрів з вказівкою їх типів. Procedure <ім'я > (список формальних параметрів);

Формальні параметри відокремлені один від одного крапкою з комою; їх не можна описувати в розділі описів процедури.

Для звернення до процедури необхідно використати оператор виклику процедури. Він має вигляд: ім'я процедури (список фактичних параметрів);

Фактичні параметри в списку перераховуються через кому. Механізм застосування формальних і фактичних параметрів забезпечує заміну перших останніми, що дозволяє виконувати процедуру з різними даними.

Між формальними та фактичними параметрами повинна бути повна відповідність (однакова кількість, порядок слідування, типи)

Існує два основних класи формальних параметрів: 1) параметри-значення; 2) параметри-змінні.

Параметри-значення використовуються в якості вхідних даних підпрограми, при зверненні до якої фактичні параметри передають своє значення формальним і більше не змінюються.

Параметри-змінні можуть використовуватися і в якості вхідних, і в якості вихідних даних. В заголовку процедури перед ними необхідно вказувати службове слово Var. При зверненні до підпрограми фактичні параметри заміщають формальні. В результаті виконання підпрограми змінюються фактичні параметри.

В якості вхідних даних в підпрограмі слід використовувати параметри-значення, а в якості вихідних – параметри-змінні.

Дані, які являються і вхідними, і вихідними, слід описувати як параметри-змінні.

Приклад. Скласти програму розв’язку групи квадратних рівнянь pix2+qix+ri=0, де p, q, r – масиви дійсних чисел, що складаються з k елементів. Розв’язок одного рівняння оформити у вигляді процедури.

Заголовок процедури має вигляд:

Procedure Korni(a, b, c: real; var x1, x2: real; var pr: Boolean);

Параметри-значення (a, b, c) типу real використовуються для передачі коефіцієнтів квадратного рівняння. Параметри-змінні x1, x2 типу real, pr типу boolean; у змінних х1 та х2 з процедури будуть повертатися значення коренів рівняння; змінна pr повертає true, якщо рівняння має дійсні корені та false, якщо дійсних коренів немає. Значення параметра pr визначається знаком дискримінанту.

Алгоритм:

  1. Введення кількості рівнянь у змінну k.

  2. Організація циклу по змінній і, яка буде змінюватися від 1 до k та визначати номера рівняння. Для кожного з рівнянь необхідно виконати наступне:

    • Ввести значення коефіцієнтів pi, qi ,ri ;

    • Звернутися до процедури розв’язку квадратного рівняння;

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

Program Urav;

Var

p, q, r: array[1..50] of real; x, y: real; i, k: integer; L: Boolean;

Procedure Korni(a, b, c: real; var x1, x2: real; var pr: Boolean);

Var D: real;

Begin

D:=b*b-4*a*c;

If D>=0 then begin pr:= true; x1:=(-b+sqrt(D))/2*a; x1:=(-b-sqrt(D))/2*a; end else pr:=false

End;

{ Початок основної програми }

Begin

Write(‘Введіть кількість рівнянь’); Readln(k);

For i:= 1 to k do

Begin

Write(‘Введіть коефіцієнти , i,’-го рівняння’); readln(p[i], q[i], r[i]);

{Звернення до процедури}

Korni(p[i], q[i], r[i], x, y, L);

If L then writeln(‘корені’, i,’-го рівняння ’,x:8:5, ‘ ‘,y:8:5)

else write (‘в ’, i,’-му рівнянні коренів немає’);

End;

End.

Хід роботи

Задача 1. Створити процедуру Uzor , яка заповнює екран трьома рядками *******, ++++++, ===== по 80 символів. Використати процедуру в головній програмі для заповнення всього екрану візерунками різних кольорів.

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

Додаткове завдання

Задача 3. Створити процедуру малювання рамки довільного розміру. Розміри рамки задавати з клавіатури і передавати у процедуру як параметри. Після того, як процедура буде створена, в головній програмі організувати цикл по виведенню восьми рамок жовтого кольору на екран