Iniciarse en el manejo del entorno de programación del Borland C++ Builder.
Aprender a crear un proyecto, compilarlo y depurar los errores dentro del
entorno.
Practicar el uso de algunos elementos avanzados del C++ tales como: la sobrecarga de
funciones, los parámetros por defecto y el paso de parámetros por referencia en
la creación de programas sencillos.
Desarrollo de la práctica.
Parte 1. Crear un proyecto, compilarlo, depurar los errores y ejecutarlo.
1. Crear un nuevo proyecto con el Borland C++ Builder.
En esta primera práctica crearemos un proyecto del tipo 'Console Application' (seleccionando los items "File->New->Other->ConsoleWizard" del menú). Esto creará el proyecto con un fichero incluido (llamado Unit1.cpp). Antes de nada salvaremos el fichero con el nombre 'prac1.cpp' (seleccionando las opciones "File->Save" del menú) en el directorio "C:\tmp\HP".
2. Editar el fichero principal.
Al principio del fichero pondremos una breve descripción de este:
/**********************************************************
Práctica 1: Herramientas de programación.
Autores: ...........
***********************************************************/
A continuación incluiremos los ficheros de cabecera necesarios:
#include <iostream>
Este fichero de cabecera nos permitirá utilizar la función "cin" para realizar entradas de valores desde el teclado, y la función "cout" para escribir datos en pantalla.
El siguiente paso será añadir código dentro de la función principal (main). Por ejemplo:
int main(int argc, char* argv[])
{
int num;
cout << "Introduce un numero entero: ";
cin >> num;
cout << "La tabla de multiplicar del " << num << " es: " << endl;
int resul
int i;
for (i = 0; i < 10; i ++)
{
resul = num * i;
cout << num << " por " << i << " es " << resul << endl;
}
cout << "El numero " << num << " es divisible por ";
int resto;
for (i = "num"; i > = 0; i -- )
{
resto = num % i;
if (resto == 0)
cout << ", " << i;
}
cout << end;
char a;
cout << "Introduce cualquier caracter para terminar ";
cin >> a;return 0;}
3. Compilar y ejecutar el programa.
Desde el menú 'Project/Make' (o pulsando Ctrl+F9) compilamos el programa y comprobamos si en la parte inferior de la ventana ha aparecido algún error de compilación o warning. Una vez subsanados los errores, lanzamos la ejecución del programa (abrimos la carpeta donde ha sido generado el fichero ejecutable y pinchamos sobre el fichero). También se puede lanzar la ejecución desde el entorno del Borland C++, seleccionando la opción "Run->Run" del menú o pulsando simplemente la tecla "F9".
4. Depurar errores durante la ejecución.
Podemos detener la ejecución del programa en cualquier línea añadiendo puntos de ruptura (pinchando a la izquierda de la línea). Una vez detenido el programa en ese punto, podemos visualizar los valores de las variables que nos interese dentro de la ventana de Watch (para abrir la ventana de Watch seleccionamos la opción "View->Debug Windows->Watches" y para añadir una variable a la lista de Watch pulsamos el botón derecho del ratón sobre la ventana de Watch y seleccionamos la opción "Add Watch"). La ejecución del programa se puede continuar a partir de ese punto, paso a paso, pulsando las teclas "F7" y "F8", o de forma automática pulsando de nuevo "F9".
Si se produce un error durante la ejecución normal del programa, el entorno señala el punto donde se ha producido el error.
Parte 2. Sobrecarga de funciones y división en módulos.
Definid un conjunto de funciones con idénticos nombres, de tipo void (no devuelven ningún valor a través del return) y de un sólo parámetro. El parámetro es de un tipo distinto para cada una de las funciones (char, int, float, char *, etc.). En el cuerpo de las funciones se escribe un mensaje por pantalla haciendo referencia al tipo del parámetro.
Para verificar el correcto diseño de las funciones, dentro del main se realizarán distintas llamadas a esas funciones pasándole como parámetros valores de diferentes tipos.
Para tener el programa mejor organizado, distribuiremos los prototipos y la definición de las funciones entre los siguientes ficheros:
main.cpp -> fichero principal, que incluirá la función main.
funciones.h ->fichero de cabecera donde se incluirán los prototipos de las funciones.
funciones.cpp->fichero en el que definimos el contenido de las funciones.
Parte 3. Parámetros por defecto.
Definid una única función que calcule (y devuelva a través del return) la suma de las longitudes de los lados de un hiper-prisma rectangular de una, dos, tres o cuatro dimensiones. La función recibirá como parámetros la longitud de los lados principales del hiper-prisma rectangular, cuyo número dependerá del número de dimensiones del hiper-prisma: si usamos la función para calcular la suma de los lados de un hiper-prisma de una dimensión (un segmento de línea), la función será llamada con un sólo argumento; si la usamos para calcular la suma de los lados de un hiper-prisma de 2 dimensiones (un rectángulo), la función es llamada con dos argumentos; si es utilizada para un hiper-prisma de 3D (prisma rectangular) se invoca con tres valores, y si se utiliza para un hiper-prisma de 4D se llama a la función pasándole 4 valores.
Una vez construida la función, será utilizada dentro del main para calcular la suma de los lados de figuras de distintas dimensiones.
Nota: La suma de los lados de un hiper-prisma de 4D, de lados principales L1, L2, L3 y L4, es: 8 * L1 + 8 * L2 + 8 * L3 + 8 * L4.
Parte 4. Paso por referencia con y sin punteros.
Definid dos funciones (con idénticos nombres) para intercambiar los valores de dos variables utilizadas como argumentos en la llamada. La primera función intercambia los valores definiendo sus parámetros por referencia (&), y la segunda definiendo sus parámetros como punteros (*).
Dentro de la función principal se invocará a las dos funciones para intercambiar los valores de dos pares de variables.