Sunteți pe pagina 1din 14

UNIVERSIDAD DE LAS FUERZAS ARMADAS (ESPE)

PROGRMACION

NOMBRES: MELANIE VIRACOCHA

JEFFERSON CAJAS

TEMA: MENU DE OPCIONES

OBJETIVOS:

OBJETIVO GENERAL:

- Desarrollar un men con sus debidas opciones con la utilizacin de punteros en el cual se
podr realizar bsqueda, insercin, eliminacin y la impresin de los valores que ingrese el
usuario

OBJETIVO ESPECIFICO:

- Comprender la utilizacin de los punteros en un programa bsico


- Tratar de utilizar de mejor manera los punteros para dar solucin eficaz en este
programa.

RESUMEN

Un puntero es un objeto del lenguaje de programacin, cuyo valor se refiere a (o "apunta a")
otro valor almacenado en otra parte de la memoria del ordenador utilizando su direccin. Un
puntero referencia a una ubicacin en memoria, y a la obtencin del valor almacenado en esa
ubicacin se la conoce como des referenciacin del puntero.

Los punteros a datos mejoran significativamente el rendimiento de las operaciones repetitivas


tales como cadenas de desplazamiento, tablas de bsqueda, tablas de control y estructuras
rbol.

En un men es muy importante la utilizacin de punteros porque es una manera ms factible


de ingreso de nmeros , bsqueda y eliminacin dentro del arreglo con punteros, esto nos
permite tener menos lnea de cdigo.

DESARROLLO DEL PROGRAMA

#include <stdio.h>

#include <stdlib.h>

#define dim 5
void insertar(int *p, int cont)

p+=cont;

do{

printf("Ingrese un valor en la posicion [%d]:\n ",cont+1);

scanf("%d",p);

printf("Espacios restantes: %d\n",dim-(cont+1));

}while(*p<0);

int buscar(int *p,int c)

int num, cont=0;

printf("Ingrese el numero que desea buscar ");

scanf("%d",&num);

for(int i=0;i<c;i++)

if(*p==num)

cont++;

p++;

}
if(cont!=0)

return num;

else

return -99;

void eliminar(int *p,int c)

int num;

//cont=0;

char letra, cont1=1;

num=buscar(p,c);

if(num!=-99)

printf("El numero %d se encuentra en el arreglo\n",num);

printf("Esta seguro que desea eliminar un numero?\n");

fflush(stdin);

printf("Presione S o N\n");

scanf("%c",&letra);

switch(letra)

case 'S':

for(int i=0;i<c;i++)
{

if((*p)==num&&cont1==1)

*p=-99;

cont1++;

else if ((*p)==num&&cont1!=1)

p++;

printf("El numero %d se ha eliminado con exito en el arreglo\n",num);

printf("Espacios restantes: %d\n",c-1);

break;

case 'N':

printf("Opcion Eliminar cancelada\n");

break;

default:

printf("Opcion incorrecta,Presione S o N\n");

}
}

else

printf("El numero no forma parte del arreglo\n");

void modificar(int *p,int c)

int num, cont1=1;

char letra;

num=buscar(p,c);

if(num!=-100)

printf("El numero %d se encuentra en el arreglo\n",num);

printf("Esta seguro que desea modificar un numero?\n");

fflush(stdin);

printf("Presione S o N\n");

scanf("%c",&letra);

switch(letra)

case 'S':

for(int i=0;i<c;i++)

if((*p)==num&&cont1==1)

do{
printf("Ingrese el numero que desea ingresar: ");

scanf("%d",p);

}while(*p<0);

cont1++;

else if ((*p)==num&&cont1!=1)

p++;

printf("El numero %d se ha modificado con exito en el arreglo\n",num);

break;

case 'N':

printf("Opcion Modificar cancelada\n");

break;

default:

printf("Opcion incorrecta,Presione S o N\n");

else

printf("El numero no se encuentra en el arreglo\n");

void imprimir(int *p, int x)

{
if (x>0)

for(int i=0;i<x;i++)

printf("%d ",*p);

p++;

else

printf("No existen datos para imprimir\n");

void menu()

int A[dim],*p,*q, opcion,cont=0,a;

p=A;

q=&cont;

do{
printf("\t\tMENU PRINCIPAL\n");

printf("1.- Insertar\n");

printf("2.- Buscar\n");

printf("3.- Eliminar\n");

printf("4.- Modificar\n");

printf("5.- Imprimir\n");

printf("6.- Salir\n");

printf("Seleccione una opcion: ");

scanf("%d",&opcion);

switch(opcion)

case 1: printf("\tInsertar\n");

if(cont<dim)

insertar(p,cont);

cont++;

else

printf("Arreglo completo,opcion Insertar desactivada\n");

break;

case 2: printf("\tBuscar\n");

if((*q)>0)
{

a=buscar(p,cont);

if(a!=-99)

printf("El numero %d existe en el arreglo\n",a);

else

printf("El numero no existe en el arreglo\n");

else

printf("No existen datos en el arreglo para buscar\n");

break;

case 3: printf("\tEliminar\n");

if(cont>0)

eliminar(p,cont);

else

printf("No existen datos en el arreglo para eliminar\n");

break;

case 4: printf("\tModificar\n");

if(cont>0)

modificar(p,cont);

else

printf("No existen datos en el arreglo para eliminar\n");

break;
case 5: printf("\tImprimir\n");

imprimir(p,cont);

break;

case 6: printf("Saliendo\n");

break;

default: printf("Ingrese una opcion que forme parte del menu\n");

printf("\n");

system("pause");

system("cls");

}while(opcion!=6);

int main()

menu();

return 0;

}
ANEXOS DEL DESARROLO
CONCLUSIONES

- Es necesario revisar varias veces toda la lista hasta que no se necesiten ms intercambios,
lo cual significa que la lista est ordenada.
- Este mtodo permite al usuario una mejor un eficaz ordenamiento de los nmeros que
ingreso para ordenar

RECOMENDACIONES

- Hay que tener en cuenta la designacin a cada variable que se va declarar.


- los vectores y las matrices presentan un "inconveniente" con el tamao. Es decir, no es
posible crear de una manera sencilla un vector capaz de almacenar una cantidad de
informacin indefinida, es necesario ingresar con antelacin la cantidad de datos (tamao)
que el vector o la matriz.