Aiuto per programmi in fortran 6.0
ciao a tutti, vorrei il vostro aiuto su un paio di programmi che ho scritto in fortran 6.0.
ne ho fatti 2, riportanti 2 leggi della fisica:
1) dilatazione lineare dei solidi: Lf=Li+Li*a*(tf-ti)
dove Lf= lungh. finale,
Li= lungh. iniziale,
a= coeffic. dilataz. termica lineare
tf-ti= temperatura finale-temperatura iniziale
2)Legge di Stevino: p=p0+d*g*h
dove p= pressione del fluido
p0= pressione atm sul liv. del mare
d= densità del fluido
g= accelerazione di gravità
h= profondità
i programi che ho compilato sono:
1)
___________________________________________________________________________________
allora clicco:
compile e build che non mi danno errori nè warning.
quando clicco su execute program il risultato è: La dilatazione del materiale è circa Lf-Li.
premere un tasto e chiude
visto che nel programma ho messo i dati relativi a diversi materiali, con annesse temperature e lunghezze iniziali, mi aspettavo una tabella che li riportasse... non so se mi spiego!
vorrei che il programma una volta eseguito mi faccia vedere i valori di dilatazione termica lineare per ognuno dei materiali.
_______________________________________________
2)
______________________________________________________________
diciamo che il caso è lo stesso di quello detto prima cioè
compile e build senza errori, ma in execute program esce solo un valore di p.
vorrei invece ottenere anche qui una tabella con i valori di p alle diverse profondità h che vanno da 0 m a 3500m sotto il liv del mare.
questo è quanto, spero ci sia qualcuno che mi possa aiutare perchè è importante e urgentissimo perchè a breve avrò un esame.
vi ringrazio in anticipo
ne ho fatti 2, riportanti 2 leggi della fisica:
1) dilatazione lineare dei solidi: Lf=Li+Li*a*(tf-ti)
dove Lf= lungh. finale,
Li= lungh. iniziale,
a= coeffic. dilataz. termica lineare
tf-ti= temperatura finale-temperatura iniziale
2)Legge di Stevino: p=p0+d*g*h
dove p= pressione del fluido
p0= pressione atm sul liv. del mare
d= densità del fluido
g= accelerazione di gravità
h= profondità
i programi che ho compilato sono:
1)
program dilataz lineare solidi c------questo programma calcola l'allungamento di materiali a seguito di c----*una variazione di temperatura-------------------------------------- implicit double precision (a-h,o-z) c---------PARAMETRI PER IL CALCOLO--------------------------------------- character *9 materiali(8) c------------materiali--------------------------------------------------- data materiali /'Al','Diam','Fe','Pb','Cu','Vetro','Zn','Acciaio'/ c----------coefficienti di dilatazione termica lineare-------------------- data a,b,c,d,e,f,g,h / 23.d-6, 1.d-6, 12.d-6, 29.d-6, 17.d-6, 9.d-6, *30.d-6, 2.d-6/!coeffic. dilataz. lineare, K^-1 c----------lunghezza iniziale--------------------------------------------- data li/1.d0/!lunghezza iniziale, m c----------valori della temperatura--------------------------------------- data ti/20.d0/ !temperatura iniziale,K data tf/50.d0/ !temperatura finale, K open (23,file='dilataz.dat') ind=0 ti=20.d0 !K tf=50.d0 !K dt=tf-ti !K do 50, dt=ti,tf,(tf-ti)/1.d0 50 lf=li+li*a*dt lf=li+li*b*dt lf=li+li*c*dt lf=li+li*d*dt lf=li+li*e*dt lf=li+li*f*dt lf=li+li*g*dt lf=li+li*h*dt if (lf.gt.li.and.ind.eq.0) goto 87 print*, 'La dilatazione del materiale è circa=','lf-li'!m stop write (23,*) real(dt) , real(li) !risultato in m goto 87 87 continue stop end
___________________________________________________________________________________
allora clicco:
compile e build che non mi danno errori nè warning.
quando clicco su execute program il risultato è: La dilatazione del materiale è circa Lf-Li.
premere un tasto e chiude
visto che nel programma ho messo i dati relativi a diversi materiali, con annesse temperature e lunghezze iniziali, mi aspettavo una tabella che li riportasse... non so se mi spiego!
vorrei che il programma una volta eseguito mi faccia vedere i valori di dilatazione termica lineare per ognuno dei materiali.
_______________________________________________
2)
program legge di stevino c questo programma calcola la pressione nell'acqua a diverse profondità implicit double precision (a-h,o-z) c-----parametri per gravità------------------------------------------------ data g/9.8/!accelerazione di gravità, ms^-2 c-----parametri per la densità del fluido---------------------------------- data d/1000/!densità dell'acqua, kgm^-3 c-----parametri per la pressione atmosferica sul livello del mare---------- data p0/1.01d5/!pressione atmosferica, Pa open(23,file="stev.dat") ind=0 h1=0.d0 !m h2=3.5d3 !m 50 n=n+1 do 87 h=h1,h2,(h2-h1)/100.d0 p=p0+d*g*h if (h.lt.0) then print*, 'la profondità deve essere positiva' endif if (h.gt.0) then print*, 'la pressione è =', p0+d*g*h, 'Pa' print*,'il numero di volte che il ciclo è eseguito è', n stop endif write(23,*) real(h/1.d3), real(p) !risultato in Pa 87 continue goto 50 stop end
______________________________________________________________
diciamo che il caso è lo stesso di quello detto prima cioè
compile e build senza errori, ma in execute program esce solo un valore di p.
vorrei invece ottenere anche qui una tabella con i valori di p alle diverse profondità h che vanno da 0 m a 3500m sotto il liv del mare.
questo è quanto, spero ci sia qualcuno che mi possa aiutare perchè è importante e urgentissimo perchè a breve avrò un esame.
vi ringrazio in anticipo

Risposte
up
Ma che cos'è fortran 6.0? So cos'è fortran, ma le versioni sono numerati con degli anni (come fortran 77 o 90). Immagino sia quindi un programma, ma senza sapere la ditta che lo sviluppa non ho idea di che programmi si tratti.
Usa inoltre il tag code per rendere più leggibile il tuo codice.
Per quanto riguarda il tuo primo problema, dovresti memorizzare i coefficienti in un qualche vettore e poi fare un ciclo in cui calcoli i valori per un particolare materiale e lo stampi.
Usa inoltre il tag code per rendere più leggibile il tuo codice.
Per quanto riguarda il tuo primo problema, dovresti memorizzare i coefficienti in un qualche vettore e poi fare un ciclo in cui calcoli i valori per un particolare materiale e lo stampi.
salve, non ho più bisogno di aiuto, ho risolto con questi problemi!
grazie lo stesso
grazie lo stesso
