Programmazione in FORTRAN
Sto studiando da poco la programmazione in FORTRAN prevista dal programma di analisi numerica del mio corso di laurea. Non ho alcuna esperienza con FORTRAN, lo scorso anno ho studiato la programmazione di base in C e me la cavavo abbastanza bene, ma ora con questo programma non ci capisco niente! Vi scrivo il testo di un esercizio e il codice sorgente che ho scritto, che però non funziona, mi dice che ci sono 6 errori
(non fate caso a maiuscole e minuscole, nel programma ho scritto tutto in maiuscole). Mi sapete dire dove sbaglio?
Dati due vettori x e y con n componenti, calcolare il prodotto scalare.
Program prodottoscalare
Implicit none
Integer i, n
Real, dimension (n) x, y
Real prodscal
Write (5, *) 'inserire la dimensione n dei due vettori: '
Read (5, *) n
Do i=1, n
Write (5, *) 'inserire la componente ', i, 'del vettore x '
Read (5, *) x(i)
End do
Do i=1, n
Write (5, *) 'inserire la componente ', i, 'del vettore y '
Read (5, *) y(i)
End do
Prodscal=0.
Do i=1, n
Prodscal=prodscal + x(i)*y(i).
End do
Print*, 'Il prodotto scalare dei vettori x e y è: ', prodscal
Stop
End

Dati due vettori x e y con n componenti, calcolare il prodotto scalare.
Program prodottoscalare
Implicit none
Integer i, n
Real, dimension (n) x, y
Real prodscal
Write (5, *) 'inserire la dimensione n dei due vettori: '
Read (5, *) n
Do i=1, n
Write (5, *) 'inserire la componente ', i, 'del vettore x '
Read (5, *) x(i)
End do
Do i=1, n
Write (5, *) 'inserire la componente ', i, 'del vettore y '
Read (5, *) y(i)
End do
Prodscal=0.
Do i=1, n
Prodscal=prodscal + x(i)*y(i).
End do
Print*, 'Il prodotto scalare dei vettori x e y è: ', prodscal
Stop
End
Risposte
la maggior parte degli errori è nella sintassi
Program prodottoscalare
Implicit none
Integer ::i,n
Real, dimension (n):: x, y
Real ::prodscal
Write (5, *) 'inserire la dimensione n dei due vettori: '
Read (5, *) n
Do i=1, n
Write (5, *) 'inserire la componente ', i, 'del vettore x '
Read (5, *) x(i)
End do
Do i=1, n
Write (5, *) 'inserire la componente ', i, 'del vettore y '
Read (5, *) y(i)
End do
Prodscal=0.
Do i=1, n
Prodscal=prodscal + x(i)*y(i)
End do
Print*, 'Il prodotto scalare dei vettori x e y è: ', prodscal
Stop
End program prodottoscalare
rimane comunque un errore dovuto al fatto che bisogna dichiarare un array dinamico
Program prodottoscalare
Implicit none
Integer ::i,n
Real, dimension (n):: x, y
Real ::prodscal
Write (5, *) 'inserire la dimensione n dei due vettori: '
Read (5, *) n
Do i=1, n
Write (5, *) 'inserire la componente ', i, 'del vettore x '
Read (5, *) x(i)
End do
Do i=1, n
Write (5, *) 'inserire la componente ', i, 'del vettore y '
Read (5, *) y(i)
End do
Prodscal=0.
Do i=1, n
Prodscal=prodscal + x(i)*y(i)
End do
Print*, 'Il prodotto scalare dei vettori x e y è: ', prodscal
Stop
End program prodottoscalare
rimane comunque un errore dovuto al fatto che bisogna dichiarare un array dinamico