DemiDante
Bovino Milenario
- Desde
- 23 Dic 2008
- Mensajes
- 1.000
- Tema Autor
- #1
:histerica: :histerica: Este es un programa de una pila que se le introducen cierta cantidad de datos en esta misma y pues si en esos numeros van los numeros primos, que los saque y los guarde en otra pila, ya que tiene mucho rato que llevo intantando pero no me sale y quisiera ver la posibilidad que me echaran la mano, programadores del corral. se los agradecere. Aqui esta lo que llevo del programa.
# include <iostream.h>
# include <conio.h>
# include <stdio.h>
# include <stdlib.h>
# define MAX 10
struct PILA{
char Dato[MAX];
int Tope;
};
struct PILA s;
struct PILA q;
//1---> Pila vacía
//2---> Pila con al menos un elemento
void InicializaTope(){
s.Tope =-1;
}
int Empty(){
if(s.Tope==-1){
return (1);
}
else {
return (0);
}
}
char Pop(){
if(Empty()){
cout<<"Pila vacía...";
exit(0);
}
// else {
return(s.Dato[s.Tope--]);
// }
}
void Push(char Elemento){
if(s.Tope == MAX){
cout<<"Pila llena...";
exit(0);
}
else {
s.Dato[++s.Tope] = Elemento;
}
}
void ImprimePila(){
while (Empty()!=1){
cout<<Pop()<<" ";
}
getch();
}
///////Pila 2/////////////////
void InicializaTopeq(){
q.Tope =-1;
}
int Emptyq(){
if(q.Tope==-1){
return (1);
}
else {
return (0);
}
}
char Popq(){
if(Emptyq()){
cout<<"Pila vacía...";
exit(0);
}
// else {
return(q.Dato[q.Tope--]);
// }
}
void Pushq(char Elemento){
if(q.Tope == MAX){
cout<<"Pila llena...";
exit(0);
}
else {
q.Dato[++q.Tope] = Elemento;
}
}
void ImprimePilaq(){
while (Emptyq()!=1){
cout<<Popq()<<" ";
}
getch();
}
void SacarPrimas(){
int a,b,c;
do{
c=1;
a=Pop();
for(b=2;b<a;b++){
if(a%b==0)
c=0;
}
if(c==1){
Pushq(a);
}
}while(!Empty());
}
void main(){
char opc, Elemento;
do{
clrscr();
cout<<"1) Push\n";
cout<<"2) Pop\n";
cout<<"3) Imprime Pila\n";
cout<<"4) Sacar Primos\n";
cout<<"5) Salir\n";
cout<<"Opcion.-.-.-.-.>";
opc = getchar();
if(opc=='1'){
cout<<"Elemento: ";
cin>>Elemento;
Push(Elemento);
}
else if(opc=='2'){
cout<<Pop()<<" ";
}
else if(opc=='3'){
ImprimePila();
}
else if(opc=='4'){
SacarPrimas();
}
} while (opc!='5');
}
# include <iostream.h>
# include <conio.h>
# include <stdio.h>
# include <stdlib.h>
# define MAX 10
struct PILA{
char Dato[MAX];
int Tope;
};
struct PILA s;
struct PILA q;
//1---> Pila vacía
//2---> Pila con al menos un elemento
void InicializaTope(){
s.Tope =-1;
}
int Empty(){
if(s.Tope==-1){
return (1);
}
else {
return (0);
}
}
char Pop(){
if(Empty()){
cout<<"Pila vacía...";
exit(0);
}
// else {
return(s.Dato[s.Tope--]);
// }
}
void Push(char Elemento){
if(s.Tope == MAX){
cout<<"Pila llena...";
exit(0);
}
else {
s.Dato[++s.Tope] = Elemento;
}
}
void ImprimePila(){
while (Empty()!=1){
cout<<Pop()<<" ";
}
getch();
}
///////Pila 2/////////////////
void InicializaTopeq(){
q.Tope =-1;
}
int Emptyq(){
if(q.Tope==-1){
return (1);
}
else {
return (0);
}
}
char Popq(){
if(Emptyq()){
cout<<"Pila vacía...";
exit(0);
}
// else {
return(q.Dato[q.Tope--]);
// }
}
void Pushq(char Elemento){
if(q.Tope == MAX){
cout<<"Pila llena...";
exit(0);
}
else {
q.Dato[++q.Tope] = Elemento;
}
}
void ImprimePilaq(){
while (Emptyq()!=1){
cout<<Popq()<<" ";
}
getch();
}
void SacarPrimas(){
int a,b,c;
do{
c=1;
a=Pop();
for(b=2;b<a;b++){
if(a%b==0)
c=0;
}
if(c==1){
Pushq(a);
}
}while(!Empty());
}
void main(){
char opc, Elemento;
do{
clrscr();
cout<<"1) Push\n";
cout<<"2) Pop\n";
cout<<"3) Imprime Pila\n";
cout<<"4) Sacar Primos\n";
cout<<"5) Salir\n";
cout<<"Opcion.-.-.-.-.>";
opc = getchar();
if(opc=='1'){
cout<<"Elemento: ";
cin>>Elemento;
Push(Elemento);
}
else if(opc=='2'){
cout<<Pop()<<" ";
}
else if(opc=='3'){
ImprimePila();
}
else if(opc=='4'){
SacarPrimas();
}
} while (opc!='5');
}