Está en la página 1de 17

Estructuras de control I - Estructuras condicionales

Estructuras de control condicionales


Las estructuras de control condicionales en programación son instrucciones que permiten a
un programa tomar decisiones basadas en condiciones específicas. Estas estructuras
evalúan una expresión o condición que devuelve un valor booleano (Verdadero o Falso) y,
dependiendo del resultado, el programa ejecuta diferentes bloques de código.
Un componente fundamental de las estructuras de control son los operadores relacionales.

Operadores relacionales
Los operadores relacionales en programación son usados para comparar dos valores. Estas
comparaciones devuelven un valor booleano (Verdadero o Falso) según si la relación es
verdadera o no. En PSeInt, y en la mayoría de los lenguajes de programación, los
operadores relacionales comunes son:

Se utilizan para controlar el flujo de un programa, como en estructuras condicionales, donde


el código se ejecuta basado en si una condición es verdadera o falsa.

En la pantalla de PSeInt los operadores relacionales se visualizan mediante los siguientes


símbolos, cuando los escribimos como se ve en la tabla anterior:

≠ (distinto que)
< (menor que)
≤ (menor o igual que)
> (mayor que)
≥ (mayor o igual que)

Expresiones booleanas
Las expresiones booleanas son aquellas que devuelven un valor de verdad, es decir,
Verdadero o Falso. Son el resultado de comparaciones hechas usando operadores
relacionales. Por ejemplo, si comparamos dos números con un operador como == (igual a)
o > (mayor que), obtenemos una expresión booleana.

Estas expresiones son fundamentales, como veremos en breve, en la toma de decisiones


dentro de los programas.

Los ejemplos siguientes muestran cómo se pueden usar los operadores relacionales para
comparar valores y obtener un resultado booleano (Verdadero o Falso).

Ejemplo 1: Comparar dos números para igualdad

num1 = 5
num2 = 5
Escribir num1 == num2 // Devuelve Verdadero

Ejemplo 2: Verificar si un número es diferente de otro

num1 = 5
num2 = 3
Escribir num1 != num2 // Devuelve Verdadero

Ejemplo 3: Mayor o menor que

num1 = 10
num2 = 7
Escribir num1 > num2 // Devuelve Verdadero
Escribir num1 < num2 // Devuelve Falso
Estructuras condicionales
Las Estructuras Condicionales en programación son instrucciones que permiten a un
programa tomar diferentes caminos según se cumplan o no ciertas condiciones. Estas
estructuras evalúan una condición que devuelve un valor booleano (Verdadero o Falso) y,
en función de este resultado, ejecutan un bloque de código específico.

Las estructuras condicionales más comunes son "Si" (If) y "Si... Sino" (If... Else). Permiten
implementar la lógica de decisión en programas, haciéndolos más dinámicos y capaces de
responder a diferentes situaciones o entradas de datos.

Las estructuras condicionales simples en PSeInt también se utilizan para ejecutar un bloque
de código sólo si se cumple una condición específica. Estas estructuras siguen la lógica "Si
(condición) Entonces (acción)".

Ejemplo 1: Verificar si un número es positivo

Escribir "Ingrese un número:"


Leer numero
Si numero > 0 Entonces
Escribir "El número es positivo"
FinSi
En este ejemplo, el programa imprime un mensaje si el número ingresado es mayor que
cero.

Ejemplo 2: Comparar dos números

Escribir "Ingrese el primer número:"


Leer num1
Escribir "Ingrese el segundo número:"
Leer num2
Si num1 > num2 Entonces
Escribir "El primer número es mayor"
FinSi

Aquí, el programa compara dos números y muestra un mensaje si el primero es mayor que
el segundo.
Estos ejemplos ilustran cómo las estructuras condicionales simples pueden guiar el flujo de
un programa basándose en las condiciones dadas.

Ejemplo 3: Determinar el número mayor

● Se ingresan tres números.


● El algoritmo compara los números y determina cuál es el mayor.
● Muestra el número mayor.

Escribir "Ingrese el primer número:"


Leer num1
Escribir "Ingrese el segundo número:"
Leer num2
Escribir "Ingrese el tercer número:"
Leer num3

mayor = num1
Si num2 > mayor Entonces
mayor = num2
FinSi
Si num3 > mayor Entonces
mayor = num3
FinSi

Escribir "El número mayor es: ", mayor

Este algoritmo compara tres números ingresados por el usuario y determina cuál es el
mayor. Primero, asigna el primer número a la variable mayor. Luego, compara este valor
con el segundo y el tercer número, actualizando mayor si encuentra un número más grande.
Estructuras condicionales dobles
Las estructuras condicionales dobles en PSeInt, a diferencia de las simples, permiten
ejecutar un bloque de código alternativo cuando la condición evaluada no se cumple.
Siguen la lógica "Si (condición) Entonces (acción1) Sino (acción2)".

Ejemplo 1: Verificar si un número es par o impar

Escribir "Ingrese un número:"


Leer numero
Si numero % 2 == 0 Entonces
Escribir "El número es par"
Sino
Escribir "El número es impar"
FinSi

Aquí, el programa decide entre dos opciones: mostrar si el número es par o impar.
Ejemplo 2: Comparar dos números

Escribir "Ingrese el primer número:"


Leer num1
Escribir "Ingrese el segundo número:"
Leer num2
Si num1 > num2 Entonces
Escribir "El primer número es mayor"
Sino
Escribir "El segundo número es mayor o igual"
FinSi

En este ejemplo, se elige entre dos mensajes basándose en la comparación de dos


números.

Las estructuras condicionales dobles amplían las posibilidades de decisión de un programa,


permitiendo no solo actuar cuando una condición se cumple, sino también cuando no se
cumple.
Comparación de cadenas
En PSeInt, la comparación de cadenas se realiza utilizando operadores relacionales, y se
basa en el código ASCII de los caracteres. El código ASCII (American Standard Code for
Information Interchange) es un estándar de codificación de caracteres utilizado en la
informática para representar texto. Asigna un número único a cada carácter (letras,
números, símbolos), lo que permite que las computadoras y otros dispositivos manejen y
representen textos.

Por ejemplo, en ASCII, la letra 'A' se representa con el número 65, y la 'B' con el 66. Esta
codificación es fundamental en la comparación de cadenas en programación, ya que
permite comparar alfabéticamente los caracteres basándose en sus valores numéricos
ASCII.

Ejemplo 1: Comparar dos cadenas


Este código compara alfabéticamente dos cadenas, cadena1 y cadena2, que contienen los
textos "Hola" y "Mundo", respectivamente. Utiliza un condicional para determinar cuál
cadena es mayor según el orden alfabético basado en el código ASCII de los caracteres.

1. Compara "Hola" con "Mundo".


2. Si "Hola" es alfabéticamente mayor que "Mundo" (lo cual no es cierto en este caso),
imprimiría "Hola es mayor que Mundo".
3. Como "Hola" es alfabéticamente menor, el programa ejecuta el bloque del Sino e
imprime "Hola es menor o igual que Mundo".

cadena1 = "Hola"
cadena2 = "Mundo"
Si cadena1 > cadena2 Entonces
Escribir cadena1, " es mayor que ", cadena2
Sino
Escribir cadena1, " es menor o igual que ", cadena2
FinSi
Ejemplo 2: Comparación con Entrada de Usuario

En este ejemplo, se realiza una comparación entre un nombre ingresado por el usuario y el
nombre "Juan". Funciona de la siguiente manera:

1. Asigna la cadena "Juan" a la variable nombreComparar.


2. Pide al usuario que ingrese un nombre.
3. Compara el nombre ingresado con "Juan" usando el operador de igualdad ==.
4. Si el nombre ingresado es exactamente "Juan" (respetando mayúsculas y
minúsculas), el programa imprime que el nombre es igual a Juan.
5. Si no, el programa informa que el nombre ingresado es diferente de “Juan.”

nombreComparar = "Juan"
Escribir "Ingrese un nombre para comparar con Juan:"
Leer nombre
Si nombre == nombreComparar Entonces
Escribir nombre, " es igual a Juan"
Sino
Escribir nombre, " es diferente de Juan"
FinSi
Este código sirve para demostrar cómo se pueden leer datos del usuario, realizar
comparaciones de cadenas y proporcionar una salida basada en una condición.
Estructuras de control II - Condicionales anidados

Estructuras de control condicionales anidados


Un "condicional anidado" es una estructura de control donde se coloca un condicional
(como un "Si... Entonces") dentro de otro. Esto permite manejar situaciones más complejas
al evaluar múltiples condiciones de manera secuencial.

Los condicionales anidados se usan para resolver problemas que requieren múltiples
niveles de decisión. Por ejemplo, determinar acciones basadas en una serie de condiciones
jerárquicas: "Si esto es cierto, entonces verifica si esto otro también lo es".

La ventaja principal de usar condicionales anidados en lugar de simples es su capacidad


para manejar decisiones más complejas y específicas. Permiten una mayor flexibilidad y
precisión al tratar con múltiples escenarios en un programa. Sin embargo, un uso excesivo
puede hacer que el código sea más difícil de leer y mantener.

En PSeInt, los condicionales anidados se utilizan colocando estructuras condicionales


dentro de otras, siguiendo la sintaxis básica de Si... Entonces... Sino. Veamos algunos
ejemplos para ilustrar la diferencia entre usar condicionales simples y anidados.

Ejemplo con Condicionales Simples:

Si condicion1 Entonces
// Acción si condicion1 es verdadera
Sino
// Acción si condicion1 es falsa
FinSi

Si condicion2 Entonces
// Acción si condicion2 es verdadera
Sino
// Acción si condicion2 es falsa
FinSi
Mismo Ejemplo con Condicionales Anidados:

Si condicion1 Entonces
Si condicion2 Entonces
// Acción si ambas condicion1 y condicion2 son verdaderas
Sino
// Acción si condicion1 es verdadera y condicion2 es falsa
FinSi
Sino
// Acción si condicion1 es falsa
FinSi

En el ejemplo anidado, la segunda condición sólo se evalúa si la primera es verdadera, lo


que permite un control más detallado del flujo del programa basado en múltiples
condiciones.

Ventajas y desventajas de los Condicionales Anidados


El uso adecuado del anidamiento de condicionales en programación ofrece varias ventajas.
Proporciona una granularidad que permite clasificar y evaluar casos detallados en diferentes
niveles. Esto aporta flexibilidad al flujo del programa, permitiéndole adaptarse a una
variedad de situaciones y responder de manera apropiada. Además, en casos específicos,
el anidamiento clarifica la lógica necesaria, especialmente en algoritmos complejos, creando
una estructura jerárquica que refleja la lógica del problema y facilita su comprensión. Estos
aspectos hacen del anidamiento de condicionales una herramienta poderosa para manejar
múltiples condiciones de manera eficiente y clara.

Sin embargo, no todas son ventajas. Un uso descuidado del anidamiento de condicionales
puede llevar a varios inconvenientes. La complejidad del código puede aumentar
significativamente, lo que hace que su comprensión y mantenimiento sean más complicado.
Además, un exceso de anidamiento puede causar confusión, especialmente si el código no
está bien documentado. Este enfoque también puede complicar la depuración, ya que
identificar y corregir errores en estructuras profundamente anidadas puede ser difícil. Existe,
asimismo, el riesgo de redundancia y repetición en la lógica condicional, lo que puede
resultar en un código menos eficiente y más difícil de gestionar.
Ejemplos prácticos de uso de condicionales en PSeInt

Problema 1: Admisión de usuario

Enunciado:
Se solicita al usuario que ingrese su "usuario" y "contraseña". El programa debe validar que
ambos coincidan con los valores previamente almacenados en variables. Si coinciden, se
emite un mensaje de aceptación; de lo contrario, se indica que no fue aceptado.

Solución:

usuarioCorrecto = "usuario123"
contraseñaCorrecta = "claveSegura"

Escribir "Ingrese su usuario:"


Leer usuario
Escribir "Ingrese su contraseña:"
Leer contraseña

Si usuario == usuarioCorrecto Entonces


Si contraseña == contraseñaCorrecta Entonces
Escribir "Usuario aceptado"
Sino
Escribir "Usuario o contraseña incorrecta"
FinSi
Sino
Escribir "Usuario o contraseña incorrecta"
FinSi

Este código pide al usuario que ingrese su nombre de usuario y contraseña. Después, usa
estructuras condicionales anidadas para verificar si los datos ingresados coinciden con los
valores correctos.
Si el nombre de usuario ingresado es igual al correcto, entonces verifica si la contraseña
también coincide. Si ambas coinciden, se muestra el mensaje "Usuario aceptado". En caso
contrario, si alguna de las dos no coincide, se muestra "Usuario o contraseña incorrecta".

Problema 2: Parque de diversiones

Enunciado:
Un parque de diversiones requiere un programa para verificar si un niño puede acceder a un
juego específico. El acceso se permite solo a niños que cumplan con todas estas
condiciones: tener más de 12 años, medir más de 140 centímetros y estar acompañado por
sus padres.
Solución:

Escribir "Ingrese la edad del niño:"


Leer edad
Escribir "Ingrese la altura del niño (en cm):"
Leer altura
Escribir "¿Está acompañado por sus padres? (escriba Verdadero o
Falso):"
Leer acompañadoPorPadres

Si edad > 12 Entonces


Si altura > 140 Entonces
Si acompañadoPorPadres == Verdadero Entonces
Escribir "Acceso permitido al juego."
Sino
Escribir "Acceso denegado: debe estar acompañado por sus
padres."
FinSi
Sino
Escribir "Acceso denegado: la altura debe ser mayor a 140
cm."
FinSi
Sino
Escribir "Acceso denegado: la edad debe ser mayor a 12 años."
FinSi
Este código en PSeInt resuelve el enunciado anterior. Primero, pide al usuario que ingrese
la edad, la altura y si el niño está acompañado por sus padres. Luego, mediante una serie
de condicionales anidados, evalúa si estas entradas cumplen con los criterios establecidos
(más de 12 años, altura mayor a 140 cm, y acompañado por padres). Si se cumplen todas
las condiciones, se permite el acceso; si falta alguna, se niega el acceso y se informa la
razón específica.

También podría gustarte