Algoritmo para Determinar si un Número es Positivo o Negativo en PSeInt (Guía 2026)

Nivel: Básico Tiempo: ~10 min

La toma de decisiones es el corazón de la programación. En este tutorial, abordaremos uno de los ejercicios fundamentales de la lógica condicional: evaluar si un número ingresado por el usuario es Positivo (+), Negativo (-) o Neutro (0). Utilizando las estructuras de control Si-Entonces y el concepto de condicionales anidados, aprenderás a validar múltiples estados en una sola ejecución. Este conocimiento es la base para validaciones de datos más complejas en el futuro, como verificar saldos bancarios o inventarios.

Conceptos Clave: La Recta Numérica

Para programar esta solución, debemos traducir la matemática básica a lógica computacional:

Operadores Relacionales

Usaremos los operadores de comparación mayor que (>) y menor que (<).
• Si X > 0, el número es Positivo.
• Si X < 0, el número es Negativo.

El Caso del Cero (Neutro)

El cero es un caso especial. No es ni positivo ni negativo. Un algoritmo robusto debe contemplar esta tercera opción explícitamente, usualmente mediante un anidamiento (un «Si» dentro de otro «Si»).

Análisis del Algoritmo

El flujo lógico requiere una estructura de «descarte» secuencial:

  • ENTRADA Un número cualquiera (Entero o Real). Definiremos la variable num.
  • PROCESO Evaluación en cascada:
    1. ¿Es mayor que 0? -> Positivo.
    2. ¿No? Entonces, ¿Es menor que 0? -> Negativo.
    3. ¿Tampoco? Entonces es Cero.
  • SALIDA Imprimir en pantalla la clasificación correspondiente del número.

Código Fuente (Estructura Anidada)

Archivo: PositivoNegativo.psc
Algoritmo DeterminarSigno
    // 1. Definición de Variables
    // Usamos 'Real' para que funcione con decimales como -5.5
    Definir numeroUsuario Como Real;
    
    // 2. Entrada de Datos
    Escribir "=== Clasificador de Números ===";
    Escribir "Ingrese un número para analizar:";
    Leer numeroUsuario;
    
    // 3. Proceso Lógico (Condicionales Anidados)
    
    // Primer filtro: ¿Es mayor que cero?
    Si numeroUsuario > 0 Entonces
        Escribir "El número ", numeroUsuario, " es POSITIVO (+).";
    SiNo
        // Si no es positivo, nos quedan dos opciones: Negativo o Cero
        // Segundo filtro: ¿Es menor que cero?
        Si numeroUsuario < 0 Entonces
            Escribir "El número ", numeroUsuario, " es NEGATIVO (-).";
        SiNo
            // Si no es mayor ni menor, por descarte lógico es Cero
            Escribir "El número es CERO (Neutro).";
        FinSi
    FinSi
    
FinAlgoritmo

Diagrama de Flujo

⚠️ Errores Comunes de Lógica

Cuidado con estas trampas lógicas al programar:

Olvidar el Cero (Falso Negativo)

Muchos escriben: Si num > 0 Entonces Positivo SiNo Negativo.
Error: Si el usuario ingresa 0, el programa dirá incorrectamente que es Negativo. Siempre debes manejar los tres estados.

Confundir Mayor igual (>=)

Si usas Si num >= 0 Entonces Positivo, estás clasificando el 0 como positivo. Matemáticamente esto es debatible (números no negativos), pero en programación básica se suele separar el 0 como neutro.

Reto: Validador Continuo (Bucle)

El siguiente código permite al usuario verificar varios números seguidos sin tener que reiniciar el programa, utilizando un ciclo Repetir-Hasta Que.

Algoritmo VerificadorContinuo
    Definir num Como Real;
    Definir respuesta Como Caracter;
    
    Repetir
        Borrar Pantalla;
        Escribir "--- Nuevo Análisis ---";
        Escribir "Ingrese un número:";
        Leer num;
        
        // Estructura anidada compacta
        Si num = 0 Entonces
            Escribir ">> Resultado: El número es NEUTRO (0)";
        SiNo
            Si num > 0 Entonces
                Escribir ">> Resultado: POSITIVO (+)";
            SiNo
                Escribir ">> Resultado: NEGATIVO (-)";
            FinSi
        FinSi
        
        Escribir "";
        Escribir "¿Desea analizar otro número? (S/N):";
        Leer respuesta;
        
    // El ciclo se repite mientras la respuesta sea S o s
    Hasta Que respuesta = "N" O respuesta = "n"
    
    Escribir "Fin del programa.";
FinAlgoritmo

Preguntas Frecuentes (FAQ)

¿El cero se considera positivo en programación?
Depende del contexto, pero en ejercicios de lógica estándar, el cero se trata como un elemento neutro. En representaciones binarias (complemento a dos), el cero suele tener el bit de signo positivo, pero lógicamente es distinto.
¿Qué pasa si ingreso texto en lugar de un número?
PSeInt generará un error de ejecución "No coinciden los tipos". Para evitarlo, se debe definir la variable como Caracter y luego intentar convertirla, aunque esto requiere lógica avanzada.
¿Puedo usar esto para validar saldos?
¡Exacto! Esta lógica es la base para verificar si una cuenta está en "números rojos" (negativo), en cero (sin fondos) o con saldo a favor (positivo).
¿Existe la función abs() en PSeInt?
Sí, abs(x) devuelve el valor absoluto (siempre positivo). Sin embargo, para determinar el signo original, necesitas las comparaciones > y < que vimos aquí.

¿Listo para el siguiente nivel?

Domina la lógica de programación con nuestra colección completa.

Ver Más Ejercicios Resueltos

Publicaciones Similares

Deja una respuesta

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