Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab-Paskal-18(МОДУЛЬ crt).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
82 Кб
Скачать
☆

2. Постановка задачі

Створити програму з використанням модуля згідно заданої умови.

3. ЗМIСТ ЗВIТУ.

  1. Постановка задачi.

  2. Опис модуля.

  3. Текст програми i результати її виконання.

  4. Висновки.

4. Методичні рекомендації.

  1. У програмі має бути описано модуль назва якого повинна співпадати з назвою файла в якому він зберігається. Назва модуля і файла задається в умові задачі.

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

  3. В реалізаційній частині мають бути описані всі процедури та функції необхідні для виконання завдання.

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

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

  6. У якості прикладу приводимо текст програми з використанням модуля ”EXAMPLE”.

UNIT Example;

INTERFACE

Type STR_int=string[60];

Procedure ClrError;

{Знищує раніше виведене повідомлення про помилки}

Procedure Error(message:Srt_int);

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

Function Ganzzahl:integer;

{Виводить ціле число. Введення здійснюється у форматі дійсного числа з метою перевірки належності введеного числа діапазону значень, допустимих для цілих чисел. При незадовільному результаті такої перевірки введене значення відкидається}

Procedure GetSrt(var Instr:string);

{Введення рядка – альтернатива процедурі Readln}

Procedure InKey(var ch:char);

{Введення кода клавіші}

IMPLEMENTATION

Uses wincrt;

Const Beep=^G; {Генерація звуку при виведенні повідомлення}

F_x=1; {Координата позиції по осі Х}

F_y=25; {Координата позиції по осі У, в яку виводиться повідомлення про помилки}

Var F:integer;

Procedure Error(message:str_int);

Begin

GotoXY(F_x,F_y);

Write(‘Помилка! :’,beep,message);

CLREOLn; {Очистка до кінця рядка}

End;

Procedure CLRError;

begin

GotoXY(F_x,F_y);

CLREOLn;

End;

Function Ganzzahl:integer;

Var real_zahl:real;

Task:string;

X_position,Y_position:byte;

Procedure OwerFlow;

Begin

Error(‘Введена величина лежить за межами множини цілих чисел!’);

F:=1; {Код помилки >0}

End;

Procedure BruchZahl;

{Реакція на наявність коми чи недопустимих символів у введеному рядку}

begin

Error(‘Введіть ціле число!’);

F:=1;

end;

Procedure Zahl_List;

Begin

GotoXY(X_Position, Y_Position);

CLRЕOLn;

Readln(Task);

Val(Task,Real_Zahl,F);

Writeln;

If (Real_Zahl<=32768.5) or (Real_Zahl>=32768.5) then OverFlo Else if (Frac(Real_Zahl)<>0) or (F>0) then BruchZahl

Else ClrError;

End;

Begin

X_Position:=WhereX;

Y_Position:=WhereY;

{Збереження координат курсора}

repeat Zahl_List

until f=0;

{Коректна величина перетворюється в ціле число шляхом заокруглення}

Ganzzahl:=round(Real_Zahl);

CLRError; {Знищення раніше виведеного повідомлення}

GotoXY(1,y_position+1); {Перехід на початок наступного рядка}

End;

Procedure GetStr;

Var I,z,s:integer;

Begin

INSTR[1]:=#0;

If z>24 then z:=24;

S:=WhereX;

Repeat

GotoXY(s,z);

Readln(Instr)

Until (instr[1]<>#0);

End;

Procedure Inkey (var Ch:Char);

Begin

Repeat

Ch:=#255;

If KeyPressed then begin

Ch:=readkey;

If ch=#0 then ch:=readkey;

End;

Until ch<>#255

End;

BEGIN {Ініціалізаційна частина}

CLRSCR;

Writeln(‘Лабораторна робота №5’);

Writeln(‘Модулі’);

Writeln(‘Виконав: П.І.П.);

END.

Program Unit_Exapmle;

Uses wincrt,example;

Var G_zahl:integer;

Begin

GotoXY(1,5);

Writeln(‘Введіть ціле число!’);

GotoXY(2,7);

G_Zahl:=ganzzahl;

GotoXY(1,9);

Writeln(G_Zahl);

End.

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