2. Постановка задачі
Створити програму з використанням модуля згідно заданої умови.
3. ЗМIСТ ЗВIТУ.
Постановка задачi.
Опис модуля.
Текст програми i результати її виконання.
Висновки.
4. Методичні рекомендації.
У програмі має бути описано модуль назва якого повинна співпадати з назвою файла в якому він зберігається. Назва модуля і файла задається в умові задачі.
В інтерфейсній частині мають бути описані процедури та функції, доступні для головної програми.
В реалізаційній частині мають бути описані всі процедури та функції необхідні для виконання завдання.
Ініціалізаційна частина повинна містити оператори очистки екрану та виведення інформації про номер лабораторної роботи, тему та автора.
Основна програма повинна містити звернення до модуля і виклик процедур та функцій описаних в інтерфейсній частині модуля.
У якості прикладу приводимо текст програми з використанням модуля ”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.
