EJERCICIO SAT
#include <iostream>
#include <cstring>
#include <conio.h>
#include <stdio>
#include <dos.h>
struct Nodo{
int dato;
Nodo *siguiente;
};
void menu(Nodo *&);
void push(Nodo *&,int);
void pop (Nodo *);
void timer();
void mostrar(Nodo *);
void main()
Nodo *lista=NULL;
menu(lista);
getch();
void menu(Nodo *&lista)
int n,dato,op;
while(op!=2){
clrscr();
system("color F0");
gotoxy(10,10);cout<<"SAT";
gotoxy(10,11);cout<<"1.Comenzar simulación de entrada de clientes";
gotoxy(10,12);cout<<"2.Salir\n";
cin>>op;
if(op==1)
while(n!=4)
clrscr(); system("color 70");
cout<<"Comenzando simulacion\n";
cout<<"1.Nuevo cliente\n";
cout<<"2.Mostrar cola\n";
cout<<"3.Despachar a todos\n";
cout<<"4.Salir\n";
cin>>n;
switch(n){
case 1:
clrscr(); system("color 70");
cout<<"Ingrese codigo de cliente\n";
cin>>dato;
push(lista,dato);
break;
case 2:
clrscr(); system("color 70");
mostrar(lista);
break;
case 3:
clrscr(); system("color 70");
pop(lista);
break;
default:
clrscr(); system("color 70");
cout<<"Opcion invalida";
break;
}if(op==2)
op=2;
void timer()
for(int i=10;i>=0;i--)
if(i==10){
gotoxy(10,10);cout<<i;
sleep(1);}
if(i<10){
gotoxy(10,10);cout<<"0"<<i;
sleep(1);
void push(Nodo *&lista,int n)
Nodo*nuevo_nodo=new Nodo();
nuevo_nodo->dato=n;
Nodo *aux1=lista;
Nodo *aux2;
while(aux1!=NULL)
aux2=aux1;
aux1=aux1->siguiente;
if(lista==NULL)
lista=nuevo_nodo;
else{
aux2->siguiente=nuevo_nodo;
nuevo_nodo->siguiente=aux1;
cout<<"El cliente con codigo "<<n<<" ha sido agregado";
getch();
void mostrar(Nodo *lista)
Nodo *actual=new Nodo();
actual=lista;
while(actual!=NULL)
cout<<actual->dato<<endl;
actual=actual->siguiente;
getch();
}
void pop(Nodo *lista)
Nodo *actual=new Nodo();
Nodo *aux;
actual=lista;
while(actual!=NULL)
aux=actual;
timer();
cout<<" Cliente "<<actual->dato<<" despachado"<<endl;
actual=actual->siguiente;
delete aux;
getch();
}
El programa tiene un temporizador de 10 segundos para despachar cada
cliente
#include <iostream>
#include <conio.h>
void funcion(int a,int b,int result)
int aux;
if(b>0)
aux=result*a;
result=aux;
b-=1;
funcion(a,b,result);
else{
cout<<"El resultado es: "<<result;
void main()
int a,b;
cout<<"Ingrese el numero que desea elevar\n";
cin>>a;
cout<<"Ingrese la potencia para elevar el numero\n";
cin>>b;
funcion(a,b,1);
getch();
}
LISTA ENLAZADA
#include <iostream>
#include <conio.h>
#include <stdlib>
#include <fstream>
struct Nodo
{
int dato;
Nodo *siguiente;
};
void menu(Nodo *&);
void push(Nodo *&,int);
void busqueda(Nodo *,int);
void pop(Nodo *,int);
void mostrar(Nodo *);
void main()
{
Nodo *lista=NULL;
menu(lista);
}
void menu(Nodo *&lista)
{
int op;
while(op!=5)
{
clrscr();
system("color F0");
gotoxy(15,10);cout<<"MENU PRINCIPAL\n";
gotoxy(15,11);cout<<"1.Ingresar datos\n";
gotoxy(15,12);cout<<"2.Mostrar datos\n";
gotoxy(15,13);cout<<"3.Buscar datos\n";
gotoxy(15,14);cout<<"4.Eliminar datos\n";
gotoxy(15,15);cout<<"5.Salir\n";
cin>>op;
switch(op)
{
case 1:
clrscr();
system("color 70");
int dato;
cout<<"Numero:\n";
cin>>dato;
push(lista,dato); break;
case 2:
clrscr();
system("color 70");
mostrar(lista); break;
case 3:
clrscr();
system("color 70"); int n;
cout<<"Ingrese el dato para bscar\n";
cin>>n;
busqueda(lista,n); break;
case 4:
clrscr();
system("color 70"); int m;
cout<<"Ingrese el dato para eliminar\n";
cin>>m;
pop(lista,m); break;
case 5: getch(); break;
default: cout<<"Error\n"; break;
}getch();
}
}
void push(Nodo *&lista,int n)
{
Nodo*nuevo_nodo=new Nodo();
nuevo_nodo->dato = n;
Nodo *aux1 = lista;
Nodo *aux2;
while((aux1!=NULL)&&(aux1->dato<n))
{
aux2=aux1;
aux1=aux1->siguiente;
}
if(lista==aux1)
{
lista=nuevo_nodo;
}
else{
aux2->siguiente=nuevo_nodo;
}
nuevo_nodo->siguiente=aux1;
cout<<"Elemento "<<n<<" insertado a la lista correctamente\n";
getch();
void mostrar(Nodo *lista)
{
Nodo *actual= new Nodo();
actual=lista;
while(actual!=NULL)
{
cout<<actual->dato<<" ";
actual=actual->siguiente;
}
}
void busqueda(Nodo *lista,int n)
{
bool band=false;
Nodo *actual= new Nodo();
actual=lista;
while((actual!=NULL)&&(actual->dato <=n))
{
if(actual->dato==n)
{
band=true;
}
actual=actual->siguiente;
}
if(band==true){
cout<<"Dato encontrado: "<<n;
}
if(band==false){
cout<<"!Dato no encontrado";
}
getch();
}
void pop(Nodo *lista,int n)
{
if(lista!=NULL)
{
Nodo *aux_borrar= new Nodo();
Nodo *anterior= new Nodo();
aux_borrar=lista;
anterior=NULL; bool band;
while((aux_borrar!=NULL)&&(aux_borrar->dato <=n))
{
if(aux_borrar->dato==n)
{
aux_borrar=anterior;
cout<<"El dato a sido eliminado";
band=true;
}
}
if(band=false)
{
cout<<"El dato no ha sido encontrado";
}
}else{
cout<<"La lista esta vacia";}
getch();
}