1.1.1.-Pseudocódigo
1.1.1. El pseudocódigo¶
El pseudocódigo es una forma de representar algoritmos de forma que sean fácilmente entendibles por cualquier persona, independientemente de su formación en programación. Se trata de un lenguaje de programación simplificado que utiliza expresiones y estructuras de control propias de la programación estructurada.
1. Pseudocódigo. Características¶
- Lenguaje cercano a un lenguaje de programación cuyo objetivo es el desarrollo de algoritmos fácilmente interpretables por un programador.
- Es independiente del lenguaje de programación en el que vayamos a realizar posteriormente nuestra aplicación.
- Debe utilizar un conjunto limitado de expresiones, pero no existe una sintaxis estandarizada.
- Pueden escribir algoritmos que tengan una solución finita y que comiencen desde un único punto de partida.
2. Elementos de un programa en pseudocódigo¶
A pesar de que no existe una norma rígida que establezca cómo realizar la escritura de programas en pseudocódigo, es recomendable seguir una serie de recomendaciones que permitan transcribir el programa al lenguaje de programación que va a usarse con la mayor facilidad.
A la hora de realizar programas en pseudocódigo, podemos utilizar los siguientes elementos:
- Inicio
- Fin
- Escribe "un texto a escribir"
- Lee X
- Si (condición) entonces
- Si (condición) entonces ... Sino ....
- Según (valor) entonces ... opcion1: ... opcion2: ...
- Mientras (condición) hacer ....
- Para X en (1...N) hacer ....
- Operadores matemáticos básicos: +, -, *, /, // y % (módulo).
- Operadores relacionales: == (igual), >, <, >=, <= y != (distinto).
- Operadores lógicos: and, or y not (negación).
- La asignación de valores a una variable la realizaremos con el símbolo =
2.1. Inicio y Fin¶
Todo algoritmo va a empezar por un paso o instrucción Inicio
y va a terminar con la palabra reservada Fin
.
Ejemplo:
2.2. Variables¶
- Una variable va a ser básicamente un contenedor de información al que le vamos a asignar un nombre en minúsculas.
- Podrá contener los siguientes tipos de datos: Cadena de caracteres (se representa con comillas dobles
"Una cadena"
), números (enteros5
y decimales5.4
) y valores lógicos (verdadero
/falso
). - Su valor podrá ser modificado a lo largo del algoritmo.
- El tipo de datos que contiene no vamos a especificarlo explícitamente simplemente al asignar un valor, estaremos definiendo de forma implícita su tipo de datos.
- Podemos concatenar el valor de una variable a una cadena de caracteres con el símbolo
+
. - No será necesario realizar conversiones de tipos de datos para trabajar (ya veréis posteriormente lo necesario que esto es en la programación). Se trata de simplificar al máximo la construcción y manejo de las variables en un algoritmo.
Ejemplo:
Inicio
num1 = 10
Escribe “Introduce un número: ”
Lee num2
suma = num1 + num2
Escribe “La suma de ” + num1 + “ + “ + num2 + “ es ” + suma
iva = 0.21
Escribe “Introduce un precio: ”
Lee precio
Escribe “El precio con IVA es ” + (precio * iva)
Fin
2.3. Estructuras de control¶
El pseudocódigo utiliza las estructuras de control propias de la programación estructurada. * Estructuras de control secuencial. * Estructuras de control condicional. * Estructuras de control iterativa.
Para la construcción de un algoritmo vamos a simplificar estas estructuras lo máximo posible para su mejor entendimiento, ya posteriormente según el lenguaje de programación, veremos todas las opciones que nos proporciona.
2.3.1. Estructuras de control secuencial.¶
Describen bloques de instrucciones que son ejecutadas en orden de aparición (secuencialmente).
Los bloques pueden estar delimitados por las expresiones Inicio
-Fin
o bien estar contenidos en otras estructuras.
2.3.2. Estructuras de control condicional.¶
La estructura de control condicional, nos permite ejecutar instrucciones de forma alternativa o selectiva, es decir encauza el flujo de ejecución hacia un bloque de instrucciones u otro en función de la evaluación que se realiza sobre una condición determinada.
El bloque o secuencia de instrucciones que ejecutará debe estar tabulado y acabará cuando esa indentación finalice, es decir, vuelva a encontrar una instrucción a la misma altura de la expresión Si (condición) entonces
.
Vamos a utilizar: simple, doble, múltiple, anidados.
2.3.2.1 Condicional simple:¶
Establece un conjunto de instrucciones que se ejecutarán si se cumple una condición que retornará un valor lógico.
Ejemplo:
2.3.2.2 Condicional doble:¶
Añade otro bloque de instrucciones que se ejecuta en caso de que no se cumpla la condición.
Ejemplo:
2.3.2.3 Condicional múltiple:¶
Permite definir multiple bloques de instrucciones que se ejecutarán en función de la opción que sea verdadera:
Según valor_selector entonces
opcion1:
Instrucción1
…
InstrucciónI
opcion2:
InstrucciónJ
…
InstrucciónN
2.3.2.3 Estructuras anidados:¶
Permite ejecutar diferentes bloques de instrucciones mediante el anidamiento de diferentes estructuras de control, cuyas condiciones son excluyentes.
Ejemplo:
Si (condición) entonces
Instrucciones1
Sino
Si (condición) entonces
InstruccionesI
Sino
Si (condición) entonces
InstruccionesJ
Sino
InstruccionesN
2.3.3. Estructuras de control iterativa.¶
La estructura de control iterativa permite que un bloque de instrucciones sea ejecutado mientras se cumpla una condición.
Solo vamos a contemplar dos tipos de bucles: Mientras
y Para
.
2.3.3.1. Estructura iterativa Mientras
.¶
Iteración con salida al principio (Mientras): primero se evalúa la condición y en caso de cumplirse ejecuta el bloque de instrucciones. Las instrucciones contenidas deben actuar sobre los valores usados en la condición para evitar bucles infinitos.
En algunos lenguajes suele existir otra estructura similar que podrías asemejarse a
Hacer ... Hasta (condición)
en donde primero se ejecutan las instrucciones y antes de proseguir se evalúa la condición, por tanto, siempre se ejecutará el bloque de instrucciones una vez.
Ejemplos:
Actividad: ¿Cuál es el resultado del algoritmo anterior?
2.3.3.2. Estructura iterativa Para
.¶
Ejecutará el bloque de instrucciones un número determinado de veces. Hace uso de una variable que irá incrementando o decrementando su valor de uno en uno en función de un rango de valores.
Ejemplos:
Inicio
suma = 0
Para i en (1…10) hacer
suma = suma + 1
Escribe “La suma de los primeros 10 números enteros es ” + suma
Fin
Actividad: ¿Cuál es el resultado del algoritmo anterior?
Actividad: Realiza un algoritmo que lea dos números y muestre cuál es el mayor.
Inicio
Lee num1
Lee num2
Si (num1 > num2) Entonces
Escribe num1 + “ es mayor que ” + num2
Sino
Escribe num2 + “ es mayor que ” + num1
Fin
Actividad: Muestra la relación entre dos numeros que introduce el usuario.
Inicio
Lee num1
Lee num2
Si (num1 == num2) entonces
Escribe num1 + “ es igual que ” + num2
Sino
Si (num1 > num2) entonces
Escribe num1 + “ es mayor que ” + num2
Sino
Escribe num2 + “ es mayor que ” + num1
Fin
Actividad: Lee un número, si es mayor que 0 muestra la serie decrementando su valor hasta 0. Por ej:
7 => 7 6 5 4 3 2 1 0
Inicio
Lee num
Si (num > 0) entonces
Escribe num + “ => ”
Mientras (num >= 0) hacer
Escribe num + “ ”
num = num - 1
Fin
Inicio
Lee num
Si (num > 0) entonces
Escribe num + “ => ”
Para i en (num...0) hacer
Escribe i + “ ”
Fin
Actividad: Lee un número, si es mayor que 0 muestra la serie decrementando su valor hasta 0. Por ej:
7 => 7, 6, 5, 4, 3, 2, 1, 0
Inicio
Lee num
Si (num > 0) entonces
Escribe num + “ => ”
Mientras (num >= 0) hacer
Escribe num
Si (num != 0) entonces
Escribe “, ”
num = num - 1
Fin
Actividad: Lee un número, si es mayor que 0 muestra la serie decrementando su valor hasta 0 (usa el bucle Para). Por ej:
7 => 7, 6, 5, 4, 3, 2, 1, 0
Inicio
Lee num
Si (num > 0) entonces
Escribe num + “ => ”
Para i en (num...0) hacer
Escribe i
Si (i != 0) entonces
Escribe “, ”
Fin
Ejercicio 1: Lee un número hasta que el número esté en el rango 1-10
Ejercicio 2: Lee dos números y crea la serie que los une de 1 en 1...
Introduce un número: 4 Introduce otro: 8 4-5-6-7-8 Introduce un número: 12 Introduce otro: 3 3-4-5-6-7-8-9-10-11-12
Ejercicio 3: Lee 3 números y dame los números ordenados de menor a mayor.