Está en la página 1de 4

//Autor: Gaytan Escudero Axel

//corrimiento a la derecha y a la izquierda que muestre una pila circular, una


cola circular, se agregue un numero y se duplique un numero

#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;

//Declaracion de variables globales


int i=0, j=0, k=0, m = 0;
int n = 5;
int entrada [6] = {0};
int auxiliar = 0;
int respuesta = 0;
int borrar = 0;
int agregar = 0;
int bandera = 0;
int duplicar = 0;
int parar = 0;

//Prototipado de funciones
int leeDatos();
int corrimientoDerecha ();
int corrimientoIzquierda ();
int imprimeDatos();
int eliminardato();
int agregardato();
int duplicarDatos();
int menu ();

//funcion main
int main (){
leeDatos();
for (; i==0; ){
menu ();
switch (respuesta){
case (1):
cout<<"\nComportamiento de pila circular";
for (k=0; k<n; k++){
corrimientoDerecha ();
imprimeDatos ();
}
system ("pause");
break;
case (2):
cout<<"\nComportamiento de cola circular";
for (k=0; k<n; k++){
corrimientoIzquierda ();
imprimeDatos ();
}
system ("pause");
break;
case (3):
cout<<"\nEliminacion de datos";
eliminardato();
imprimeDatos ();
system ("pause");
break;
case (4):
cout<<"\nfuncion agregar dato";
agregardato();
imprimeDatos ();
system ("pause");
break;
case (5):
cout<<"\nfuncion duplicar datos";
duplicarDatos();
imprimeDatos ();
system ("pause");
break;
case (6):
cout<<"\n Gracias por trabajar con el programa, Adios \n";
i=1;
break;
default:
cout<<"\n Opcion invalida, intente nuevamente \n";
system ("pause");
}
}
system ("pause");
}

//funcion leer un dato


int leeDatos(){
system ("cls");
cout<<"\n Teclee "<< n <<" numeros separados por un espacio \n ";
for (j=0; j<n; j++){
cin>>entrada[j];
}
return (0);
}

//funcion corrimiento derecha


int corrimientoDerecha (){

int localidad = n-1;


auxiliar = entrada [localidad];
for (localidad = n-1 ; localidad > 0; localidad --){
entrada [localidad] = entrada [localidad-1];
}
entrada [localidad] = auxiliar;
return (0);
}

//funcion imprimir
int imprimeDatos (){
cout<<endl;
for (j=0; j<n; j++){
cout<<entrada [j]<<" ";
}
cout<<endl;
return (0);
}
//funcion corrimiento a la derecha
int corrimientoIzquierda (){

int localidad = 0;
auxiliar = entrada [localidad];
for (localidad = 0 ; localidad < n; localidad ++){
entrada [localidad] = entrada [localidad+1];
}
entrada [n-1] = auxiliar;
return (0);
}

//funcion eliminar dato


int eliminardato() {
bandera = 0;
cout << "\nTeclee el numero a borrar: ";
cin >> borrar;
for (j = 0; j < n; j++) {
if (entrada[j] == borrar) {
bandera = 1;
for (m = j; m < n - 1; m++) {
entrada[m] = entrada[m + 1];
}
cout << "\nNumero borrado.\n";
entrada[n-1]=0;
n--;
return 1;
}
}

if (bandera == 0) {
cout << "Número no encontrado.\n";
}
return 0;
}
//funcion agregar dato
int agregardato(){
cout << "\nTeclee el numero a agregar: ";
cin >> agregar;
for (j = 0; j < n; j++) {
if (agregar > entrada[j]) {
parar = j;
j = n;
}
}

for (j = n; j > parar; j--) {


entrada[j] = entrada[j - 1];
}

entrada[parar] = agregar;
n++;

}
//funcion duplicar datos
int duplicarDatos(){
cout << "\nTeclee el numero a agregar: ";
cin >> duplicar;
for (j = 0; j < n; j++) {
if (duplicar == entrada[j]) {
parar = j;
j = n;
}

}
for (j = n; j >= parar; j--) {
entrada[j] = entrada[j - 1];
}
entrada[parar] = duplicar;
n++;
}

int menu (){


system ("cls");
cout<<"\n\tMENU";
cout<<"\n 1 - corrimiento a la derecha";
cout<<"\n 2 - corrimiento a la izquierda";
cout<<"\n 3 - eliminar un dato en el arreglo";
cout<<"\n 4 - agregar un dato en el arreglo";
cout<<"\n 5 - duplicar un dato en el arreglo";
cout<<"\n 6 - salir";
cout<<"\nSeleccione una opcion ";
cin>>respuesta;
return (0);
}

También podría gustarte