Estructuras Selectivas en Programación 🚀 IF, ELSE, SWITCH CASE explicados | ALGORITMOS #2

Поділитися
Вставка
  • Опубліковано 14 гру 2024

КОМЕНТАРІ • 13

  • @elpianistaincreible
    @elpianistaincreible 4 місяці тому

    Tienes buenos conocimientos

    • @unsimpledev
      @unsimpledev  4 місяці тому

      Muchas gracias! Intento compartirlos, espero que sirva, sobre todo a los que están comenzando. Abrazo!

  • @Spartan0072...
    @Spartan0072... Рік тому

    Graciasbro

  • @danemreales4946
    @danemreales4946 Рік тому

    Gracias 🙏🏽

  • @robertoguarisma95
    @robertoguarisma95 7 місяців тому

    Excelentemente explicado el Tema, infinitas gracias !!!!, pregunta del ejercicio Mayor y Menor de 3 Valores: suponemos que los tres valores son diferentes??? de no suponer eso, seria conveniente arrancar verificando si existe igualdad entre ellos??, muchas gracias por Tu respuesta, Bendiciones para Ti y todos los tuyos!!!!

    • @unsimpledev
      @unsimpledev  7 місяців тому +2

      Muchas gracias!!! Me alegra mucho que te haya servido!
      Te comento, en el ejercicio de Mayor y Menor de 3 valores no estoy suponiendo que sean valores diferentes, porque sería una restricción muy grande, lo mejor es dejar que lo resuelva el código para cualquier valor ingresado.
      En este caso el SI se compone de tres partes,
      Parte 1: SI (numero1 > numero2)
      Parte 2: SINO SI (numero2 > numero1)
      Parte3: SINO, como es un SINO sin condición, entra cuando no se cumple ninguno de los dos casos anteriores
      Supongamos que el usuario ingresa como numero1 el 5 y como numero2 el 8:
      Parte 1: SI (5>8) -> FALSO, no ingresa, va a evaluar la Parte 2
      Parte 2: SINO SI (8>5) -> VERDADERO, ingresa y no sigue evaluando el resto de las condiciones (corta acá, no va a la Parte 3)
      Parte 3: SINO -> no llega a evaluarse
      Ahora supongamos que el usuario ingresa como numero1 el 8 y como numero2 también el 8:
      Parte 1: SI (8>8) -> FALSO, no ingresa, va a evaluar la Parte 2
      Parte 2: SINO SI (8>8) -> FALSO, no ingresa, va a evaluar la Parte 3
      Parte 3: SINO -> VERDADERA, no tiene condición, así que acá entra.
      En la Parte 3 está implícito que va a ingresar solamente cuando ninguno de los dos sea mayor al otro, ese caso se da solo cuando ambos son iguales
      Podríamos escribir también así :
      Parte 1: SI (numero1 > numero2)
      Parte 2: SINO SI (numero2 > numero1)
      Parte3: SINO SI (numero1 == numero2)
      En el otro caso, con el SINO evitamos escribir una condición, pero los dos casos responden de la misma manera.
      Queda mejor escribir menos código, eso se gana con la práctica, pero tampoco está mal escribirlo así.
      Como dices, podrías también arrancar evaluando la igualdad, algo así:
      Parte 1: SI (numero1 == numero2)
      Parte 2: SINO SI (numero1 > numero2)
      Parte3: SINO SI (numero2 > numero1)
      o, resolviéndolo con el SINO
      Parte 1: SI (numero1 == numero2)
      Parte 2: SINO SI (numero1 > numero2)
      Parte3: SINO -> acá está implícito que (numero2 > numero1), porque no entró en ninguna de las anteriores
      Espero que te sea la respuesta, cualquier consulta no dudes en hacerla! Un abrazo!

    • @robertoguarisma95
      @robertoguarisma95 7 місяців тому

      @@unsimpledev Ok excelente, muchas gracias por Tu pronta respuesta (lo voy a hacer sin esa restriccion). Saludos cordiales y bendiciones, sigo viendo cada capitulo y haciendo los ejercicios 👍👍👍👍

    • @unsimpledev
      @unsimpledev  7 місяців тому

      @@robertoguarisma95 Genial! Sí, Practicar con ejercicios es lo mejor para aprender! Muchas gracias! Cualquier consulta no dudes en mandarla. Éxitos! Saludos!

  • @DhanyerGutierrez
    @DhanyerGutierrez 7 місяців тому

    :)

  • @YubalGarcíaAfonso
    @YubalGarcíaAfonso Місяць тому

    Ejer2:
    VARIABLES
    PALABRA candidato1, candidato2, candidato3
    PALABRA votos
    INICIO
    IMPRIMO "Ingrese candidato1"
    LEER "candidato1"
    IMPRIMO "Ingrese candidato2"
    LEER "candidato2"
    IMPRIMO "Ingrese candidato3"
    LEER "candidato3"
    votos = 100
    SI (candidato1 => 34 votos) ENTONCES
    INICIO
    IMPRIMO "el ganador es el candidato1"
    FIN
    SINO
    INICIO
    SI (candidato2 => 34 votos) ENTONCES
    INICIO
    IMPRIMO "el ganador es el candidato2"
    FIN
    SINO
    INICIO
    IMPRIMO "el ganador es el candidato3"
    FIN
    (no estoy nada convencido de que sea asi..xd)

    • @unsimpledev
      @unsimpledev  25 днів тому

      La primero es tener en cuenta los tipos de variables, en este ejercicio debemos ingresar la cantidad de votos de cada candidato, por lo que el usuario va a ingresar un numero por cada candidato, asi que los tipos de variables deberían ser de tipo ENTERO (acordate que PALABRA son para textos). Votos también sería entera pero no la estás usando así que no es necesaria.
      Fijate en las condiciones que armaste, el candidato 1 podría tener 35 votos y el 2, 40, y el algoritmo va a imprimir que el candidato 1 es el ganador. Siempre la mejor forma de ver si va bien es probando con valores, cuando se puede.
      Lo que debemos comparar aca son los votos de cada candidato, los valores de cada una de estas variables.
      por ejemplo:
      - SI (votosCandidato1 > votosCandidato2 Y votosCandidato1 > votosCandidato3)
      En este caso el candidato1 ganó porque tiene mas votos que el 2 y que el 3. En caso de que no se de esta condicion, se debe analizar de la misma manera para los casos del candidato2 y del candidato3.
      SI (votosCandidato2 > votosCandidato1 Y votosCandidato2 > votosCandidato3)
      SI (votosCandidato3 > votosCandidato1 Y votosCandidato3 > votosCandidato2)
      Ahora, hay algo que no estamos considerando, que pasa si el candidato2 y el 1 sacan 40 puntos cada uno, y el candidato3, 20. Hay un empate, y en este caso no está contemplado. Debemos hacerlo.
      - Si los 3 son iguales -> triple empate
      - Los casos de empate entre dos candidatos (1 y 2, 2 y 3, 1 y 3). En estos casos ya sabemos que el que quede afuera no es mayor, porque sino hubiera entrado en la condicion de votos mayores.
      Te dejo un algoritmo completo:
      VARIABLES
      ENTERO votosCandidato1, votosCandidato2, votosCandidato3
      INICIO
      // Cargo los votos de cada candidato
      IMPRIMIR 'Ingrese los votos del candidato 1'
      LEER votosCandidato1
      IMPRIMIR 'Ingrese los votos del candidato 2'
      LEER votosCandidato2
      IMPRIMIR 'Ingrese los votos del candidato 3'
      LEER votosCandidato3
      SI (votosCandidato1 > votosCandidato2 Y votosCandidato1 > votosCandidato3) ENTONCES
      INICIO
      IMPRIMO 'El ganador es el candidato 1'
      FIN
      SINO
      INICIO
      SI (votosCandidato2 > votosCandidato1 Y votosCandidato2 > votosCandidato3) ENTONCES
      INICIO
      IMPRIMO 'El ganador es el candidato 2'
      FIN
      FIN
      SINO
      INICIO
      SI (votosCandidato3 > votosCandidato1 Y votosCandidato3 > votosCandidato2) ENTONCES
      INICIO
      IMPRIMO 'El ganador es el candidato 3'
      FIN
      FIN
      SINO
      INICIO
      //Casos de empate
      SI (votosCandidato1 == votosCandidato2 Y votosCandidato1 == votosCandidato3) ENTONCES
      INICIO
      IMPRIMO "Empate entre los tres candidatos"
      FIN
      SINO
      INICIO
      SI (votosCandidato1 == votosCandidato2 ) ENTONCES
      INICIO
      IMPRIMO "Empate entre el candidato 1 y el candidato 2"
      FIN
      FIN
      SINO
      INICIO
      SI (votosCandidato2 == votosCandidato3 ) ENTONCES
      INICIO
      IMPRIMO "Empate entre el candidato 2 y el candidato 3"
      FIN
      FIN
      SINO
      INICIO
      SI (votosCandidato1 == votosCandidato3 ) ENTONCES
      INICIO
      IMPRIMO "Empate entre el candidato 1 y el candidato 3"
      FIN
      FIN
      FIN
      FIN
      En la mayoría de los lenguajes no hace falta poner INICIO/FIN cuando adentro del bloque hay una sola línea, y los SINO pueden escribirse como SINO SI (cuando viene otra condicion), así que lo voy a hacer mas chico para que sea más legible, lo importante es la idea:
      VARIABLES
      ENTERO votosCandidato1, votosCandidato2, votosCandidato3
      INICIO
      // Cargo los votos de cada candidato
      IMPRIMIR "Ingrese los votos del candidato 1"
      LEER votosCandidato1
      IMPRIMIR "Ingrese los votos del candidato 2"
      LEER votosCandidato2
      IMPRIMIR "Ingrese los votos del candidato 3"
      LEER votosCandidato3
      // Comparar votos para determinar el ganador
      SI (votosCandidato1 > votosCandidato2 Y votosCandidato1 > votosCandidato3) ENTONCES
      IMPRIMIR "El ganador es el candidato 1"
      SINO SI (votosCandidato2 > votosCandidato1 Y votosCandidato2 > votosCandidato3) ENTONCES
      IMPRIMIR "El ganador es el candidato 2"
      SINO SI (votosCandidato3 > votosCandidato1 Y votosCandidato3 > votosCandidato2) ENTONCES
      IMPRIMIR "El ganador es el candidato 3"
      SINO SI (votosCandidato1 == votosCandidato2 Y votosCandidato1 == votosCandidato3) ENTONCES
      IMPRIMIR "Empate entre los tres candidatos"
      SINO SI (votosCandidato1 == votosCandidato2) ENTONCES
      IMPRIMIR "Empate entre el candidato 1 y el candidato 2"
      SINO SI (votosCandidato2 == votosCandidato3) ENTONCES
      IMPRIMIR "Empate entre el candidato 2 y el candidato 3"
      SINO SI (votosCandidato1 == votosCandidato3) ENTONCES
      IMPRIMIR "Empate entre el candidato 1 y el candidato 3"
      FIN
      Estaba bastante difícil la verdad por el tema de contemplar los casos de empate, pero es un buen ejercicio para ir viendo que hay casos que no parecen estar tan a la vista, pero están ahí, y dejarlos afuera hacen que nuestros algoritmos/programas no funcionen con algunos casos.
      Saludos!

    • @unsimpledev
      @unsimpledev  23 дні тому +1

      Acá están resueltos los de estructuras condicionales:
      codeandosimple.com/logica-estructuras-selectivas.html#ejercicios-resueltos
      Saludos!