All pastes #409106 Raw Edit

Someone

public text v1 · immutable
#409106 ·published 2007-03-25 13:22 UTC
rendered paste body
{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.