fiaica

esci con turbofisica.htm

Program fonde1;
(* grafico per simulazione leggi della FUSIONE *)
(* derivato da fonde *)
uses crt,graph;
var
a,x,y,z,valore,t2:integer;


procedure grafica; (* attivazione comandi grafici *)
var sc,tp:integer;stringa:string;
BEGIN
sc:=0;
tp:=0;
stringa:='c:\tp\bgi';
initgraph(sc,tp,stringa);
rectangle(1,1,630,400);
setbkcolor(black);
setcolor(white);
end;

procedure pausa; (* attesa che si prema enter *)
var ch:char;
begin
setcolor(white);
outtextxy(500,10,'premi enter ');
ch:=readkey;
setcolor(black);
outtextxy(500,10,'premi enter');
setcolor(white);
end;


procedure testo(x,y:integer;frase:string);
begin
setcolor(white);
outtextxy(x,y,frase);
end;


procedure cancellagrafo;
begin
cleardevice;
end;

procedure sosta1;
begin
delay(t2);
end;

procedure sosta2;
begin
delay(valore);
end;

procedure assi;
begin
setcolor(white);
setlinestyle(0,0,1);
moveto(20,100);lineto(20,300);lineto(400,300);
testo(30,100,'temperatura di fusione,solidificazione');
testo(30,320,'calore fornito a solido e liquido');
testo(200,330,'calore ceduto da liquido e solido'); pausa;
end;

procedure assi2;
begin
setcolor(white);
setlinestyle(0,0,1);
moveto(20,100);lineto(20,300);lineto(400,300);
rectangle(400,100,450,300);
rectangle(460,100,510,300);
bar(405,250,445,300);
setcolor(6);
bar(465,200,505,300);
testo(30,100,'temperatura di fusione');
testo(30,320,'calore fornito a solido e liquido');pausa;
moveto(1,1);
end;

procedure moto1(x,y,z:integer); (* solido *)
begin
setlinestyle(1,0,1);
for a:=1 to 60 do
begin
moveto(x,300);setcolor(white);lineto(x,z);sosta2;
x:=x+1;z:=z-1;
end;
end;

procedure moto2(x,y,z:integer); (* fusione *)
begin
setlinestyle(0,0,1);
for a:=1 to 60 do
begin
moveto(x,300);setcolor(white);lineto(x,z);sosta2;
x:=x+1;
end;
end;

procedure moto3(x,y,z:integer);
begin
setlinestyle(1,0,1);
for a:=1 to 60 do
begin
moveto(x,y);setcolor(white);lineto(x,z);sosta2;
x:=x+1;z:=z-1;
end;
end;

procedure moto4(x,y,z:integer);
begin
setlinestyle(1,0,1);
for a:=1 to 60 do
begin
moveto(x,y);setcolor(white);lineto(x,z);sosta2;
x:=x+1;z:=z+1;
end;
end;

procedure moto1a(x,y,z:integer); (* solido *)
begin
setlinestyle(0,0,1);
for a:=1 to 60 do
begin
moveto(x,z);setcolor(white);lineto(x,z-1);sosta2;
x:=x+1;z:=z-1;
end;
end;

procedure moto2a(x,y,z:integer); (* fusione *)
begin
setlinestyle(0,0,1);
for a:=1 to 60 do
begin
moveto(x,z);setcolor(white);lineto(x+1,z);sosta2;
x:=x+1;
end;
end;

procedure moto1b(x,y,z:integer); (* solido *)
begin
setlinestyle(0,0,1);
for a:=1 to 40 do
begin
moveto(x,z);setcolor(white);lineto(x,z-2);sosta2;
x:=x+1;z:=z-2;
end;
end;

procedure moto2b(x,y,z:integer); (* fusione *)
begin
setlinestyle(0,0,1);
for a:=1 to 40 do
begin
moveto(x,z);setcolor(white);lineto(x+1,z);sosta2;
x:=x+1;
end;
end;


procedure moto1c;
begin
setlinestyle(0,0,1);
moveto(20,300);lineto(80,200);lineto(140,200);lineto(200,150);
end;

procedure moto2c;
begin
setlinestyle(0,0,1);
moveto(20,300);lineto(120,200);lineto(220,200);lineto(300,150);sosta1;
setlinestyle(0,0,1);
end;

procedure modelli;
begin
circle(100,100,50);
circle(200,100,50);
circle(300,100,50);
circle(400,100,50);setlinestyle(0,0,1);
moveto(100,100);lineto(200,100);
setlinestyle(0,0,3);moveto(300,100);lineto(400,100);setlinestyle(0,0,1);
testo(100,20,'sostanza A');testo(100,40,' EcA = EcB ');
testo(100,60,' FaA < FaB ');
testo(300,20,'sostanza B');
testo(300,40,' EcB = EcA ');testo(300,60,' FaB > FaA ');
testo(100,90,' EcA > FaA ');testo(300,90,' EcB < FaB ');pausa;
testo(20,200,'alla temperatura T si verifica che EcA = EcB ');
testo(20,210,'se la ...................EcA > FaA la sostanza A fonde ');
moveto(100,100);setcolor(black);lineto(200,100);setcolor(white);
testo(20,220,'mentre se la .....EcB < FaB la sostanza B non fonde ');pausa;
testo(20,240,'si deve aumentare la T in modo che anche la EcB diventi');
testo(20,250,'maggiore della FaB ');pausa;
circle(100,260,50);
circle(200,260,50);
setlinestyle(0,0,1);
moveto(100,260);lineto(200,260);
testo(20,300,'nella solidificazione si libera energia dovuta ai legami');
testo(20,320,'che si formano:la temperatura rimane costante');
setlinestyle(0,0,1);
end;

procedure ipotesi;
begin
testo(20,20,'1..le particelle costituenti i corpi solidi,liquidi,gassosi');
testo(20,30,'sono animate da moti vibratori,dotate di energia cinetica Ec');
testo(20,40,'proporzionale alla temperatura Ec =kT ');
testo(20,50,'uguale per tutte le particelle alla stessa temperatura EcA=EcB ');
pausa;
testo(20,70,'2..le particelle si attirano a causa delle forze di ');
testo(20,80,'interazione,in funzione della diversa natura delle sostanze ');
testo(20,90,'e dei diversi tipi di legami:ionici,covalenti,deboli.. ');
testo(20,100,'EcA = EcB ....FaA <> FaB ');pausa;
testo(20,120,'3..un corpo solido se riceve energia aumenta la sua Ec: ');
testo(20,130,'indicata da aumento di temperatura ');pausa;
testo(20,150,'4..se la energia fornita permette alla Ec di superare la ');
testo(20,160,'forza di attrazione Fa , ( Ec > Fa ) ,il corpo inizia la ');
testo(20,170,'fusione:la energia fornita durante la fusione viene tutta ');
testo(20,180,'utilizzata per compiere il lavoro di separazione delle ');
testo(20,190,'particelle,e quindi la temperatura non aumenta ');pausa;
testo(20,210,'5..terminata la fusione,altra energia fornita fa crescere ');
testo(20,220,'energia cinetica del liquido,indicata da temperatura che ');
testo(20,230,'riprende a crescere ');pausa;
testo(20,250,'6..essendo diverse le FaA e FaB ,risultera necessario ');
testo(20,260,'fornire diverse quantita di energia per raggiungere la ');
testo(20,270,'fusione,e quindi diverse temperature in funzione di A e B ');
testo(20,280,'es. se (FaA < FaB) e (EcA = EcB) e (FaA < EcA e FaB > EcB) ');
testo(20,290,'potra fondere sostanza A e non sostanza B ');
pausa;cancellagrafo;
testo(20,20,'8..il calore necessario per fondere completamente una mole ');
testo(20,30,'di una sostanza,varia in funzione della forza dei legami ');
testo(20,40,'da vincere tra le diverse particelle:CALORE di FUSIONE ');
pausa;
testo(20,60,'9..durante la SOLIDIFICAZIONE la temperatura rimane costante ');
testo(20,70,'anche se il corpo cede calore,perche si vanno formando dei ');
testo(20,80,'legami tra le particelle che solidificano,e tali legami ');
testo(20,90,'liberano energia che subentra a quella ceduta ');sosta1;
testo(20,110,'10..il calore ceduto da una mole che solidifica equivale ');
testo(20,120,'al calore assorbito durante la fusione ');
testo(20,130,'CALORE di FUSIONE = CALORE di SOLIDIFICAZIONE ');
pausa;cancellagrafo;setcolor(white);
modelli;pausa;
end;


procedure leggif;
begin

testo(20,20,'1..ogni sostanza pura fonde a una temperatura caratteristica');
testo(20,30,'2..durante la fusione,la temperatura rimane costante');
sosta1;
testo(20,40,'1..ogni sostanza pura solidifica a una temperatura caratteristica');
testo(20,50,'2..durante la solidificazione la temperatura rimane costante');
sosta1;
testo(20,70,'3..temperatura di fusione = temperatura di solidificazione');
sosta1;
end;

procedure pro1;
begin
outtextxy(20,20,'sostanze diverse A,B a parita di moli');
outtextxy(20,30,'ricevono le stesse quantita di calore');
outtextxy(20,40,'tabella delle temperature misurate');
outtextxy(20,50,'----------------------------------------');
outtextxy(20,60,'prendi nota della tabella e disegna i diagrammi Calore/Ta,Tb');
outtextxy(20,70,'cerca di esprimere le leggi osservate');pausa;
outtextxy(20,80,'------------------------------------------');
outtextxy(20,100,'calore...tB....tA ');
outtextxy(20,110,'10.......10....15 ');
outtextxy(20,120,'20.......20....30 ');
outtextxy(20,130,'30.......30....45 ');
outtextxy(20,140,'40.......40....60 ');
outtextxy(20,150,'50.......50....60 ');
outtextxy(20,160,'60.......60....60 ');
outtextxy(20,170,'70.......70....75 ');
outtextxy(20,180,'80.......80....90 ');
outtextxy(20,190,'90.......80...105 ');
outtextxy(20,200,'100......80...120 ');
outtextxy(20,210,'110......90...135 ');
outtextxy(20,220,'120.....100...150 ');
pausa;cancellagrafo;
testo(20,200,'esperimento e curva di riscaldamento e fusione');
testo(20,230,'sostanze diverse A,B sono rifornite con la stessa energia');
testo(20,240,'1..entrambe mostrano un aumento di temperatura proporzionale');
testo(20,250,' alla energia fornita,ma diverso per le diverse sostanze');
testo(20,260,'2..entrambe cessano di aumentare la temperatura,pur ');
testo(20,270,' continuando ad assorbire energia termica');
testo(20,280,'3..il valore della temperatura che permane immutato varia');
testo(20,290,' con la natura delle sostanze tA=60...tB=80 ');
testo(20,300,'4..ad un certo punto entrambe le sostanze riprendono ad');
testo(20,310,' aumentare la temperatura');
testo(20,320,'5..INTERPRETAZIONE e ANALISI del fenomeno ');
pausa;
end;

procedure pro2;
begin
assi2;
testo(20,20,'diagramma di riscaldamento e fusione sostanze pure diverse');
testo(20,30,'con uguale numero di moli');
testo(350,80,'sostanza A :tA=60');
moto1a(20,0,300);sosta1;moto2a(80,0,240);sosta1;moto1a(140,0,240);
pausa;testo(370,100,'sostanza B :tB=80');
moto1b(20,0,300);sosta1;moto2a(60,0,220);sosta1;moto1b(120,0,220);sosta1;
testo(20,50,'curva di riscaldamento simile in A e B ');
testo(20,60,'cambia temperatura di fusione,pendenza grafico');pausa;
cancellagrafo;
end;

procedure pro3;
begin
outtextxy(20,20,'sostanze uguali A1,A2 con diverso numero di moli');
outtextxy(20,30,'ricevono le stesse quantita di calore');
outtextxy(20,40,'tabella delle temperature misurate');pausa;
outtextxy(20,60,'calore ..tA1.....tA2');
outtextxy(20,70,'10.......10.......5');
outtextxy(20,80,'20...... 20.......10');
outtextxy(20,90,'30.......30.......15');
outtextxy(20,100,'40.......40.......20');
outtextxy(20,110,'50.......50.......25');
outtextxy(20,120,'60.......60.......30' );
outtextxy(20,130,'70.......60.......35' );
outtextxy(20,140,'80.......60.......40' );
outtextxy(20,150,'90.......70.......45' );
outtextxy(20,160,'100......80.......50' );
outtextxy(20,170,'110......90.......55' );
outtextxy(20,180,'120.....100.......60' );
outtextxy(20,190,'130.....110.......60' );
outtextxy(20,200,'140.....120.......60' );
outtextxy(20,210,'150.....130.......60' );
outtextxy(20,220,'160.....140.......60' );
outtextxy(20,230,'170.....150.......60' );
outtextxy(20,240,'180.....160.......65' );
outtextxy(20,250,'190.....170.......70' );
pausa;
outtextxy(20,260,'----------------------------------------');
outtextxy(20,270,'prendi nota della tabella e disegna i diagrammi Calore/tA1,tA2');
outtextxy(20,280,'cerca di esprimere le leggi osservate');
pausa;
end;


procedure pro4;
begin
assi2;
testo(20,20,'diagramma di riscaldamento e fusione sostanze pure uguali');
testo(20,30,'con diverso numero di moli A1 < A2 ');
testo(350,80,'sostanza A1 ');
moto1c;pausa;testo(400,100,'sostanza A2');
moto2c;
testo(20,340,'esprimi le tue osservazioni sui diagrammi');pausa;
testo(20,50,'curva di riscaldamento simile in A1 e A2 ');
testo(20,60,'cambia calore fornito ,pendenza grafico');
testo(20,70,'temperatura di fusione identica tA1 = tA2 ');
pausa;
end;


procedure pro5;
begin
setlinestyle(1,0,1);
assi;
testo(20,340,'processo di riscaldamento e FUSIONE');
testo(20,80,'SOLIDO riscaldato:temperatura aumenta');moto1(20,0,300);
sosta1;testo(30,200,'Tfusione');testo(10,240,'----');
testo(40,70,'FUSIONE in corso:temperatura costante');moto2(80,0,240);
sosta1;
testo(60,60,'LIQUIDO riscaldato:temperatura aumenta');moto3(140,300,240);
pausa;
testo(100,350,'processo di raffreddamento e SOLIDIFICAZIONE');
testo(100,10,'LIQUIDO cede calore:temperatura decresce');
moto4(200,300,180);sosta1;testo(30,190,'Tsolidificazione');
testo(120,20,'SOLIDIFICAZIONE in corso:temperatura costante');
moto2(260,300,240);sosta1;
testo(140,30,'SOLIDO cede calore:temperatura decresce');
moto4(320,300,240);
moveto(200,180);setcolor(white);lineto(200,300);
testo(30,280,'Solido');testo(90,230,'So+Li');testo(180,260,'Liquido');
testo(270,230,'Li+So');testo(330,280,'Solido');
pausa;cancellagrafo;
testo(20,200,'osservazioni sperimentali');
testo(20,230,'permettono di ricavare le leggi della FUSIONE,SOLIDIFICAZIONE');
leggif;pausa;cancellagrafo;
testo(20,20,'si definisce CALORE latente di FUSIONE');
testo(20,30,'il calore assorbito dalla unita di massa che si trovi alla');
testo(20,40,'temperatura di fusione,per fondere completamente:');
testo(20,50,'Calore caratteristico per ogni sostanza pura');pausa;
testo(20,120,'si definisce CALORE latente di SOLIDIFICAZIONE');
testo(20,130,'il calore ceduto dalla unita di massa che si trovi alla');
testo(20,140,'temperatura di solidificazione,per solidificare completamente:');
testo(20,150,'Calore caratteristico per ogni sostanza pura');pausa;
testo(20,170,'Calore di fusione = Calore di solidificazione ');
pausa;cancellagrafo;
testo(20,20,'ripetendo esperimento con altre sostanze pure,si ottiene');
testo(20,30,'lo stesso risultato,espresso nelle leggi precedenti');
testo(20,40,'CAMBIA il valore della temperatura di fusione,solidificazione');
testo(20,50,'CAMBIA il valore dei calori di fusione e solidificazione');
testo(20,60,'in funzione delle diverse sostanze,e delle diverse forze');
testo(20,70,'di coesione che interessano le diverse sostanze');
pausa;cancellagrafo;
end;

procedure pro6;
begin
ipotesi;
end;

procedure pro7;
begin
testo(20,20,'fine esperimento:rivedi con calma e prepara la relazione:');
testo(20,40,'arrivederci ');pausa;
end;


procedure pro8;
begin
pro1;cancellagrafo;pro2;cancellagrafo;
cancellagrafo;pro3;cancellagrafo;
cancellagrafo;pro4;cancellagrafo;pro5;
cancellagrafo;pro6;cancellagrafo;pro7;
cancellagrafo;
end;

procedure fine; (* conferma uscita operazione *)
begin
outtextxy(30,30,'fine operazione:confermare :premi enter');
readln;
end;

procedure scelta; (* procedura con scelta opzioni e uscita *)
var s,sn:string;opzione:integer;
begin
cancellagrafo;
setcolor(white);
outtextxy(20,20,'seleziona opzione per FUSIONE e SOLIDIFICAZIONE');
outtextxy(20,30,'1...sostanze DIVERSE:curva riscaldamento e fusione');
outtextxy(20,40,'2...sostanze diverse:continua precedente');
outtextxy(20,50,'3...sostanze UGUALI:curva riscaldamento e fusione ');
outtextxy(20,60,'4...sostanze uguali:continua precedente ');
outtextxy(20,70,'5...UNA sostanza:diagramma FUSIONE e SOLIDIFICAZIONE');
outtextxy(20,80,'6...interpretazione leggi della fusione e solidificazione');
outtextxy(20,90,'7...conclusione ');
outtextxy(20,100,'8..serie AUTOMATICA simulazione ');
outtextxy(20,110,'9...fine ');
outtextxy(20,120,'scelta =');readln(opzione);
cancellagrafo;setcolor(white);
case opzione of
1:pro1;2:pro2;3:pro3;4:pro4;5:pro5;6:pro6;7:pro7;8:pro8;
9:fine;
end;
cancellagrafo;
setcolor(white);
outtextxy(30,50,'altra operazione?Esperimenti?:premi S...fine:premi N ');
readln(sn);
if ((sn='S') or (sn='s')) then scelta ;
end;

begin (* programma di lancio *)
grafica;
t2:=20;
outtextxy(20,30,'');outtextxy(20,40,'');
outtextxy(20,60,'esempio sperimentazione su comportamento delle sostanze pure');
outtextxy(20,70,'in rapporto alla energia fornita o ceduta');
outtextxy(20,90,'FUSIONE e SOLIDIFICAZIONE ');
outtextxy(20,110,'------------------------------------------------------------');
outtextxy(20,110,'dipositivi necessari:');
outtextxy(20,120,'contenitori per sostanze da riscaldare');
outtextxy(20,130,'termometri per misurare temperature ');
outtextxy(20,140,'sorgente di calore da fornire in modo misurabile');
outtextxy(20,150,'------------------------------------------------------------');
outtextxy(20,160,'COME USARE il PROGRAMMA:attivare in modo consecutivo le varie');
outtextxy(20,170,'opzioni 8,1,2,3,4,5,6,7.9..come indicato nel corso del programma');
outtextxy(20,180,'possibile anche vedere solo parti separate o con altro ordine');
outtextxy(20,190,'');pausa;cancellagrafo;
repeat
setcolor(white);
outtextxy(20,210,'indica velocita simulazione ,minore di 101 ');
outtextxy(20,220,'prova per vedere velocemente la prima volta :1 ');
outtextxy(20,230,'poi riprova lentamente con 5..10..20..50..100 ');
outtextxy(20,240,'NOTA:quando rispondi,non si vede quello che scrivi');
outtextxy(20,250,'appare solo un segnetto in alto..SCRIVI ESATTO!!!');
outtextxy(20,260,'scrivi valore scelto ');readln(valore);
until ((valore>0) and (valore<101));
scelta;
closegraph;restorecrtmode;
end.