{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.