Funciones
answer = functionname (argumentl, argument2, . . . |
PRINT*, ABS (T) | El compilador evalúa el valor absoluto de T y lo escribe. |
Y = SIN (X) + 45 |
El compilador calcula el valor del seno de x, añade 45 y luego pone el reultado en la variable y. |
M=MAX(a,b,c,d) |
El compilador averigua el valor máximo de entre a,b,c y d y lo asigna a la variable M. |
C=SQRT ( a* * 2 +b* * 2 ) | El compilador evalúa, a**2+b**2, envía el resultado a la función raiz cuadrada y pone el resultado en la variable C. |
- Las funciones y cualquier otro subprograma se coloca después de la instrucción END del programa principal.
- Comienzan con una linea que incluye el tipo de valor de la función que devolverá, el nombre de la función y la lista de argumentos que usará como inputs.
- Todas las variables que usa la función, incluidos los argumentos, deben de ser declarados inmediatamente después de la línea 2. El nombre de la función NO se declara dentro de la función.
- El nombre de la función se utiliza como la variable de asignación del resultado de las operaciones del subprograma. Ese valor será el que el compilador devolverá al programa principal.
- Una función debe de finalizar con un RETURN y un END.
PROGRAM FUNDEM C Declarations for main program REAL A,B,C REAL AV, AVSQ1, AVSQ2 REAL AVRAGE C Enter the data DATA A,B,C/5.0,2.0,3.0/ C Calculate the average of the numbers AV = AVRAGE(A,B,C) AVSQ1 = AVRAGE(A,B,C) **2 AVSQ2 = AVRAGE(A**2,B**2,C**2) PRINT *,'Statistical Analysis' PRINT *,'The average of the numbers is:',AV PRINT *,'The average squared of the numbers: ',AVSQl PRINT *,'The average of the squares is: ', AVSQ2 END REAL FUNCTION AVRAGE(X,Y,Z) REAL X,Y,Z,SUM SUM = X + Y + Z AVRAGE = SUM /3.0 RETURN END |
PROGRAM SUBDEM REAL A,B,C,SUM,SUMSQ CALL INPUT(A,B,C) CALL CALC(A,B,C,SUM,SUMSQ) CALL OUTPUT(SUM,SUMSQ) END SUBROUTINE INPUT(X, Y, Z) REAL X,Y,Z PRINT *,'ENTER THREE NUMBERS => ' READ *,X,Y,Z RETURN END SUBROUTINE CALC(A,B,C, SUM,SUMSQ) REAL A,B,C,SUM,SUMSQ SUM = A + B + C SUMSQ = SUM **2 RETURN END SUBROUTINE OUTPUT(SUM,SUMSQ) REAL SUM, SUMSQ PRINT *,'The sum of the numbers you entered are: ',SUM PRINT *,'And the square of the sum is:',SUMSQ RETURN END |
Ahora ir a los ejercicios y realizarlos.
| Programas | Variables | Operaciones Aritmeticas | Input y Output | Bucles en Programas | Vectores en Programas | Decisiones | Subprogramas y funciones | |