
12/12/2009, 12:05
|
| | Fecha de Ingreso: septiembre-2008
Mensajes: 101
Antigüedad: 16 años, 4 meses Puntos: 4 | |
Problema al Copilar Estoy intentando copilar este programa con Dev C++... pero no me funciona.. si alguien me dice como porque no corre.. y si puede copilar el el programa y me dice si funciona se lo agradeceria
Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include<dos.h>
#define MAX 100
#define Valor_Error -9999
typedef int tipo_dato;
typedef int posicion;
typedef int logico;
struct Lista {
tipo_dato elems[MAX];
posicion ultimo;
};
typedef struct Lista lista;
void Inicializa(lista &L);
void Elementos(lista &L);
void Elimina(lista &L);
logico Vacia(lista L);
logico Llena(lista L);
posicion Fin(lista L);
posicion Primero(lista L);
posicion Ultimo(lista L);
logico Inserta(tipo_dato x, posicion p, lista &L);
logico Eliminar(posicion p, lista &L);
posicion Localiza(tipo_dato x, lista L);
tipo_dato RecuperaValor(posicion p, lista L);
int menu();
void main(){
int n, i, posicion,opc, ind;
tipo_dato x;
lista LISTA;
Inicializa(LISTA);
do{
ind=1;
opc=menu();
switch(opc){
case 1:
Elementos(LISTA);
break;
case 2:
Elimina(LISTA);
break;
case 3:
Inicializa(LISTA);
clrscr();
printf("Lista Vacia");
getch();
break;
default: printf("La Opcion No Existe");
getch();
break;
}
}while (ind ==1);
}
int menu(){
int c;
clrscr();
printf("\n\n M E N U ");
printf("\n 1.- Insertar Elementos\n\n");
printf("\n 2.- Eliminar Elementos\n\n");
printf("\n 3.- Borrar Toda la lista\n\n");
printf("\n 6.- Salida\n\n");
printf("\n\n\n\n Elige una opcion ");
scanf("%d",&c);
return(c);
}
void Inicializa(lista &L) {
L.ultimo=-1;
}
logico Vacia(lista L) {
if(L.ultimo==-1)
return(1);
else
return (0);
}
logico Llena(lista L){
if(L.ultimo==MAX-1)
return(1);
else
return(0);
}
posicion Fin(lista L) {
return(L.ultimo+1);
}
posicion Primero(lista L) {
if(Vacia(L))
return(-1);
else
return(0);
}
posicion Ultimo(lista L) {
return(L.ultimo);
}
logico Inserta(tipo_dato x, posicion p, lista &L) {
int i;
if(Llena(L)|| (p<Primero(L) || p>Fin(L)))
return(0);
else
{
for(i=L.ultimo; i>=p; i--)
L.elems[i+1]=L.elems[i];
L.elems[p]=x;
L.ultimo++;
return(1);
}
}
logico Eliminar(posicion p, lista &L) {
int i;
if(Vacia(L)||(p<0||p>Fin(L)))
return (0);
else
for(i=p; i<Ultimo(L); i++)
L.elems[i]=L.elems[i+1];
L.ultimo--;
return(1);
}
posicion Localiza(tipo_dato x, lista L) {
if(Vacia(L))
return(-1);
else
{
int pos=0;
while (pos <=Ultimo(L) && L.elems[pos]!=x)
pos ++;
if(pos >Ultimo(L))
return(-1);
else
return(pos);
}
}
tipo_dato RecuperaValor(posicion p, lista L) {
if(!Vacia(L) && p>= Primero(L) && p<=Ultimo(L))
return(L.elems[p]);
else
return(Valor_Error);
}
void Elementos(lista &L){
int n,i;
tipo_dato x;
clrscr();
printf("¨Cu ntos elementos deseas insertar a la lista?\n");
scanf("%d", &n);
for (i=1; i<=n; i++)
{
printf("\nElemento %d: \n",i);
scanf("%d", &x);
Inserta(x, Fin(L), L);
}
clrscr();
Imprime(L);
getch();
}
void Elimina(lista &L){
tipo_dato x;
posicion posicion;
clrscr();
if (Vacia(L)){
Imprime (L);
getch();}
else{
Imprime(L);
printf("\nPara eliminar un elemento de la lista:\n");
printf("Dime qu‚ elemento deseas eliminar:\n");
scanf("%d", &x);
posicion=Localiza(x, L);
while (posicion!=-1){
Eliminar(posicion, L);
posicion=Localiza(x,L);}
Imprime(L);
getch();
}
}
|