1
« en: Sábado 19 de Junio de 2004, 20:34 »
Aqui puse el codigo de una Pila utilizando caracteres y orientado a objetos, segun lo que he investigado pero no me resulta quisiera saber si me pueden ayudar a pasar bn las cadenas por parametros utilizando punteros. Los enteros si pasan normal pero con las cadenas de caracteres tengo problemas. He buscado e intentado hacerlo peor no me resulta. Su ayuda se les agradeceria.
#include <iostream.h>
#include <conio.h>
void leer(char y);
class Pilas {
public:
int max,cima,valid;
char *ya[20],pila[5];
void asignar (int maxa, int cimaa){
max = maxa;
cima = cimaa;
}
void leer(char *y){
ya = y;
}
void pila_full() {
if (cima == max) {
valid = 1;
}
else
valid = 2;
}
void pila_vacia() {
if (cima == -1) {
valid = 1;
}
else
valid = 2;
}
void push(){
pila_full();
if (valid == 1)
cout<<"Desbordamiento"<<endl;
else {
cima = cima + 1;
pila[cima] = ya;
cout<<"La posicion de la pila es: "<<cima<<", y su valor es: "<<pila[cima]<<endl;
}
}
void pop(){
pila_vacia();
if (valid ==1)
cout<<"Subdesbordamiento"<<endl;
else {
ya = pila[cima];
cima = cima - 1;
if (cima == -1)
cout<<"La posicion de la pila es: "<<cima<<", y existe: Subdesbordamiento"<<endl;
else
cout<<"La posicion de la pila es: "<<cima<<", y su valor es: "<<pila[cima]<<endl;
}
}
void ver_pila(){
int x=30,y=20,conta=0;
gotoxy(30,19);
cout <<"Pila"<<endl;
while (conta<cima+1){
gotoxy(x,y);
cout<<conta<<". "<<pila[conta];
y = y+1;
conta++;
}
getch();
clrscr();
}
};
void main(){
int x,maxa,cimaa;
char y[20];
char resp;
maxa = 4;
cimaa = -1;
Pilas obj;
textbackground(15);
textcolor(0);
obj.asignar(maxa,cimaa);
do {
clrscr();
gotoxy (27,4);
cout<<"OPERACIONES CON PILAS"<<endl;
gotoxy(20,8);
cout<<"1. AGREGAR ELEMENTOS A LA PILA"<<endl;
gotoxy(20,10);
cout<<"2. ELIMINAR ELEMENTOS DE LA PILA"<<endl;
gotoxy(20,12);
cout<<"3. SALIR"<<endl;
gotoxy(23,15);
cout<<"OPCION: ";
gotoxy(32,15);
cin>>x;
if (x == 1) {
cout<<"INTRODUZCA UN NUMERO"<<endl;
cin>>y;
obj.leer(&y);
obj.pila_full();
obj.push();
obj.ver_pila();
}
else if (x == 2){
obj.pila_vacia();
obj.pop();
obj.ver_pila();
}
else if (x==3){
gotoxy(27,17);
cout<<"CUIDESE, QUE TENGA UN BUEN DIA!"<<endl;
getch();
break;
}
else
cout<<"INTRODUZCA UNA OPCION VALIDA"<<endl;
gotoxy(1,12);
cout<<"DESEA REALIZAR OTRA OPERACION CON LA PILA S/N:"<<endl;
gotoxy(49,12);
cin>>resp;
getch();
}while ((resp == 'S') || (resp == 's'));
}