Si Entonces en PSeInt

Si Entonces en PSeInt | Condicionales Explicados

Tu programa debe hacer una cosa si el usuario es mayor de edad y otra si no lo es, y buscas Si Entonces en PSeInt. Encuentras listas con la mitad de la sintaxis, ejemplos que no funcionan, y nadie te dice qué hacer cuando hay tres o cuatro opciones.

Esta página explica el comando Si Entonces de PSeInt desde cero. Verás la sintaxis, las cinco formas de usarlo, ejemplos probados en el programa con su diagrama de flujo, los errores comunes y cómo elegir entre Si y Segun.

Sintaxis Básica de Si Entonces en PSeInt

El comando Si Entonces toma una decisión en PSeInt. El programa revisa una condición, y si es verdadera ejecuta un bloque de instrucciones, y si es falsa puede ejecutar otro bloque. Es la misma idea del if else de otros lenguajes, donde Si es el if y SiNo es el else. Estas son las dos formas del comando.

Si condicion Entonces
    instrucciones si la condicion es verdadera
FinSi
Si condicion Entonces
    instrucciones si la condicion es verdadera
SiNo
    instrucciones si la condicion es falsa
FinSi

ParteQué haceObligatorio
SiInicia la decisiónSí
CondiciónUna expresión que da Verdadero o FalsoSí
EntoncesMarca el inicio del bloqueSí en el perfil estricto, opcional en el perfil flexible
SiNoInicia el bloque para el caso falsoNo
FinSiCierra la decisiónSí

Reglas que Debes Recordar

La condición debe dar Verdadero o Falso, así que usas operadores de comparación y operadores lógicos, como edad >= 18 o a > 0 Y b > 0. Un número solo no es una condición, y Si x Entonces da el error No coinciden los tipos. Puedes ver todos en nuestra página sobre los operadores de PSeInt.

PSeInt no tiene un comando para else if, así que SiNo Si no existe. Cuando necesitas más opciones, escribes un Si nuevo dentro de SiNo, con su propio FinSi. Cada Si necesita su propio FinSi, y una decisión corta puede ir en una sola línea, como Si x > 3 Entonces Escribir “mayor”; FinSi.

Cómo Usar Si Entonces en PSeInt

Estas cinco formas cubren casi todos los ejercicios. Cada programa tiene un nombre de proceso distinto de los nombres de sus variables, y los diagramas de flujo los dibujó el propio PSeInt.

Condicional Simple, Solo Si

El bloque se ejecuta solo cuando la condición es verdadera, y si es falsa el programa continúa después de FinSi.

Proceso MayorDeEdad
    Definir edad Como Entero;
    Escribir “Escribe tu edad”;
    Leer edad;
    Si edad >= 18 Entonces
        Escribir “Eres mayor de edad”;
    FinSi
    Escribir “Fin del programa”;
FinProceso

Si Entonces Pseint

Con 20 el programa muestra Eres mayor de edad y Fin del programa, y con 15 muestra solo Fin del programa.

Condición Doble, Si y SiNo

Aquí el programa siempre ejecuta uno de los dos bloques.

Proceso ParOImpar
    Definir n Como Entero;
    Escribir “Escribe un numero entero”;
    Leer n;
    Si n MOD 2 = 0 Entonces
        Escribir “Es par”;
    SiNo
        Escribir “Es impar”;
    FinSi
FinProceso

Si Anidado

Con 8 el programa muestra Es par, y con 7 muestra Es impar.

Condiciones Compuestas con Y, O y NO

Puedes unir condiciones con Y, con O y con NO, y puedes usar una variable lógica directamente como condición.

Proceso Entrada
    Definir edad Como Entero;
    Definir tieneBoleto Como Logico;
    Escribir “Escribe tu edad”;
    Leer edad;
    Escribir “Tienes boleto, V o F”;
    Leer tieneBoleto;
    Si edad >= 18 Y tieneBoleto Entonces
        Escribir “Puedes entrar”;
    SiNo
        Escribir “No puedes entrar”;
    FinSi
    Si edad < 12 O edad > 65 Entonces
        Escribir “Tienes descuento”;
    FinSi
    Si NO tieneBoleto Entonces
        Escribir “Compra un boleto”;
    FinSi
FinProceso

Con 20 y V el programa muestra Puedes entrar. Con 10 y F muestra No puedes entrar, Tienes descuento y Compra un boleto.

Si Anidado, el If Anidado en PSeInt

Un Si anidado es un Si dentro del SiNo de otro, y te deja elegir entre más de dos opciones.

Proceso EtapaDeVida
    Definir edad Como Entero;
    Escribir “Escribe tu edad”;
    Leer edad;
    Si edad < 12 Entonces
        Escribir “Eres un nino”;
    SiNo
        Si edad < 18 Entonces
            Escribir “Eres un adolescente”;
        SiNo
            Si edad < 60 Entonces
                Escribir “Eres un adulto”;
            SiNo
                Escribir “Eres un adulto mayor”;
            FinSi
        FinSi
    FinSi
FinProceso

Si Sino

Diagrama de flujo en PSeInt de condiciones Si anidadas

Con 5 el programa muestra Eres un nino, con 15 Eres un adolescente, con 30 Eres un adulto y con 70 Eres un adulto mayor. Fíjate que cada Si tiene su propio FinSi.

Condición Múltiple, Si Anidado o Segun

Cuando tienes varias opciones fijas, como un menú, puedes usar Si anidado, pero Segun es más corto y más fácil de leer. Este menú de restaurante usa Si anidado.

Proceso MenuRestaurante
    Definir plato Como Entero;
    Definir total Como Real;
    Escribir “1 Tacos, 2 Pizza, 3 Ensalada”;
    Leer plato;
    Si plato = 1 Entonces
        total <- 60;
    SiNo
        Si plato = 2 Entonces
            total <- 120;
        SiNo
            Si plato = 3 Entonces
                total <- 45;
            SiNo
                total <- 0;
            FinSi
        FinSi
    FinSi
    Si total > 0 Entonces
        Escribir “Total a pagar “, total;
    SiNo
        Escribir “Opcion no valida”;
    FinSi
FinProceso

Menu Restaurante

Con 1 el total es 60, con 2 es 120, con 3 es 45, y con 9 el programa muestra Opcion no valida. El mismo menú con Segun reemplaza los tres Si anidados con una sola estructura.

Segun plato Hacer
    1:
        total <- 60;
    2:
        total <- 120;
    3:
        total <- 45;
    De Otro Modo:
        total <- 0;
FinSegun

Usa Si anidado cuando las condiciones son rangos, como las edades, y usa Segun cuando cada opción es un valor exacto.

Ejemplos de Si Entonces en PSeInt

Practica con estos ejercicios, que combinan Si con otros comandos. Cada uno fue probado en el programa.

Mayor de Tres Números

Proceso MayorDeTres
    Definir a, b, c, mayor Como Real;
    Escribir “Escribe tres numeros”;
    Leer a, b, c;
    Si a >= b Y a >= c Entonces
        mayor <- a;
    SiNo
        Si b >= c Entonces
            mayor <- b;
        SiNo
            mayor <- c;
        FinSi
    FinSi
    Escribir “El mayor es “, mayor;
FinProceso

Mayor De Tres numeros

Con 4, 9 y 6 el resultado es 9, y con 1, 2 y 3 el resultado es 3.

Positivo, Negativo o Cero

Proceso Signo
    Definir x Como Entero;
    Escribir “Escribe un numero entero”;
    Leer x;
    Si x > 0 Entonces
        Escribir “positivo”;
    SiNo
        Si x < 0 Entonces
            Escribir “negativo”;
        SiNo
            Escribir “cero”;
        FinSi
    FinSi
FinProceso

Con 5 el programa muestra positivo, con -3 muestra negativo y con 0 muestra cero.

Contar los Números Pares con Para y Si

Este programa une un ciclo y un condicional. Para recorre los números del 1 al 20, y Si cuenta solo los pares.

Proceso ContarPares
    Definir i, pares Como Entero;
    pares <- 0;
    Para i <- 1 Hasta 20 Hacer
        Si i MOD 2 = 0 Entonces
            pares <- pares + 1;
        FinSi
    FinPara
    Escribir “Hay “, pares, ” numeros pares del 1 al 20″;
FinProceso

El programa dice que hay 10 números pares.

Comparar Texto

El texto se compara con el símbolo =, y PSeInt distingue entre mayúsculas y minúsculas, así que S no es lo mismo que s. Usa Minusculas para evitar el problema.

Proceso RespuestaSN
    Definir resp Como Caracter;
    Escribir “Quieres continuar, s o n”;
    Leer resp;
    Si Minusculas(resp) = “s” Entonces
        Escribir “Continuamos”;
    SiNo
        Escribir “Adios”;
    FinSi
FinProceso

Con S o con s el programa muestra Continuamos, y con n muestra Adios.

Errores Comunes con Si Entonces

Cada mensaje te dice la causa, y estos son los que más verás con condicionales, probados en el programa.

MensajeCausaSolución
Falta cerrar SIUn Si sin FinSi, un Si anidado que no está cerrado, o SiNo Si escrito como un solo comandoCierra cada Si con su propio FinSi, y escribe un Si nuevo dentro de SiNo
Falta EntoncesSi sin Entonces en el perfil estrictoEscribe Entonces después de la condición
No coinciden los tiposUna condición que no es lógica, como Si x Entonces, o una comparación entre un texto y un númeroUsa una comparación como x > 0, y compara valores del mismo tipo
El texto no coincideS escrita en mayúscula cuando el programa compara con sUsa Minusculas antes de la comparación

Ejercicios de Condicionales en PSeInt para Practicar

Practica los condicionales con estas ideas, y mira el diagrama de flujo que PSeInt dibuja para cada una.

  • Di si un número es divisible entre 3 y entre 5.
  • Pide una calificación de 0 a 10 y muestra una letra, A, B, C o F.
  • Calcula el descuento de una compra, 10 por ciento si es de más de 500.
  • Di si un año es bisiesto con Si y los operadores Y y O.
  • Haz un programa que pida un usuario y una contraseña, y diga si son correctos.

Preguntas Frecuentes

Escribe Si, la condición y Entonces, luego las instrucciones, y cierra con FinSi. Agrega SiNo cuando necesites otro bloque para el caso falso.

El if es Si y el else es SiNo, así que Si … SiNo … FinSi es lo mismo que if else en otros lenguajes.

No, porque PSeInt no tiene else if. Escribe un Si nuevo dentro del SiNo y ciérralo con su propio FinSi, como en el Si anidado de esta página.

Para rangos usa Si anidado, y para opciones exactas usa Segun, que es más corto. Los dos se explican en la sección de la condición múltiple.

Usa el símbolo =, como Si resp = “s”. PSeInt separa mayúsculas y minúsculas, así que usa Minusculas si el usuario puede escribir cualquiera de las dos.

Si ejecuta su bloque una vez, cuando la condición es verdadera. Mientras repite su bloque mientras la condición siga siendo verdadera, así que es un ciclo condicional.

Conclusión

Ahora sabes cómo usar Si Entonces en PSeInt, desde la condición simple hasta el Si anidado y el menú con Segun. El siguiente paso es ver las decisiones como un diagrama de flujo, y puedes aprender cómo en nuestra página sobre diagramas de flujo en PSeInt. Si empiezas desde cero, lee primero cómo usar PSeInt.

Entradas similares

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *