Mostrando entradas con la etiqueta Programacion. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programacion. Mostrar todas las entradas

sábado


PiLA en c++
LIFO (Last In First Out), el último en entrar es el primero en salir.
El símil del que deriva el nombre de la estructura es una pila de platos. Sólo es posible añadir platos en la parte superior de la pila, y sólo pueden tomarse del mismo extremo.


/* AUTOR: Dtito */
#include <iostream>
#define MAX 3
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
void push();// funcion para cargar datos a la cola
void pop(); // funcion para cargar eliminar datos de la cola
void imprime(); //funcion para imprimir datos
int i;
char pila[MAX],tope;//variable globales
using namespace std;

int main ()
{                              //inicio de main
system("color 5F");
char opc;
do
{                              //inicio del do while
cout<<"\n\n                                 **Menu**";
cout<<"\n\n1 ...:::::::: Insertar :::::::.......\n\n"<<"2   ....::::::: Quitar  :::::......\n\n"<<"3    ....:::::: Ver Pila ::::......\n\n"<<"4     ....::::: SALIR  ::::.....";
cout<<"\t\n\nElija una opcion:";
cin>>opc;
system("cls");
switch(opc)
{          //inicio del switch
case '1':push();break;
case '2':pop();break;
case '3':imprime();break;
default:cout<<"\n\n\n Opcion Invalida...";
}                     //fin del switch
}                     //fin de do while
while(opc!='4');
cout<<"\n\n";
return 0;
}
                      void push()
                      {
                      if(tope<MAX) // en ves de usar variables banderas lo acemos diractamente prguntando si el tope no esta lleno
                      {
                      cout<<"\n\nEscriba el Nombre o dato a ingrsar:";
                      cin>>pila[tope];
                      tope++;
                      }
                      else   //De lo contrario el tope es igual ala max y esta llena la pila
                      {
                      cout<<"\n\n **** Pila Llena ****";
                                            }                 
                                           }

void pop()
{
if(tope==0)  // si el tope es igual a cero la pila no a sido cargada y no contiene ningun elemento
{
cout<<"****************\n\n\t\t PILA VACIA \n\n*****************************";
}
else // de lo contrario decrementamos el tope para eliminar el ulitmo elemento cargado
{
tope--;
cout<<"\n\nElemento quitado es:"<<pila[tope]; // para mostrar el elemento sacado
}
}

                        void imprime()
                        {    //inicia f.imprime
                        if(tope==0)
                        {                       
                        cout<<"*************************\n\n\t\t PILAS VACIAS \n\n*************************";
                        }
                        else
                        {// inicio de else
                        cout<<"PILA";
                        for(i=0;i<tope;i++)// inprimimos en un for los elemntos q se cargaron o q qedan al usar la f eliminar o pop 
                        { //inicio de for
                        cout<<"\n"<<pila[i];
                        }  //inicio de for
                        } // fin de else
                        }     //fin f.imprime



viernes

COLA EN C++ 

Programa que simula una  cola en  funciones
/* AUTOR:DTITO*/
#include <iostream.h>
#include <conio.h>
void pone(); //poner elementos en cola
void quita();// quitar o ocultar elementos de la cola
void impri();// imprimir cola origial y cola con datos eliminados
int i,cola[20],n,n2,a=-1,tope=0,r=0;
main()
{
char opc;
cout<< "Bienvenido ";
cout<< "\n\n Cuantos elementos desea cargar a la cola ";
cin>>n;// cantidad maxima d elementos d la cola
n2=n;// n2 =n para impriimir la cola con la cantidad d elementos q se introdujo
clrscr();
do
{
clrscr();
gotoxy(20,1);cout<<"***MENU***";
cout<<"\n\n[1] Ingresar datos\n[2] Sacar datos\n[3] Visualizar\n[4]salir\nEscoja su opcion---->";
cin>>opc;
while(opc!='1'&&opc!='2'&&opc!='3'&&opc!='4')
{
cout<<" NO ES UNA OPCION VALIDA X FAVOR INTRODUCE NUEVAMENTE ";
cin>>opc;
clrscr();
}
switch(opc)
{
case '1':pone();break;
case '2':quita();break;
case '3':impri();break;
default:cout<<" \n Hasta pronto .............";
}
}
while(opc!='4');
getch();
return 0;
}

void pone()
{
   cout<<"\n\n ";
for(i=a;i<tope;i++)
{
if(tope==n)// se utilizaria como la variable bandera si la cola llena la bandera en cola llena es verdadera es lo mismo que el tope este = al max
{
cout<<"\n\n La cola esta llena";
}
else// sino cargo elos lementos
{
cout<<" Valor --->";
cin>>cola[tope]; //cola[tope] para q guarde cada uno de los elementos sigiendo de indice el tope

}
   }
if(tope<n)// si el tope es menor q la n(cant max d lementos) se pueden segir metiendo elemntos
{
tope++;// invcrementa tope
a++; //varibale a para ocultar los datos
}
   getch();
}
void quita()
{
for(i=a;i<tope;i++)
{
if(cola[i]==0||tope==0)// si el tope ==o entonces la cola esta vacia (acemos esto directo para no usar las varibles banderas hace el mismo procedimiento
{
cout<<" \n La cola esta vacia ";
}
      else
      {  //sino aumentamos la r++para q oculte el primer dato de la cola aumentamos n++para q si necesita insertar mas valores en la cola pueda acerlo y aumentamos n2++ para q se vizualize la cola con los demas elementos agregados
      r++;
      n++;
      n2++;
}
}
      getch();
      }
void impri()
            {
            if(tope==0)
            {
            cout<<"\n\n La cola esta vacia "; // si el tope es igual a cero no imprime nada (como si utilizaron la         bandera en cola vacia =true)
            }
                        else// sino imprimimos la cola original cargada y la coa resultando con datos ocultados o borrados =)
            {
            cout<<"\n\n\n La cola original ";
            for(i=0;i<n2;i++)
            {
            cout<<" ["<<cola[i]<<"]";
            }
            cout<<"\n\n\n Cola Resultante";
            for(i=r;i<tope;i++)
            {
            cout<<" ["<<cola[i]<<"]";
            }
            }
             getch();
                        }

// listo alguna duda dejen comentarios o escriban a ditito777@gmail.com