Está en la página 1de 4

Laboratorio 6: Arrays Unidimensionales en C++.

En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en muchas situaciones se precisa procesar una coleccin de valores que estn relacionados entre s, como por ejemplo una lista de calificaciones, una tabla de temperaturas, etc. El procesamiento de tales conjuntos de datos utilizando tipos simples puede ser extremadamente complejo y tedioso, y por ello la mayora de los lenguajes de programacin incluyen mecanismos sintcticos para manipular agrupaciones de datos, son las llamadas estructuras de datos. La estructura de datos ms bsica soportada por los lenguajes es el array. Un array se puede visualizar como una coleccin de cajas que representan variables de un mismo tipo de datos, tal y como se ilustra en la figura 6.1. A este tipo de array se le suele denominar array unidimensional o vector.

Para hacer referencia a una caja o componente en particular, usaremos el nombre o identificador del array seguido por un nmero (ndice) entre corchetes, que indicar su posicin dentro del array. Realmente lo que va entre corchetes al referirse a la posicin de un componente de un array, puede ser cualquier expresin que al evaluarse d como resultado un valor numrico entero positivo. Un rasgo importante de los arrays en C++ es que el tipo ndice es siempre un subrango de naturales empezando por 0, por lo que a la hora de definir un array solo ser necesario indicar su dimensin. As definimos una variable de un tipo array como:

Donde tipo es el tipo base de los componentes del array y "dimensin" es un nmero natural mayor de cero que representa la longitud o dimensin del array. Ejemplos: int vector [10]; // Array de 10 enteros bool logicos [50]; // Un array de 50 lgicos Aunque lo ms adecuado, tal como se ha comentado en el programa de ejemplo del apartado anterior, es usar constantes globales para definir la dimensin de los arrays. const int MAXVECTOR = 10; const int MAXLOGICOS = 50; int vector [MAXVECTOR]; // Array de 10 enteros bool logicos [MAXLOGICOS]; // Array de 50 lgicos Aunque como hemos visto se pueden definir variables de array al mismo tiempo que se define su tipo base y su dimensin (definicin implcita de tipos array), lo correcto es definir

separadamente los tipos de datos, asignndoles un nombre, y posteriormente declarar las variables como pertenecientes a los tipos anteriormente definidos. C++ incorpora un mecanismo para definir nuevos tipos de datos, la sentencia typedef. Sintaxis:

Ejemplo: Declarar variables de tipo TContador: typedef unsigned int Tcontador; Tcontador i, j; El objetivo fundamental de esta sentencia es mejorar la claridad del cdigo fuente asociando nombres simblicos a tipos de datos definidos por el programador. Segn esto, en el caso de definicin de tipos array la sintaxis concreta sera entonces:

Ejemplos: const unsigned int MAXVECTOR = 4; const unsigned int MAXLISTA = 7; typedef int Tvector [MAXVECTOR]; typedef unsigned int Tlista [MAXLISTA]; Posteriormente se pueden definir variables de estos tipos: Tvector v; Tlista mi_lista; Nota: Slo se puede definir un nico tipo en cada sentencia typedef.

ENUNCIADO DE LA PRCTICA
Un polinomio de grado n, p(x) = a0 + a1x + a2x2 + + anxn , podemos representarlo mediante un array de sus coeficientes (a0, a1, a2, , an). Disea un programa C++ que defina el tipo TPolinomio como un array de un tamao mximo de 10 elementos (grado mximo del polinomio) y que presente al usuario las siguientes opciones de men:

Cada operacin deber mostrar el resultado por pantalla, hacer una pausa y volver al men principal. Vase el siguiente ejemplo de Men:
#include <iostream.h> #include <stdlib.h> #include <ctype.h> // Necesario para toupper char Menu(); void Pausa(); void clrscr(); bool ConfirmarSalida(); int main() { bool salir; char OpcionMenu; salir = false; while(!salir) { clrscr(); OpcionMenu = Menu(); switch(OpcionMenu) { case 'A': cout << "Ha seleccionado la Opcion A" << endl; break; case 'B': cout << "Ha seleccionado la Opcin B" << endl; break; case 'C': cout << "Ha seleccionado la Opcion C" << endl; break; case 'X': salir = ConfirmarSalida(); break; } Pausa(); } return 0; } // Zona de implementacin de PROC/FUNC char Menu() { char op; cout << " MENU" << endl; cout << " ====" << endl; cout << "Elaborado Por : Nombre Apellidos" << endl; cout << "E.T.S.I Informatica de Gestion Curso: 1-A " << endl; cout << "Fecha: 16 de Enero de 2.002" << endl << endl << endl; // 3 saltos de lnea cout << "A.- Opcion A" << endl; cout << "B.- Opcion B" << endl; cout << "C.- Opcion B" << endl; cout << "X.- Salir del Programa" << endl; cout << endl << "Opcion: "; cin >> op; op = toupper(op); // Paso op a maysculas while ( (op!='X') && ((op<'A') || (op>'C')) ) { cout << endl << "Opcion Incorrecta ..." << endl << "Opcion: "; cin >> op; op = toupper(op); // Paso op a maysculas } return op; } bool ConfirmarSalida() { char si_no; cout << endl << endl << "Esta seguro de que quiere salir (S/N)?"; cin >> si_no; si_no = toupper(si_no); return (si_no=='S'); } /* Pause y clrscr pueden ser implementadas de forma ms eficiente. Ms adelante, cuando se trate el tema de libreras y compilacin separada, se vern otras soluciones ms elegantes. */ void Pausa() { system("Pause"); } void clrscr() { system("cls"); }

2. Deseamos realizar un programa que haga un estudio estadstico de las edades de un grupo de 20 personas,
cuyas edades estn entre 18 y 65 aos. Para ello, el porgrama deber pedir la edad de cada individuo (asegurndose de que sea una edad correcta) y mostrar un men por pantalla con las siguientes opciones:

Descripccin de las Opciones: Edad Mxima: Mostrar por pantalla la mayor de las edades de la poblacin. Edad Mnima: Mostrar por pantalla la menor de las edades de la poblacin. Media Entera: Mostar por pantalla el valor entero de la media aritmtica. Moda: Muestra por pantalla la moda (valor ms repetido) de las edades. Histograma de Frecuencias Absolutas: Muestra un histograma (grfico de barras) de la frecuencia absoluta (veces que se repiete un valor) de las edades. Salir del Programa: Se pedir confirmacin para abandonar el men y salir del programa.

Referencia
Pastrana Brincones Jos Luis, Elementos de Programacin- 2001