




2.1.1 Estructura de un subprograma
La estrcutura de un subprograma es muy sencillo:
tipo-resultado nombrefuncion (parámetros)
{
declaraciones;
sentencias;
valor de retorno;
}
Las declaraciones se pueden situar en cualquier parte del programa con la unica condición de preceder a las instrucciones que las utilizan.
2.1.2 Valor de retorno
La sentencia return se utiliza para dos propósitos:
Puede aparecer más de una vez en el cuerpo de la función.
Una funcionn no puede devolver ningun valor. Se indica con la palabra o tipo void :
void max3 (int x, int y)
Con esta palabra se pueden definir funciones sin parámetro:
double decimalescomunes (void)
Que seria lo mismo:
double decimales comunes ()
2.2 Declaración de un programa
La declaración de una función, conocido como prototipo de la función, indica, además del nombre de la función, cuántos parámetros tiene y de qué tipo son, así como el tipo del valor retornado. Su sintaxis es:
tipo-resultado nombrefuncion (parámetros);
Los prototipos de las funciones indican al compilador el nombre y naturaleza de las funciones que utiliza el programa. Se debe declarar un prototipo para cada función de un programa antes de que el programa utilice esa función. C++ permite inicializar los argumentos en las declaraciones.
2.3 Bibliotecas o librería de un suprograma.
Todas las versiones del lenguaje C++ vienen con una biblioteca estándar de funcioes en tiempo de ejecución que proporcioan soporte para operaciones utilizadas con más frecuencia. Estas funciones permiten realizar una operación con sólo una llamada a la función.
Los nombres de los archivos de cabecera etándar mas utilizados son:
En los módulos de programa se pueden icluir lineas #include con los archivos de cabecera.
Algunos de los grupos de funciones de biblioteca más usuales son:
Las rutinas de E/S y las rutinas de memoria, no se suelen utilizar en C++, en su lugar se utilizan flujos (cin y cout) y operadores (new, delete).
2.4 Primer acercamiento a clases y objetos.
Una clase define un tipo de dato, como un struc estaría en C. En un sentido de la informática, un tipo consiste en un sistema de estados y un sistema de las operaciones de transición entre esos estados. Así interno es un tipo porque tiene un sistema de estados y tiene operaciones como i + j ó i++, etc. Exactamente de la misma manera, una clase proporciona un sistema de operaciones (generalmente publica), y un sistema de bits de datos (generalmente públicos) que representan los valores del etracto que los casos del tipo pueden tener.
Un programador de C puede pensar en una clase que tiene funciones del miembro llamadas operator++, etc.
Un objeto es una región del almacenaje con la semántica asociada. Una clase define el comportamiento posible de muchos objetos.
Para almacenar e identificar a los objetos se hace uso de las clases. Las clases son elementos abstractos y genéricos que por si tienen entidad propia.
2.5 Ámbito y tiempo de vida de una variable
Se denomina ámbito de una variable a la parte de un programa donde dicha variable puede ser referenciada por su nombre. Una variable puede ser limitada a un bloque, a un fichero, a una función o a una declaración de una función.
Variables globales y locales
Cuando una variable se declara en un programa fuera de todo el bloque es accesible desde su punto de definición o declaración hasta el final del fichero fuente. Esta variable recibe el nombre de global.
Una variable global existe y tiene valor desde el principio hast el final de la ejecución del programa.
Si la declaración de una variable se hace dentro de un bloque, el acceso queda limitado a ese bloque y a los bloques contenidos dentro de este por debajo de su punto de declaración. Esta variable recibe el nombre de local o automatica.
Una variable local existe y tiene valor desde su punto de declaración hasta el final del bloque donde está definida. Cada vez que se ejecuta el bloque que la contiene, la variable local es nuevamente definida y cuando finaliza la ejecución del mismo, la variable deja de existir.
2.6 Argumentos y paso de parámetros
Un argumento por defecto en C++ es un parámetro que una llamada a la función no es necesario que se proporcione; a veces se conocen como parámetros opcionales. Si se pasaun valor, se utiliza el valor; si no le pasa un valor aun parámetro opcional se utiliza un valor por defecto como argumento.
Ejemplo:
guiones (10,0,30);
guiones(10,0,30,'-');
Los argumentos por defecto se deben indicar al final del conjunto de argumentos.
Cuando se llama una función, el primer argumento en la llamada es pasado al primer parámetro de la función, el segundo argumento al segundo parámetro y así sucesivamente. La función se pasa una copia del valor del argumento. Esto supone que la función invocada trabaje sobre la copia, no pudiendo alterar las variables de donde procede.
un ejemplo claro del paso de parametros lo encontramos en un ejercicio de la unidad 1, el cual consiste en el intercambio de valores al final del programa, el programa en cuestión se encuentra dentro de la carpeta y fuera de el como imagen para poder checarlo, el nombre del programa es INTERCAMB.CPP.
2.7 Sobrecarga de subprogramas
Un subprograma sobrecargará un significado ya existente siempre que su especificación sea suficientemente diferente, es decir, pueden existir dos subprogramas con el mismo identificador siempre que se distingan por el número o tipo de sus parámetros.
La sobrecarga de funciones permit escribir y utilizar multiples funciones con el mismo nombre, pero con diferente lista de argumentos, la lista de argumentos es diferente si tiene un argumento con un tipo de dato distinto, si tiene un número diferente de argumentos o ambos.
Como C++ soporta sobrecarga se podrian definir funciones sobrecargadas que tuvieran el mismo nombre y argumentos diferentes.
Ejemplo:
int cuadrado (int x);
long cuadrado (long x);
double cuadrado (double x);
2.8 Recursividad
Es la propiedad que tienen las funciones en C++ de poder llamarse así mismas. Una función recursiva necesita una condición de salida.
El proceso se utiliza para computaciones repetidas en las que cada acción se determia en función de un resultado anterior.
Se deben cumplir dos condiciones:
Ejemplo:
Para calcular el factorial:
n!=1 x 2 x 3 x....... x n
Lo anterior recursivamente se escribe:
n!=n(n-1)!
Y la condición de fin seria:
1!=1
Referencias:
Un ejemplo seria:
x = a
Aqui es valor de x durante la ejecución del programa sera a, ya que se encuentra ala izquierda del signo.
1.9.2 Selección
Este tipo de estructura se utiliza cuando se van a elegir y seleccionar ciertos datos o valores, para ello existen 2 tipos que son:
if
La construcción de if es:
if (expresión)
{
sentencias
}
Se requiere que la expresion vaya entre parentesis para su evaluacion durante la ejecución, si la expresión se evalua como verdadero las senencias se ejecutan sino pasa al siguiente bloque del programa.
Case
El case se utiliza cuando en el programa se necesitatener varias opciones para dar un resultado final.
La estructura del case es:
case (expresion):
sentencias;
1.9.3 Iteración
Estas estructuras de control o sentencias repetitivas controlan el número de veces que una sentencia o lista de sentencias se ejecutan. los tipos de Iteración son:
While
Ejecuta sentencias simples o compuestas, tiene la caracteristica de que se puede ejecutar una vez o no se ejecuta. La sintaxis es:
while (condición)
sentencia;
Do While
Ejecuta sentencias simples y compuestas una o las veces que sean necesarias para cumplir con la condición de este bucle. Su estructura es:
do
sentencia
while (condicion)
For
Ejecuta sentencias simples o compuestas pero solo se ejecutan as veces que se determinen en el programa. Su estructura es:
for (contador; condición; contadorinic)
{
sentencias
}
Se les denomina fundamentales porque son los mas usuales en el lenguaje de programacion y son facil de usar.
1.6.2 Definidos por el Usuario
Los tipos de datos definidos por el usuario son:
Estos tipos de datos los hace el usuario para que tenga un mejor manejo del programa.
La prioridad para estos operadores son: Primero la división, luego la multiplicación, despues suma y resta.
Operadores Relacionales
Son símbolos que indican una relación entre dos cantidades, las cuales pueden ser constantes, variables o funciones. Los operadores son:
La prioridad de estos operadores va de acuerdo a la lista. La salida de estos operadores son: Verdadero (1) o Falso (0).
Operadores Lógicos
Los operadores lógicos tienen operandos enteros. Los operadores son:
La prioridad para este tipo de operadores es: La prioridad mas alta es de Not, luego And y finalmente Or.
Para declarar una variable se puede hacer en cualquier parte de la estructura de un programa, ya sea entre llaves o fuera de ellas, aunque lo primordial es hacerla al principio del programa. La estructura de una declaracion es:
Tipo Nombre;
Primero se escribe el tipo de variable que deseemos seguido de una espacio y luego el nombre de la variable que queramos.
La anterior estructura de una declaración no asigna el espacio de memoria que deseemos, pero para poder hacerlo debemos declarar la variable con un valor inicial, con lo cual se asigna el espacio de memoria con que la estemos declarando. La estructura es:
Tipo Nombre = Valor;
Para ahorrar lineas de codigo en el programa se pueden declarar varias variables en una solo linea e incluso darles un valor inicial.
Constantes
Una constante es el valor que no se puede modificar durante la ejecución de todo el programa, lo cual indica que tendra el mismo valor en todo el programa. El valor de las constantes se almacenan en la memoria principal del ordenador, es ahi en donde se almacenan los valores fijos.
Para declarar una constante se hace igual que una variable. El formato es:
const Tipo Nombre;
Y para declararlas con valores iniciales es:
const Tipo Nombre = Valor;
Estos son los dos tipos de entidades para declarar un nombre en un programa.