2.1 definicion de un subprograma
un subprograma se presenta como un algoritmo separado del algoritmo principal, el cual permite resolver una tarea específica.
Un subprograma hace el papel de un programa. Puede tener una sección de
declaraciones (variables, constantes, etc…) y posee también unos datos de entrada y de
salida. Esto permite, como ya veremos, que el subprograma sea totalmente
independiente del programa principal.
2.1.1 Estructura de un subprograma
la estructura de un subprograma es La función puede ser llamada desde el programa principal o desde cualquier otro subprograma. Para llamar a la función desde cualquier parte, implica el conocimiento previo de que ésta función existe.
A través de los parámetros reales de la llamada se proporciona a la función la información que necesita, para ello, al hacer la llamada lo que se produce es una asociación automática entre parámetros reales y parámetros formales. Esta asociación se realiza según el orden de la aparición y de izquierda y derecha.
Si el parámetro formal y real no son del mismo tipo, en Pascal se produce un error, y en C se transforman los tipos si es posible. La llamada a una función, siempre va a formar parte de una expresión, de cualquier expresión en la que en el punto en la que se llama a la función, pudiera ir colocado cualquier valor del tipo de datos que devuelve la función, esto se debe a que el valor que devuelve una función esta asociado a su nombre.
2.1.2 Valor de Retorno
El valor de retorno no se imprime por la pantalla, es decir, cuando un programa termina no saca por pantalla un cero, pero nosotros podemos saber cuál es ese valor.
Es un número. El valor es cero (0) si el programa finalizó con éxito o distinto de cero si el programa no finalizó con éxito. Cada uno de los valores distintos de cero va asociado a una causa distinta (sabiendo este valor podríamos saber por qué razón falló el programa), pero puede que por ahora no lo necesites.
2.2. declaracion subprograma
En determinadas circunstancias (p.e. cuando un subprograma se proporciona para ser usado desde un paquete, cuando se define un subprograma genérico o cuando hay referencias mutuas entre subprogramas) se precisa escribir una declaración de un subprograma separada de su definición. La declaración de un subprograma es como su cabecera, pero terminada en ";" en vez de con la palabra "is", para expresar que lo que se está dando es una vista de un subprograma cuya definición se haya en otro lugar.
2.3 Bibliotecas o librerias subprogramas
Bibliotecas de Subprogramas
math.h
stdio.h
iostream.h
Funciones
sin:
Función: Calcula el seno del valor, proporcionado. .
Arch. match.h
Declaración: double sen (double x);
Tipo de Dato que devuelve: Valor del seno de entrada.
Argumento: double x es el valor al que se le hará el cálculo.
Ejemplos:
result= sin (0.6);
result= sin (0.4);
result= sin (0.2);
iostream.h
Declara en el C++ básico los datos de (I/O).
Funciones
Cin : Declara los datos de entrada para alas variables
Cout : Muestra los datos que uno desea que se vean en la pantalla.
2.4 primer acercamiento clases y objetos
CLASE
Una clase es un tipo de dato que contiene uno o más elementos dato llamados miembros dato, y cero, una o más funciones que manipulan esos datos (llamadas funciones miembro). Una clase se puede definir con struct, union o class. La sintaxis de una clase es:
class nombre_clase
{
miembro1;
miembro2;
...
funcion_miembro1();
funcion_miembro2();
...
};
OBJETO
un objeto es un elemento declarado de un tipo clase. Se conoce también como una instancia de una clase.
Los objetos se pueden tratar como cualquier variable C. La principal diferencia es que se puede llamar a cualquiera de las funciones que pertenecen a un objeto, esto es, se puede enviar un mensaje a ella.
class rectangulo
{
int base,altura;
public:
void dimensiones(int,int);
int area();
};
void rectangulo::dimensiones(int b,int h)
{
base=b;
altura=h;
}
int rectangulo::area()
{
return base*altura;
}
void main()
{rectangulo r; //declarar el objeto
r.dimensiones(3,5); //definir el tamaño
cout<<"area "<
2.5 Ambito y tiempo de vida de variables
tipos de variables:globales y locales.
Globales: las variables permanecen activas durante todo el programa. Se crean al iniciarse éste y se destruyen de la memoria al finalizar. Pueden ser utilizadas en cualquier función.
Locales: las variables son creadas cuando el programa llega a la función en la que están definidas. Al finalizar la función desaparecen de la memoria.
Si dos variables, una global y una local, tienen el mismo nombre, la local prevalecerá sobre la global dentro de la función en que ha sido declarada.
Dos variables locales pueden tener el mismo nombre siempre que estén declaradas en funciones diferentes.
2.6 Argumentos y paso de parametros
Las palabras parámetro y argumento, aunque de significado similar, tiene distintas connotaciones semánticas: Se denominan parámetros los tipos declarados en el prototipo 4.4.1 (que deben corresponder con los declarados en la definición 4.4.2). Cuando se realiza una llamada a la función, los “valores” pasados se denominan argumentos. A veces se utilizan también las expresiones argumentos formales, para los parámetros y argumentos actuales para los valores pasados.
Parámetros (en prototipo o definición) argumentos formales
Valores pasados (en tiempo de ejecución) argumentos actuales
La sintaxis utilizada para la declaración de la lista de parámetros formales es similar a la utilizada en la declaración de cualquier identificador.
Los argumentos son siempre objetos. Sus tipos pueden ser: escalares; estructuras; uniones, o enumeraciones; clases definidas por el usuario; punteros o referencias a estructuras y uniones, o punteros a funciones, a clases o a matrices. El tipo void está permitido como único parámetro formal. Significa que la función no recibe ningún argumento
2.7 sobrecarga de subprogramas
Es una conveniencia notacional, que es evidente cuando se usan nombres convencionales, como en siguiente ejemplo
Sobrecarga de Funciones en C++ y Java double abs(double); int abs(int); abs(1);
// invoca int abs(int); abs(1.0); // invoca double abs(double); // se sobrecargará print void print(int); void print (char*);
2.8 recursividad programacion
La recursividad se presenta cuando una función se invoca a si misma. Distintamente
a las iteraciones (bucles), las funciones recursivas consumen muchos recursos de
memoria y tiempo.
Una función recursiva se programa simplemente para resolver los casos más
sencillos, cuando se llama a una función con un caso más complicado, se divide el
problema en dos partes, la parte que se resuelve inmediatamente y la que necesita
de más pasos, ésta última se manda de nuevo a la función, que a su ves la divide de
nuevo, y así sucesivamente hasta que se llegue al caso base. Cuando se llega al
final de la serie de llamadas, va recorriendo el camino de regreso, hasta que por fin,
presenta el resultado.
No hay comentarios:
Publicar un comentario