esercitazione a
livello didattico-liceale
con turbo pascal , su argomenti di chimica vari
ebullioscopia, crioscopia, pressione osmotica
program colliga1; (* problemi su ebullioscopia crioscopia pressione osmotica *) uses crt; const r=0.082; var gsolvente,gsoluto,pm,k,t,dt,ts,p,vs,mo:real; s,alfa:integer; procedure fine; begin writeln('premi enter'); readln; end; procedure pro1; begin writeln('calcolo DTe e temperatura ebollizione soluzione '); write('grammi solvente ');readln(gsolvente); write('grammi soluto ');readln(gsoluto); write('peso molecolare soluto ');readln(pm); write('costante ebullioscopica ');readln(k); write('temperatura ebollizione solvente ');readln(t); dt:=(k*gsoluto*1000)/(pm*gsolvente); ts:=t+dt; writeln('innalzamento ebullioscopico ',dt:8:3); writeln('temperatura ebollizione soluzione ',ts:8:3); writeln; writeln('premi enter');readln; end; procedure pro2; begin writeln('calcolo DTc e temperatura congelamento soluzione'); write('grammi solvente ');readln(gsolvente); write('grammi soluto ');readln(gsoluto); write('peso molecolare soluto ');readln(pm); write('costante crioscopica ');readln(k); write('temperatura congelamento solvente ');readln(t); dt:=(k*gsoluto*1000)/(pm*gsolvente); ts:=t-dt; writeln('abbassamento crioscopico :gradi ',dt:8:3); writeln('temperatura congelamento soluzione ',ts:8:3); writeln; writeln('premi enter');readln; end; procedure pro3; begin writeln('calcolo PESO molecolare soluto in funzione ebullioscopica '); write('grammi solvente ');readln(gsolvente); write('grammi soluto ');readln(gsoluto); write('temperatura ebollizione soluzione ');readln(ts); write('costante ebullioscopica ');readln(k); write('temperatura ebollizione solvente ');readln(t); dt:=ts-t; pm:=(k*gsoluto*1000)/(dt*gsolvente); writeln('peso molecolare ',pm:8:3); writeln; writeln('premi enter');readln; end; procedure pro4; begin writeln('calcolo PESO molecolare soluto in funzione crioscopica '); write('grammi solvente ');readln(gsolvente); write('grammi soluto ');readln(gsoluto); write('temperatura congelamento soluzione ');readln(ts); write('costante crioscopica ');readln(k); write('temperatura congelamento solvente ');readln(t); dt:=ts-t; pm:=ABS((k*gsoluto*1000)/(dt*gsolvente)); writeln('peso molecolare ',pm:8:3); writeln; writeln('premi enter');readln; end; procedure pro5; begin writeln('calcolo GRAMMI soluto in funzione ebullioscopica '); write('grammi solvente ');readln(gsolvente); write('peso molecolare soluto ');readln(pm); write('temperatura ebollizione soluzione ');readln(ts); write('costante ebullioscopica ');readln(k); write('temperatura ebollizione solvente ');readln(t); dt:=ts-t; gsoluto:=(dt*pm*gsolvente)/(k*1000); writeln('grammi soluto ',gsoluto:8:3); writeln; writeln('premi enter');readln; end; procedure pro6; begin writeln('calcolo GRAMMI soluto in funzione crioscopica '); write('grammi solvente ');readln(gsolvente); write('peso molecolare soluto ');readln(pm); write('temperatura congelamento soluzione ');readln(ts); write('costante crioscopica ');readln(k); write('temperatura congelamento solvente ');readln(t); dt:=ts-t; gsoluto:=abs((dt*pm*gsolvente)/(k*1000)); writeln('grammi soluto ',gsoluto:8:3); writeln; writeln('premi enter');readln; end; procedure pro7; begin writeln('calcolo PRESSIONE OSMOTICA '); write('litri soluzione ');readln(vs); write('peso molecolare soluto ');readln(pm); write('temperatura soluzione gradiC ');readln(ts); write('grammi soluto ');readln(gsoluto); t:=273+ts; p:=((gsoluto/pm)/vs)*r*t; writeln('pressione in atmosfere ',p:8:3); writeln; writeln('premi enter');readln; end; procedure pro8; begin writeln('calcolo PRESSIONE OSMOTICA '); write('concentrazione molare ');readln(mo); write('temperatura soluzione gradiC ');readln(ts); write('particelle dissociate 1..2..3.. ');readln(alfa); t:=273+ts; p:=alfa*mo*r*t; writeln('pressione in atmosfere ',p:8:3); writeln; writeln('premi enter');readln; end; procedure pro9; begin writeln('calcolo PRESSIONE OSMOTICA '); write('pressione osmotica ');readln(p); write('temperatura soluzione gradiC ');readln(ts); t:=273+ts; mo:=p/(r*t); writeln('concentrazione molare ',mo:8:3); writeln; writeln('premi enter');readln; end; procedure scelta; var ancora:integer; begin clrscr; writeln('soluzione problemi grandezze colligative '); writeln('esprimere TEMPERATURA in gradi CENTIGRADI'); writeln('esprimere MASSE in GRAMMI '); writeln('seleziona tipo problema '); writeln('1...calcola DTe ebullioscopia e temperatura ebollizione'); writeln('2...calcola DTc crioscopica e temperatura congelamento'); writeln('3...calcola PESO MOLECOLARE soluto noti valori ebullioscopici '); writeln('4...calcola PESO MOLECOLARE soluto noti valori crioscopici '); writeln('5...calcola GRAMMI SOLUTO in funzione ebullioscopica'); writeln('6...calcola GRAMMI SOLUTO in funzione crioscopica'); writeln('7...calcola PRESSIONE OSMOTICA=((grammi/pm)/volume)*RT '); writeln('8...calcola PRESSIONE OSMOTICA=alfa*M*R*T '); writeln('9...calcola MOLARITA con PRESSIONE OSMOTICA nota '); writeln('10...fine '); write('opzione=');readln(s); clrscr; case s of 1:pro1; 2:pro2; 3:pro3; 4:pro4; 5:pro5; 6:pro6; 7:pro7; 8:pro8; 9:pro9; 10:fine; end; writeln('----------------------------'); writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora); if ancora =1 then scelta else fine; end; begin clrscr; writeln('funzione programma'); writeln('---------------------------------------------------'); writeln('premi enter');readln; scelta; end.