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.