Contenido del capítulo

En este capítulo, vas a ver como hacer una mini calculadora de operaciones aritméticas de suma, resta, multiplicación y división con dos números pasados como entradas. Es decir, haremos cuatro algoritmos, uno para cada operación. Estos, le pedirán al usuario dos números para hacer cada operación y le devolverán el resultado en una salida de la consola.

Duración estimada de todo el contenido:
Duración del vídeo:
No hay ejercicios en este capítulo. Contiene 1 vídeo.
Tabla de contenidos
Logo

    Empezando a ganar lógica de programación

    Operaciones aritméticas con PSeInt
    Operaciones aritméticas con PSeInt

    Es el momento de empezar a estudiar matemáticas junto con el código; es algo totalmente necesario. No te preocupes si no sabes mucho o nada. Van a ser cosas muy sencillas y las explicaré con todos los detalles necesarios que crea convenientes.

    Cuando se habla de operaciones aritméticas se refiere a acciones matemáticas que se realizan sobre números para obtener un resultado; operaciones tales como la suma, la resta, etc.

    Espacio publicitario

    Algoritmo de operación aritmética de suma

    Empecemos por la suma. Lo primero, es crear dos variables para guardar los dos números que van a utilizarse en la operación:

    Algoritmo suma
        // Variables del algoritmo
        Definir numero1 como Entero
        Definir numero2 como Entero
        Definir resultado como Entero
    FinAlgoritmo

    Otra cosa que puedes hacer para declarar o definir varias variables del mismo tipo a la vez (misma línea de código), es esta:

    Definir numero1, numero2, resultado como Entero

    Utiliza la forma que prefieras. En la primera se detalla cada paso por separado, y puede ser más fácil de entender, y en la segunda, se declara de una forma más práctica, agrupando todo el conjunto en la misma línea.

    En programación, la acción de definir o declarar varias variables a la vez se conoce como declaración múltiple. Entre otras formas de denominarlo.

    He dejado las variables sin inicializar, puesto que por el momento, no requieren ningún valor. Será el usuario quien ponga los números que desee.

    Ahora, le pedimos al usuario que introduzca el primer número y luego el segundo. Para ello, necesitas dos comandos Escribir y dos Leer:

    Algoritmo suma
        // Variables del algoritmo
        Definir numero1 como Entero
        Definir numero2 como Entero
        Definir resultado como Entero
    
        // Solicitudes de números
        Escribir "Por favor, introduzca el primer número a sumar:"
        Leer numero1
        Escribir "Por favor, introduzca el segundo número a sumar:"
        Leer numero2
    FinAlgoritmo

    Con esto, habremos conseguido almacenar los dos números del usuario, sin embargo, nos falta realizar la operación de suma con ellos y luego, mostrársela al usuario. Para hacer esto, hay que crear una tercera variable. En ella, haremos la operación de suma con el operador +:

    Algoritmo suma
        // Variables del algoritmo
        Definir numero1 como Entero
        Definir numero2 como Entero
        Definir resultado como Entero
    
        // Solicitudes de números
        Escribir "Por favor, introduzca el primer número a sumar:"
        Leer numero1
        Escribir "Por favor, introduzca el segundo número a sumar:"
        Leer numero2
    
        // Calcula el resultado de la suma
        resultado <- numero1 + numero2
    
        // Muestra el resultado de la suma
        Escribir "El resultado de la suma entre ", numero1, " + ", numero2, " es igual a ", resultado, "."
    
    FinAlgoritmo

    Para que te salga la frase final (línea 17) bien, fíjate bien en los espacios que dejo en los strings. Si ves algo pegado, modifícalos.

    Espacio publicitario

    Ejecución del algoritmo de suma

    El resultado, es este. Puedes ejecutar el algoritmo todas las veces que quieras e ir probando diferentes números. Ya has creado un algoritmo capaz de hacer cálculos matemáticos.

    Algoritmo de suma en PSeInt

    Diagrama de flujo del algoritmo de suma

    Este diagrama ya se ve mucho más complejo que los que hemos visto hasta ahora.

    Si te fijas, también aparecen los comentarios. Si quieres que no aparezcan en el diagrama puedes activarlos/desactivarlos con este botón:

    Activar/desactivar comentarios en PSeDraw

    A partir de aquí, no mostraré todos los diagramas. Puedes consultarlos en PSeInt por tu cuenta. Si que pondré alguno que otro cuando sea necesario explicar cosas nuevas.

    Problemas con los tipos de datos

    En programación lidiamos constantemente con problemas relacionados con los tipos de datos que admiten las variables. En Python y PSeInt al asignar un valor a una variable, esta se convierte en variable de ese tipo, sin que tengamos que indicarlo en el código.
    En muchos lenguajes de programación, hay que especificar el tipo de dato de las variables obligatoriamente. Java es un ejemplo de esto.

    PSeInt, he indicado en el párrafo anterior, es capaz de detectar el tipo de dato y asociarlo a una variable. Esto solo lo hace, si no hemos utilizado el comando Definir al crear una variable. Si lo utilizamos, el tipo de dato especificado en el Definir, se vuelve obligatorio.

    Mira este ejemplo. Lo entenderás mejor:

    Algoritmo pruebas
        Leer numero1
        Escribir numero1
    FinAlgoritmo

    En este algoritmo, no he definido la variable numero1. Esto deja libertad de poner cualquier tipo de dato en la variable. Por ejemplo:

    Tipos de datos en la entrada de PSeInt

    Puedes probar con enteros, decimales, hasta incluso strings o booleanos.

    El problema de no definir las variables, es el que ves en la siguiente imagen, que puede conducir a errores al no tener un tipo estricto para una variable. Yo quiero que numero1 se utilice para valores numéricos, pero se podría usar también para guardar una cadena de caracteres u otros tipos de datos, y daría error todo el algoritmo. Imagina sumar 10 + “hola”.

    Espacio publicitario

    Volviendo al algoritmo de sumas, al estar definido con variables de tipo Entero, solo puede calcular con valores enteros. Si hacemos una suma con decimales, nos dará error:

    Algoritmo suma
        // Variables del algoritmo
        Definir numero1 como Entero
        Definir numero2 como Entero
        Definir resultado como Entero
    
        // Solicitudes de números
        Escribir "Por favor, introduzca el primer número a sumar:"
        Leer numero1
        Escribir "Por favor, introduzca el segundo número a sumar:"
        Leer numero2
    
        // Calcula el resultado de la suma
        resultado <- numero1 + numero2
    
        // Muestra el resultado de la suma
        Escribir "El resultado de la suma entre ", numero1, " + ", numero2, " es igual a ", resultado, "."
    
    FinAlgoritmo
    Error 313 por tipo de dato incorrecto

    Puedes ver que el error indica que se ha producido en la línea 9. Se ha producido justamente en la primera entrada de datos Leer:

    Leer numero1

    El error indica que el valor a ingresar, debe ser un entero y en su lugar le hemos dado un valor decimal.

    En casi todos los lenguajes de programación, se escribe el punto decimal con el símbolo punto (.), no con una coma. De hecho, PSeInt no es la excepción. En la imagen de abajo, puedes ver el error que se produce al hacerlo:

    Error decimal por usar una coma

    El tipo de dato Real de PSeInt

    Para poder utilizar decimales en la entrada, hay que utilizar el tipo de dato Real de PSeInt en la declaración de las variables.
    Este tipo de dato, admite números enteros y decimales. Seguro que quieres que tu algoritmo acepte cualquier número, así es más perfecto y es más funcional.

    Espacio publicitario

    Hay que declarar las tres variables con tipo de dato Real, ya que el resultado almacenará decimales también.

    Algoritmo suma
        // Variables del algoritmo
        Definir numero1 como Real
        Definir numero2 como Real
        Definir resultado como Real
    
        // Solicitudes de números
        Escribir "Por favor, introduzca el primer número a sumar:"
        Leer numero1
        Escribir "Por favor, introduzca el segundo número a sumar:"
        Leer numero2
    
        // Calcula el resultado de la suma
        resultado <- numero1 + numero2
    
        // Muestra el resultado de la suma
        Escribir "El resultado de la suma entre ", numero1, " + ", numero2, " es igual a ", resultado, "."
    
    FinAlgoritmo

    Ya podemos utilizar tanto decimales como enteros:

    Tipo de dato Real en PSeInt

    En Python, el tipo de dato Entero se podría decir que es equivalente a su tipo int y el Real al tipo float.

    Con esto, espero que hayas entendido la importancia de especificar bien los tipos de datos.

    Algoritmo de operación aritmética de resta

    El siguiente algoritmo que haremos, será el de resta. Será lo mismo, pero realizará restas. Simplemente, copia todo el algoritmo de suma en un archivo nuevo. Los cambios, los tienes marcados en este código:

    Algoritmo resta
        Variables del algoritmo
        Definir numero1 Como Real
        Definir numero2 Como Real
        Definir resultado Como Real
    
        // Solicitudes de números
        Escribir "Por favor, introduzca el primer número a restar:"
        Leer numero1
        Escribir "Por favor, introduzca el segundo número a restar:"
        Leer numero2
    
        // Calcula el resultado de la resta
        resultado <- numero1 - numero2
    
        // Muestra el resultado de la resta
        Escribir "El resultado de la resta entre ", numero1, " - ", numero2, " es igual a ", resultado, "."
    FinAlgoritmo

    En las líneas 8 y 10 he cambiado la palabra mostrada sumar por restar.
    En la línea 14, he cambiado el operador de suma (+) por el de resta (-).
    En la línea 17, he cambiado el texto para que concuerde con lo que hace el algoritmo, restar en lugar de sumar.

    Algoritmo de operación aritmética de multiplicación y el de división

    El operador para realizar multiplicaciones, es por norma general en cualquier lenguaje de programación, el asterisco (*).

    El operador utilizado para divisiones, es la barra (/).

    Espacio publicitario

    A continuación, tienes los dos algoritmos. Podrás ver que apenas cambian ya que el procedimiento es el mismo, solo cambia el operador de la operación y las palabras que mostramos en la consola, como multiplicar o dividir.

    Si estuvieras haciendo programas completos, con estos cuatro algoritmos, ya podrías construir una mini calculadora que le dejase elegir al usuario la operación que quiere realizar. Por el momento, aún no da para eso con lo que hemos dado. Sin embargo, al finalizar este curso, serás capaz de hacerlo y mucho más.

    Algoritmo de multiplicación:

    Algoritmo multiplicacion
        // Variables del algoritmo
        Definir numero1 Como Real
        Definir numero2 Como Real
        Definir resultado Como Real
    
        // Solicitudes de números
        Escribir "Por favor, introduzca el primer número a multiplicar:"
        Leer numero1
        Escribir "Por favor, introduzca el segundo número a multiplicar:"
        Leer numero2
    
        // Calcula el resultado de la multiplicación
        resultado <- numero1 * numero2
    
        // Muestra el resultado de la multiplicación
        Escribir "El resultado de la multiplicación entre ", numero1, " * ", numero2, " es igual a ", resultado, "."
    
    FinAlgoritmo

    Algoritmo de división:

    .Algoritmo division
        // Variables del algoritmo
        Definir numero1 Como Real
        Definir numero2 Como Real
        Definir resultado Como Real
    
        // Solicitudes de números
        Escribir "Por favor, introduzca el primer número a dividir:"
        Leer numero1
        Escribir "Por favor, introduzca el segundo número a dividir:"
        Leer numero2
    
        // Calcula el resultado de la división
        resultado <- numero1 / numero2
    
        // Muestra el resultado de la división
        Escribir "El resultado de la división entre ", numero1, " / ",
        numero2, " es igual a ", resultado, "."
    
    FinAlgoritmo



    Espacio publicitario



    Espacio publicitario