Empezando a ganar lógica de programación
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.
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:
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 elDefinir
, 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:
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
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:
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:
En Python, el tipo de dato
Entero
se podría decir que es equivalente a su tipoint
y elReal
al tipofloat
.
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