sto provando a realizzare un algoritmo in fortran, il quale mi deve restituire il massimo e il minimo di un vettore A.
Riporto il code sia del programma chiamante, e sia delle singole procedure per determinare il massimo e il minimo del vettore A.
In verità ho provato l'algoritmo, alternando le chiamate, nel senso che, ho escluso in primo momento call massimo e facendo rimanere call minimo cosi facendo ho notato che l'algoritmo funziona, poi facendo il viceversa, ho notato che l'algoritmo continua a funzionare per cui presumo che il problema sia dovuto ad un errore di sintassi o di costrutto, spero che qualcuno mi dia un'indicazione su come procedere.
Algoritmo chiamante
- Codice:
program mainricercamassimominimo
integer:: n
real:: a(100),h(100),c,l
read*, n
call minimo (n,a,c)
call massimo (n,h,l)
print*,c,l
end
procedura min
- Codice:
subroutine minimo (m,b,f)
real:: b(m)
integer:: i,m
do i=1,m
read*, b(i)
num=b(i)
if(num<f) then
f=num
end if
end do
end
procedura man
- Codice:
subroutine massimo (m,b,f)
real:: b(m)
integer:: i,m
do i=1,m
read*, b(i)
num=b(i)
if(num>f) then
f=num
end if
end do
end
Infine mi fa inserire 2n volte i dati, facendo cosi mi da i valori corretti.