none
Pilas (Ayudame a resolver este problema) RRS feed

  • Pregunta

  • Generar aplicación que nos permita administrar los pasos para arreglar una llanta con 3 pilas.

    Y son los siguiente:

    Te estacionas

    Saca el gato

    Desatornillar 

    Levantar el carro

    Quitar llanta

    Poner repuesto

    Bajar el carro

    Atornillar

    Guardar Herramienta


    En la primera pila tendremos todos los pasos en desorden

    Y las otras 2 pilas, son para hacer el intercambio y poder ordenar los pasos en la pila 2

    Lo que mas se me dificulta es hacerlo de forma simulada

    Gracias por su tiempo

    miércoles, 7 de diciembre de 2016 13:54

Todas las respuestas

  • Con esta codigo puedo mover mis pasos a mi pila 2 
    pero, no me esta haciendo el intercambio para poder ordenarlos 

    string[] pilaA = new string[9] { "", "", "", "", "", "", "", "", ""};
            int contA = 8;
            string[] pilaB = new string[9] { "", "", "", "", "", "", "", "", ""};
            int contB = 8;
            string[] pilaC = new string[9] { "", "", "", "", "", "", "", "", ""};
            int contC = 8;
            private void Form1_Load(object sender, EventArgs e)
            {

            }

            private void btnInsertar_Click(object sender, EventArgs e)
            {
                if (contA >= 0)
                {
                    if (txtPaso.Text != "")
                    {
                        pilaA[contA] = this.txtPaso.Text;
                        contA--;
                        txtPaso.Clear();
                        txtPaso.Focus();

                    }
                    else
                    {
                        MessageBox.Show("No se aceptan espacios", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                }
                else
                {
                    MessageBox.Show("Pila llena");
                }
                LlenarPilaA();
            }
            private void LlenarPilaA()
            {
                this.lstPilaA.Items.Clear();
                int cantidad = pilaA.Count();
                for (int x = 0; x < cantidad; x++)
                {
                    this.lstPilaA.Items.Add(pilaA[x]);
                }
            }
            private void LlenarPilaB()
            {
                this.lstPilaB.Items.Clear();
                int cantidad = pilaB.Count();
                for (int x = 0; x < cantidad; x++)
                {
                    this.lstPilaB.Items.Add(pilaB[x]);
                }
            }
            private void LlenarPilaC()
            {
                this.lstPilaC.Items.Clear();
                int cantidad = pilaC.Count();
                for (int x = 0; x < cantidad; x++)
                {
                    this.lstPilaC.Items.Add(pilaC[x]);
                }
            }

            private void btnMover_Click(object sender, EventArgs e)
            {
                this.tmrmover.Enabled = true;
            }
            private void mover()
            {
                if (pilaA[8] == "")
                {
                    tmrmover.Enabled = false;
                }
                else
                {
                    if (contB >= 0)
                    {
                        int temp = contA + 1;
                        pilaB[contB] = pilaA[temp];
                        pilaA[temp] = "";
                        contB--;
                        contA++;
                        LlenarPilaA();
                        LlenarPilaB();

                        if (contC == 9)
                        {
                            if (contC > contB)
                            {
                                int temp2 = contB + 1;
                                pilaC[contC] = pilaB[temp2];
                                pilaB[temp2] = "";
                                contC--;
                                contB++;
                                LlenarPilaB();
                            }

                            LlenarPilaC();
                        }

                    }

                    else
                    {
                        tmrmover.Enabled = false;
                        MessageBox.Show("Pila Llena", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }

            private void tmrmover_Tick(object sender, EventArgs e)
            {
                mover();
            }

    miércoles, 7 de diciembre de 2016 14:23