listati su altezza sole
altezza1....2,3,4,5,6,7,8,9,
program altezza1; (* altezza del sole in funzione di latitudine e declinazione *) (* su disco 65 dispensa 49 \tu55\altezza1.mar *) uses crt; var provare:integer; procedure simula; begin writeln('si determina la altezza del sole,indicando il valore in gradi'); writeln('in funzione della latitudine e della declinazione indicabili '); writeln; writeln('valori per latitudine :interi da -90 a 0 a 90 '); writeln('valori per declinazione:interi da -23 a 23 '); writeln; writeln('premi return,prego'); readln; end; procedure alto(prove:integer); var altezza,lat,dec1,conta:integer; sp:string; begin sp:='...................................'; for conta:=1 to prove do begin write('latitudine. -90..0..90...=');readln(lat); write('declinazione.-23..0..23...=');readln(dec1); writeln('-------------------------------------------'); textcolor(14); altezza:=90-LaT+dec1; if (lat>0) and (lat<dec1) then altezza:=180-(90-lat+dec1); if (lat<0) and (lat>dec1) then altezza:=180-(90+lat-dec1); if (lat<0) and (lat<dec1) then altezza:=90+lat-dec1; if (lat=0) then altezza:=90 - abs(dec1); writeln('latitudine.....',lat); writeln('declinazione...',dec1); writeln('altezza sole...',altezza); writeln(sp); end; end; begin (* programma principale *) clrscr; simula; write('indica numero prove 1...10..90=');readln(provare); alto(provare); writeln('premi return,prego');readln; end.
program altezza2; (* altezza del sole in funzione di latitudine e declinazione *) (* su disco 65 dispensa 49 \tu55\altezza2.mar *) uses crt; procedure simula; begin writeln('si determina la altezza del sole,indicando il valore in gradi'); writeln('in funzione della latitudine e della declinazione indicabili '); writeln('entro campo determinato'); writeln('latitudine variabile e declinazione costante'); writeln; writeln('valori per latitudine :interi da -90 a 0 a 90 '); writeln('valori per declinazione:interi da -23 a 23 '); writeln; writeln('premi return,prego'); readln; end; procedure alto; var altezza,lat,lat1,lat2,dec1:integer; sp:string; begin sp:='...........'; write(' declinazione costante-23..0.+23...=');readln(dec1); write('latitudine iniziale. -90..0..90...=');readln(lat1); write('latitudine finale .... 90..0.-90...=');readln(lat2); writeln('-------------------------------------------'); textcolor(14); writeln('latitudine...declinazione...altezza'); writeln; for lat:=lat1 to lat2 do begin altezza:=90-LaT+dec1; if (lat>0) and (lat<dec1) then altezza:=180-(90-lat+dec1); if (lat<0) and (lat>dec1) then altezza:=180-(90+lat-dec1); if (lat<0) and (lat<dec1) then altezza:=90+lat-dec1; if (lat=0) then altezza:=90 - abs(dec1); writeln(lat,sp,dec1,sp,altezza); if (lat/10 = int(lat/10)) then delay(1000) else delay(1); (* pausa per vedere valori indicati *) end; end; begin (* programma principale *) clrscr; simula; alto; writeln('premi return,prego');readln; end.
program altezza3; (* altezza del sole in funzione di latitudine e declinazione *) (* su disco 65 dispensa 49 \tu55\altezza3.mar *) uses crt; procedure simula; begin writeln('si determina la altezza del sole,indicando il valore in gradi'); writeln('in funzione della latitudine e della declinazione indicabili '); writeln('entro campo determinato'); writeln('latitudine costante e declinazione variabile'); writeln; writeln('valori per latitudine :interi da -90 a 0 a 90 '); writeln('valori per declinazione:interi da -23 a 23 '); writeln; writeln('premi return,prego'); readln; end; procedure alto; var altezza,dec1,dec2,lat,dec:integer; sp:string; begin sp:='...........'; write('latitudine costante 90...0...-90...=');readln(lat); write('declinazione iniziale. -23..0..23...=');readln(dec1); write('declinazione finale......23..0.-23...=');readln(dec2); writeln('-------------------------------------------'); textcolor(14); writeln('latitudine...declinazione...altezza'); writeln; for dec:=dec1 to dec2 do begin altezza:=90-LaT+dec; if (lat>0) and (lat<dec) then altezza:=180-(90-lat+dec); if (lat<0) and (lat>dec) then altezza:=180-(90+lat-dec); if (lat<0) and (lat<dec) then altezza:=90+lat-dec; if (lat=0) then altezza:=90 - abs(dec); writeln(lat,sp,dec,sp,sp,altezza); if (dec/10 = int(dec/10)) then delay(2000) else delay(1); (* pausa per vedere valori indicati *) end; end; begin (* programma principale *) clrscr; simula; alto; writeln('premi return,prego');readln; end.
program altezza4; (* altezza del sole in funzione di latitudine e declinazione *) (* su disco 65 dispensa 49 \tu55\altezza4.mar *) uses crt,graph; procedure simula; begin writeln('si determina la altezza del sole,indicando il valore in gradi'); writeln('in funzione della latitudine e della declinazione indicabili '); writeln('entro campo determinato'); writeln('latitudine variabile e declinazione costante'); writeln; writeln('grafico altezza variabile con latitudine e declinazione'); writeln; writeln('valori per latitudine :interi da -90 a 0 a 90 '); writeln('valori per declinazione:interi da -23 a 23 '); writeln; writeln('PER LATITUDINE:PRIMA VALORE MINORE,poi quello MAGGIORE '); writeln('premi return,prego'); readln; clrscr; end; procedure grafica(f:integer); var sc,tp:integer; stringa:string; begin sc:=0; tp:=0; stringa:='c:\'; initgraph(sc,tp,stringa); setbkcolor(f); end; procedure pausa; var ch:char; begin setcolor(2); outtextxy(400,450,'premi return,prego'); ch:=readkey; setcolor(1); outtextxy(400,450,'premi return,prego'); end; procedure testo(x,y:integer;nome:string); begin outtextxy(x,y,nome); end; procedure alto; var n,altezza,lat,lat1,lat2,dec1,x,y,x1,y1:integer; sd,sl,sh,sx:string; begin x:=300; y:=200; y1:=100; x1:=10; n:=0; sx:='/'; testo(100,10,'SCRIVI: declinazione costante-23..0.+23...=');read(dec1); testo(100,20,'SCRIVI: latitudine iniziale. -90..0..90...=');read(lat1); testo(100,30,'SCRIVI: latitudine finale ... 90..0.-90...=');read(lat2); IF (LAT2<=LAT1) THEN TESTO(10,400,'LAT2 > LAT1:RIPROVA PREGO:'); IF (LAT2<=LAT1) THEN READ(LAT2); setcolor(5); TESTO(x,50,'variazione secondo latitudine crescente'); settextstyle(0,1,1); testo(600,100,'altezza sole'); settextstyle(0,0,1); line(10,y,600,y); line(10,y-90,600,y-90); for lat:=lat1 to lat2 do begin n:=n+1; setcolor(14); altezza:=90-LaT+dec1; if (lat>0) and (lat<dec1) then altezza:=180-(90-lat+dec1); if (lat<0) and (lat>dec1) then altezza:=180-(90+lat-dec1); if (lat<0) and (lat<dec1) then altezza:=90+lat-dec1; if (lat=0) then altezza:=90 - abs(dec1); str(dec1,sd); str(lat,sl); str(altezza,sh); testo(x1,y1,sl+sx+sd+sx+sh); y1:=y1+10; if (n/30= int(n/30)) then x1:=x1+95; if (n/30= int(n/30)) then y1:=100; setcolor(5); line(x+lat,y,x+lat,y-altezza); end; end; begin (* programma principale *) clrscr; simula; grafica(1); alto; pausa; clrscr; end.
program altezza5; (* altezza del sole in funzione di latitudine e declinazione *) (* su disco 65 dispensa 49 \tu55\altezza5.mar *) uses crt,graph; procedure simula; begin writeln('si determina la altezza del sole,indicando il valore in gradi'); writeln('in funzione della latitudine e della declinazione indicabili '); writeln('entro campo determinato'); writeln('latitudine costante e declinazione variabile'); writeln; writeln('grafico altezza variabile con latitudine e declinazione'); writeln; writeln('valori per latitudine :interi da -90 a 0 a 90 '); writeln('valori per declinazione:interi da -23 a 23 '); writeln; writeln('PER declinazione:PRIMA VALORE MINORE,poi quello MAGGIORE '); writeln('premi return,prego'); readln; clrscr; end; procedure grafica(f:integer); var sc,tp:integer; stringa:string; begin sc:=0; tp:=0; stringa:='c:\scheda'; initgraph(sc,tp,stringa); setbkcolor(f); end; procedure pausa; var ch:char; begin setcolor(2); outtextxy(400,450,'premi return,prego'); ch:=readkey; setcolor(1); outtextxy(400,450,'premi return,prego'); end; procedure testo(x,y:integer;nome:string); begin outtextxy(x,y,nome); end; procedure alto; var n,altezza,lat,dec1,dec2,dec,x,y,x1,y1:integer; sd,sl,sh,sx:string; begin x:=300; y:=200; y1:=100; x1:=10; n:=0; sx:='/'; testo(100,10,'SCRIVI: latitudine costante -90..0..90..=');read(lat); testo(100,20,'SCRIVI: declinazione iniziale. -23..0..23..=');read(dec1); testo(100,30,'SCRIVI: declinazione finale ... 23..0..-23.=');read(dec2); IF (dec2<=dec1) THEN TESTO(10,400,'dec2 > dec1:RIPROVA PREGO:'); IF (dec2<=dec1) THEN READ(dec2); setcolor(5); TESTO(x,50,'variazione secondo declinazione crescente'); settextstyle(0,1,1); testo(600,100,'altezza sole'); settextstyle(0,0,1); line(10,y,600,y); line(10,y-90,600,y-90); for dec:=dec1 to dec2 do begin n:=n+1; setcolor(14); altezza:=90-LaT+dec; if (lat>0) and (lat<dec) then altezza:=180-(90-lat+dec); if (lat<0) and (lat>dec) then altezza:=180-(90+lat-dec); if (lat<0) and (lat<dec) then altezza:=90+lat-dec; if (lat=0) then altezza:=90 - abs(dec); str(dec,sd); str(lat,sl); str(altezza,sh); testo(x1,y1,sl+sx+sd+sx+sh); y1:=y1+10; if (n/30= int(n/30)) then x1:=x1+95; if (n/30= int(n/30)) then y1:=100; setcolor(5); line(x+dec,y,x+dec,y-altezza); end; end; begin (* programma principale *) clrscr; simula; grafica(1); alto; pausa; clrscr; end.
program altezza6; (* altezza del sole in funzione di latitudine e declinazione *) (* su disco 65 dispensa 49 \tu55\altezza6.mar *) uses crt,graph; procedure simula; begin writeln('si determina la altezza del sole,indicando il valore in gradi'); writeln('in funzione della latitudine e della declinazione indicabili '); writeln('entro campo determinato'); writeln('latitudine costante e declinazione variabile'); writeln; writeln('grafico altezza variabile con latitudine e declinazione'); writeln; writeln('valori per latitudine :interi da -90 a 0 a 90 '); writeln('valori per declinazione:interi da -23 a 23 '); writeln; writeln('PER declinazione:PRIMA VALORE MINORE,poi quello MAGGIORE '); writeln('premi return,prego'); readln; clrscr; end; procedure grafica(f:integer); var sc,tp:integer; stringa:string; begin sc:=0; tp:=0; stringa:='c:\scheda'; initgraph(sc,tp,stringa); setbkcolor(f); end; procedure pausa; var ch:char; begin setcolor(2); outtextxy(400,450,'premi return,prego'); ch:=readkey; setcolor(1); outtextxy(400,450,'premi return,prego'); end; procedure testo(x,y:integer;nome:string); begin outtextxy(x,y,nome); end; procedure alto; var n,altezza,lat,dec1,dec2,dec,x,y,x1,y1:integer; sd,sl,sh,sx:string; begin x:=300; y:=200; y1:=100; x1:=10; n:=0; sx:='/'; testo(100,10,'SCRIVI: latitudine costante -90..0..90..=');read(lat); testo(100,20,'SCRIVI: declinazione iniziale. -23..0..23..=');read(dec1); testo(100,30,'SCRIVI: declinazione finale ... 23..0..-23.=');read(dec2); IF (dec2<=dec1) THEN TESTO(10,400,'dec2 > dec1:RIPROVA PREGO:'); IF (dec2<=dec1) THEN READ(dec2); setcolor(5); TESTO(x,50,'variazione secondo declinazione crescente'); settextstyle(0,1,1); testo(600,100,'altezza sole'); settextstyle(0,0,1); line(10,y,600,y); line(10,y-90,600,y-90); for dec:=dec1 to dec2 do (* declinazione crescente *) begin n:=n+1; setcolor(14); altezza:=90-LaT+dec; if (lat>0) and (lat<dec) then altezza:=180-(90-lat+dec); if (lat<0) and (lat>dec) then altezza:=180-(90+lat-dec); if (lat<0) and (lat<dec) then altezza:=90+lat-dec; if (lat=0) then altezza:=90 - abs(dec); str(dec,sd); str(lat,sl); str(altezza,sh); testo(x1,y1,sl+sx+sd+sx+sh); y1:=y1+10; if (n/30= int(n/30)) then x1:=x1+95; if (n/30= int(n/30)) then y1:=100; setcolor(5); line(x+dec,y,x+dec,y-altezza); end; x:=x+n; (* declinazione decrescente *) for dec:=dec2 downto dec1 do begin n:=n+1; setcolor(14); altezza:=90-LaT+dec; if (lat>0) and (lat<dec) then altezza:=180-(90-lat+dec); if (lat<0) and (lat>dec) then altezza:=180-(90+lat-dec); if (lat<0) and (lat<dec) then altezza:=90+lat-dec; if (lat=0) then altezza:=90 - abs(dec); str(dec,sd); str(lat,sl); str(altezza,sh); testo(x1,y1,sl+sx+sd+sx+sh); y1:=y1+10; if (n/30= int(n/30)) then x1:=x1+95; if (n/30= int(n/30)) then y1:=100; setcolor(5); line(x-dec,y,x-dec,y-altezza); end; end; begin (* programma principale *) clrscr; simula; grafica(1); alto; pausa; clrscr; end.
program altezza7; (* altezza del sole in funzione di latitudine e declinazione *) (* su disco 65 dispensa 49 \tu55\altezza7.mar *) uses crt,graph; var passo,totale,sosta:integer; procedure simula; begin writeln('si determina la altezza del sole,indicando il valore in gradi'); writeln('in funzione della latitudine e della declinazione indicabili '); writeln('entro campo determinato'); writeln('latitudine costante e declinazione variabile'); writeln; writeln('grafico altezza variabile con latitudine e declinazione'); writeln; writeln('valori per latitudine :interi da -90 a 0 a 90 '); writeln('valori per declinazione:interi da -23 a 23 '); writeln; writeln('indicare passo per variazione della latitudine..'); writeln('deve essere divisore esatto di 90...:1..10..15..30..'); readln(passo); totale:=trunc(90/passo); writeln('indica valore per sosta tra vari disegni..1000...5000 '); readln(sosta); totale:=2*totale+1; writeln('premi return,prego'); readln; clrscr; end; procedure grafica(f:integer); var sc,tp:integer; stringa:string; begin sc:=0; tp:=0; stringa:='c:\scheda'; initgraph(sc,tp,stringa); setbkcolor(f); end; procedure pausa; var ch:char; begin setcolor(2); outtextxy(400,450,'premi return,prego'); ch:=readkey; setcolor(1); outtextxy(400,450,'premi return,prego'); end; procedure testo(x,y:integer;nome:string); begin outtextxy(x,y,nome); end; procedure alto; var conta,n,altezza,lat,dec,x,y,x1:integer; stringa:string; begin x:=300; y:=200; n:=0; setcolor(5); testo(10,360,'si visualizza la latitudine corrispondente per ogni'); testo(10,370,'variazione della declinazione nel corso annuale'); testo(10,380,'e la altezza del sole rispetto alla linea orizzontale'); testo(10,390,'NOTARE LE LATITUDINI ALLE QUALI IL SOLE RAGGIUNGE 90 GRADI'); testo(10,400,'per determinati valori della declinazione:lat -23 0 23 '); testo(10,420,'e quelle alle quali non sorge o non tramonta per determinati'); testo(10,430,'valori della declinazione:lat 66...90..66 nord/sud'); TESTO(20,50,'variazione declinazione da -23 ,0,+23,0,-23 '); testo(20,60,'secondo il corso annuale del moto apparente del sole '); testo(20,80,'LATITUDINE VARIA DA -90 a 90 con passo da indicare '); settextstyle(0,1,1); testo(610,100,'altezza sole'); lat:=-90; for conta:=1 to totale do begin settextstyle(0,0,1); line(200,y-45,500,y-45); testo(10,y-45,'altezza=45 gradi'); line(200,y,500,y); testo(10,y,'altezza=0 gradi'); line(200,y-90,500,y-90); testo(10,y-90,'altezza=90 gradi'); str(lat,stringa); setcolor(2); testo(10,90,'altezza massima del sole=90'); testo(10,220,'altezza del sole negativa:sotto orizzonte'); testo(290,90,'-23.0.23.0.-23'); testo(10,230,'latitudine='+stringa); for dec:=-23 to 23 do (* declinazione crescente *) begin n:=n+1; setcolor(14); altezza:=90-LaT+dec; if (lat>0) and (lat<dec) then altezza:=180-(90-lat+dec); if (lat<0) and (lat>dec) then altezza:=180-(90+lat-dec); if (lat<0) and (lat<dec) then altezza:=90+lat-dec; if (lat=0) then altezza:=90 - abs(dec); setcolor(5); line(x+n,y,x+n,y-altezza); end; x1:=346; n:=0; begin for dec:=23 downto -23 do begin setcolor(14); altezza:=90-LaT+dec; if (lat>0) and (lat<dec) then altezza:=180-(90-lat+dec); if (lat<0) and (lat>dec) then altezza:=180-(90+lat-dec); if (lat<0) and (lat<dec) then altezza:=90+lat-dec; if (lat=0) then altezza:=90 - abs(dec); line(x1+n,y,x1+n,y-altezza); n:=n+1; end; delay(sosta); if (lat=90) then delay(5000); (* tra due disegni *) setfillstyle(1,1); bar(1,100,600,250); n:=0; lat:=lat+passo; x:=300; end; end; pausa; end; begin (* programma principale *) clrscr; simula; grafica(1); alto; clrscr; end.
program altezza8; (* altezza del sole in funzione di latitudine e declinazione *) (* su disco 65 dispensa 49 \tu54\altezza8.mar *) (* variante di altezza7.mar con scheda 9 invece di 0 *) uses crt,graph; var passo,totale,sosta:integer; procedure simula; begin writeln('si determina la altezza del sole,indicando il valore in gradi'); writeln('in funzione della latitudine e della declinazione indicabili '); writeln('entro campo determinato'); writeln('latitudine costante e declinazione variabile'); writeln; writeln('grafico altezza variabile con latitudine e declinazione'); writeln; writeln('valori per latitudine :interi da -90 a 0 a 90 '); writeln('valori per declinazione:interi da -23 a 23 '); writeln; writeln('indicare passo per variazione della latitudine..'); writeln('deve essere divisore esatto di 90...:1..10..15..30..'); readln(passo); totale:=trunc(90/passo); writeln('indica valore per sosta tra vari disegni..1000...5000 '); readln(sosta); totale:=2*totale+1; writeln('premi return,prego'); readln; clrscr; writeln('si visualizza la latitudine corrispondente per ogni'); writeln('variazione della declinazione nel corso annuale'); writeln('e la altezza del sole rispetto alla linea orizzontale'); writeln('NOTARE LE LATITUDINI ALLE QUALI IL SOLE RAGGIUNGE 90 GRADI'); writeln('per determinati valori della declinazione:lat -23 0 23 '); writeln('e quelle alle quali non sorge o non tramonta per determinati'); writeln('valori della declinazione:lat 66...90..66 nord/sud'); writeln('variazione declinazione da -23 ,0,+23,0,-23 '); writeln('secondo il corso annuale del moto apparente del sole '); writeln('LATITUDINE VARIA DA -90 a 90 con passo da indicare '); writeln; writeln('premi return,prego'); readln; clrscr; end; procedure grafica(f:integer); var sc,tp:integer; stringa:string; begin sc:=9; (* cambiata scheda da 0 a 9 *) tp:=0; stringa:='c:\scheda'; initgraph(sc,tp,stringa); setbkcolor(f); end; procedure pausa; var ch:char; begin setcolor(2); outtextxy(400,190,'premi return,prego'); ch:=readkey; setcolor(1); outtextxy(400,190,'premi return,prego'); end; procedure testo(x,y:integer;nome:string); begin outtextxy(x,y,nome); end; procedure alto; var conta,n,altezza,lat,dec,x,y,x1:integer; stringa:string; begin x:=300; y:=150; n:=0; setcolor(5); settextstyle(0,1,1); testo(610,60,'altezza sole'); lat:=-90; for conta:=1 to totale do begin settextstyle(0,0,1); line(200,y-45,500,y-45); testo(10,y-45,'altezza=45 gradi'); line(200,y,500,y); testo(10,y,'altezza=0 gradi'); line(200,y-90,500,y-90); testo(10,y-90,'altezza=90 gradi'); str(lat,stringa); setcolor(2); testo(10,y-110,'altezza massima del sole=90'); testo(10,y+20,'altezza del sole negativa:sotto orizzonte'); testo(290,y-110,'-23.0.23.0.-23'); testo(10,y+10,'latitudine='+stringa); for dec:=-23 to 23 do (* declinazione crescente *) begin n:=n+1; setcolor(14); altezza:=90-LaT+dec; if (lat>0) and (lat<dec) then altezza:=180-(90-lat+dec); if (lat<0) and (lat>dec) then altezza:=180-(90+lat-dec); if (lat<0) and (lat<dec) then altezza:=90+lat-dec; if (lat=0) then altezza:=90 - abs(dec); setcolor(5); line(x+n,y,x+n,y-altezza); end; x1:=346; n:=0; begin for dec:=23 downto -23 do begin setcolor(14); altezza:=90-LaT+dec; if (lat>0) and (lat<dec) then altezza:=180-(90-lat+dec); if (lat<0) and (lat>dec) then altezza:=180-(90+lat-dec); if (lat<0) and (lat<dec) then altezza:=90+lat-dec; if (lat=0) then altezza:=90 - abs(dec); line(x1+n,y,x1+n,y-altezza); n:=n+1; end; delay(sosta); if (lat=90) then delay(5000); (* tra due disegni *) setfillstyle(1,1); bar(1,y-90,600,y+40); n:=0; lat:=lat+passo; x:=300; end; end; pausa; end; begin (* programma principale *) clrscr; simula; grafica(1); alto; clrscr; closegraph; end.
program altezza9; (* altezza del sole in funzione di latitudine e declinazione *) (* su disco 65 dispensa 49 \tu54\altezza9.mar *) (* variante di altezza7.mar con scheda 1 invece di 0 *) uses crt,graph; var passo,totale,sosta:integer; procedure simula; begin writeln('si determina la altezza del sole,indicando il valore in gradi'); writeln('in funzione della latitudine e della declinazione indicabili '); writeln('entro campo determinato'); writeln('latitudine costante e declinazione variabile'); writeln; writeln('grafico altezza variabile con latitudine e declinazione'); writeln; writeln('valori per latitudine :interi da -90 a 0 a 90 '); writeln('valori per declinazione:interi da -23 a 23 '); writeln; writeln('indicare passo per variazione della latitudine..'); writeln('deve essere divisore esatto di 90...:1..10..15..30..'); readln(passo); totale:=trunc(90/passo); writeln('indica valore per sosta tra vari disegni..1000...5000 '); readln(sosta); totale:=2*totale+1; writeln('premi return,prego'); readln; clrscr; writeln('si visualizza la latitudine corrispondente per ogni'); writeln('variazione della declinazione nel corso annuale'); writeln('e la altezza del sole rispetto alla linea orizzontale'); writeln('NOTARE LE LATITUDINI ALLE QUALI IL SOLE RAGGIUNGE 90 GRADI'); writeln('per determinati valori della declinazione:lat -23 0 23 '); writeln('e quelle alle quali non sorge o non tramonta per determinati'); writeln('valori della declinazione:lat 66...90..66 nord/sud'); writeln('variazione declinazione da -23 ,0,+23,0,-23 '); writeln('secondo il corso annuale del moto apparente del sole '); writeln('LATITUDINE VARIA DA -90 a 90 con passo da indicare '); writeln; writeln('premi return,prego'); readln; clrscr; end; procedure grafica(f:integer); var sc,tp:integer; stringa:string; begin sc:=1; (* cambiata scheda da 0 a 1 *) tp:=2; (* cambiata tavolozza da 0 a 2 o 3 o 1 *) stringa:='c:\scheda'; initgraph(sc,tp,stringa); setbkcolor(f); end; procedure pausa; var ch:char; begin setcolor(2); outtextxy(10,190,'premi return,prego'); ch:=readkey; setcolor(1); outtextxy(10,190,'premi return,prego'); end; procedure testo(x,y:integer;nome:string); begin outtextxy(x,y,nome); end; procedure alto; var conta,n,altezza,lat,dec,x,y,x1:integer; stringa:string; begin x:=150; y:=150; n:=0; setcolor(5); settextstyle(0,1,1); testo(310,60,'altezza sole'); lat:=-90; for conta:=1 to totale do begin settextstyle(0,0,1); line(100,y-45,300,y-45); testo(10,y-45,'altezza=45 gradi'); line(100,y,300,y); testo(10,y,'altezza=0 gradi'); line(100,y-90,300,y-90); testo(10,y-90,'altezza=90 gradi'); str(lat,stringa); setcolor(2); testo(10,y-110,'altezza massima del sole=90'); if (altezza<0) then testo(10,y+20,'altezza sole:sotto orizzonte'); testo(145,y-100,'-23.0.23.0.-23'); testo(10,y+10,'latitudine='+stringa); for dec:=-23 to 23 do (* declinazione crescente *) begin n:=n+1; setcolor(2); altezza:=90-LaT+dec; if (lat>0) and (lat<dec) then altezza:=180-(90-lat+dec); if (lat<0) and (lat>dec) then altezza:=180-(90+lat-dec); if (lat<0) and (lat<dec) then altezza:=90+lat-dec; if (lat=0) then altezza:=90 - abs(dec); if (altezza<0) then testo(10,y+20,'altezza sole:sotto orizzonte'); setcolor(3); if (altezza=90) and(lat=0) then delay(sosta); line(x+n,y,x+n,y-altezza); end; x1:=196; n:=0; begin for dec:=23 downto -23 do begin setcolor(2); altezza:=90-LaT+dec; if (lat>0) and (lat<dec) then altezza:=180-(90-lat+dec); if (lat<0) and (lat>dec) then altezza:=180-(90+lat-dec); if (lat<0) and (lat<dec) then altezza:=90+lat-dec; if (lat=0) then altezza:=90 - abs(dec); line(x1+n,y,x1+n,y-altezza); if(altezza=90) and(lat=0) then delay(sosta); n:=n+1; end; delay(sosta); if (lat=90) then delay(5000); (* tra due disegni *) setfillstyle(1,1); bar(1,y-90,300,y+40); n:=0; lat:=lat+passo; x:=150; end; end; pausa; end; begin (* programma principale *) clrscr; simula; grafica(1); alto; clrscr; closegraph; end.