Tema3 Article 22 23
Tema3 Article 22 23
Tema3 Article 22 23
Elementos de programación
Ánálisis Matemático
Ciencias de la Computación
Universidad de Córdoba
Dpto. Informática y Análisis Numérico
©2022-23
Índice
1. Algoritmos y programas 2
2. Estructura secuencial 5
3. Estructuras condicionales 6
3.1. Estructura condicional simple . . . . . . . . . . . . . . . . . . . . 7
3.2. Estructura condicional doble . . . . . . . . . . . . . . . . . . . . 7
3.3. Estructura condicional múltiple . . . . . . . . . . . . . . . . . . . 8
4. Estructuras repetitivas 10
4.1. Estructura de repetición indexada . . . . . . . . . . . . . . . . . . 10
4.2. Estructura de repetición condicional . . . . . . . . . . . . . . . . 12
4.3. Ruptura de ciclos de repetición . . . . . . . . . . . . . . . . . . . 13
4.4. Estructura de elección entre varios casos . . . . . . . . . . . . . . 14
5. Funciones y Procedimientos 15
5.1. Funciones externas . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.2. Procedimientos o subrutinas . . . . . . . . . . . . . . . . . . . . 17
Contenido
Índice
1. Algoritmos y programas
Algoritmos
La palabra algoritmo se deriva de la traducción al latín de la palabra árabe
alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un
tratado sobre manipulación de números y ecuaciones en el siglo IX.
Algoritmo: Método de resolución de un problema en un número finito de
pasos.
No es la resolución de un problema para unos datos particulares.
Es la resolución de todos los problemas de un tipo, sean cuales sean sus datos
de entrada.
El algoritmo debe contemplar todas las alternativas lógicas posibles que las
distintas combinaciones de datos de entrada puedan presentar.
A cada paso del algoritmo se le llama sentencia o instrucción.
2
Programas
3
(3) Codificación
La codificación es la operación de escribir el código fuente.
Los lógicos, son los más difíciles de detectar, ya que el programa se puede
ejecutar, pero los resultados son incorrectos.
(5) Documentación
Es la guía escrita que explica todo lo referente al programa, lo que resuelve,
cómo lo resuelve, etc.
4
Descripción de algoritmos
Para describir un algoritmo usaremos un seudocódigo.
En la asignatura usaremos
• Sangrías con objeto de identificar más claramente los distintos bloques de algunas construcciones.
• Para el operador de asignación, utilizaremos el símbolo =.
• La lectura de datos (el ordenador recibe datos de algún sitio) la denotaremos por ENTRADA.
• La salida de datos (el programa escribe información en algún medio) la denotaremos por SALI-
DA.
• En rojo, escribiremos las palabras claves que identifican alguna de las estructuras que veremos
más adelante: para, fin para, si, fin si, . . .
• En verde, precedidos por %, escribiremos los posibles comentarios.
Ejemplo de seudocódigo
Algoritmo 1.1: Cómo hacer un salmorejo
DATOS: Tomates,pan,aceite,ajos,vinagre,agua,sal
R ESULTADO: Un buen salmorejo
ENTRADA: Tomates,pan,aceite,ajos,vinagre,agua,sal
1 % La cantidad de cada ingrediente depende del gusto
2 Pelar los ajos y los tomates
3 Poner en la batidora los tomates y los ajos
4 Añadir sal, vinagre, aceite y un poco de pan
5 mientras no esté bien batido todo hacer
6 seguir batiendo
7 si tiene poco aceite entonces
8 añadir aceite
9 fin si
10 si está muy líquido entonces
11 añadir pan
12 fin si
13 fin mientras
14 Rectificar de sal y vinagre
SALIDA: Un cuenco de salmorejo
Tipos de programas
5
• Cíclicos: un grupo de líneas se ejecutan un número determinado de
veces.
• Alternativos: existen ciertas condiciones que provocan la ejecución de
fases diferentes del programa dependiendo de que éstas se cumplan o
no.
2. Estructura secuencial
Estructura secuencial
...
instrucción 1
instrucción 2
instrucción 3
...
3. Estructuras condicionales
Estructuras de control
6
• Condicionales o bifurcaciones: permiten que se ejecuten conjuntos dis-
tintos de instrucciones, en función de que se verifique o no determinada
condición.
• Bucles o repeticiones: permiten que se ejecute repetidamente un con-
junto de instrucciones, bien un número predeterminado de veces, o bien
hasta que se verifique una determinada condición.
7
Algoritmo 3.1: Cálculo del producto y el cociente de dos números
DATOS: Números a y b
R ESULTADO: Producto a ∗ b y cociente a/b cuando b ̸= 0
ENTRADA: a, b
1 % Se calcula la división a/b si b ̸= 0
2 % Si b = 0 sólo se calcula el producto
3 si b ̸= 0 entonces
4 cociente = a/b
SALIDA: ’El cociente es’, cociente
5 fin si
6 producto = a ∗ b
SALIDA: ’ El producto es’, producto
En otras palabras, en este tipo de estructuras hay una alternativa: se hace una
cosa o se hace la otra. En ambos casos, se sigue por la instrucción siguiente
a la estructura.
8
Algoritmo 3.2: Cálculo de las raíces de ax2 + bx + c = 0
DATOS: Coeficientes a, b, c
R ESULTADO: Raíces de la ecuación ax2 + bx + c = 0
ENTRADA: a, b, c
1 % El algoritmo distingue el caso de raíces reales y complejas
2 d = b2 − 4 ∗ a ∗ c
3 dosa = 2 ∗ a
4 si d ≥ 0 entonces
√
5 dd = d
6 x1 = (−b + dd)/dosa
7 x2 = (−b − dd)/dosa
SALIDA: ’La ecuación tiene raíces reales’, x1 , x2
8 si no √
9 dd = −d
10 Re = −b/dosa
11 Im = dd/dosa
SALIDA: ’La ecuación tiene raíces complejas conjugadas’
SALIDA: ’Parte real’, Re
SALIDA: ’Parte imaginaria’, Im
12 fin si
9
Ejemplo de estructura condicional múltiple
Algoritmo 3.3: Determina el signo de un número
DATOS: Número x
R ESULTADO: Signo de x
ENTRADA: x
1 si x > 0 entonces
SALIDA: ’El número es positivo’
2 si no si x < 0 entonces
SALIDA: ’El número es negativo
3 si no
SALIDA: ’El número es nulo’
4 fin si
4. Estructuras repetitivas
4.1. Estructura de repetición indexada
10
Este tipo de estructura permite implementar la repetición de un cierto con-
junto de instrucciones un número predeterminado de veces.
Para ello se utiliza una variable de control del bucle, llamada también índice,
que va recorriendo un conjunto prefijado y ordenado de valores.
Para cada valor del índice en dicho conjunto, se ejecuta una vez el mismo
conjunto de instrucciones.
11
valor inicial, valor final e incremento pueden ser constantes, variables o ex-
presiones y normalmente tomarán valores enteros.
Sus valores se determinan al comienzo del bucle, es decir antes de que nin-
guna instrucción sea ejecutada.
Si, inicialmente, valor final es mayor que valor inicial (recíprocamente, me-
nor que, si el incremento es negativo), entonces el conjunto de instrucciones
no se ejecuta ninguna vez, debido a que ya, en la primera iteración, se ve-
rifica la condición de parada.
12
Si el resultado es VERDADERO, se ejecuta el conjunto de instrucciones y se
vuelve a iterar.
13
Ruptura de ciclos de repetición
Las instrucciones para poner esto en práctica tienen nombres diversos en los
distintos lenguajes de programación.
En M ATLAB, la primera opción se implementa con la instrucción BREAK y
la segunda con la instrucción CONTINUE.
• BREAK abandona el ciclo de repetición definitivamente.
• CONTINUE abandona la iteración en curso, pero comenzando la si-
guiente.
Ambas pueden utilizarse tanto para romper un ciclo de repetición indexada
como un ciclo de repetición condicional.
Cuando se utiliza la orden BREAK dentro de un ciclo repetición indexada, el
índice del bucle conserva, fuera del mismo, el último valor que tomó.
...
Según caso expresión hacer
caso valor 1
instrucciones caso 1
caso valor 2
instrucciones caso 2
...
caso valor k
instrucciones casok
En otro caso
instrucciones
fin Según caso
fin Según caso
...
14
Estructura de elección entre varios casos
El funcionamiento es el siguiente:
Notemos que se ejecuta, como máximo el conjunto de instrucciones de uno de los casos, es decir, una
vez que se ha verificado un caso y se ha ejecutado su conjunto de instrucciones, no se testea el resto de
casos, ya que se abandona la estructura. Obviamente, si la cláusula En otro caso no está presente, puede
ocurrir que no se dé ninguno de los casos.
5. Funciones y Procedimientos
Funciones y Procedimientos
Con lo que hemos visto hasta ahora se pueden escribir programas sencillos
y no demasiado largos.
15
1. Por una parte, puede haber en la resolución de un problema, partes que
se repitan.
2. Por otra parte, es conveniente partir la resolución de un problema com-
plejo en una serie de etapas más cortas que se concatenan para resolver
el problema global.
Por estos motivos se introducen otros dos recursos que son las funciones y
los procedimientos o subrutinas.
Función
Pero también tienen la posibilidad de que el usuario defina sus propias fun-
ciones, que reciben el nombre de funciones externas.
Función
funcion nombrefuncion (lista de parámetros)
inicio
cuerpo de la función
nombrefuncion=valor_a_devolver
fin
16
Función
Cada vez que se llama a una función desde el algoritmo principal se establece una correspondencia entre
los parámetros formales y los parámetros actuales.
Las variables definidas dentro de una función son variables locales, en el sentido de que son inaccesibles
desde “fuera” de esta función.
Las funciones pueden tener muchos argumentos, pero solamente un resultado: el valor de la función.
Esto limita su uso, aunque se encuentran con frecuencia en cálculos científicos. Un concepto más potente
es el proporcionado por los procedimientos que veremos a continuación.
Procedimiento o subrutina
Puede no recibir, o recibir uno o varios valores del programa que lo llama y
no devolver ninguno, uno o varios valores a dicho programa.
Ningún valor está asociado con el nombre del procedimiento; por consi-
guiente, no puede ocurrir en una expresión.
Procedimiento
procedimiento nombreprocedimiento (lista_de_variables)
inicio
instrucciones del procedimiento
fin
17
18