Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Una ayudita con funciones en C++

rgp001

Becerro
Desde
10 Dic 2007
Mensajes
10
Hola amigos Bakunos, estoy requiriendo la ayuda de ustedes para pasar un codigo fuente C a funciones y compilarla por separado, es decir con los encabezado o headers (#include),

Aqui esta el codigo:

#include<stdio.h>
#include<conio.h>
main(){
// clrscr();
int top,apu,tope,tpos,opera;
tpos=top=apu=tope=0;
char Ei[50],Pos[50],Pila[50];
for(top=0;top<50;top++)Ei[top]=Pos[top]=Pila[top]='\0';
printf("\t\t\t\tConversor de Infija a Posfija\n");
printf("\t\t\t\t=============================\n\n");
printf("Dame la Expresion Infija ---> ");
//-----------------------------------------------------------------------------
for(top=0;(Ei[top]=getchar()) != '\n';top++);
do{
if('('==Ei[apu]){
tope++; Pila[tope]=Ei[apu];//Esto significa que (apu) es el apuntador a la Posicion 0 de la pila
}else{ //mientras que (tope) es el ELEMENTO 1 en la posicion 0 de la pila.
if(')'==Ei[apu]){ //En general este bloque de codigo lo que me genera es una matriz
while(Pila[tope]!='('){ // en este orden [1] [0], [1] [1], [2] [1], [2] [2], Etc.
Pos[tpos]=Pila[tope];
tpos++; tope--;
}
Pila[tope]='\0'; //Esto significa que no entra ningun elemento a la pila ya que el Elemento(tope)
tope--; //mantiene la misma posicion anterior mientras que desincrementa la posicion actual
}
else{
if(Ei[apu]!='^' && Ei[apu]!='/' && Ei[apu]!='*' && Ei[apu]!='+' && Ei[apu]!='-'){//Expresiones Regulares
Pos[tpos]=Ei[apu]; //En este bloque lo que hace es incrementarme las posiciones en la Pila
tpos++;
}
else{
opera=1; // Si no se cumple las condiciones de ese bloque if me hace a opera=1
//-------------------------------------------------------------------------------------------------------
switch(Pila[tope]){ //Esta es una estructura anidada para validadar los Operadores Aritmeticos
case'^':if(Ei[apu]=='+'||Ei[apu]=='-'||Ei[apu]=='*'||Ei[apu]=='/'||Ei[apu]=='^')
opera=0;break;
case'/':if(Ei[apu]=='+'||Ei[apu]=='-'||Ei[apu]=='*'||Ei[apu]=='/')
opera=0;break;
case'*':if(Ei[apu]=='+'||Ei[apu]=='-'||Ei[apu]=='*')
opera=0;break;
case'+':if(Ei[apu]=='+'||Ei[apu]=='-')
opera=0;break;
case'-':if(Ei[apu]=='-')
opera=0;break;
}
//----------------------------------------------------------------------------------------------
while(tope>0 && opera==0){ //En este bloque lo que hace es ir incrementando las Posiciones y
Pos[tpos]=Pila[tope]; // descreciendo la cantidad de elementos que ingresan a la pila
tpos++; tope--;
}
tope++;
Pila[tope]=Ei[apu];
}
}
}
apu++; //En este bloquecito hace lo mismo que el bloque anterior para seguir recorriendo
}while(top!=apu); // las posicione de la pila.
while(tope>0){
Pos[tpos]=Pila[tope];
tpos++; tope--;

for(top=0;top!=tpos;top++)

printf("%c",Pos[top]);
//Le da salida a la cantidad a las posiciones de
getche(); //los elementos en la pila en el orden geralquico de los
return 0; //operadores que se describienron como Expresiones Regulares.
}
}
 
y que programa necesitas? porque aqui se piden programas...
 
Gracias Hermano Bovino

Gracias Mukeniio, hermano bovino por estar ahi y serme de gran ayuda, te debo una cerbeza o una pizza hermano.

fijate mukeniio yo lo que quiero es pasar este codigo que postee a funciones osea, hacer el mismo programita pero con funciones .

Gracias de antemano.
 
Volver
Arriba