Навчальна контролююча програма Призма
Procedure ShowInfo;
Виводимо на екран текст (інформацію читаємо з файлу), поданій темі. Підготовка до тесту.
Procedure WinHelp;
Виводимо на екран текст з файлу який містить у собі коротку інформацію щодо опису функцій головного меню.
Procedure KursInfo;
Виводимо на екран текст який містить інформацію про роботу і автора (тобто про мене J ), назву і т.п.
Procedure TestFiltr(var Str:String);
Процедура проводить аналіз тексту (у файлі з тестовими запитаннями) і виконує його форматування згідно розстановки спец. символів.
Procedure Test;
Саме ця процедура являється самою головнішою в нашій програмі. Зчитує дані з файлу, виводить їх на екран у вигляді запитань та варіантів відповідей. Після чого проводиться аналіз вхідної відповіді і видача результатів.
Procedure Analizer(var Return:boolean);
Процедура яка відповідає за швидкість побудови вікон. У програмі задумано як змінна Return – true ,- то перемальовуємо тільки головне вікно в іншому випадку повністю весь екран, що і уповільнює роботу програми (у віконному режимі це помітно – незрозумілим миганням (майже всією оперативною пам'яттю яка потрібна для роботи програми розпоряджається Windows), а в повно екранному – все відбувається дуже швидко, так як програма бере на себе більше оперативної пам'яті, )
procedure ErrorKey; -
Виводить на екран повідомлення про невірно натиснуту клавішу.
Функції перетворення:
function IntToStr(w : Word) : String;- Ціле число в стрічковий тип.
function RealToStr(N:Real;Mant:byte): String; -Дробове в стрічковий тип. Mant – знаків після коми.
{————————————}
procedure TimeTo(x,y:byte); - виводить на екран за певними координатами теперішню дату та час.
procedure TDateToF(var Text:String); - Надає змінній Text – значення теперішньої дати.
procedure WriteLog(mark:real;try,folse:byte); - Записує дані (результати) у лог-файл.
Procedure Main(RePaint,Fill,Pat:Boolean); - Замальовка головного меню.
Procedure progressBar(Ypos:byte); - ProgressBar
Procedure Test; - Відповідає за весь тест, виведення результатів, та їх збереження.
procedure Analizer(var Return:boolean);- Зв’язуючисьз головним меню аналізує натиснуту клавішу і виконую певні дії.
{——————— це скопійований код програми——————}
UsesCrt,Dos, Graph;
Type
TSound = (Welcome,Error,Result,Beep);
TResult = Record
Try:0..15;
Folse:0..15;
Mark: Real;
end;
Label MainChoise, RePaintForm, HDHlp;
Var Page : byte;
h,m,s,hund, hS,mS, hE,mE : word;
StrH,StrM:String[2];
i:byte;
ReSultat:TResult;
Return:Boolean;
procedure OutTxt(Txt:String);forward;
Procedure RePaint(x,y,X1,Y1:byte;Color:byte;ch:char;Execute:boolean);forward;
Procedure TMus(SoundType:TSound);forward;
Procedure Main(RePaint,Fill,Pat:Boolean);forward;
Procedure RichWindow(x,y,x1,y1,BorderType:byte;WinName:String;Color,BkColor:byte;Fill:Boolean);
Var
wX,wY,j,k:byte;
x0:1..80; y0:1..25;
i:1..8;
CSet: Record
X_Y : Char;
X1_Y : Char;
X_Y1 : Char;
X1_Y1 : Char;
Vert, Vert1 : Char;
Horiz, Horiz1 : Char;
End;
Begin
if FIll then Repaint(x,y,x1,y1,BkColor,'0',true) else if BorderType=3 thenRepaint(x,y,x1,y1,BkColor,' ',false)
else Repaint (x,y,x1,y1,BkColor,' ',true);
if BorderType <> 0 then
Begin
{------------2type----------------}
if BorderType = 2 then
With CSet do
Begin
X_Y:= Chr(218);
X1_Y:= Chr(191);
X_Y1:= Chr(192);
X1_Y1 :=Chr(217);
Vert:=Chr(179);
Vert1 :=Chr(179);
Horiz :=Chr(196);
Horiz1:=Chr(196);
end;
{-------------3&1 types---------------}
if (BorderType = 3)or((BorderType = 1)) then
With CSet do
Begin
X_Y:= Chr(197);
X1_Y:= Chr(197);
X_Y1:= Chr(197);
X1_Y1 :=Chr(197);
Vert:=Chr(197);
Vert1 :=Chr(197);
Horiz :=Chr(197);
Horiz1:=Chr(197);
end;
{------------0type----------------}
end
else
With CSet do