{Weglewodory}
{Autor: Ela Zjawin}
program chemia;
uses crt, graph;
var karta, tryb:integer;
var i,punkty,ilosc:integer;
var klawisz:char;
var temp1,temp2:string;
var pytania : array [1..15] of string;
var odpowiedzi : array [1..15] of char;
{Procedury i funkcje}
procedure InicjujPytania;
begin
pytania[1]:='Ile atomow wegla ma heksan?'+chr(13)+chr(10)+'a.) 5'+chr(13)+chr(10)+'b.) 6'+chr(13)+chr(10)+'c.) 7';
pytania[2]:='Ile atomow wodoru ma oktadekan?'+chr(13)+chr(10)+'a.) 32'+chr(13)+chr(10)+'b.) 36'+chr(13)+chr(10)+'c.) 38';
temp1:='Ile atomow wegla i wodoru lacznie ma heptadekan?'+chr(13)+chr(10)+'a.) 53'+chr(13)+chr(10)+'b.) 54';
temp2:=chr(13)+chr(10)+'c.) 55';
pytania[3]:=temp1+temp2;
temp1:='Ktory z ponizszych weglowodorow jest weglowodorem nienasyconym?'+chr(13)+chr(10)+'a.) Tetradekan';
temp2:=chr(13)+chr(10)+'b.) Eikozan'+chr(13)+chr(10)+'c.) Propen';
pytania[4]:=temp1+temp2;
temp1:='W ktorych weglowodorach wystepuja pojedyncze wiazania sigma?'+chr(13)+chr(10)+'a.) w alkanach';
temp2:=chr(13)+chr(10)+'b.) w alkenach'+chr(13)+chr(10)+'c.) w alkinach';
pytania[5]:=temp1+temp2;
temp1:='Jak nazywa sie alkan, ktory zbudowany jest z 17 atomow wegla?'+chr(13)+chr(10)+'a.) Pentadekan';
temp2:=+chr(13)+chr(10)+'b.) Heksadekan'+chr(13)+chr(10)+'c.) Heptadekan';
pytania[6]:=temp1+temp2;
temp1:='Stosunek masowy wegla do wodoru w heksanie wynosi:'+chr(13)+chr(10)+'a.) 12:1'+chr(13)+chr(10);
temp2:='b.) 6:1'+chr(13)+chr(10)+'c.) 3:1';
pytania[7]:=temp1+temp2;
temp1:='Ktore weglowodory mozna identyfikowac za pomoca wody bromowej?'+chr(13)+chr(10)+'a.) alkany';
temp2:=+chr(13)+chr(10)+'b.) alkeny'+chr(13)+chr(10)+'c.) alkiny';
pytania[8]:=temp1+temp2;
temp1:='ktore weglowodory ulegaja polimeryzacji?'+chr(13)+chr(10)+'a.) alkany'+chr(13)+chr(10);
temp2:='b.) alkeny'+chr(13)+chr(10)+'c.) alkiny';
pytania[9]:=temp1+temp2;
temp1:='Jak inaczej mozna nazwac reakcje przylaczania?'+chr(13)+chr(10)+'a.) addycja';
temp2:=chr(13)+chr(10)+'b.) substytucja'+chr(13)+chr(10)+'c.) polimeryzacja';
pytania[10]:=temp1+temp2;
temp1:='Jaka mase ma dekan?'+chr(13)+chr(10)+'a.) 138'+chr(13)+chr(10)+'b.) 140';
temp2:=chr(13)+chr(10)+'c.) 142';
pytania[11]:=temp1+temp2;
temp1:='W alkenach wystepuje co najmniej jedno wiazanie:'+chr(13)+chr(10)+'a.) pojedyncze';
temp2:=chr(13)+chr(10)+'b.) podwojne'+chr(13)+chr(10)+'c.) potrojne';
pytania[12]:=temp1+temp2;
temp1:='Alkany:'+chr(13)+chr(10)+'a.) rozpuszczaja sie w wodzie'+chr(13)+chr(10);
temp2:='b.) sa dobrymi rozpuszczalnikami'+chr(13)+chr(10)+'c.) sa polarne';
pytania[13]:=temp1+temp2;
temp1:='Hybrydyzacja sp2 wystepuje w'+chr(13)+chr(10)+'a.) alkanach';
temp2:=chr(13)+chr(10)+'b.) w alkenach'+chr(13)+chr(10)+'c.) w alkinach';
pytania[14]:=temp1+temp2;
temp1:='Ile procent stanowi wegiel w heksanie?'+chr(13)+chr(10)+'a.) 86%';
temp2:=chr(13)+chr(10)+'b.) 87%'+chr(13)+chr(10)+'c.) 88%';
pytania[15]:=temp1+temp2;
end;
Procedure InicjujOdpowiedzi;
begin
odpowiedzi[1]:='b';
odpowiedzi[2]:='c';
odpowiedzi[3]:='a';
odpowiedzi[4]:='c';
odpowiedzi[5]:='a';
odpowiedzi[6]:='c';
odpowiedzi[7]:='b';
odpowiedzi[8]:='c';
odpowiedzi[9]:='b';
odpowiedzi[10]:='a';
odpowiedzi[11]:='c';
odpowiedzi[12]:='b';
odpowiedzi[13]:='b';
odpowiedzi[14]:='b';
odpowiedzi[15]:='a';
end;
Procedure Wstep;
begin
detectgraph(karta, tryb);
initgraph(karta,tryb,'C:\TP\BGI\');
Setbkcolor(green);
setcolor(yellow);
rectangle(0,0,getmaxx,getmaxy);
rectangle(2,2,getmaxx-2,getmaxy-2);
for i:=1 to 5 do
begin
settextstyle(7,0,i);
setcolor(green);
outtextxy(120,60,'WEGLOWODORY');
delay(3);
settextstyle(7,0,i+1);
setcolor(yellow);
outtextxy(120,60,'WEGLOWODORY');
end;
setcolor(blue);
for i:=1 to 30 do
begin
circle(320,240,i);
circle(295,215,i);
delay(6);
end;
setcolor(red);
for i:=1 to 6 do
begin
circle(345,265,i);
circle(265,195,i);
circle(355,229,i);
circle(266,236,i);
delay(6);
end;
setcolor(yellow);
settextstyle(2,0,5);
outtextxy(500,445,'Autor: Ela Zjawin');
end;
procedure WejdzDoMenu;
begin
rectangle(2,410,637,430);
settextstyle(0,0,1);
outtextxy(170,417,'Nacisnij jakis klawisz aby kontunouwac...');
i:=1;
repeat
setcolor(yellow);
circle(11+i,420,9);
circle(628-i,420,9);
outtextxy(170,417,'Nacisnij jakis klawisz aby kontunouwac...');
delay(20);
setcolor(green);
circle(11+i,420,9);
circle(628-i,420,9);
i:=i+1;
if i=617 then i:=1;
until keypressed;
end;
procedure MenuX;
begin
cleardevice;
setbkcolor(white);
setcolor(blue);
settextstyle(7,0,3);
outtextxy(230,20,'Menu Glowne');
settextstyle(0,0,1);
outtextxy(80,70,'1.Alkany');
outtextxy(80,100,'2.Alkeny');
outtextxy(80,130,'3.Alkiny');
outtextxy(80,160,'4. Szereg homologiczny');
outtextxy(80,190,'5. Zadania');
outtextxy(80,220,'6. Koniec');
outtextxy(30,460,'Nacisnij cyferke od 1 do 6');
end;
Procedure Alkany;
begin
cleardevice;
setbkcolor(yellow);
setcolor(blue);
settextstyle(0,0,1);
outtextxy(10,10,'Alkany sa to weglowodory nasycone, w ktorych wystepuja pojedyncze wiazania');
outtextxy(10,20,'sigma pomiedzy atomami wegla. Wzor ogolny alkanow:');
outtextxy(10,30,'C(n)H(2n+2)');
outtextxy(10,50,'Wlasciwosci fizyczne:');
outtextxy(10,60,'*stan skupienia');
outtextxy(10,70,'-C1-C4 --> gazy');
outtextxy(10,80,'-C5-C16 --> ciecze');
outtextxy(10,90,'->17 -->ciala stale');
outtextxy(10,100,'*temperatura wrzenia i gestosc alkanow rosna wraz ze wzrostem dlugosci lancucha');
outtextxy(10,110,'*alkany to substancje bezbarwne, niepolarne, nierozpuszczalne w wodze, same');
outtextxy(10,120,'sa dobrymi rozpuszczalnikami.');
outtextxy(10,140,'Wlasciwosci chemiczne:');
outtextxy(10,150,'*alkany ulegaja reakcjom spalania');
outtextxy(10,160,'*nie reaguja z woda bromowa i nadmanganianem potasu');
outtextxy(10,170,'*ulegaja rekacji substytucji.');
outtextxy(10,460,'1. Alkany 2. Alkeny 3. Alkiny 4. Szereg Homologiczny 5. Zadania 6. Koniec');
setcolor(blue);
for i:=1 to 30 do
begin
circle(320,280,i);
end;
setcolor(red);
for i:=1 to 6 do
begin
circle(284,280,i);
circle(356,280,i);
circle(320,316,i);
circle(320,244,i);
end;
end;
procedure Alkeny;
begin
cleardevice;
setbkcolor(yellow);
setcolor(blue);
settextstyle(0,0,1);
outtextxy(10,10,'Alkeny to weglowodory lancuchowe, w ktorych wystepuje jedno wiazanie podwojne');
outtextxy(10,20,'miedzy atomami wegla. W czasteczce alkenow atomy wegla, przy ktorych wystepuje');
outtextxy(10,30,'wiazanie podwojne maja hybrydyzacje sp2.');
outtextxy(10,40,'Wzor ogolny alkenow:');
outtextxy(10,50,'C(n)H(2n)');
outtextxy(10,70,'Wlasciwosci fizyczne:');
outtextxy(10,80,'*nie rozpuszczaja sie w wodzie');
outtextxy(10,90,'*rozpuszczaja sie w rozpuszczalnikach niepolarnych');
outtextxy(10,100,'*gestosc mniejsza od gestosci wody');
outtextxy(10,110,'*temperatura wrzenia i topnienia rosnie wraz ze wzrostem liczby atomow wegla.');
outtextxy(10,130,'Wlasciwosci chemiczne:');
outtextxy(10,140,'*alkiny ulegaja reakcjom spalania');
outtextxy(10,150,'*ulegaja reakcji addycji wodoru, bromu,halogenowodoru i wody');
outtextxy(10,160,'*ulegaja polimeryzacji.');
outtextxy(10,460,'1. Alkany 2. Alkeny 3. Alkiny 4. Szereg Homologiczny 5. Zadania 6. Koniec');
setcolor(blue);
for i:=1 to 30 do
begin
circle(310,280,i);
circle(350,280,i);
end;
setcolor(red);
for i:=1 to 6 do
begin
circle(290,310,i);
circle(290,250,i);
circle(370,310,i);
circle(370,250,i);
end;
end;
procedure Alkiny;
begin
cleardevice;
setbkcolor(yellow);
setcolor(blue);
settextstyle(0,0,1);
outtextxy(10,10,'Alkiny to weglowodory, ktorych czasteczki zawieraja potrojne wiazanie miedzy');
outtextxy(10,20,'atomami wegla.');
outtextxy(10,30,'Wzor ogolny alinkow:');
outtextxy(10,40,'C(n)H(2n-2)');
outtextxy(10,60,'Wlasciwosci fizyczne:');
outtextxy(10,70,'*alkiny sa nierozpuszczalne w wodzie');
outtextxy(10,80,'*rozpuszczaja sie w niepolarnych cieczach organicznych');
outtextxy(10,90,'*temperatrura topnienia i wrzenia wzrastaja ze wzrostem dlugosci lancucha');
outtextxy(10,100,'weglowego i maleja gdy jest on rozgaleziony.');
outtextxy(10,120,'Wlasciwosci chemiczne:');
outtextxy(10,130,'*alkiny ulegaja reakcjom spalania, glownie niecalkowitego');
outtextxy(10,140,'*ulegaja reakcji addycji');
outtextxy(10,150,'*alkiny mozna identyfikowac za pomoca wody bromwoej lub nadmanganianu potasu.');
outtextxy(10,460,'1. Alkany 2. Alkeny 3. Alkiny 4. Szereg Homologiczny 5. Zadania 6. Koniec');
setcolor(blue);
for i:=1 to 30 do
begin
circle(310,280,i);
circle(350,280,i);
end;
setcolor(red);
for i:=1 to 6 do
begin
circle(280,280,i);
circle(380,280,i);
end;
end;
procedure Szereg;
begin
cleardevice;
setbkcolor(yellow);
setcolor(blue);
settextstyle(0,0,1);
outtextxy(10,10,'Szereg homologiczny:');
outtextxy(10,20,'Jezeli uporzadkujemy weglowodory zgodnie ze wzrastajaca liczba atomow wegla w');
outtextxy(10,30,'czasteczce to utoworza one SZEREG HOMOLOGICZNY, w ktorym kazdy nastepny zwiazek');
outtextxy(10,40,'ma o grupe CH2 wiecej.');
outtextxy(10,60,'metan CH4');
outtextxy(10,70,'etan C2H6');
outtextxy(10,80,'propan C3H8');
outtextxy(10,90,'butan C4H10');
outtextxy(10,100,'pentan C5H12');
outtextxy(10,110,'heksan C6H14');
outtextxy(10,120,'heptan C7H16');
outtextxy(10,130,'oktan C8H18');
outtextxy(10,140,'nonan C9H20');
outtextxy(10,150,'dekan C10H22');
outtextxy(10,160,'undekan C11H24');
outtextxy(10,170,'dodekan C12H26');
outtextxy(10,180,'tridekan C13H28');
outtextxy(10,190,'tetradekan C14H30');
outtextxy(10,200,'pentadekan C15H32');
outtextxy(10,210,'heksadekan C16H34');
outtextxy(10,220,'heptadekan C17H36');
outtextxy(10,230,'oktadekan C18H38');
outtextxy(10,240,'nonadekan C19H40');
outtextxy(10,250,'eikosan C20H42');
outtextxy(10,460,'1. Alkany 2. Alkeny 3. Alkiny 4. Szereg Homologiczny 5. Zadania 6. Koniec');
end;
procedure Zadania;
begin
closegraph;
InicjujPytania;
InicjujOdpowiedzi;
writeln('Quiz chemiczny:');
ilosc:=0;
punkty:=0;
randomize;
repeat
i:=random(15);
if i=0 then i:=random(15);
repeat
if pytania[i]='' then i:=random(15);
until pytania[i]<>'';
writeln(pytania[i]);
pytania[i]:='';
write('Twoja odpowiedz to: ');
repeat
klawisz:=readkey;
if (klawisz<>'a') or (klawisz<>'b') or (klawisz<>'c') then
begin
writeln('Nacisnij klawisz A,B lub C!');
end;
until (klawisz='a') or (klawisz='b') or (klawisz='c');
if klawisz=odpowiedzi[i] then
begin
punkty:=punkty+1;
writeln(odpowiedzi[i],' Dobrze!');
end;
if klawisz<>odpowiedzi[i] then
begin
writeln(klawisz,' Zle! poprawna odpowiedz to: ', odpowiedzi[i]);
end;
writeln('------------------------------------');
ilosc:=ilosc+1;
until ilosc=5;
writeln('Uzyskales: ',punkty,' punktow');
readln;
asm
mov ax, $4c00;
int $21;
end;
end;
procedure Grafika;
begin
Wstep;
WejdzDoMenu;
MenuX;
end;
{Program glowny}
begin
Grafika;
{glowna petla}
repeat
klawisz:=readkey;
if klawisz=#49 then Alkany;
if klawisz=#50 then Alkeny;
if klawisz=#51 then Alkiny;
if klawisz=#52 then Szereg;
if klawisz=#53 then Zadania;
if klawisz=#54 then klawisz:=#27;
until klawisz=#27;
closegraph;
end.