fbpx

Ayuda con ejercicio externo

  • Ayuda con ejercicio externo

    Posted by Javier Hernandez on 12 junio, 2020 en 11:31 pm

    Buenas noches compañeros.

    No sé si alguien me pueda ayudar, hace unas semanas adquirí un libro de Python y en el habían ejercicios muy interesantes.

    He estado estudiando ahí y apoyándome con los recursos del curso (para cuando me pierdo)

    Sin embargo, me surgió un ejercicio que me tiene bloqueado hace un rato, no sé si alguien me pueda dar una idea o algo.

    Se los describo:

    Unos albañiles estan construyendo una pared que simula ser una pirámide escalonada, la construcción se está haciendo siguiendo los siguientes criterios:

    1. Cada nivel tiene un ladrillo más que el anterior.

    2. La altura es definida por la cantidad de niveles.

    3. No deben haber niveles incompletos.

    Y el ejercicio es:

    Usando While elabore un programa al que al introducirle la cantidad de ladrillos diga cuantos niveles se pueden construir.

    Por ejemplo 6 ladrillos, 3 niveles.

    Gracias de antemano.

    Javier Hernandez respondido 3 años, 10 meses 3 Miembros · 5 Respuestas
  • 5 Respuestas
  • Rod U

    Miembro
    13 junio, 2020 en 12:02 pm

    Hola, Javier. Te dejo un ejemplo de como lo resolví. Mi reto ahora para ti, es ¿Cómo podrías mejorarlo? Te dejo una imagen sobre como lo resolví para que te des una idea

    • Angel Sánchez

      organizador
      13 junio, 2020 en 7:11 pm

      Colega, puedes usar la opción adjuntar archivo para compartir también el .py 😀

    • Javier Hernandez

      Miembro
      16 junio, 2020 en 5:25 pm

      Disculpa Bro, creo que no me di a entender.

      El ejercicio lo que pide es que tomando la cantidad de ladrillos se determine la cantidad de niveles que se pueden completar.

  • Angel Sánchez

    organizador
    13 junio, 2020 en 8:28 pm

    Aquí te dejo el problema en C++, solo para lo que analices (Adjunto archivo .cpp).

    La clave esta saber cuantos ladrillos están usando y cuantos te faltarían para hacer otra linea de ladrillos. Mira esta linea (imagina que decimos que tenemos 7 ladrillos);

    restantes = ladrillos - (suma + (nivel + 1)); 

    La variable nivel muestra cuantos ladrillos hay por nivel, es fácil ya que iniciamos con 1 y se le va sumando 1 cada vuelta. Así que nivel es:

    nivel = nivel + 1;

    Después usamos la variable suma, que va sumando el nivel pasado con el nuevo nivel para ir viendo cuantos ladrillos llevamos usados:

    suma = suma + nivel;

    Ahora podemos saber cuantos ladrillos nos quedarían si damos otra vuelta, para esto solo a ladrillos (dijimos que 7) le restamos el numero de ladrillos que tendríamos usados en la próxima vuelta (suma + (nivel + 1), si nos da un resultado negativo esto quiere decir que nos faltan ladrillos para dar otra vuelta, así que ahí termina el problema. La condición del while es while(restantes>=0):

    restantes = ladrillos - (suma + (nivel + 1)); 

    Aquí el código completo:

    #include<iostream>

    using namespace std;

    int main(){
    int ladrillos = 0, nivel=0, suma=0, restantes = 0, i=0;

    cout<<"Numero de ladrillos: ";
    cin>>ladrillos;
    cout<<endl;
    while(restantes>=0){
    nivel = nivel + 1;
    suma = suma + nivel;
    restantes = ladrillos - (suma + (nivel + 1)); //Muestra cuentos ladrillos te quedan si haces otra vuelta.
    cout<<"Ladrillos en el nivel: "<<nivel<<" - Ladrillos usados hasta ahora "<<suma<<endl;

    if(restantes<0){
    cout<<endl<<"Fin: Te faltan ladrillos para otra vuelta."<<endl<<endl;
    }
    i++;
    }
    restantes = ladrillos - suma;
    cout<<"Numero de niveles: "<<i<<endl;
    cout<<"Ladrillos restantes: "<<restantes;
    }

    Si te fijas todo lo que usamos en el problema son cosas simples, en realidad lo que nos cuesta es analizar, y esta es la clave de la programación. Ser programador es tener la capacidad de resolver problemas que después transcribimos en código. Si desarrollas bien tu análisis vas a ser un buen programador. Échale muchas ganas, y aquí estamos para apoyarlos.

    • Javier Hernandez

      Miembro
      16 junio, 2020 en 5:38 pm

      Gracias Bro, era lo que necesitaba… saber por donde agarrar el problema, muchas gracias.

Inicia sesión para responder.

Start of Discussion
0 de 0 respuestas Junio 2018
Ahora