1. QUE ES UN ALGORITMO?
Conjunto ordenado y finito de operaciones
que permite hallar la solución de un
problema. Método y notación en las distintas
fórmulas del cálculo. El algoritmo constituye
un método para resolver un problema
mediante una secuencia de pasos a seguir.
2. DISEÑO DE UN ALGORITMO
• Fases para el diseño de un algoritmo:
• -Algoritmo narrado
• -Algoritmo detallado
• - Diagrama de flujo o pseudocódigo
Algoritmo narrado
Diseño de un algoritmo Algoritmo detallado
Diagrama de flujo o
pseudocódigo.
3. EJEMPLO DE UN ALGORITMO NARRADO
• Ejemplo: Algoritmo para cambiar un foco fundido
INICIO
1. Situar escalera bajo el foco quemado.
2. Elegir un foco de reemplazo (de la misma potencia que el anterior).
3. Subir por la escalera hasta alcanzar el foco.
4. Girar el foco contra las manecillas del reloj hasta que esté suelto.
5. Ubicar el foco nuevo en el mismo lugar que el anterior.
6. Enroscar en el sentido de las manecillas del reloj hasta que quede
apretado.
7. Bajar de la escalera.
FIN
4. ALGORITMO DETALLADO
• ALGORITMO DETALLADO:
• Es un lenguaje mas limitado , con reglas de sintaxis y semánticas definidas , esto
quiere decir que consiste en crear programas con instrucciones agrupadas en un
estricto orden secuencial.
5. DIAGRAMA DE FLUJO
- Es la representación gráfica del algoritmo o proceso. Se utiliza en
disciplinas como programación, economía, procesos industriales y
psicología cognitiva.
SIMBOLO NOMBRE ACCION
TERMINAL Representa el inicio o el fin del diagrama de flujo.
ENTRADA Y
SALIDA
Representa los datos de entrada y salida.
Decisión Representa las comparaciones de dos o mas
valores , tiene dos salidas de información falso o
verdadero.
PROCESO Indica todas las acciones o cálculos que se
ejecutaran con los datos de entrada u otros
obtenidos.
LINEAS DE
FLUJO DE
INFORMACIÓN
Indican el sentido de la información obtenida y su
uso posterior en algún proceso.
CONECTOR Este símbolo permite identificar la continuación
de la información si el diagrama es muy extenso.
6. EJEMPLO DE UN DIAGRAMA DE FLUJO
• Calcula el área de un triangulo en
• diagrama de flujo.
INICIO
LEER BASE
LEER ALTURA
Result=(BASE*ALTURA)/
2
Escribir "Resultado =
a Result.
Fin
En pseudocódigo.
Inicio
Result<-a*b/2
Introduce la base
Leer a
Introduce la altura
Leer b
“El área de un triangulo
es”, Result.
7. PSEUDOCÓDIGO
• El pseudocódigo es una descripción informal de alto nivel de un algoritmo informático de
programación, compacto e informal, que utiliza las convenciones estructurales de un lenguaje de
programación.
• 1.- Ejemplo de pseudocódigo y en diagrama de flujo.
• Proceso Promedio
• Inicio
• Escribir "Ingrese la cantidad de datos:"
• Leer n
•
• acum<-0
•
• Para i<-1 Hasta n Hacer
• Escribir "Ingrese el dato ",i,":"
• Leer dato
• acum<-acum+dato
• FinPara
•
• prom<-acum/n
•
• Escribir "El promedio es: ",prom
•
• FinProceso
INICIO
"Ingrese la cantidad de datos"
N
Acum<-0
"Ingrese el dato ",i,;
dato
Acum<-acum+dato
prom<-acum+dato
"El promedio es ",prom
FIN
8. ESTRUCTURAS SECUENCIALES
• La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia.
• Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente
hasta el fin del proceso.
En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma:
•
PSEUDOCODIGO :Nombre
•
Variables.
•
Nombre: Tipo de dato.
•
Constantes
•
Nombre = Valor
•
INICIO
• acción
• accion1
• accion2
• acción N
• FIN
INICIO
accion 1
accion 2
accion N
FINAL
9. EJEMPLO DE UNA ESTRUCTURA SECUENCIAL.
• Ejemplo 1: Escriba un algoritmo que pregunte por dos números y muestre como
resultado la suma de estos. Use Pseudocódigo y diagrama de flujos.
•
• PSEUDOCÓDIGO SUMAR
•
• Variables: Num1,Num2,Suma: Entero
•
• INICIO
• Escribir ('introduzca dos números')
• leer (Num1, Num2)
• Suma=Num1 + Num2
• escribir ('La suma es:' , Suma)
• FIN
•
INICIO
num1,num2,Suma:ENTER
O
"Diga dos numeros"
Num1,Num2
Suma<- Num1+Num2
"La suma es ;", Suma
FIN
10. ESTRUCTURAS DE DECISIÓN
• ESTRUCTURAS DE DECISIÓN:
Estas permiten seleccionar la próxima sentencia a ejecutarse sobre la
• base de una decisión (expresión lógica o variable lógica).
Los tipos de estructuras de decisión que podemos encontrar son:
● Simples
● Dobles
• ● Múltiples
ESTRUCTURAS DE DECISION SIMPLE _SI:
• La estructura de selección simple permite ejecutar una acción o un grupo de acciones sólo si se cumple una determinada condición. Si la
condición es verdadera se ejecuta la acción acciona; en caso contrario, no se hace nada.
Pseudocódigo (acción simple)SI( condición )
acciona
•
Pseudocódigo (acción compuesta)
• SI( condición ){
acciona1
acciona2
.
.
.
Accionan.
Si
• Por ejemplo, si se desea cambiar el signo de un número únicamente en caso que sea negativo, podemos escribir:
• SI( numero < 0 )
numero = -1 * numero
Condición
No
Proposición
11. SELECCIÓN DOBLE SI -SINO
• La estructura de selección doble permite seleccionar una ruta de dos rutas posibles en base a la verdad o falsedad de
una condición. Si la condición es verdadera, se ejecuta la acción A; en caso contrario, se ejecuta la acción B.
• Pseudocódigo (acción simple)SI( condición )
acciona
SINO
accionb
Pseudocódigo (acción compuesta)SI( condición ){
acciona1
acciona2
.
.
.
accionan
SINO{
accionb1
accionb2
.
.
.
Accionbn.
• Por ejemplo: la siguiente estructura de selección doble determina si una persona es mayor o menor de edad:
• SI( edad >= 18 )
estado = "Mayor de edad"
SINO
estado = "Menor de edad"
Si No
Accionb
Condición
Acciona
12. ESTRUCTURA DE DECISIÓN MÚLTIPLE SEGUN
• La estructura de selección múltiple SEGUN permite elegir una ruta de entre varias rutas posibles, en base al valor de
una variable que actúa como selector. La estructura compara el valor del selector con las constantes c1, c2, ..., en
orden descendente. En el momento en que se encuentre una coincidencia, se ejecuta la acción correspondiente a
dicha constante y se abandona la estructura.
• PseudocódigoSEGUN( selector ){V
CASO c1 : accion1
CASO c2 : accion2
CASO c3 : accion3
.
.
.
CASO cn : accionn
DEFECTO : acciondefecto
• Por ejemplo, la siguiente estructura de selección múltiple
• determina el nombre de la estación del año conociendo el
• número de la estación
• (1 para Primavera, 2 para Verano, 3 para Otoño y 4 para Invierno) :
SEGUN(numeroEstacion){
CASO 1 : nombreEstacion = "Primavera"
CASO 2 : nombreEstacion = "Verano"
CASO 3 : nombreEstacion = "Otoño"
DEFECTO : nombreEstacion = "Invierno"
selector==c1
selector==c2
selector==cn
acciondecto
accion1 break
accion2 break
accion3 break
F
F
F
V
V
V
13. ESTRUCTURAS DE REPETICIÓN
• Permiten la ejecución de una lista o secuencia de instrucciones (bloque de instrucciones) en varias ocasiones.
• El número de veces que el bloque de instrucciones se ejecutará se puede especificar de manera explícita, o a través de
una condición lógica que indica cuándo se ejecuta de nuevo y cuándo no.
• A cada ejecución del bloque de instrucciones se le conoce como una iteración.
• Existen tres tipos principales de sentencias de repetición:
• - Ciclo mientras
• - Ciclo haga-mientras
• - Ciclo para
14. CICLO MIENTRAS
• El ciclo mientras permite ejecutar un bloque de instrucciones
mientras que una expresión lógica dada se cumpla, es decir,
mientras su evaluación dé como resultado verdadero.
• La expresión lógica se denomina condición y siempre se evalúa
antes de ejecutar el bloque de instrucciones.
• Si la condición no se cumple, el bloque no se ejecuta. Si la
condición se cumple, el bloque se ejecuta, después de lo cual la
instrucción vuelve a empezar, es decir, la condición se vuelve a
evaluar.
• En el caso en que la condición evalúe la primera vez como falsa,
el bloque de instrucciones no será ejecutado, lo cual quiere decir
que el número de repeticiones o iteraciones de este bloque será
cero.
• Si la condición siempre evalúa a verdadero, la instrucción se
ejecutará indefinidamente, es decir, un número infinito de veces.
• En Pseudocódigo:
• mientras <condición> hacer
• <bloque instrucciones>
fin _mientras
ENTRADA
CONDICION
v
BLOQUE
f
Donde, <condición> es la expresión lógica que se evalúa para determinar la ejecución o no del bloque de
instrucciones, y <bloque instrucciones> es el conjunto de instrucciones que se ejecuta si la condición
evalúa a Verdadero.
15. EJEMPLO DE CICLO MIENTRAS
EJEMPLO: Separa un numero entero en sus dígitos
Proceso Dígitos
Escribir "Ingrese un numero entero positivo:"
Leer n
// Primero, Contar Cuantos Dígitos
cont <- 0
aux <- n
Mientras aux>0 hacer // mientras no sea cero
cont <- cont + 1 // contar cuantos dígitos
aux <- trunc(aux/10) // dividir por 10 y
despreciar los de
Fin Mientras
Escribir "El numero tiene ",cont," dígitos"
// luego, mostrarlos uno por uno
aux<-n
Para i<-1 hasta cont Hacer
pot <- 10^(cont-i) // por cuanto hay que
dividir para obtener el primer digito
digito <- trunc (aux / pot) // obtener el
digito
aux <- aux - digito*pot // quitar ese digito al
numero
Escribir "El digito ",i," es ",digito
Fin Para
Fin Proceso
Proceso Digitos
"Ingrese un numero entero positivo"
n
cont<-0
aux <- n
aux>0
cont <- cont + 1
aux <- trunc(aux/10)
"El numero tiene " , cont , "digitos"
aux<-n
pot<-10*(cont-i)
digito<-trunc(aux/pot)
aux<-aux-digito*pot
"El digito",i,"es , digito
Fin proceso
16. CICLO PARA
• El ciclo Para ejecuta un bloque de instrucciones un número determinado de veces.
• Este número de veces está controlado por una variable contadora (de tipo entero) que toma valores desde un límite
inferior hasta un límite superior.
• En cada ciclo después de ejecutar el bloque de instrucciones, la variable contadora es incrementada en 1
automáticamente y en el momento en que la variable sobrepasa el límite superior, el ciclo termina.
– para variable valor_inicial hasta valor_final [incremento valor_incremento] hacer
bloque_de_instrucciones
– fin_para
– En una instrucción repetitiva Para, siempre se utiliza una variable a la que se le debe asignar un valor_inicial.
1. Inicio
2. para contador 1 hasta 10 incremento 1 hacer
3. Escribir (contador)
4. fin_para
5. Fin
VarControl<-Val_inicial
VarControl
<=Val_final
Sentencias
VarControl<-
VarControl+1
SI No
17. EJEMPLO DE CICLO PARA
• // Calcula el promedio de una lista de N datos
• Proceso Promedio:
• Escribir "Ingrese la cantidad de datos:"
• Leer n
•
• acum<-0
•
• Para i<-1 Hasta n Hacer
• Escribir "Ingrese el dato ",i,":"
• Leer dato
• acum<-acum+dato
• FinPara
•
• prom<-acum/n
•
• Escribir "El promedio es: ",prom
•
• FinProceso
Proceso Promedio
"Ingrese la cantidad de datos!
n
acum<-0
ingrese el dato , i
dato
acum<-acum+dato
prom<-acum/n
"El promedio es ",prom
Fin proceso
18. BIBLIOGRAFIA
Paginas Web:
http://es.wikipedia.org/wiki/Algoritmo Wikipedia Definiciones.
http://www.cs.buap.mx/~andrex/ pagina del profesor José Andrés vesques flores
http://informaticaingqmi.blogspot.mx/2010/11/estructuras-de-decision-simples-y.html blog de la Ing. María
Piña.
http://www.fceqyn.unam.edu.ar/infoiq/temas/Algoritmia/Algoritmia/cap03.htm ejercicios propuestos por
David Espinoza Sandoval