Vector con menú
Este es un pequeño programa que nos permite acceder a un vector por medio de un menú , se desarrollan las diferentes operaciones básicas de vectores, el paso de parámetros por medio de las funciones , el uso de punteros , la llamada de funciones dentro de funciones y bueno todo lo que se conoce como programación estructurada.
1) Siempre es bueno hacer una glosa de nuestro programa , es una buena práctica de programación.
/*--------------------------------------------------------
-> NOMBRE DEL PROGRAMA : VECTORES CON FUNCIONES
-> DESCRIPCIÒN : clrscr() : limpia la pantalla
getchar(): Espera un enter para avanzar
-> AUTOR : SALAZAR REQUE MIGUEL
-> CODIGO : FISI - 06200036
-> FECHA : 03 - 05 - 07
--------------------------------------------------------*/
2) Importamos las librerías y definimos el tamaño máximo de el vector
- conio.c : Nos permite el uso de las funciones getchar() , gotoxy() y clrscr() .
#include
#include
#include
#include
#include
#include
#include
#include
#define MAX 100
3) Declaramos nuestras funciones, en este caso se ve el paso por parámetros.
void Menu(int *op);
void LeerVector(int X[MAX],int *dim);
void MostrarVector(int X[MAX],int dim);
void CalcularPromedio(int X[MAX], int dim,int *Suma, float *prom);
void SuperanPromedio(int X[MAX], int dim,float prom);
void BuscarDato(int X[MAX],int dim);
void EliminarXPos(int X[MAX],int *dim);
void EliminarXValor(int X[MAX], int *dim);
void OrdenaVector(int X[MAX],int dim);
void InsertaVector(int X[MAX], int *dim);
void raya();
4) Creamos nuestra función principal, en la cual creamos nuestro menú :
int main()
{
int A[MAX],B[MAX],N,op,Sum,opc1;
char opcion;
float prom;
do{
Menu(&op);
switch(op)
{
case 1 : LeerVector(A,&N);
printf("\n\n\t-->Presione[ENTER]para regresar al men%c\n",163);
getchar();getchar();break;
case 2 : MostrarVector(A,N);
printf("\n\n\t-->Presione[ENTER]para regresar al men%c\n",163);
getchar();getchar();break;
case 3 : CalcularPromedio(A,N,&Sum,&prom);
cout<Presione[ENTER]para regresar al men%c\n",163);
getchar();getchar();break;
case 5 : printf("\n\n\n");
printf("\t%cEl Vector ordenado es :\n\n\n",175);
OrdenaVector(A,N);
getchar();getchar();break;
case 6 : do{
do{
clrscr();
printf("\n\n\n");
printf("\t Menu de eliminar elementos :\n");
printf("\t ==== == ======== ========= =\n\n");
printf("\t[1] Eliminar por posicion\n\n");
printf("\t[2] Eliminar por Valor\n\n");
printf("\t[3] Regresar al menu\n");
printf("\n\n\t-->Que desea hacer ? :");
scanf("%d",&opc1);
}while(opc1<1opc1>3);
switch(opc1)
{
case 1 : EliminarXPos(A,&N);getchar();getchar();break;
case 2 : EliminarXValor(A,&N);getchar();getchar();break;
}
}while(opc1!=3);
getchar();break;
case 7 : InsertaVector(A,&N);
getchar();getchar();break;
}
}while(op!=8);
printf("\n\n\t-->");
system("PAUSE");
return 0;
}
5) La función LeerVector() , lo que hace es recibir un vector de tipo entero y un puntero de dimensión . En este caso se mezcla el uso de las funciones “printf” y “cout” que hacen lo mismo (en la actualidad el último compilador de devc++ solo usa el cin y el cout como funciones de lectura y escritura).
- En el primer bucle do{…}while() lo que se hace es solicitar al usuario un tamaño para el vector , con las restricciones que ese valor debe ser mayor que “0” y menor que el tamaño máximo del vector .
- El buclo for (…) lo que hace es llenar el vector : el scanf(…) lee el dato ingresado por el teclado y lo guarda en el A[i] ; el gotoxy coloca el cursor en las posiciones (x,y) : en este caso el valor x es constante mientras que el valor y varia de acuerdo a i .
3) Desarrollamos nuestra función mostrarVector(), a la cual se le pasa como parámetros el vector y la dimensión antes eidas con la función LeerVector(). La función raya() es solo una función desarrollada en la parte inferior y solo sirve para dar un formato a la salida.
4) La función calcular promedio recibe como parámetros al vector de enteros , la dimensión y los punteros de suma y promedio , los cuales se actualizan en las últimas líneas.
5) Lo más importante de esta función es ver el uso de parámetros , el valor prom calculado con la función anterior es pasado como un valor real a esta función.
6) La función buscar dato , comparar un dato ingresado por el usuario con los elementos de la función , en el for si se encuentra el dato se guarda la posición en donde esta el dato. Para hacerlo mas elegante se puede cambiar la bandera j por un valor booleano que se inicialice en false y cuando encuentre el dato lo vuelva true, y en este caso ya no necesitaríamos el for sino sería mas conveniente usar la estructura while().
7) La función ordenar vector lo que hace es implementar el método de burbuja (que no es el más eficiente) pero sirve para el ejemplo. (obs : en primer for lo que hace es copiar todo mi vector a un vector temporal , ya que si uso el vector X lo que va a pasar es que cuando salga de mi función el vector va a estar ordenado y lo que se pretende es que solamente se ordene cuando entre en esta función)
8) Hay dos formas de implementar la función eliminar : eliminar por posición y eliminar un valor dado del vector.
- El eliminar por posición , lo primero que hace es solicitar una posición válida al usuario ; luego copia el valor de la posición i+1 en la posición i , para luego actualziar el valor de la dimensión.
Esta función hace lo mismo que la función anterior a diferencia que primero busca el valor y luego hace los movimientos.
9) La función insertar vector lo que hace es mandar al vector de enteros y al puntero a la dimensión , a estas alturas se observará que cada vez que quiero actualizar la dimensión del vector se ingresa como un puntero mientras que cada vez que quiero usar ese valor se ingresa como un valor normal . Es también necesario observar que mientras en la función se ingresa como *dim en la declaración de funciones se ingresa como &dim.
10) Y por último desarrollamos nuestro menú.
Bueno eso es todo por el momento , he tratado de explicar función por función lo que se hace , si deseas obtener el código solo haz clic en descargar.
Descargar
5 Comentarios:
Oye de veras que es muy bueno dado que tengoque implementar uno parecido en java..pero esto me ayudara a ir cogiendole la idea al asunto y ver como me sale...te estare contactando si algo..bye
gonorreas arreglen el link
Hola , el link ya fue reparado . Gracias :)
ESte tutorial es interesante perome gustaria ver tutoriales basicos de c++, pero con el System.ou......, ya que lo necesitare para crear algunos proyectos, espero que no te pida demasiado.
De antemano Gracias
juanfelipereina@hotmail.com
Buenas necesito ayuda!!! debo hacer un codigo en java que tenga lo siguiente:
un menu de opciones en el que la primera opcion sea llenar un vector con 15 datos que ingresa el usuario.
la segunda opcion es imprimir los datos por pantalla.
la tercera opcion es imprimir por pantalla el promedio de los datos.
y la cuarta es imprimir por pantalla la desviacion estandar,
GRACIAS SI ME PUEDEN AYUDAR LO AGRADECERIA MUCHO!!!!
Publicar un comentario
Ingresa tu comentario .... con el siguiente formato EMAIL - COMENTARIO para poder responderte :