listati per turbo pascal

grandezze colligative

 


program collega;
(* problemi su ebullioscopia crioscopia pressione osmotica *)
(* cfr.colliga1 su disco 85 *)
uses crt;
const r=0.082;
var gsolvente,gsoluto,pm,k,t,dt,ts,p,vs,mo,ris,rix,h1:real;
    s,alfa,esatte,errate,totale:integer;
    valuta:string;

procedure fine;
begin
writeln('premi enter');
readln;
end;

procedure analisi(rix,ris:real);
begin
h1:=abs(rix-ris);
if ((h1<1) or (h1=1)) then 
begin writeln('esatto');esatte:=esatte+1;end
else begin writeln('errato');errate:=errate+1;end;
writeln('differenza tra risultato atteso e inserito = ',h1:0:5);
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;rix:=ts;
write('temperatura ebollizione = ? ');readln(ris);
analisi(rix,ris);
writeln('cfr.risultato da ottenere ');
writeln('te = to + Dte ');
writeln('Dte:=(ke*gsoluto*1000)/(pm*gsolvente)');
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 ,positiva        ');readln(k);
write('temperatura congelamento solvente     ');readln(t);
dt:=(k*gsoluto*1000)/(pm*gsolvente);
ts:=t-dt;rix:=ts;
write('temperatura congelamento = ? ');readln(ris);
analisi(rix,ris);
writeln('cfr.risultato da ottenere ');
writeln('tc = to + Dtc ');
writeln('Dtc:=(kc*gsoluto*1000)/(pm*gsolvente)');
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);rix:=pm;
write('peso molecolare  = ? ');readln(ris);
analisi(rix,ris);
writeln('cfr.risultato da ottenere ');
writeln('pm:=(ke*gsoluto*1000)/(Dte*gsolvente)');
writeln('Dte = te - to ');
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 ,positiva        ');readln(k);
write('temperatura congelamento  solvente    ');readln(t);
dt:=ts-t;
pm:=abs((k*gsoluto*1000)/(dt*gsolvente));rix:=pm;
write('peso molecolare  = ? ');readln(ris);
analisi(rix,ris);
writeln('cfr.risultato da ottenere ');
writeln('pm:=(kc*gsoluto*1000)/(Dtc*gsolvente)');
writeln('Dtc = tc - to ');
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);rix:=gsoluto;
write('grammi soluto      = ? ');readln(ris);
analisi(rix,ris);
writeln('cfr.risultato da ottenere ');
writeln('gsoluto:=(Dte*pm*gsolvente)/(ke*1000)');
writeln('Dte = te - to ');
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,positiva         ');readln(k);
write('temperatura congelamento solvente     ');readln(t);
dt:=ts-t;
gsoluto:=abs((dt*pm*gsolvente)/(k*1000));rix:=gsoluto;
write('grammi soluto      = ? ');readln(ris);
analisi(rix,ris);
writeln('cfr.risultato da ottenere ');
writeln('gsoluto:=(Dtc*pm*gsolvente)/(kc*1000)');
writeln('Dtc = tc - to ');
writeln('grammi soluto                       ',gsoluto:8:3);
writeln;
writeln('premi enter');readln;
end;

procedure pro7;
begin
writeln('costante R = 0.082 ');
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;rix:=p;
write('pressione osmotica      = ? ');readln(ris);
analisi(rix,ris);
writeln('cfr.risultato da ottenere ');
writeln('p:=((gsoluto/pm)/vs)*R*T ');
writeln('T:=273+tc; ');
writeln('pressione in atmosfere              ',p:8:3);
writeln;
writeln('premi enter');readln;
end;

procedure pro8;
begin
writeln('costante R = 0.082 ');
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;rix:=p;
write('pressione osmotica      = ? ');readln(ris);
analisi(rix,ris);
writeln('cfr.risultato da ottenere ');
writeln('p:=alfa*M*R*T ');
writeln('T:=273+tc; ');
writeln('pressione in atmosfere              ',p:8:3);
writeln;
writeln('premi enter');readln;
end;

procedure pro9;
begin
writeln('costante R = 0.082 ');
writeln('calcolo MOLARITA ');
write('pressione osmotica                    ');readln(p);
write('temperatura soluzione gradiC          ');readln(ts);
t:=273+ts;
mo:=p/(r*t);rix:=mo;
write('Molarita      = ? ');readln(ris);
analisi(rix,ris);
writeln('cfr.risultato da ottenere ');
writeln('mo:=p/(R*T)');
writeln('T:=273+tc; ');
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('scrivere la Costante Crioscopica senza segno negativo ');
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;
esatte:=0;errate:=0;
writeln('funzione programma:esercizi su proprieta colligative');
writeln('---------------------------------------------------');
writeln('premi enter');readln;
scelta;
totale:=esatte+errate;
writeln('risposte esatte =',esatte,' su domande =',totale);
writeln('risposte errate =',errate,' su domande =',totale);
if esatte=totale then valuta:='bene' else
if ((esatte<totale) and (esatte>errate)) then
valuta:='sufficiente:studia meglio...' else
if (esatte=errate) then valuta:='insufficiente:studiare!!!' else
valuta:='gravemente insufficiente:devi studiare molto di pi—!!!';
writeln('per valutazione,chiama insegnante :',valuta);
readln;writeln('premi enter');readln;
end.

program collega2c;
(* problemi su ebullioscopia crioscopia pressione osmotica *)
(* INTERATTIVO DIMOSTRATIVO cfr.COLLIGA1 *)
uses crt;
const r=0.082;
var gsolvente,gsoluto,pm,k,t,dt,ts,p,vs,mo:real;
    s,alfa:integer;  
    frase:string;

procedure fine;
begin
writeln('premi enter');
readln;
end;

procedure avviso;
begin
writeln;writeln('scrivi su foglio le formule per risolvere il problema');
writeln('poi confronta con esecuzione,premendo ENTER');readln;writeln;
end;

procedure pro1;
begin
writeln('calcolo DTe e temperatura ebollizione soluzione ');
writeln(frase);
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;
avviso;
writeln('tes:=to+Dte');
writeln('Dte:=(ke*gsoluto*1000)/(pm*gsolvente)');
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');
writeln(frase);
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;
avviso;
writeln('tcs=to-Dtc ');
writeln('Dtc:=(kc*gsoluto*1000)/(pm*gsolvente)');;
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 ');
writeln(frase);
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);
avviso;
writeln('Dte=tes-to ');
writeln('pm:=(ke*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 ');
writeln(frase);
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));
avviso;
writeln('Dtc = tcs - to ');
writeln('pm:=((kc*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 ');
writeln(frase);
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);
avviso;
writeln('Dte = tes - to ');
writeln('gsoluto:=(dt*pm*gsolvente)/(ke*1000)');;
writeln('grammi soluto                       ',gsoluto:8:3);
writeln;
writeln('premi enter');readln;
end;

procedure pro6;
begin
writeln('calcolo GRAMMI soluto in funzione crioscopica ');
writeln(frase);
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));avviso;
writeln('Dtc = tcs - to ');
writeln('gsoluto:=((dt*pm*gsolvente)/(kc*1000))');
writeln('grammi soluto                       ',gsoluto:8:3);
writeln;
writeln('premi enter');readln;
end;

procedure pro7;
begin
writeln('calcolo PRESSIONE OSMOTICA ');
writeln(frase);
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;avviso;
writeln('T = 273 + ts ');
writeln('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 ');
writeln(frase);
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;avviso;
writeln('T = 273 + ts ');
writeln('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 ');
writeln(frase);
write('pressione osmotica                    ');readln(p);
write('temperatura soluzione gradiC          ');readln(ts);
write('numero particelle 1..2..3 ? se non sai,scrivi 1 ');readln(alfa);
t:=273+ts;
mo:=p/(r*t*alfa);avviso;
writeln('T = 273 + ts ');
writeln('mo:=p/(r*t*n)');
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('scrivere la COSTANTE CRIOSCOPICA senza segno negativo');
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;
frase:='cerca su tabelle valori Kc,Ke,to,tc,pesi molecolari,se richiesti ';
writeln('funzione programma:esercizi su proprietˆ COLLIGATIVE');
writeln('---------------------------------------------------');
writeln('premi enter');readln;
scelta;
end.