Subprogramas
Un subprograma es un conjunto de instrucciones precisas, específicas y detalladas, escritas en un lenguaje particular, necesarias y suficientes para la solución de un problema, que por sí solas no constituyen un programa.
Se reconocen tres tipos de subprogramas:
aquellos que pueden ser definidos en una sóla oración y producen un sólo valor
aquellos que necesitan más de una oración para su definición y producen un sólo valor
aquellos que producen varios valores ó ninguno
constan de dos partes: prototipo y definición
comienzan indicando el tipo de valor que producen: int, short int, long int, unsigned int, float, double, long double, char ó void
continuan con el nombre de la función
por último, entre paréntesis, los parámetros formales y sus tipos
terminan con la oración return antes del último cierra-corchete: }
Se colocan entre las directrices al compilador y el comienzo del programa. Entre paréntesis sólo se indica el tipo de cada parámetro formal. Termina con el signo de punto y coma: ;. Si el parámetro formal es un apuntador (localización) debe ir seguido de un asterísco: *.
Ejemplos:
#include<math.h>
int Ejemplo1( int, float );
void Ejemplo2( float*, char );
int main( void )
{
Se colocan al final del programa. Entre paréntesis se indica el tipo de cada parámetro formal y su nombre. No termina con el signo de punto y coma: ;. Si el parámetro formal es un apuntador (localización) debe ir precedido de un asterísco: *. Su composición es similar a la de un programa; tiene principio, documentación, declaraciones, oraciones y final. En la oración return se indica el valor producido por la función, si alguno.
Ejemplo:
return 0;
}
int Ejemplo1( int N, float X )
{
/* Propósito : parte entera de XN */
/* Autor: Prof. Cabassa */
int J;
J = pow( X, N );
return J;
}
Se utilizan de igual forma y manera que las funciones predefinidas, teniendo en cuenta que exista correspondencia, tanto en cantidad como en tipo, entre los argumentos y los parámetros formales. Si el parámetro formal es un apuntador debe de ir precedido por el símbolo &. Si la función no produce valor no puede asociarse con operador alguno.
Es utilizado para definir funciones que puedan ser definidas en una sola oración.
tipo nombre( parámetros ) { return expresión; }El tipo de valor se refiere al tipo de valor devuelto por la función.
EL nombre de la función se construye iqual a los nombres de las variables.
Los parámetros formales son nombres de variables representativas de los valores necesarios para evaluar la función. Corresponden al concepto algebráico de variable independiente. Deben ir precedidos de su tipo.
La expresión que define la función.
Una vez definida, la función es utilizada de igual forma y manera que las funciones predefinidas, teniendo en cuenta que exista correspondencia, tanto en cantidad como en tipo, entre los argumentos y los parámetros formales.
Ejemplo:
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
double Cubo( double );
int main( void )
{
/* Propósito : Elevar valor al cubo */
/* Autor: Prof. Cabassa */
double X, Y;
printf("X Y\n");
for ( X = 0.0; X <= 100.0; X += 5.0 )
{
Y = Cubo( X );
printf("%lf %lf\n", X, Y );
}
return 0;
}
double Cubo( double A ) { return A * A * A; }
Subprograma tipo "Función"
Descripción :
tipo de valor nombre de la función( parámetros formales)El tipo de valor se refiere al tipo de valor devuelto por la función.
El nombre de la función se construye iqual a los nombres de las variables.
Los parámetros formales son nombres de variables representativas de los valores necesarios para evaluar la función. Corresponden al concepto algebraico de variable independiente. Deben ir precedidos de su tipo.
La expresión que define la función.
Una vez definida la función es utilizada de igual forma y manera que las funciones predefinidas, teniendo en cuenta que exista correspondencia, tanto en cantidad como en tipo, entre los argumentos y los parámetros formales.
Ejemplo:
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
double Coseno( double );
int main( void )
{
/* Propósito : Cosenos de X */
/* Autor: Prof. Cabassa */
double X, Y;
printf("Entre el primer ángulo\n");
for ( scanf("%lf",&X); !(X == 55555.0); scanf("%lf",&X) )
{
Y = Coseno( X );
printf("Cos %lf = %lf\n", X, Y );
printf("Entre el próximo ángulo\n");
}
return 0;
}
double Coseno( double X_en_grados )
{
/* Propósito : Coseno de X */
/* Autor: Prof. Cabassa */
double X, Suma, N, Var1, Var2;
X = 3.141593 * X_en_grados / 180.0;
Suma = 1.0;
N = 1.0;
Var1 = 1.0;
Var2 = - pow( X, 2 ) / ( 2.0 * N * ( 2.0 * N - 1.0 ) ) * Var1;
while ( ! ( fabs( Var2 - Var1 ) < 1.0E-5 ) )
{
Suma += Var2;
N ++;
Var1 = Var2;
Var2 = -pow(X,2)/(2.0*N*(2.0*N-1.0))*Var1;
}
return Suma;
}
El nombre de la función se construye igual a los nombres de las variables.
Los parámetros formales son nombres de variables representativas de los valores necesarios para evaluar la funcion ó utilizados para devolver resultados.
Una vez definida, la función es utilizada por medio de la oración de control:
teniendo en cuenta que exista correspondencia, tanto en cantidad como en tipo, entre los argumentos y los parámetros formales.
Ejemplo:
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
void Conversion( double, double, double*, double* );
int main( void )
{
/* Propósito : Coordenadas polares */
/* Autor: Prof. Cabassa */
double R, T, X, Y;
printf("Entre coordenadas polares\n");
scanf("%lf%lf", &R, &T );
Conversion( R, T, &X, &Y );
printf("Coordenadas polares : R = %lf, T = %lf\n", R, T );
printf("Coordenadas rectangulares : X = %lf, Y = %lf\n", X, Y );
return 0;
}
void Conversion( double Radio, double Theta,
double *Xcoord, double *Ycoord )
{
/* Propósito : Convertir polares a rectangulares */
/* Autor: Prof. Cabassa */
*Xcoord = Radio * cos( Theta );
*Ycoord = Radio * sin( Theta );
return;
}
Última modificación : miércoles 18 de noviembre de 1998
©Derechos Reservados - 1991 - Prof. H. D. A. Cabassa