Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya.rtf
Скачиваний:
1
Добавлен:
07.07.2019
Размер:
19.74 Mб
Скачать

2. Опис додаткових алгоритмів програми та їх параметрів

Назва об’єкту

Опис

Procedure RS

Встановлює стандартні налаштування.

Procedure Welcome

Зчитує з файлу та виводить на екран текст – привітання

Procedure Information

Виводить довідкову iнформацію (інструкцію) з файлу.

Procedure Run

Головна процедура програми (початок).

3. Опис змінних

Назва змінної

Опис

r

Описана в описі процедури Welcome. Має тим String[60]. (Для виведення інформації з файлу на екран.)

k,h,line

Описані в процедурі Information. Мають тип String. (Для зчитування інформації з файлу)

I

Описаний в процедурі Information. Має тип Byte (Змінна, яка відповідає за номер поточної інформації)

Головний алгоритм складається з набору процедур, які знаходяться в модулі MakeMenu, а також процедур Run, Information, Welcome та Error.

На початку алгоритму процедура Tabl, з модуля MakeMenu.tpu, малює рамку за допомогою процедури GoWr з того ж модуля. Викликається процедура Welcome, яка виводить з текстового файлу інформацію щодо програми. Потім викликається процедура Menu, яка складає список меню, та процедура Explorer, що показує поточне положення в програмі.

Процедура Run керує вибором одного з пункту меню. Керування здійснюється за допомогою клавіш вверх та вниз. При кожному натискані клавіші викликається процедура PickOut, яка виділяє заданий пункт меню, та процедура Error, яка подає сигнал, якщо він ввімкнутий в налаштуваннях. У разі якщо користувач вибрав потрібний пункт меню та натиснув клавішу «Enter» викликається відповідна процедура.

3.3 Опис модулів та їх структурних елементів

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

UpCaseUA

Назва функції або процедури

Опис

CaseUp

Повертає підійманий регістр для заданого символу

CaseDw

Повертає опущений регістр для заданого символу

Підіймає та понижує регістр символу

з російського або українського алфавіту.

MakeMenu

Назва функції або процедури

Опис

Explorer

Зверху програми виводить поточне положення в програмі

GoWr

Малює лінію з заданим початковим, кінцевим та проміжним символами. В залежності від значення boo, малює як горизонтальну так і вертикальну лінію.

PickOut

Виділяє пунк меню рамкой.

Tabl

Набір процедур GoWr для малювання рамки.

Menu

Виділяє текст пункту меню головним кольором.

Ця процедура відповідає за головне оформлення программи (рамка, виділення пунктів меню, інформація про поточне положення в програмі).

Settting

Назва функції або процедури

Опис

ReSett

Виведення параметрів налаштувань

AppSet

Прийняття налаштувань

Settin

Меню налаштування

Sett_save

Збереженя налаштувань в файл

Группа процедур, які відповідають за налаштування програмою (2 кольори, швидкість анімації, наявність звуку).

Gene

Назва функції або процедури

Опис

FileGene

Генерує файл з термінами з файлу Rbook.boo (схема в додатку В (рисунок В.1))

Psound

Назва функції або процедури

Опис

Play

Програвання звуку.

ReedSett

Назва функції або процедури

Опис

ReedColor

Зчитують налаштування з файлу

ReedColor2

ReedSpeed

ReedSound

Всі функції в модулі видимі

Rbook

Назва функції або процедури

Опис

RBook_Search

Пошук по ключу та занесеня до масиву найдених термінів

RBook_Variant

Вивід найдених термінів з масиву для вибору потрібного.

RBook_Title

Головне вікно.

RBook_Start

Вивід вибраного терміну на екран.

Группа процедур, які відповідаються за роботу довідника. Видима частина мадуля – це процедура RBook_Title.

Test

Назва функції або процедури

Опис

Test_Stat

Вивід на екран статистики поточного тестування

Test_SeeInfo

Перегляд всіх результатів тестування

Test_Variant

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

Test_Found

Пошук в файлі потрібного номера тесту

Test_Save

Збереження пройденого тесту в файл для подальшого перегляду

Test_Start

Початок тесту

Test_Title

Вибір теми тестування

Повний набір процедур для роботи тестування. Видима частина модуля - Test_Title.

3.4 Опис довідки для користувача

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

Для запуску програми треба запустити файл Run.bat. В цілому керування програмою здійснюється за допомогою стрілок. Для підтвердження вибору слугує клавіша «Enter». Якщо можливо вибрати один із підпунктів, виберіть потрібний пункт за допомогою стрілок, для підтверждення вибору нажміть «Enter».

Для вибору правельної відповіді при проходжені тесту, користувач повинен натистути клавішу, відповідну до правильного варіанту відповіді. Вихід з програми або перехід в меню здійснюється за допомогою клавіші «Esc».

Для перегляду іншої теми довідки треба натиснути клавішу «Вниз».

В головному вікні довідника треба ввести початкові символи потрібного терміну. Якщо результат пошуку задовільняє треба натиснути клавішу «Enter» та вибрати за допомогою стрілок потрібний термін і натиснути «Enter». Для продовження пошуку – «Enter», для виходу в головне меню – «Esc».

3.5 Аналіз методів вдосконалення програми

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

Висновок

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

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

В программі використовується модуль UpCaseUA, який служить для повищення та пониження регістру. Даний алгоритм є універсальний для будь-якої програми, створеної с турбо середовищі.

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

Данна програма має такі властивості, як: простота, модифікація, зрозімілість в користувані. Программа має зручний та інтуїтивно зрозумілий інтерфейс, має підтримку кирилиці та декілька налаштувань. Затрати на користування програмої мінімальний, це дає можливість використовувати програму практично на будь-якому комп’ютері1 з любою конфігурацією.

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

___________

2 – Комп’ютер повинен мати підтримку режиму DOS або сеансу DOS

Використана література

1. http://uk.wikipedia.org/wiki/Iнформатика

2. http://9class.inf.ua/ (тесты)

3. А.Ю. Гаевский Iнформатика (7-11 клас), 2006. – 189с.

4. Костерин В.В. Камаев В.А. Технологии программирования: Учебник для

вузов. Высшая школа, 2005, 360 с.

5. Й.Я. Ривкiнд Т.I. Лисенко Iнформатика (9 клас), 2009. – 356 с.

6. http://skyglobe.ru/referat/referat/24047/ (Тести)

7. http://osnet.narod.ru/Test_Int/test.htm (Тести)

8. Вагнер Г. Основы иследования операций М:Мир, 1972. – 1973 с.

9. Аболрус С.А. Программирование на Pascal. Изд. 3-е, обновл. Символ-Плюс, 2003, 328 с.

Додаток 2. Лістинг програми

Додаток А

Головна програма

Program kyrs;

Uses dos, crt, UpCaseUa, MakeMenu, gene, setting, reedsett, rbook, test,

psound;

var Color,color2:1..15;

c:char;

Speed:byte;

soundon:boolean;

text1:text;

Const

Down=#80;

Up=#72;

Right=#77;

left=#75;

AllAsk=15;

Bs=#08;

Esc=#27;

Enter=#13;

procedure run ; forward;

Procedure Welcome; {Сторінка привітання}

Var r:string[60];

Begin

Window(19,4,79,23);

Assign(text1,'data\welcome.wl');

Reset(text1);

textcolor(color2);

while not EOF(text1) do

Begin

delay(10000-speed*70);

readln(text1,r);

writeln(r);

End;

window(1,1,80,25);

Gotoxy(1,25);

Close(text1);

End;

Procedure Information; {Довідка для користувача}

label beg;

var i:byte; line:String;

Begin

i:=1;

explorer(3,2,color,color2,'');

window(19,4,78,23);

clrscr;

assign(text1,'data\inform\test.dov');

Beg:

reset(text1);

Textcolor(color);

while not EOF(text1) do Begin readln(text1,line); Writeln(line); End;

Repeat

c:=readkey; play;

case c of

down:begin close(text1); clrscr;

case i of

1:begin assign(text1,'data\inform\rbook.dov'); i:=2; end;

2:begin assign(text1,'data\inform\setting.dov'); i:=3; end;

3:begin assign(text1,'data\inform\test.dov'); i:=1; end;

End; Goto beg; end;

esc,left:begin close(text1); run; exit; end;

End;

Until (c=esc) or (c=left);

End;

Procedure Run; {Початок роботи алгоритму}

Begin color2:=reedcolor2;

color:=reedcolor;

speed:=reedspeed;

soundon:=reedsound;

window(1,1,80,25);

clrscr;

Tabl(Color);

Explorer(0,1,color,color2,'');

Index:=1;

menu(index,color,color2);

PickOut(1,7,1,10,2,color);

welcome;

Repeat

C:=readkey;

play;

Case c of

Down:Case index of

1:Begin index:=2; Menu(index,color,color2); PickOut(1,9,2,8,3,color); End;

2:Begin index:=3; Menu(index,color,color2); PickOut(1,11,3,7,3,color); End;

3:Begin index:=4; Menu(index,color,color2); PickOut(1,13,2,9,2,color); End;

4:Begin index:=5; Menu(index,color,color2); PickOut(1,15,4,5,4,color); end;

5:Begin index:=1; Menu(index,color,color2); PickOut(1,7,1,10,2,color); End;

End;

Up:Case index of

1:Begin index:=5; Menu(index,color,color2); PickOut(1,15,4,5,4,color); End;

2:Begin index:=1; Menu(index,color,color2); PickOut(1,7,1,10,2,color); End;

3:Begin index:=2; Menu(index,color,color2); PickOut(1,9,2,8,3,color); End;

4:Begin index:=3; Menu(index,color,color2); Pickout(1,11,3,7,3,color); End;

5:Begin index:=4; Menu(index,color,color2); PickOut(1,13,2,9,2,color); End;

End;

Esc:halt;

End;

Until (c=Enter) or (c=right);

Case index of

1:Test_title;

2:Rbook_title;

3:Information;

4:Settin;

5:Halt;

End;

End;

Begin

c1:=7;

clrscr;

While not false do run;

End.

Модулі

Додаток Б

Модуль Gene

Unit Gene;

INTERFACE

Var file1,file2:text;

tex,key:string;

q,ms1,me1:integer;

Const ms='['; me=']';

Procedure FileGene;

IMPLEMENTATION

Procedure FileGene;

Begin

Assign(file1,'data\Rbook\RBook.boo');

assign(file2,'data\Rbook\List.rb');

ReWrite(file2);

Reset(file1);

While not EOF(file1) do

Begin

readln(file1,tex);

for q:=1 to length(tex) do

Case tex[q] of

ms:ms1:=q;

me:me1:=q;

end;

For q:=ms1+1 to me1-1 do key:=key+tex[q];

Writeln(file2,key);

key:='';

End;

close(file1);

Close(file2);

End;

End.

Модуль MakeMenu

Unit MakeMenu;

INTERFACE

Uses crt,upcaseua;

var i:integer;

Procedure GoWr(x,y,long,cNam,cNum2,cNum3,tColor:byte; boo:boolean);

Procedure PickOut(x,y,LineBegin,long,LineEnd,color:byte);

Procedure Tabl(tColor:byte);

Procedure Menu(n,color,color2:byte);

Procedure explorer(m,m1,color,color2:byte; ma:string);

IMPLEMENTATION

Procedure explorer(m,m1,color,color2:byte; ma:string); {Поточне

положення в програмі}

var i:byte; r1,r2:string[20];

Begin

window(1,1,80,25);

gowr(17,3,63,196,195,180,Color,true);

textcolor(color);

Gotoxy(20,2);

for i:=1 to 59 do write(' ');

Gotoxy(74,2);

write(#179);

textcolor(color2);

write(' Esc ');

textcolor(color);

Gotoxy(74,1);

write(#209);

Gotoxy(74,3);

write(#193);

Gotoxy(20,2);

Case m of

0:r1:='Головне меню ';

1:r1:='Тестування';

2:r1:='Довідник';

3:r1:='Допомого';

4:r1:='Установки';

End;

Case m1 of

0:r2:='Живий пошук';

1:r2:='Вибір пункту меню';

2:r2:='Перегляд інструкції';

5:r2:='Віруси';

7:r2:=' Excel ';

9:r2:=' Word ';

11:r2:=' Інтернет';

13:r2:=' Загальне';

15:r2:=' Перегляд результатів ';

Else r2:='';

End;

textcolor(color2);

Write(r1,#26,r2);

if ma<>'' then

begin

write(#26,' ',ma);

Gotoxy(20+length(r1)+3+length(r2),2);

write(CaseUp(ma[1]));

End;

End;

Procedure Menu(n,color,color2:byte); {Вивід меню та виділення

оброного пункту меню }

Var i,j:integer;

Begin

window(2,6,16,20);

clrscr;

For i:=7 to 13 do

Begin

window(1,1,80,25);

Gotoxy(1,25);

Gotoxy(1,i);

Write(chr(179));

Gotoxy(17,i);

write(chr(179));

End;

Gotoxy(7,3);

TextColor(color2);

Write('ЊҐ­о');

Gotoxy(4,7);

if n=1 then Textcolor(color2) else textcolor(color);

Write('’Ґбвгў ­­п');

Gotoxy(5,9);

if n=2 then Textcolor(color2) else textcolor(color);

Write('„®ўi¤­ЁЄ');

Gotoxy(6,11);

if n=3 then Textcolor(color2) else textcolor(color);

Write('„®ўi¤Є ');

Gotoxy(5,13);

if n=4 then Textcolor(color2) else textcolor(color);

Write('“бв ­®ўЄЁ');

Gotoxy(6,15);

if n=5 then Textcolor(color2) else textcolor(color);

Write(' ‚Ёеi¤');

End;

Procedure GoWr(x,y,long,cNam,cNum2,cNum3,tColor:byte; boo:boolean); {Малювання лінії заданим символом в текстовому

режимі}

Begin

TextColor(TColor);

Gotoxy(x,y);

write(chr(cnum2));

For i:= 1 to long do

Begin

Write(chr(cNam));

If boo then inc(x)

Else inc(y);

Gotoxy(x,y);

End;

Write(chr(cNum3));

End;

Procedure PickOut(x,y,LineBegin,long,LineEnd,color:byte); {Виділення

рамкою вибраного пункту меню}

Begin

textcolor(color);

For i:=7 to 15 do

begin

gotoxy(1,i);

write(#179);

end;

For i:=7 to 15 do

begin

gotoxy(17,i);

write(#179);

end;

Gotoxy(x,y);

write(chr(195));

For i:=1 to lineBegin do write(chr(196));

write(chr(180));

x:=Linebegin+2;

Gotoxy(x,y+1);

write(chr(192));

Gotoxy(x,y-1);

write(chr(218));

Gotoxy(x+1,y+1);

For i:=1 to long do write(chr(196));

x:=x+1;

y:=y-1;

Gotoxy(x,y);

For i:=1 to long do write(chr(196));

x:=x+long;

y:=y+1;

write(chr(191));

Gotoxy(x,y);

Write(chr(195));

Gotoxy(x,y+1);

write(chr(217));

Gotoxy(x+1,y);

For i:=1 to lineEnd do write(chr(196));

write(chr(180));

Gotoxy(1,25);

End;

Procedure Tabl(tColor:byte); {Набір процедур для створення рамки}

Begin

gowr(1,1,79,205,213,184,tColor,true);

gowr(1,24,79,205,212,190,tColor,true);

gowr(1,2,21,179,179,179,tColor,false);

gowr(80,2,21,179,179,179,tColor,false);

Gotoxy(2,2); write(' ');

gowr(17,1,23,179,209,207,tColor,false);

Gotoxy(18,1); Write(chr(205));

gowr(1,5,16,196,195,180,tColor,true);

End;

End.

Модуль PSound

Unit PSound;

INTERFACE

uses crt;

Procedure Play;

IMPLEMENTATION

Procedure Play; {Програвання звуку}

Begin

Sound(520);

delay(5000);

Nosound;

End;

End.

Модуль Rbook

Unit RBook;

INTERFACE

Uses crt,MakeMenu,reedsett,PSound,UpCaseUA;

Var SeText{ў аi ­вЁ вҐа¬i­.}:array [1..27] of string[30];

strg,TeSe:string;

color,color2,speed:byte;

soundon:boolean;

Const

Down=#80;

Up=#72;

Right=#77;

left=#75;

AllAsk=15;

Bs=#08;

Esc=#27;

Enter=#13;

Procedure RBook_title;

IMPLEMENTATION

Procedure RBook_Search (WrLine:string); {Пошук ключа в файлі}

Label continue;

Var text1:text; line,tex:string; i,u,n,k:byte; WrArr:array [1..255] of string[1];

Begin

for i:=1 to 27 do

for u:=1 to 30 do SeText[i][u]:=' ';

Assign(text1,'data\rbook\list.rb');

reset(text1);

k:=1;

if wrline<>'' then

While not EOF(text1) do

begin

Readln(text1,line);

for i:=1 to length(Wrline) do

If wrline[i]=line[i] then inc(n);

If n=length(WrLine) then

Begin

If length(line)>30 then

Begin

tex:=line;

line:='';

For i:=1 to 30 do

line:=line+tex[i];

Setext[k]:=line;

inc(k);

End

Else

Begin

Tex:=line;

if k<28 then SeText[k]:=tex;

inc(k);

End;

End;

n:=0;

End

Else

Begin

window(18,6,79,23);

clrscr;

end;

Close(text1);

End;

Procedure RBook_Variant; {Вибір терміну для перегляду}

Var ind:byte; col,n,x,y,i,du:byte; c:char; tex:string[15];

const ri=#26;

begin

Window(18,6,79,23);

n:=0;

x:=2;

col:=8;

ind:=1;

y:=1;

for i:=1 to 27 do

if SeText[i]<>' ' then inc(n);

Repeat

du:=0;

c:=readkey;

tex:='';

play;

Case c of

up:begin

if (ind<=n) and (ind>1) then dec(ind);

du:=1;

End;

down:Begin

if (ind<n) and (setext[ind+1][1]<>' ') then

inc(ind);

du:=2;

End;

Esc,left:RBook_title;

Else du:=3; End;

if (ind <10) and (ind>0) then

begin

x:=2;

y:=ind*2-1;

end;

if (ind>9) and (ind<19) then

begin

x:=22;

y:=(ind-9)*2-1;

End;

If ind>18 then

Begin

x:=42;

y:=(ind-18)*2-1;

End;

Case du of

1:If ind<>0 then

Begin

For i:=1 to 15 do tex:=tex+SeText[ind+1][i];

if col=7 then col:=8 else col:=7; Textcolor(col);

Gotoxy(x,y+2);

Write(' ',tex); tex:='';

For i:=1 to 15 do tex:=tex+SeText[ind][i];

TextColor(color2);

GotoXY(x,y);

Write(ri,' ',tex);

GotoXY(x,y);

End;

2:If ind<>n+1 then

Begin

if ind<>1 then

begin

For i:=1 to 15 do tex:=tex+SeText[ind-1][i];

if col=8 then col:=7

else

col:=8;

Textcolor(col);

Gotoxy(x,y-2);

Write(' ',tex);

tex:='';

End;

For i:=1 to 15 do tex:=tex+SeText[ind][i];

TextColor(color2);

GotoXY(x,y);

Writeln(ri,' ',tex);

write(' ');

GotoXY(x,y);

End;

End;

until c=Enter;

TeSe:=SeText[ind];

explorer(2,0,color,color2,tese);

textcolor(color);

gotoxy(50,3);

write(#194);

gotoxy(68,3);

write(#194);

RBook_start(setext[ind]);

exit;

end;

Procedure RBook_title; {Початок роботи довідника (головне вікно

довідника)}

Label beg2;

var i,k,t1,t2,r:integer; c:char; tex,tex2:string[30]; tex3:string[15];

Begin

tex:='';

window(18,2,79,23);

clrscr;

window(1,1,80,25);

Explorer(2,0,color,color2,'');

k:=3;

r:=195;

textcolor(color);

For i:=1 to 2 do

Begin

gowr(17,k,63,196,r,180,color,true);

r:=197;

k:=5;

end;

textcolor(color);

Gotoxy(21,4);

write('‚ўҐ¤iвм Є«оз®ўҐ б«®ў® ...');

textcolor(color);

gotoxy(50,3);

write(#194);

gotoxy(50,5);

write(#193);

gotoxy(68,3);

write(#194);

gotoxy(68,5);

write(#193);

gotoxy(50,4);

write(#179);

GoToXY(68,4);

write(#179);

Gotoxy(74,3);

write(#193);

Gotoxy(52,4);

textcolor(7);

Repeat

Beg2:

c:=readkey;

play;

window(18,6,79,23);

if c<>enter then clrscr;

window (1,1,80,25);

gotoxy(52+length(tex),7);

r:=1;

t2:=6;

t1:=21;

case c of

Bs:begin

tex2:=tex; tex:='';

If length(tex2)>1 then

Begin

For i:=1 to length(tex2)-1 do tex:=tex+tex2[i];

gotoxy(52,4);

write(tex);

End

else

tex:='';

End;

Esc,left: exit;

Else if (c in [' '..'п']) or (c in ['A'..'Z']) or (c in ['Ђ'..'џ']) or

(c in ['a'..'z']) or (c=' ') or (c='.') then

if length(tex)<15then tex:=tex+c;

End;

Gotoxy(52,4);

write(' ');

if (tex<>'') and (c<>enter) then

begin

Gotoxy(52,4);

write(tex);

RBook_search(tex);

end;

If (setext[1][1]<>' ') and (c<>enter) and (tex<>'') then

Begin

Repeat

if t2=24 then

begin

t2:=6;

t1:=t1+20;

end;

Gotoxy(t1,t2);

if textattr=8 then textcolor(7)

else textcolor(8);

tex3:='';

For i:=1 to 15 do tex3:=tex3+setext[r][i];

write(tex3);

inc(t2,2);

inc(r);

delay(65000-speed*640);

Until (r=28) or (SeText[r][1]=' ');

End

Else

if (c<>bs) and (c<>enter) then

begin

Gotoxy(70,4);

textcolor(lightred);

write('ЌҐ ўiа­®!');

Gotoxy(52+length(tex),4);

for I:=1 to 2 do delay(65000-speed*325);

Gotoxy(70,4); write(' ');

gotoxy(52,4);

textcolor(7);

write(tex);

end;

Gotoxy(52,4);

write(tex);

until c=Enter;

Case c of Enter:if (tex<>'') and (SeText[1][1]<>' ') then

begin

RBook_variant;

exit;

end

Else Goto Beg2;

Esc,left:exit;

End;

End;

Procedure RBook_start(VarSe:string); {Вивід терміну на екран}

Var inf:array [1..3] of string;

text1:text;

i,k:byte;

t,t2,line1,line2,line3:string;

boo:boolean; e:char;

Begin

Window(18,6,79,23); clrscr; window(19,7,78,22);

Assign(text1,'data\Rbook\rbook.boo');

Reset(text1);

Repeat

readln(text1,line1,line2,line3);

t:='';

For i:=1 to length(line1) do

Begin

if line1[i]='[' then boo:=true;

If line1[i]=']' then boo:=false;

If (boo=true) and (line1[i]<>'[') and (line1[i]<>']') then t:=t+line1[i];

End;

If length(t)>30 then

begin

t2:=t;

t:='';

for k:=1 to 30 do t:=t+t2[k];

End;

Until (t=VarSe) or (EOF(text1));

For i:=1 to 3 do inf[i]:='';

If t=VarSe then

Begin

For k:=length(t)+3 to length(line1) do inf[1]:=inf[1]+line1[k];

if length(line1)=255 then

Begin

Inf[2]:=inf[1];

inf[1]:='';

For k:=1 to length(line2) do inf[1]:=inf[1]+line2[k];

End;

If length(line2)=255 then

Begin

Inf[3]:=inf[2];

inf[2]:=inf[1];

inf[1]:='';

For k:=1 to length(line3) do inf[1]:=inf[1]+line3[k];

End;

TextColor(color2);

Write(T);

Gotoxy(1,1);

write(CaseUp(t[1]));

Gotoxy(length(t)+1,1);

TextColor(color);

Write(inf[3],inf[2],inf[1]);

End;

close(text1);

e:=readkey;

Case e of

esc,left:exit;

enter:begin

rbook_title;

exit;

end;

end;

End;

Begin

Color:=reedcolor;

Color2:=reedcolor2;

Speed:=reedspeed;

soundon:=reedsound;

End.

Модуль ReedSett

Unit ReedSett;

INTERFACE

type TRec=record

color,color2,speed:byte;

soundon:boolean;

End;

TPrec=^Trec;

Var txt:text;

strg:string;

w,code:integer;

Function reedcolor:byte;

Function reedcolor2:byte;

Function reedSpeed:byte;

Function reedSound:boolean;

IMPLEMENTATION

Function reedcolor2:byte; {Зчитування з файлу номеру другорядного кольору}

Var i:byte;

Begin

assign(txt,'data\Setting.stg');

reset(txt);

readln(txt,strg);

val(strg,w,code);

reedColor2:=w;

close(txt);

End;

Function reedSpeed:byte; {Зчитування з файлу швидкості розгортки}

Var i:byte;

Begin

assign(txt,'data\Setting.stg');

reset(txt);

readln(txt);

readln(txt);

readln(txt,strg);

val(strg,w,code);

ReedSpeed:=w;

close(txt);

End;

Function reedcolor:byte; {Зчитування з файлу номеру головного кольору}

Var i:byte;

Begin

assign(txt,'data\Setting.stg');

reset(txt);

readln(txt);

readln(txt,strg);

val(strg,w,code);

reedColor:=w;

close(txt);

End;

Function reedSound:boolean; {Зчитування з файлу помітки}

Var i:byte;

Begin

assign(txt,’data\Setting.stg’);

reset(txt);

For i:=1 to 3 do readln(txt);

readln(txt,strg);

val(strg,w,code);

if w=1 then reedsound:=true else reedsound:=false;

close(txt);

End;

End.

Модуль Setting

Unit Setting;

INTERFACE

Uses crt,makeMenu,gene,ReedSett,psound;

Var speed,color,color2:byte; soundon:boolean;

Const

Down=#80;

Up=#72;

Right=#77;

left=#75;

Bs=#08;

Esc=#27;

Enter=#13;

const men:array [1..5] of string = (' Головний колір ----- ',' Другорядний колір -- ',' Швидкість розгортки ', ' Сигнал ------------- ',' Генерація термінів ');

Procedure ReSett(x,y,z:byte);

Procedure Settin;

Procedure AppSet(g:byte);

IMPLEMENTATION

Procedure Sett_SAVE; {Збереження налаштувань}

var text1:text;

BEGIN

Assign(text1,'data\Setting.stg');

rewrite(text1);

writeln(text1,color2);

writeln(text1,color);

writeln(text1,speed);

if soundon=true then Writeln(text1,'1') else writeln(text1,'2');

close(text1);

End;

Procedure ReSett(x,y,z:byte); {Вивід параметрів налаштувань на екран}

begin

Gotoxy(x,y);

textcolor(color2);

if z<>101 then

begin

write(' ');

gotoxy(x,y);

write(z);

end

else

if soundon=true then

begin

write(' ');

gotoxy(x,y);

write('on')

end

else

begin

write(' ');

gotoxy(x,y);

write('off');

end;

end;

Procedure AppSet(g:byte); {Застосовування налаштунків}

var i,n:byte;

begin

window(1,1,80,25);

tabl(color);

PickOut(1,13,1,10,2,color);

Menu(4,color,color2);

explorer(4,20,color,color2,'');

window(18,2,79,23);

n:=4;

for i:=1 to 5 do

begin

If i=g then textcolor(color2) else textcolor(color);

Gotoxy(5,n);

WRite(men[i]);

textcolor(color2);

case i of

1:writeln(color2);

2:writeln(color);

3:writeln(speed);

4:if soundon=true then write('on') else write('off');

end;

Textcolor(color);

inc(n,2);

End;

sett_save;

End;

Procedure Settin; {Головна процедура }

var PRec:TPRec; c:char;i,ix:byte;w,code:integer; text1:text; line:string;

Begin

color:=reedcolor;

color2:=reedcolor2;

speed:=reedspeed;

soundon:=reedsound;

textcolor(color);

window(18,2,79,23);

clrscr;

ix:=1;

textcolor(color2);

Gotoxy(5,4);

WRite(men[1]);

textcolor(color2);

writeln(color2);

textcolor(color);

Gotoxy(5,6);

WRite(men[2]);

textcolor(color2);

writeln(color);

textcolor(color);

Gotoxy(5,8);

WRite(men[3]);

textcolor(color2);

writeln(speed);

textcolor(color);

Gotoxy(5,10);

WRite(men[4]);

textcolor(color2);

if soundon=true then write('on') else write('off');

textcolor(color);

Gotoxy(5,12);

WRite(men[5]);

textcolor(color);

Gotoxy(5,4);

explorer(4,20,color,color2,'');

window(18,2,79,23);

Repeat

c:=readkey;

soun(soundon);

Case c of

up: Case ix of

1:begin

textcolor(color);

Gotoxy(5,4);

Write(men[1]);

textcolor(color2);

Gotoxy(5,12);

Write(men[5]);

textcolor(color);

textcolor(color2);

write(' ');

ix:=5;

End;

2:begin

textcolor(color);

Gotoxy(5,6);

Write(men[2]);

textcolor(color2);

Gotoxy(5,4);

Write(men[1]);

textcolor(color2);

write(' ');

gotoxy(5+length(men[1]),4);

write(color2); ix:=1;

End;

3:begin

textcolor(color);

Gotoxy(5,8);

Write(men[3]);

textcolor(color2);

Gotoxy(5,6);

Write(men[2]);

textcolor(color);

write(color);

textcolor(color2);

write(' ');

gotoxy(5+length(men[2]),6);

write(color); ix:=2;

End;

4:begin

textcolor(color);

Gotoxy(5,10);

Write(men[4]);

textcolor(color2);

Gotoxy(5,8);

Write(men[3]);

textcolor(color);

write(color);

textcolor(color2);

write(' ');

gotoxy(5+length(men[3]),8);

write(speed);ix:=3;

End;

5:begin

textcolor(color);

Gotoxy(5,12);

Write(men[5]);

textcolor(color2);

Gotoxy(5,10);

Write(men[4]);

textcolor(color);

write(color);

textcolor(color2);

write(' ');

gotoxy(5+length(men[4]),10);

if soundon=true then write('on') else write('off');ix:=4;

End;

End;

down:Case ix of

1:begin

textcolor(color);

Gotoxy(5,4);

Write(men[1]);

textcolor(color2);

Gotoxy(5,6);

Write(men[2]);

textcolor(color);

write(color);

textcolor(color2);

write(' ');

gotoxy(5+length(men[2]),6);

write(color);

ix:=2;

End;

2:begin

textcolor(color);

Gotoxy(5,6);

Write(men[2]);

textcolor(color2);

Gotoxy(5,8);

Write(men[3]);

textcolor(color);

write(speed);

textcolor(color2);

write(' ');

gotoxy(5+length(men[3]),8);

write(speed); ix:=3;

End;

3:begin

textcolor(color);

Gotoxy(5,8);

Write(men[3]);

textcolor(color2);

Gotoxy(5,10);

Write(men[4]);

textcolor(color2);

write(color2);

textcolor(color2);

write(' ');

gotoxy(5+length(men[4]),10);

if soundon=true then write('on') else write('off');

ix:=4;

End;

4:begin

textcolor(color);

Gotoxy(5,10);

Write(men[4]);

textcolor(color2);

Gotoxy(5,12);

Write(men[5]);

ix:=5;

End;

5:begin

textcolor(color);

Gotoxy(5,12);

Write(men[5]);

textcolor(color2);

Gotoxy(5,4);

Write(men[1]);

textcolor(color);

textcolor(color2);

write(' ');

gotoxy(5+length(men[1]),4);

write(color2);

ix:=1;

End;

End;

left:Case ix of

1:begin

if color2>1 then dec(color2);

appset(ix);

Resett(5+length(men[1]),4,color2);

end;

2:begin

if color>1 then dec(color);

appset(ix);

Resett(5+length(men[2]),6,color);

end;

3:begin

If speed>20 then dec(speed,10);

appset(ix);

Resett(5+length(men[3]),8,speed);

end;

4:Begin

if soundon=true then soundon:=false else soundon:=true;

Resett(5+length(men[4]),10,101);

End;

End;

Right:Case ix of

1:begin

if color2<15 then inc(color2);

appset(ix);

Resett(5+length(men[1]),4,color2);

end;

2:begin

if color<15 then inc(color);

appset(ix);

Resett(5+length(men[2]),6,color);

end;

3:Begin

If speed<100 then inc(speed,10);

appset(ix);

Resett(5+length(men[3]),8,speed);

end;

4:Begin

if soundon=true then soundon:=false else soundon:=true;

Resett(5+length(men[4]),10,101);

End;

End;

Enter:If ix=5 then

Begin

sett_save;

gene.filegene;

Gotoxy(5+length(men[5]),12);

write(' ok');

delay(65000);

exit;

end;

End;

Until c=esc;

sett_save;

End;

End.

Модуль Test

Unit Test;

INTERFACE

Uses psound,dos,crt,makemenu,reedsett;

var c1,index,color,color2,speed:byte; w,good,bad,code,i,fouN:integer;

c:char; soundon:boolean;

Const

Down=#80;

Up=#72;

Right=#77;

left=#75;

AllAsk=15;

Bs=#08;

Esc=#27;

Enter=#13;

i13:array [5..15] of string = ('1. Вірус’,'2. Excel','','3. Word','','4. Інтернет','','5. Загальне','', '6.Перегляд результатів’);

Procedure Test_title;

IMPLEMENTATION

Procedure Test_Stat(G,B,u:byte);{Статистика тесту}

var o:integer;

Begin

Window(1,1,80,25);

Gotoxy(20,22);

for o:=1 to 9 do write(' ');

If g=1 then

Begin

Gotoxy(22,22);

good:=good+1;

Gotoxy(21,22);

textcolor(10);

write('Вірно!');

End

else

Begin

bad:=bad+1;

Gotoxy(20,22);

textcolor(12);

write('Не вірно!');

End;

Gotoxy(36,22);

textcolor(color2);

Write(u);

textcolor(lightgreen);

Gotoxy(47,22);

write(Good);

textcolor(lightred);

Gotoxy(58,22);

write(Bad);

textcolor(color2);

Gotoxy(72,22);

write(' ');

Gotoxy(72,22);

write(u-(good+bad)-1);

window(19,3,79,15);

End;

Procedure Test_SeeInfo; {Перегляд всіх результатів}

var c:char; i:integer; text1:text; line:string;

Begin

explorer(1,15,color,color2,'');

window(18,4,79,23);

clrscr;

Gotoxy(1,6);

textcolor(color);

assign(text1,'data\tests\test.stt');

reset(text1);

Gotoxy(1,1);

Readln(text1,line);

gotoxy(1,4);

write('---------------- ');

textcolor(color2);

write(line:27);

textcolor(color);

writeln(' -----------------');

textcolor(color2);

For i:=1 to 5 do

Begin

readln(text1,line);

writeln(' ',line);

End;

textcolor(color);

Gotoxy(1,12);

write('--------------------------------------------------------------');

While not EOF(text1) do

Begin

c:=readkey;

play;

If c=down then

Begin

readln(text1,line);

window(18,4,79,23);

Gotoxy(1,4);

write('---------------- ');

textcolor(color2);

write(line:27);

textcolor(color);

write(' -----------------');

window(18,9,78,14);

textcolor(color2);

clrscr;

For i:=1 to 5 do

Begin

readln(text1,line);

writeln(' ',line);

End;

textcolor(color);

End

Else

if (c=esc) or (c=left) then

begin

close(text1);

exit;

end;

End;

window(18,4,79,23);

Gotoxy(1,13);

write('----------------- ');

textcolor(color2);

write(Немає більше результатів!! ');

textcolor(color);

write('-------------------------------------------------------------------------------');

repeat c:=readkey;

until (c=esc) or (c=enter) or (c=left)

End;

Procedure Test_variant(y,index,UD:integer); {Вибір однієї з тем тестування}

var g:integer;

Begin

Gotoxy(21,y+2); Write(' ');

Gotoxy(1,25);

Case ud of

1:Begin If index=15 then

Begin

Gotoxy(23,7);

textcolor(color);

Write(i13[5]);

Gotoxy(21,17);

textcolor(color2);

write(chr(26),' ',i13[15]);

End

Else

Begin

Gotoxy(23,index+4);

Textcolor(color);

Write(i13[index+2]);

Gotoxy(21,index+2);

textcolor(color2);

write(chr(26),' ',i13[index]);

End;

End;

2:Begin if index=5 then

Begin

Gotoxy(23,17);

textcolor(color);

Write(i13[15]);

Gotoxy(21,7);

textcolor(color2);

write(chr(26),' ',i13[5]);

End

Else

Begin

Gotoxy(23,index);

Textcolor(color);

Write(i13[index-2]);

Gotoxy(21,index+2);

textcolor(color2);

write(chr(26),' ',i13[index]);

End;

end;

End;

End;

function Test_Found(s1,s2,s3:string):string; {Пошук номеру питання}

var text1:text; line:string;

begin

foun:=0;

Case index of

5:assign(text1,'data\tests\virus.ts');

7:assign(text1,'data\tests\excel.ts');

9:assign(text1,'data\tests\word.ts');

11:assign(text1,'data\tests\internet.ts');

13:assign(text1,'data\tests\other.ts')

End;

Reset(text1);

While not EOF(text1) do

Begin

readln(text1,line);

fouN:=foun+1;

If (line[1]=s1) and (line[2]=s2) and (line[3]=s3) then

begin

Test_Found:=line;

close(text1);

exit;

end;

End;

close(text1);

End;

Procedure Test_save(test,g:byte); {Збереження тесту}

var text1:text; days,test1,h:string[10]; mark:real; y,i:byte; year,mon,day,week,ho,min,sec,cosec:word;

Begin

window(1,1,80,25);

tabl(color);

Getdate(year,mon,day,week);

Gettime(ho,min,sec,cosec);

Case week of

0:days:='Неділя';

1:days:='Понедулок';

2:days:='Вівторок';

3:days:='Середа';

4:days:='Четвер';

5:days:='П"ятниця';

6:days:='Субота';

end;

h:=i13[test];

test1:='';

y:=good+bad;

mark:=(good/(bad+good))*5;

for i:=3 to length(h) do test1:=test1+h[i];

Window(18,2,79,23);

clrscr;

Explorer(1,test,color,color2,'Результат');

window(18,7,78,18);

textcolor(color);

Writeln('|------------------ Результати тестування ------------------|');

Gotoxy(1,2);

writeln('|');

write('| пройдений тест -------');

textcolor(color2);

writeln(test1);

textcolor(color);

Write('| Оцінка  --------------- ');

textcolor(color2);

writeln(mark:1:0);

textcolor(color);

Write('| вірні відповіді ------ ');

textcolor(color2);

writeln(good);

textcolor(color);

Write('| Не вірні відповіді --- ');

textcolor(color2);

writeln(bad);

textcolor(color);

Write('| Кількість питань ----- ');

textcolor(color2);

writeln(bad+good);

textcolor(color);

writeln('|');

write('|-----------------------------------------------------------|');

for i:=1 to 9 do begin gotoxy(61,i); write('|'); end;

Assign(text1,'data\tests\test.stt');

append(text1);

Writeln(text1,year,'.',mon,'.',day,' (',days,') ', ho,':',min);

writeln(text1,'Пройдений тест-------',test1);

writeln(text1,'Оцінка--------------- ',mark:1:0);

writeln(text1,'Вірні відповіді ----- ',good);

Writeln(text1,'Не вірні відповіді -- ',bad);

Writeln(text1,'Кількість питань----- ',bad+good);

close(text1);

readkey;

play;

exit;

End;

Procedure Test_start(index:Byte); {Початок тесту}

label gg;

Var otvet:char; text1:text; ans:char;

y,uu,namber,num,nAll,u,i,ok,tt:integer; all:set of byte;

o:string[2]; ask,variastr,line:string; g,f,lk,h:string[2]; op:boolean;

Begin

good:=0; bad:=0;

gowr(17,18,63,196,195,180,color,true);

gowr(17,20,63,196,195,180,color,true);

gowr(30,18,2,179,194,197,color,false);

Gotoxy(31,18); write(chr(196));

gowr(42,18,2,179,194,197,color,false);

Gotoxy(43,18); write(chr(196));

gowr(52,18,2,179,194,197,color,false);

Gotoxy(53,18); write(chr(196));

gowr(65,18,2,179,194,197,color,false);

Gotoxy(66,18); write(chr(196));

gowr(30,20,4,179,197,207,color,false);

Gotoxy(31,20); write(chr(196));

gowr(42,20,4,179,197,207,color,false);

Gotoxy(43,20); write(chr(196));

gowr(52,20,4,179,197,207,color,false);

Gotoxy(53,20); write(chr(196));

gowr(65,20,4,179,197,207,color,false);

Gotoxy(66,20); write(chr(196));

Textcolor(color2);

Gotoxy(20,19);

write('Відповідб');

Textcolor(color2);

Gotoxy(33,19);

write('Всього ');

Textcolor(LightGreen);

Gotoxy(45,19);

write('Вірно');

Textcolor(LightRed);

Gotoxy(55,19);

write(‘Не вірно');

Textcolor(color2);

Gotoxy(68,19);

write('Залишилось');

Randomize;

Window(19,5,79,17);

clrscr;

Case index of

5:Begin uu:=8; assign(text1,'data\tests\virus.ts');End;

7:Begin uu:=15; assign(text1,'data\tests\Excel.ts'); End;

9:begin uu:=21; assign(text1,'data\tests\word.ts'); end;

11:Begin uu:=18; assign(text1,'data\tests\internet.ts'); End;

13:Begin uu:=20; assign(text1,'data\tests\Other.ts'); End;

15:begin Test_SeeInfo; exit; end;

End;

for i:=1 to uu do all:=all+[i];

tt:=0;

repeat

num:=random(uu+1);

If (num in all) and (num<>0) then

Begin

str(tt+1,o);

explorer(1,index,color,color2,o);

Window(19,5,79,17);

clrscr;

all:=all-[num];

inc(tt);

str(num,f);

textcolor(color2);

if num>=10 then

Begin

writeln(Test_Found(f[1],f[2],'.'),' ');

Gotoxy(1,1);

write(' ',tt);

gotoxy(1,3);

end

else

Begin

write(Test_Found(f,'.',' '),' ');

gotoxy(1,1);

write(tt);

gotoxy(1,3);

end;

reset(text1);

textcolor(color2);

For i:=1 to foun+1 do readln(text1,line);

writeln;

for i:=1 to 4 do

begin

if line[length(line)]='*' then

Begin

if c1=8 then

begin

textcolor(7);

c1:=7;

end

else

begin

textcolor(8);

c1:=8;

end;

ok:=i;

for u:=1 to length(line)-1 do

begin

delay(10000-speed*70);

write(line[u]);

end;

readln(text1,line);

End

Else

Begin

if c1=8 then

begin

textcolor(7);

c1:=7;

end

else

begin

textcolor(8);

c1:=8;

end;

for u:=1 to length(line) do

Begin

delay(10000-speed*70);

write(line[u]);

End;

readln(text1,line);

End;

Writeln;

End;

Str(ok,g);

window(1,1,80,25);

Gotoxy(24,22);

Repeat

ans:=readkey;

play;

if (ans<>'1') and (ans<>'2') and (ans<>'3') and (ans<>'4') then

Begin

if (ans=esc) or (ans=left) then exit

else

begin

gotoxy(45,17);

textcolor(lightred);

write(Такого варіанта відповіді немає!!!');

window(1,1,80,25);

Gotoxy(24,22);

for u:=1 to 3 do delay(65000);

Gotoxy(45,17);

write(' ');

textcolor(color);

end;

End

Else

Begin

if ans=g then Test_Stat(1,0,uu) else Test_Stat(0,1,uu);

ok:=0;

End;

Until ans in ['1','2','3','4'];

End;

Clrscr;

Until tt>=uu;

Test_save(index,5);

exit;

End;

Procedure Test_title; {Головне вікно тесту}

Var fileInfo:text;

filename:string;

varia,i,n:integer;

Begin

Color:=reedcolor;

Color2:=reedcolor2;

Speed:=reedspeed;

soundon:=reedsound;

window(19,3,78,23);

clrscr;

window(1,1,80,25);

writeln;

explorer(1,10,color,color2,'');

Gotoxy(20,5);

textcolor(color2);

Write('Виберіть тему: ');

textcolor(color);

i:=9;

n:=1;

Gotoxy(21,7);

Writeln(chr(26),' 1. ‚iагбЁ');

writeln;

index:=5;

test_variant(5,index,1);

textcolor(color);

While i<=17 do

Begin

Gotoxy(23,i);

write(i13[i-2]);

inc(i,2);

end;

Repeat

c:=readkey;

play;

Case c of

down:Case index of

5:Begin index:=7; Test_variant(5,index,2); End;

7:Begin index:=9; Test_variant(7,index,2); End;

9:Begin index:=11; Test_variant(9,index,2); End;

11:Begin index:=13; Test_variant(11,index,2); End;

13:begin index:=15; test_variant(13,index,2); End;

15:begin index:=5; test_variant(15,index,2); End;

End;

Up: Case index of

5:Begin index:=15; Test_variant(5,index,1); End;

7:Begin index:=5; Test_variant(7,index,1); End;

9:Begin index:=7; Test_variant(9,index,1); End;

11:Begin index:=9; Test_variant(11,index,1); End;

13:begin index:=11; test_variant(13,index,1); end;

15:begin index:=13; test_variant(15,index,1); end;

End;

Esc,left:exit;

End;

Until c=Enter;

if index<14 then

begin

Test_start(index);

exit;

end

else

begin

Test_SeeInfo;

exit;

end;

End;

End.

Модуль UpCaseUA

Unit UpCaseUa;

INTERFACE

Var i:byte; UpRu,DwRu:String[35];

Function CaseUp(c:char):char;

Function CaseDw(c:char):char;

IMPLEMENTATION

Function CaseUp(c:char):char; {Підіймання регістру}

Begin

For i:=1 to 33 do if c=DwRu[i] then c:=UpRu[i];

CaseUp:=c;

End;

Function CaseDw(c:char):char; {Пониження регістру}

Begin

For i:=1 to 33 do if c=UpRu[i] then c:=DwRu[i];

CaseDw:=c;

End;

Begin

UpRu:=('ЙЦУКЕНГШЩЗХЇФІВАПРОЛДЖЄЯЧСМИТЬБЮЁ');

DwRu:=('йцукенгшщзхїфівапролджєячсмитьбюё');

End.

Додатки

Додаток Б

Протокол виконання роботи

1. При запуску програми з’являється меню та короткі відопості про програму.

Мал.3 Початок програми (головне меню)

2. При виборі пункту «тестування», з’являється підменю для вибору однієї з тем тестування.

Мал.4 (Меню тестування (вибыр теми тестування))

1.3 Після вибору теми тестування починається тестування. Знизу екрана ведеться статистика поточного тесту для інформування користувача. Тест продовжується доки користувач не відповість на всі питання або не вийде з тесту за допомогою клавіші «Esc».

Мал.5 Процес тестування

1.4 Довідка служить для подання інструкції керування програмою. Для переходу до наступної теми довідки слід нажати клавішу «вниз», та для виходу з довідки клавішу «Esc» відповідно.

Мал.6 Довідка для користувача

1.4 Цей пункт меню призначений для налаштування програми. Зміна налаштування виконується за допомогою клавіш «вліво» та «вправо».

Мал.7 Налаштування програми

1.5 Голвне вікно довідника. Про кожному поповненю ключового слова, программа поступово виводить на екран всі знайдені терміни. Якщо результат пошуку задовільняє то можа вибрати потрібний термін для перегляду.

Мал.8 Головне вікно довідника

1.6 Після вибору терміну, він виводиться на екран для вивчення.

Мал 8. Перегляд терміну.

Додаток В

Рисунок В.1 Алгоритм роботи процедури Gene

Inc(i)

i<33

Якщо с = DwRu \ UpRu

Inc(i)

с привласнюється символ DwRu \ UpRu [i]

Так

Ні

Початок

Кінець

Визначаемо UpRu та DwRu як перелік символів. I:=1;

Функції привласнюється символ с

Рисунок В.2 Алгоритм роботи функцій DwRu \ UpRu

Рисунок В.3 Загальний вигляд роботи алгоритму процедури Rbook_title

Рисунок В.4 Загальний алгоритм роботи процедури AppSetting

Рисунок В.5 Загальний алгоритм роботи процедури Test_start

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