Algoritmos 2.1
Algoritmos 2.1
Algoritmos 2.1
Capítulo 2 : ALGORITMOS
La primera fase en la construcción de programas la determina el algoritmo a utilizar, que
nos indica una serie de pasos ordenados y lógicos para resolver un problema dado.
1. Fase de solución
2. Fase de implementación (realización) en algún lenguaje de programación.
La fase de solución incluye, a su vez el análisis del problema, el diseño y la verificación del
algoritmo.
Finito. Al seguir el algoritmo, éste debe terminar en algún momento, es decir, tener un
número finito de pasos.
1
Lenguaje de Programación: Algoritmo
Una vez que se tiene el algoritmo concluido, se pasa a la Fase de Implementación, en ésta,
se lleva a cabo la “Codificación” del mismo (traducción del algoritmo a algún lenguaje de
programación), la ejecución y comprobación del programa.
• Estructuras básicas. Los algoritmos deberán ser escritos utilizando únicamente tres tipos
de estructuras básicas: secuenciales, decisión e iteración, las cuales se describen más
adelante.
Para que la programación sea estructurada, los programas han de ser propios.
2
Lenguaje de Programación: Algoritmo
De este teorema se deduce que se han de diseñar los algoritmos empleando exclusivamente
dichas estructuras, las cuales, como tiene un único punto de entrada y único punto de salida,
harán que nuestros programas sean propios.
Un algoritmo puede ser escrito en lenguaje natural, pero esta descripción puede ser
ambigua, por lo que se utilizan diferentes métodos de representación, que permiten evitar
dicha ambigüedad y permitir al mismo tiempo que sea fácilmente codificable. Los métodos
más usuales para la representación de algoritmos son:
• Descripción narrada
• Diagrama de flujo
• Pseudocódigo
DESCRIPCIÓN NARRADA
El uso del lenguaje natural provoca frecuentemente que la descripción sea imprecisa y poco
confiable, por lo que este tipo de representación no es recomendable.
3
Lenguaje de Programación: Algoritmo
DIAGRAMA DE FLUJO
4
Lenguaje de Programación: Algoritmo
PSEUDOCÓDIGO
5
Lenguaje de Programación: Algoritmo
Decisión
simple: si <condición > entonces
acción_si
fin_si
Repetitivas:
mientras <condición>hacer
acciones
fin_mientras
repetir
acciones
hasta <condición>
para <Variable de control> <valor_inicial> hasta
<valor_final> hacer
acciones
fin_para
6
Lenguaje de Programación: Algoritmo
Dato es la expresión general que describe a los elementos con los cuales opera un
programa. Los datos pueden estar expresados como Variables o como Constantes.
CONSTANTES
Las constantes son elementos cuyo valor no cambia durante todo el desarrollo del
algoritmo. Pueden ser literales o simbólicas. Las constantes simbólicas tienen un valor
asignado y se identifican por un nombre. Una constante literal es un valor que se utiliza
como tal.
• Carácter:
7
Lenguaje de Programación: Algoritmo
VARIABLES
Las variables son elementos cuyo valor puede cambiar durante el desarrollo del algoritmo.
Se identifican por un nombre y un tipo. El tipo determina el conjunto de valores que la
variable puede tomar.
Ejemplos:
Las variables pueden ser de tipo: entero, real, carácter, lógico o cadena.
EXPRESIONES
Una expresión es una combinación de operadores y operandos. Los operandos pueden ser
constantes, variables u otras expresiones. Los operadores pueden aritméticos, lógicos o
relacionales.
8
Lenguaje de Programación: Algoritmo
Ejemplo:
Se caracterizan porque una acción se ejecuta detrás de la otra. El flujo del programa
coincide con el orden físico en el que se han ido poniendo las instrucciones. Es decir, es
una secuencia de acciones, donde se ejecuta primero la acción uno, después la dos, luego la
tres, etc. Dichas acciones pueden consistir en acciones simples tales como:
• Leer datos
• Realizar operaciones
• Escribir resultados
Acción 2
Funcionamiento
1. Se lleva a cabo la Acción 1
2. Se lleva a cabo la Acción 2
9
Lenguaje de Programación: Algoritmo
C A+B
Fin
• Se tienen acciones que son “excluyentes”, es decir, que sólo tiene que ejecutarse una o la
otra, pero no ambas.
• Cuando es necesario elegir la acción a realizar de entre un conjunto de acciones
existentes.
• Cuando es necesario verificar que lo datos sean válidos para la aplicación en cuestión, por
ejemplo: no es posible dividir entre 0, la cuota por hora que se le paga a un trabajador no
puede ser negativa, etc.
10
Lenguaje de Programación: Algoritmo
SIMPLES.
Si <condición> entonces
Condición acción
si
no Fin_si
Acción
11
Lenguaje de Programación: Algoritmo
B=0
si no
C A/B
Fin
DOBLES.
12
Lenguaje de Programación: Algoritmo
si Condición
no
Si <condición > entonces
acción_si
Acción_si Acción_no
sino
acción_no
Fin_si
.
Ejemplo 1: Para determinar el mayor de dos números, considerando el hecho de que sean
iguales.
Diagrama de Flujo Pseudolenguaje
Inicio
Inicio
Leer (A,B)
A, B Si A = B entonces
Escribir ‘son
iguales’
sino
Si A > B entonces
A=B Escribir (‘A Mayor’)
si no sino
Escribir (‘B Mayor’)
no Fin_si
A>B Fin
si
‘son iguales’
‘B Mayor’
‘son iguales’
Inicio
13
Lenguaje de Programación: Algoritmo
Inicio
Leer (A,B)
A, B Si B ≠ 0 entonces
C Α¸B
Escribir (C)
sino
Escribir (‘Error !!’)
si B=0
no Fin_si
Fin
C A/B ‘Error’
Inicio
MULTIPLES.
14
Lenguaje de Programación: Algoritmo
Ejemplo: Para realizar alguna de las siguientes operaciones: suma, resta, multiplicación o
división, según la elección del usuario.
Opción
15
Lenguaje de Programación: Algoritmo
3
C A*B
4
Opción
1
2
Multiplicación=C
C A+B C A-B
B=0
Suma=C Resta=C
C A/B Error !
División=C
FIN
Expresiones Lógicas
Las expresiones Lógicas sirven para plantear condiciones, que dan como resultado un valor
booleano (Algebra de Bool) verdadero o falso, es decir se cumple o no se cumple la
condición.
16
Lenguaje de Programación: Algoritmo
Ejemplos:
A>B
B≠0
Operador Significado
Not (no) Negación
And (y) Conjunción
Or (o) Disyunción
Ejemplo:
(A ≠ B) y (B > C)
Iterar o ciclar es repetir una tarea: hacer algo y luego regresar y hacerlo una y otra vez
hasta terminar la tarea.
17
Lenguaje de Programación: Algoritmo
Es usado cuando se conoce de antemano, el número de veces que debe repetirse una
instrucción o conjunto de ellas. Es un ciclo incondicional, que abarca todos los valores de
una progresión, empieza con el primer valor y termina con el ultimo de ellos, los valores de
la progresión deben ser asignados a una variable, la cual se denomina variable de control.
18
Lenguaje de Programación: Algoritmo
Diagrama de Flujo
I VI
F
Condición
Sale del ciclo
V
Acción
Incremento
o
Decremento
Pseudolenguaje
para <Variable de control> <valor_inicial> hasta <valor_final>
hacer
acción 1
.
.
.
acción n
fin_para
Funcionamiento
1. Se inicia la condición de control, se verifica la condición de paro si no se cumple entra al
ciclo y ejecuta la acción.
2. Al llegar al fin regresa el control al encabezado de ciclo, actualizando el valor del
contador de acuerdo al incremento o decremento.
3. Al volver el control del encabezado se pregunta si la variable de control llegó al valor
final:
19
Lenguaje de Programación: Algoritmo
Inicio
suma 0
para j 1 a 5 hacer
suma suma + j
fin_para
escribir(suma)
Fin
inicio
para i 1 a 5 hacer
escribir (‘i =’,i)
para j 1 a 3 hacer
escribir (‘j =’,j)
fin_para
fin_para
fin
20
Lenguaje de Programación: Algoritmo
Diagrama de Flujo
Pseudolenguaje
mientras <condición>hacer
<acciones>
fin_mientras
inicio
escribir ( ‘¿hay empleado (s/n)?’)
leer (otro)
mientras otro = ‘s’ hacer
escribir (‘proporcione nombre, número de horas tra-bajadas
y cuota’)
leer (nombre,hrstrab,cuotahr)
sueldo hrstrab*cuotahr
escribir (nombre, sueldo)
escribir( ‘¿desea procesar otro empleado (s/n)?’)
leer (otro)
fin_mientras
fin
21
Lenguaje de Programación: Algoritmo
Diagrama de Flujo
Acción a
repetir
Condición
La condición Condición aún
es Verdadera no satisfecha
Pseudolenguaje
repetir
<accion>
hasta <condición>
inicio
repetir
escribir (‘proporcione nombre, número de horas trabajadas y
cuota ‘)
leer (nombre,hrstrab,cuotahr)
sueldo =hrstrab*cuotahr
escribir (nombre, sueldo)
escribir ( ‘¿desea procesar otro empleado (s/n)?’)
leer (desea)
hasta desea = ‘n’
fin
22