Fortran: diferència entre les revisions

Contingut suprimit Contingut afegit
m neteja i estandardització de codi
Mitja -> Mitjana i retocs d'estil del redactat.
Etiqueta: editor de codi 2017
Línia 109:
 
=== Assignació de memòria ===
El següent programa mostra l'ús de l'assignació dinàmica de memòria dinàmicament i operacions basades en vectors, dues noves funcionalitats noves afegides en la versió Fortran 90. En particular, cal remarcar l'absència de llaços <code>DO</code> i dels connectors <code>IF</code>/<code>THEN</code> alhoraa l'hora de manipular els vectors matemàticament com un tot.
 
<syntaxhighlight lang="fortran">
program mitjamitjana
 
! Llegeix uns quants nombres i els hien calcula la seva mitjamitjana.
! Tal i com està escrit, si no hi ha punts d'entrada, la mitjamitjana que retorna és zero.
! Tot i que potser aquest no és unel comportament desitjat, ajuda a mantenir l'exemple senzill.
 
implicit none
Línia 124:
real :: average_points=0., positive_average=0., negative_average=0.
 
write (*,*) "Entreu el nombre de punts dels que desitgeu calcular-ne la mitjamitjana:"
read (*,*) number_of_points
 
allocate (points(number_of_points))
 
write (*,*) "Entreu els punts dels que en voleu calcular la mitjamitjana:"
read (*,*) points
 
! Calculant la mitjamitjana sumant els punts i dividint-los pel nombre total de punts
if (number_of_points > 0) average_points = sum(points) / number_of_points
 
! Ara calcularem la mitjamitjana dels valors positius i negatius per separat
if (count(points > 0.) > 0) then
positive_average = sum(points, points > 0.) / count(points > 0.)
Línia 147:
 
! Mostra el resultat al terminal
write (*,'(a,g12.4)') 'MitjaMitjana = ', average_points
write (*,'(a,g12.4)') 'MitjaMitjana dels valors positius = ', positive_average
write (*,'(a,g12.4)') 'MitjaMitjana dels valors negatius = ', negative_average
 
end program mitjamitjana
</syntaxhighlight>