circle (410,270,r*2);
floodfill(410,270,blue);
setcolor(green);
setfillpattern(oldpattern,green);
circle (410,270,r*1);
floodfill(410,270,green);
{---------------------------------------------рисуем материнскую плату------}
setcolor(red);
setfillstyle(1,10);
bar (190,160,340,290);
LINE (330, 200,440, 200);
outtextxy (440, 200,'МАТЕРИНСКАЯ ПЛАТА');
{----------------------------рисуем жесткий диск----------------------------}
setfillstyle(1,7);
bar3d(195,165,230,175,3,TRUE);
line (200,170,145,170);
outtextxy (45,166,'ЖЕСТКИЙ ДИСК');
{---------------------------------------------рисуем процессор--------------}
SETCOLOR(6);
setfillstyle(1,6);
for i: =1 to 30 do
circle (280,220,25-i);
line (280,220,440,220);
outtextxy (440,220,'ПРОЦЕССОР');
{-------------------------------------------РИСУЕМ ВИДЕОКАРТУ---------------}
setfillstyle(10,6);
BAR (180, 200,220,215);
line (185, 205,122, 205);
outtextxy (40, 203,'ВИДЕОКАРТА');
{-------------------------------------------РИСУЕМ ЗВУКОВУЮ КАРТУ------------}
setfillstyle(7,7);
BAR (180,240,215,250);
LINE (190,250,155,250);
outtextxy (40,249,'ЗВУКОВАЯ КАРТА');
{------------------------------------------РИСУЕМ БЛОК ПИТАНИЯ---------------}
setfillstyle(10,8);
BAR (185,105,245,140);
outtextxy (187,120,'3 0 0 W');
LINE (185,110,140,110);
outtextxy (40,106,'БЛОК ПИТАНИЯ');
{----------------------------------------РИСУЕМ СЛОТЫ ПАМЯТИ-----------------}
setfillstyle(2,2);
BAR (260,260,270,280);
BAR (280,260,290,280);
LINE (265,270,140,270);
LINE (285,277,140,270);
outtextxy (40,267,'CЛОТЫ ПАМЯТИ');
{---------------------------------------РИСУЕМ CD-ROM------------------------}
LINE (400,140,420,125);
LINE (400,160,420,145);
line(405,145,415,138);
LINE (410,140,460,140);
circle (410,148,2);
setcolor (red);
outtextxy (461,140,'CD-ROM');
{-------------------------------------РИСУЕМ флопик-------------------------}
line (415, 195,460, 195);
outtextxy (461, 190,'ФЛОППИ-ДИСК');
line (405, 200,415, 193);
line (405,210,415, 203);
line (405, 200,405,210);
line (415, 193,415, 203);
setlinestyle (1,2,2);
line (407, 205,413, 201);
readkey;
end;
PROCEDURE TITL;
VAR
I,k,j: integer;
BEGIN
INIT;
CLEARDEVICE;
i: =60;
{---------------------------рисуем мышь--------------------------------}
setfillstyle (1,4);
fillellipse (320,240,80,140);
setfillstyle (1,1);
fillellipse (320,240,60, 20);
setcolor (15);
settextstyle (4,0,30);
outtextXY (295,235,'S V E N');
line (250,180,390,180);
line (320,180,320,100);
{-----------------------------------------------------------------------}
SETFILLSTYLE (1,15);
setcolor (black);
settextstyle(9,0,15);
bar3D (0,460,300,477,0,FALSE);
outtextxy (40,465,'ENTER-возврат в основное меню');
bar3D (320,460,638,477,0,FALSE);
outtextxy (420,465,'F2-выход из программы');
setcolor (10);
outtextxy (120, i,'ДОНЕЦКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА');
delay (200);
outtextxy (140, i+40,'КАФЕДРА ПРОГРАММНОГ ОБЕСПЕЧЕНИЯ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ');
delay (200);
outtextxy (230, i+80, ' КУРСОВАЯ РАБОТА');
delay (200);
outtextxy (170,210,' ПО ДИСЦИПЛИНЕ: "АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ И ПРОГРАММИРОВАНИЕ"');
delay (200);
outtextxy (120,260,'ТЕМА: "РАЗРОБОТКА ИНФОРМАЦИОННО-СПРАВОЧНОЙ СИСТЕМЫ"');
delay (200);
outtextxy (160,280,'"УСТРОЙСТВО ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА"');
delay (200);
outtextxy (480,300,'ВЫПОЛНИЛ: ');
delay (200);
outtextxy (460,320,'СТ. ГР. СУА-05: ');
delay (200);
outtextxy(460,340,'БУЛАВИН АЛЕКСАНДР');
readkey;
end;
procedure WorSpece;
begin
setcolor(15);
setfillstyle(1,9);
bar3d(0,0,getmaxX,getmaxY,0,true);
setfillstyle(1,7);
setcolor(0);
bar3d(15,15,getmaxX-15,getmaxY-15,0,true);
setcolor(4);
setfillStyle(1,8);
bar3d(16,16,getmaxX-16,30,0,true);
setcolor(0);
line(17,32,17,getmaxY-17);
line(17,32,getmaxX-17,32);
line(getMaxX-17,32,getmaxX-17,getmaxY-17);
line(17,getmaxY-17,getmaxX-17,getmaxY-17);
setcolor (2);
settextstyle(9,0,15);
bar3D (0,460,210,477,0,FALSE);
outtextxy (40,465,'F2-ВЫХОД');
bar3D (400,460,638,477,0,FALSE);
outtextxy (400,465,'ВВЕРХ-возврат в основное меню');
end;
procedure colo;
var
m: integer;
n: fillpatterntype;
begin
setcolor (red);
settextstyle(3,0,1);
outtextxy (240,50,'Приготовьте мне, пожалуйста, на завтра');
outtextxy (240,57,'компьютер, но я не знаю, какой ');
outtextxy (240,64,'конфигурации... ');
setcolor (14);
outtextxy (280,71,'Звонок клиента в компьютерную фирму');
setcolor (13);
for m: =1 to 60 do
ellipse (300,240,180-4*m,0+4*m,100+6*m,30+2*m);
setfillstyle(1,7);
bar (190,150,410,350);
setfillstyle(1,11);
bar (205,160,395,340);
setcolor (0);
setfillpattern(fillpatterntype(n),7);
fillellipse (300,370,40, 20);
setfillstyle(10,10);
bar (110, 200,140,340);
bar (440, 200,470,340);
SETCOLOR (RED);
outtextxy (205,170,'К О М П Ь Ю Т Е Р-ЭТО... ');
outtextxy (230, 190,' ХОТИТЕ В ЭТОМ ');
outtextxy (250,210,'РАЗОБРАТЬСЯ... ');
outtextxy (255,230,'ЖМИТЕ ENTER!!! ');
SETCOLOR (0);
outtextxy (205,260,'ЧТОБЫ ВЫЙТИ ИЗ ПРОГРАММЫ');
outtextxy (270,280,'ЖМИТЕ F2');
readkey;
end;
procedure read(name: string);
var fname: text;
s: string;
y: Integer;
pos: longint;
begin
assign(fname,name);
reset(fname);
while not eof(fname) do
begin
y: =30; setcolor(0);
for pos: =1 to 40 do
begin
y: =y+10;
readln(fname,s);
outtextXY(30,y,s);
end;
com: =readkey;
readkey;
if com=#60 then break
else mainmenu(90);
end;
end;
Procedure fajl;
PROCEDURE proff(i: integer);
var
k: integer;
begin
CLEARDEVICE; {O4ISTKA EKRANA}
setBkcolor(12);
setcolor (2);
setfillstyle(1,14);
bar3D (0,460, 200,477,0,FALSE);
outtextxy (40,465,'ENTER-ВЫБРАТЬ');
bar3D (210,460,400,477,0,FALSE);
outtextxy (240,465,'ВВЕРХ-ДВИЖЕНИЕ ВВЕРХ');
bar3D (420,460,638,477,0,FALSE);
outtextxy (460,465,'ВНИЗ-ДВИЖЕНИЕ ВНИЗ');
SETLINESTYLE(SOLIDLN,0,3); {risuet liniu}
setcolor(12);
setfillstyle(9,9); {wablon zapolnenij i cvet}
bar3d(220, i,500, i+40,0,false); {risuem paralelepiped 1,2,3,4-koordinati; 0-glubina,fals-otobragenie grani}
setcolor(15); {cvet wrifta}
settextstyle(6,0,3); {vivod texsta; 4-kod wrifta; 0-kod napravlenij; 3-kod razmera}
outtextxy (260,50, '1. ЖЕСТКИЙ ДИСК');
outtextxy (260,90,'2. МАТЕРИНСКАЯ ПЛАТА');
outtextxy (260,140,'3. ПРОЦЕССОР');
outtextxy (260, 190,'4. ВИДЕОКАРТА');
outtextxy (260,240,'5. ЗВУКОВАЯ КАРТА');
outtextxy (260,290,'6. БЛОК ПИТАНИЯ');
outtextxy (260,340,'7. СЛОТЫ ПАМЯТИ');
outtextxy (260,390,'8. CD-ROM');
outtextxy (265,440,'9. ВЫХОД');
end;
BEGIN
INIT;
k: =35;
proff(35);
repeat
repeat
ch: =readkey;
until (ch=#13) or (ch=#80) or (ch=#72) or (ch=#60);
begin
if ch=#60 then
begin
CLOSEGRAPH;
break; {ostanovka proceduru}
end;
if (ch=#80) and (k>=35) and (k<435) then
begin
k: =k+50;
proff(k);
end;
if (ch=#72) and (k>35) and (k<=435) then
begin
k: =k-50;
proff(k);
end;
if ch=#13 then
begin
if k=435 then
begin
CLOSEGRAPH;
break;
end;
if k=35 then
begin
CLRSCR;
WorSpece;
read('c: \infa\GEST. txt');
end;
if k=85 then
begin
CLRSCR;
WorSpece;
read('c: \infa\mat. txt');
end;
if k=135 then
begin
CLRSCR;
WorSpece;
read('c: \infa\proc. txt');
end;
if k=185 then
begin
CLRSCR;
WorSpece;
read('c: \infa\video. txt');
end;
if k=235 then
begin
CLRSCR;
WorSpece;
read('c: \infa\zvuk. txt');
end;
if k=285 then
begin
CLRSCR;
WorSpece;
read('c: \infa\blok. txt');
end;
if k=335 then
begin
CLRSCR;
WorSpece;
read('c: \infa\slot. txt');
end;
if k=385 then
begin
CLRSCR;
WorSpece;
read('c: \infa\cd. txt');
end;
end
else
proff (k);
end;
until ch=#60;
end;
BEGIN
INIT;
colo;
k: =90;
MAINMENU(90);
repeat
repeat
ch: =readkey;
until (ch=#13) or (ch=#80) or (ch=#72) or (ch=#60);
begin
if ch=#60 then
begin
CLOSEGRAPH;
break; {ostanovka proceduru}
end;
if (ch=#80) and (k>=90) and (k<290) then
begin
k: =k+50;
MAINMENU(k);
end;
if (ch=#72) and (k>90) and (k<=290) then
begin
k: =k-50;
MAINMENU(k);
end;
if ch=#13 then
begin
if k=290 then
begin
CLOSEGRAPH;
break;
end;
if k=90 then
begin
titl;
end;
if k=140 then
begin
comp;
end;
if k=240 then
begin
CLRSCR;
WorSpece;
read('c: \infa\help. txt');
end;
if k=190 then
begin
fajl;
end
else
mainmenu (k);
end;
end;
until ch=#60;
END.
ЭКРАННЫЕ ФОРМЫ
Рисунок Б.1 Экран приветствия
Рисунок Б.2 Вид главного меню
Рисунок Б.3 Вид окна о программе
Рисунок Б.4 Вид окна наглядного представления персонального компьютера
Рисунок Б.5 Вид окна информационно-справочного материала
Рисунок Б.6 Вид окна в режиме открытого файла