Fundamentos
Tutorial Fundamentos: Estructuras de control condicional
PseInt: Aprende a gestionar decisiones con If Else en programación. Desarrolla habilidades para manejar condiciones anidadas, operadores lógicos y el operador ternario.
Aprende Fundamentos GRATIS y certifícateDecisiones con if else
En programación, las estructuras condicionales permiten tomar decisiones basadas en condiciones lógicas. La más básica de estas estructuras es el if else, que ejecuta un bloque de código si una condición es verdadera y otro bloque si es falsa.
En PseInt, la sintaxis para una decisión con if else es:
Si <condición> Entonces
<instrucciones_si_verdadero>
Sino
<instrucciones_si_falso>
FinSi
Por ejemplo, para determinar si un número es par o impar, podemos escribir:
Algoritmo VerificarNumeroPar
Definir numero Como Entero
Escribir "Introduce un número:"
Leer numero
// Uso de la operación mod para determinar si el residuo es 0
Si numero mod 2 = 0 Entonces
Escribir "El número es par"
Sino
Escribir "El número es impar"
FinSi
FinAlgoritmo
En Python, el código equivalente sería:
numero = int(input("Introduce un número: "))
if numero % 2 == 0:
print("El número es par")
else:
print("El número es impar")
Y en JavaScript, tendríamos:
let numero = parseInt(prompt("Introduce un número: "));
if (numero % 2 === 0) {
console.log("El número es par");
} else {
console.log("El número es impar");
}
La condición dentro del if es una expresión lógica que se evalúa como verdadera o falsa. En PseInt, podemos utilizar operadores relacionales (=, <>, >, <, >=, <=) y operadores lógicos (&, |, ~) para construir estas expresiones.
Otro ejemplo: verificar si una persona es mayor de edad.
Algoritmo VerificarMayorDeEdad
Definir edad Como Entero
Escribir "Introduce tu edad:"
Leer edad
Si edad >= 18 Entonces
Escribir "Eres mayor de edad"
Sino
Escribir "Eres menor de edad"
FinSi
FinAlgoritmo
En Python:
edad = int(input("Introduce tu edad: "))
if edad >= 18:
print("Eres mayor de edad")
else:
print("Eres menor de edad")
Es fundamental finalizar la estructura condicional con FinSi en PseInt, lo que indica el fin del bloque de decisión. Además, mantener una correcta indentación mejora la legibilidad y ayuda a evitar errores.
Las palabras clave en PseInt, como Si, Entonces, Sino y FinSi, deben escribirse exactamente como se definen. Esto asegura que el intérprete reconozca correctamente la estructura del programa.
Utilizar estructuras if else eficientemente permite crear programas que reaccionan de manera dinámica a diferentes situaciones, haciendo que el código sea más flexible y robusto.
Evaluar múltiples condiciones
En programación, es común necesitar evaluar varias condiciones al mismo tiempo para decidir el flujo del programa. En PseInt, podemos combinar múltiples condiciones utilizando los operadores lógicos: y, o y no.
Los operadores lógicos permiten construir expresiones más complejas que se evalúan como verdaderas o falsas. Los operadores principales son:
- Y (and): La expresión es verdadera si ambas condiciones son verdaderas.
- O (or): La expresión es verdadera si al menos una de las condiciones es verdadera.
- No (not): Invierte el valor lógico de la condición.
Ejemplo en PseInt: Verificar si un número está dentro de un rango específico.
Algoritmo RangoNumerico
Definir numero Como Entero
Escribir "Introduce un número:"
Leer numero
Si numero >= 1 y numero <= 10 Entonces
Escribir "El número está entre 1 y 10"
Sino
Escribir "El número está fuera del rango"
FinSi
FinAlgoritmo
En este caso, la condición numero >= 1 y numero <= 10
utiliza el operador y para asegurarse de que el número cumple ambas condiciones.
El equivalente en Python sería:
numero = int(input("Introduce un número: "))
if 1 <= numero <= 10:
print("El número está entre 1 y 10")
else:
print("El número está fuera del rango")
Para evaluar si un número es par o es múltiplo de 5, podemos usar el operador o.
Ejemplo en PseInt:
Algoritmo ParOMultiplo5
Definir numero Como Entero
Escribir "Introduce un número:"
Leer numero
// Uso de 'mod' para comprobar divisibilidad
Si numero mod 2 = 0 o numero mod 5 = 0 Entonces
Escribir "El número es par o múltiplo de 5"
Sino
Escribir "El número no es par ni múltiplo de 5"
FinSi
FinAlgoritmo
En Python:
numero = int(input("Introduce un número: "))
if numero % 2 == 0 or numero % 5 == 0:
print("El número es par o múltiplo de 5")
else:
print("El número no es par ni múltiplo de 5")
Podemos también utilizar el operador no para negar una condición. Por ejemplo, verificar si un usuario no ha introducido una contraseña correcta.
Ejemplo en PseInt:
Algoritmo VerificarClave
Definir clave Como Caracter
Escribir "Introduce la clave:"
Leer clave
Si no clave = "secreta" Entonces
Escribir "Acceso denegado"
Sino
Escribir "Bienvenido"
FinSi
FinAlgoritmo
En Python:
clave = input("Introduce la clave: ")
if clave != "secreta":
print("Acceso denegado")
else:
print("Bienvenido")
Es importante recordar que en PseInt, los operadores lógicos son palabras: y, o, no, mientras que en Python se utilizan símbolos como and
, or
, not
.
Ejemplo en PseInt con una condición más compleja:
Algoritmo RequisitosCredito
Definir edad Como Entero
Definir ingreso Como Real
Escribir "Introduce tu edad:"
Leer edad
Escribir "Introduce tu ingreso mensual:"
Leer ingreso
Si edad >= 18 y ingreso >= 1000 Entonces
Escribir "Cumples los requisitos para el crédito"
Sino
Escribir "No cumples los requisitos para el crédito"
FinSi
FinAlgoritmo
Esto verifica que el usuario cumple ambas condiciones: ser mayor de edad y tener ingresos suficientes.
En Python:
edad = int(input("Introduce tu edad: "))
ingreso = float(input("Introduce tu ingreso mensual: "))
if edad >= 18 and ingreso >= 1000:
print("Cumples los requisitos para el crédito")
else:
print("No cumples los requisitos para el crédito")
Condiciones anidadas
Las condiciones anidadas permiten evaluar situaciones complejas al incluir estructuras condicionales dentro de otras. Esto es útil cuando una decisión depende del resultado de una condición previa, creando así un flujo lógico más detallado.
En PseInt, podemos anidar un Si dentro de otro Si para establecer condiciones dependientes. Es esencial mantener una correcta indentación para mejorar la legibilidad y evitar errores en el código.
Por ejemplo, supongamos que queremos determinar si un número es positivo, negativo o cero, y además verificar si es par o impar en caso de no ser cero.
Algoritmo SignoYParidad
Definir numero Como Entero
Escribir "Introduce un número:"
Leer numero
Si numero = 0 Entonces
Escribir "El número es cero"
Sino
Si numero > 0 Entonces
Escribir "El número es positivo"
Sino
Escribir "El número es negativo"
FinSi
Si numero mod 2 = 0 Entonces
Escribir "Y es par"
Sino
Escribir "Y es impar"
FinSi
FinSi
FinAlgoritmo
En este ejemplo, el Si externo verifica si el número es cero. Si no lo es, se anidan dos Si adicionales: uno para determinar el signo y otro para evaluar la paridad del número.
El código equivalente en Python sería:
numero = int(input("Introduce un número: "))
if numero == 0:
print("El número es cero")
else:
if numero > 0:
print("El número es positivo")
else:
print("El número es negativo")
if numero % 2 == 0:
print("Y es par")
else:
print("Y es impar")
Anidar condiciones es especialmente útil cuando una evaluación depende de otra anterior. Esto proporciona mayor control y precisión en la toma de decisiones dentro del programa.
Otro ejemplo es determinar la categoría de una persona según su edad. Si la edad es menor de 18, es menor de edad. Si tiene entre 18 y 64 años, es un adulto. Si tiene 65 años o más, es un adulto mayor.
Algoritmo CategorizarEdad
Definir edad Como Entero
Escribir "Introduce tu edad:"
Leer edad
Si edad < 18 Entonces
Escribir "Eres menor de edad"
Sino
Si edad < 65 Entonces
Escribir "Eres adulto"
Sino
Escribir "Eres adulto mayor"
FinSi
FinSi
FinAlgoritmo
En este caso, la condición anidada dentro del Sino nos permite distinguir entre un adulto y un adulto mayor después de haber descartado que sea menor de edad.
El equivalente en Python sería:
edad = int(input("Introduce tu edad: "))
if edad < 18:
print("Eres menor de edad")
else:
if edad < 65:
print("Eres adulto")
else:
print("Eres adulto mayor")
Las condiciones anidadas ofrecen flexibilidad adicional cuando las situaciones no pueden ser resueltas únicamente con operadores lógicos o estructuras sencillas. Por ejemplo, si queremos determinar si un estudiante ha aprobado o suspendido y además si su nota es sobresaliente en caso de aprobar.
Algoritmo EvaluarNota
Definir nota Como Real
Escribir "Introduce tu nota:"
Leer nota
Si nota >= 5 Entonces
Si nota >= 9 Entonces
Escribir "Has aprobado con sobresaliente"
Sino
Escribir "Has aprobado"
FinSi
Sino
Escribir "Has suspendido"
FinSi
FinAlgoritmo
Aquí, la segunda condición anidada verifica si la nota es igual o superior a 9 solo si el estudiante ha aprobado.
En Python, el código sería:
nota = float(input("Introduce tu nota: "))
if nota >= 5:
if nota >= 9:
print("Has aprobado con sobresaliente")
else:
print("Has aprobado")
else:
print("Has suspendido")
Es fundamental en PseInt utilizar correctamente los FinSi para cerrar cada estructura condicional anidada. Esto asegura que el programa funcione según lo esperado y facilita su mantenimiento.
Las condiciones anidadas también permiten manejar situaciones donde ciertas verificaciones solo tienen sentido después de cumplir una condición inicial. Por ejemplo, verificar si una persona es apta para un trabajo solo si tiene la edad mínima requerida.
Algoritmo DeterminarAptitud
Definir edad, experiencia Como Entero
Escribir "Introduce tu edad:"
Leer edad
Si edad >= 18 Entonces
Escribir "Introduce tus años de experiencia:"
Leer experiencia
Si experiencia >= 2 Entonces
Escribir "Eres apto para el trabajo"
Sino
Escribir "No tienes suficiente experiencia"
FinSi
Sino
Escribir "No cumples con la edad mínima"
FinSi
FinAlgoritmo
En este ejemplo, solo se pide la experiencia si el candidato cumple con la edad mínima, evitando así evaluaciones innecesarias.
El equivalente en Python:
edad = int(input("Introduce tu edad: "))
if edad >= 18:
experiencia = int(input("Introduce tus años de experiencia: "))
if experiencia >= 2:
print("Eres apto para el trabajo")
else:
print("No tienes suficiente experiencia")
else:
print("No cumples con la edad mínima")
Mantener una correcta indentación es clave al trabajar con condiciones anidadas, tanto para la legibilidad como para evitar errores en la ejecución del programa.
Las condiciones anidadas son una herramienta poderosa para resolver problemas donde las decisiones están interrelacionadas. Comprender su uso y aplicarlas adecuadamente mejora la eficiencia y claridad del código en programas complejos.
Operador ternario
El operador ternario es una estructura condicional que permite simplificar asignaciones basadas en una condición en una sola línea de código. A diferencia de las estructuras Si tradicionales, el operador ternario ofrece una sintaxis más concisa para expresiones simples.
En PseInt, aunque no existe un operador ternario como tal, podemos simular su funcionalidad utilizando expresiones condicionales. Sin embargo, es importante conocer cómo se implementa en lenguajes como Python o JavaScript para entender su utilidad.
En Python, la sintaxis del operador ternario es:
valor_si_verdadero if condicion else valor_si_falso
Por ejemplo, para asignar el valor absoluto de un número:
numero = -5
absoluto = numero if numero >= 0 else -numero
print("El valor absoluto es:", absoluto)
En este caso, si numero es mayor o igual a cero, absoluto toma el valor de numero; de lo contrario, toma el valor de -numero.
En JavaScript, la sintaxis es ligeramente diferente:
let numero = -5;
let absoluto = (numero >= 0) ? numero : -numero;
console.log("El valor absoluto es: " + absoluto);
Aquí, la condición se coloca antes del símbolo ?, seguido de los valores para los casos verdadero y falso separados por :.
En PseInt, se simplifica una asignación condicional en PseInt mediante el uso de la estructura Si en una sola línea, aunque esto puede afectar la claridad del código:
Definir numero, absoluto Como Entero
numero <- -5
Si numero >= 0 Entonces
absoluto <- numero
Sino
absoluto <- -numero
FinSi
Escribir "El valor absoluto es: ", absoluto
Aunque no es exactamente un operador ternario, esta forma compacta reduce la cantidad de líneas necesarias para realizar la asignación basada en una condición.
Es importante destacar que el operador ternario es útil para simplificar código cuando las decisiones son sencillas y no requieren múltiples condiciones o acciones. Sin embargo, su uso excesivo puede reducir la legibilidad del código, por lo que debe emplearse con criterio.
Veamos otro ejemplo práctico. Supongamos que queremos determinar si un número es par o impar y asignar una cadena con el resultado.
En Python:
numero = 4
resultado = "Par" if numero % 2 == 0 else "Impar"
print("El número es:", resultado)
En JavaScript:
let numero = 4;
let resultado = (numero % 2 === 0) ? "Par" : "Impar";
console.log("El número es: " + resultado);
En resumen, aunque PseInt no dispone de un operador ternario nativo, podemos emular su comportamiento mediante estructuras condicionales simplificadas. Comprender el operador ternario en otros lenguajes como Python y JavaScript nos permite escribir código más elegante y eficiente cuando sea apropiado.
Es recomendable utilizar el operador ternario cuando la simplicidad y la claridad no se vean comprometidas. En situaciones donde las condiciones son más complejas, es preferible optar por estructuras condicionales tradicionales para mantener un código legible y mantenible.
Todas las lecciones de Fundamentos
Accede a todas las lecciones de Fundamentos y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
¿Qué Es La Programación?
Introducción Y Entorno
Lenguajes De Programación
Introducción Y Entorno
Ciclo De Vida Del Desarrollo De Software
Introducción Y Entorno
Herramientas Y Entornos De Desarrollo
Introducción Y Entorno
Instalar Y Configurar Pseint Y Python
Introducción Y Entorno
Estructura De Un Programa Pseint
Introducción Y Entorno
Pensamiento Algorítmico
Lógica
Tipos De Datos Y Variables
Lógica
Operadores
Lógica
Estructuras De Control Condicional
Lógica
Estructuras De Control De Repetición
Lógica
Diagramas De Flujo
Lógica
Depuración De Programas
Lógica
Arrays
Estructuras De Datos
Matrices
Estructuras De Datos
Cadenas De Caracteres
Estructuras De Datos
Algoritmos De Ordenamiento
Ordenamiento Y Búsqueda
Algoritmos De Búsqueda
Ordenamiento Y Búsqueda
Complejidad Temporal Y Espacial
Ordenamiento Y Búsqueda
Definición Y Utilidad De Las Funciones
Funciones
Paso De Parámetros
Funciones
Recursividad
Funciones
Funciones Anónimas
Funciones
Concepto De Clases Y Objetos
Programación Orientada A Objetos
Método Constructor
Programación Orientada A Objetos
Encapsulación
Programación Orientada A Objetos
Herencia
Programación Orientada A Objetos
Polimorfismo
Programación Orientada A Objetos
Composición
Programación Orientada A Objetos
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender cómo funcionan las estructuras condicionales if else en PseInt, Python y JavaScript.
- Aprender a utilizar operadores relacionales y lógicos para evaluar condiciones complejas.
- Dominar el uso de condiciones anidadas para gestionar decisiones dependientes.
- Implementar evaluaciones simples con el operador ternario en Python y JavaScript.
- Aplicar estos conceptos para escribir código más flexible y robusto.