1 de octubre de 2014 1Ing. Cs. de la computación Sección 105
TÓPICOS DE
PROGRAMACIÓN
Algoritmo
1 de octubre de 2014 13Ing. Cs de la computacion Sección 10524 de septiembre de 2014 Ing. Cs. de la computación Sección 105 2
Un algoritmo es un conjunto de pasos,procedimientos o acciones que nos permitenalcanzar un resultado o resolver un problema.
Características de un Algoritmo
Precisión
Los pasos a seguir deben ser precisados claramente.
Determinismo
Dado un conjunto de datos de
entrada, siempre debe arrojar los
mismos resultados.
Finitud
Siempre tiene que finalizar tras un número finito de
acciones.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 3
Fases para el Diseño del Algoritmo
Diseño de un Algoritmo
Diseño Descendente Algoritmo Narrado
Refinamiento por pasos
Algoritmo Detallado
Herramientas de programación
-Diagramas de Flujo
-Pseudocódigo
-Pruebas de escritorio
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 4
Módulos Principales
Algoritmo
Datos de Entrada
Procesamiento de los Datos
Impresión de Resultados
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 5
Ejemplo: Algoritmo para cambiar un
foco fundido
• INICIO
• Situar escalera bajo el foco quemado.
• Elegir un foco de reemplazo (de la misma potencia que el anterior).
• Subir por la escalera hasta alcanzar el foco.
• Girar el foco contra las manecillas del reloj hasta que esté suelto.
• Ubicar el foco nuevo en el mismo lugar que el anterior.
• Enroscar en el sentido de las manecillas del reloj hasta que quede apretado.
• Bajar de la escalera.
• FIN
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 6
Ejemplo: Cambiar la rueda de un automóvil teniendoun gato mecánico, una rueda de reemplazo y unallave inglesa.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 7
InicioPASO 1. Aflojar los tornillos de la rueda ponchada con la llave inglesa.PASO 2. Ubicar el gato mecánico en su sitio.PASO 3. Levantar el gato hasta que la rueda ponchada pueda girar libremente.PASO 4. Quitar los tornillos y la rueda ponchada.PASO 5. Poner rueda de repuesto y los tornillos.PASO 6. Bajar el gato hasta que se pueda liberar.PASO 7. Sacar el gato de su sitio.PASO 8. Apretar los tornillos con la llave inglesa.Fin
Diagrama de Flujo
1 de octubre de 2014 13Ing. Cs de la computacion Sección 10524 de septiembre de 2014 Ing. Cs. de la computación Sección 105 8
Es la esquematización gráfica de un algoritmo quemuestra gráficamente los pasos o procesos a seguirpara alcanzar la solución de un problema.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 9
Símbolos de los diagramas de flujo
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 10
INICIO Y FINIMPRESIÓN DE
RESULTADOS
DIRECCIÓN DE
LAS FLECHAS
LETURA DE DATOS DECISIÓNCONECTOR DENTRO
DE PÁGINA
EXPRESIÓN DE UN
PROCESO
DECISIÓN
MÚLTIPLECONECTOR FUERA
DE PÁGINA
SI NO
Etapas en la construcción de un diagrama de Flujo
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 11
Reglas para la construcción de un diagrama de flujo
Todo diagrama de flujo debe
tener un inicio y un
fin.
Las líneas utilizadas para
indicar la dirección del
flujo del diagrama deben
ser rectas, verticales y
horizontales.
Todas las líneas utilizadas para
indicar la dirección del flujo
del diagrama deben estar
conectadas a alguno de los
símbolos.
El diagrama de flujo debe
ser construido de arriba
hacia abajo y de izquierda a derecha.
Si el diagrama de flujo
requiriera más de una hoja
para su construcción,
debemos utilizar los
conectores.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 12
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 13
Ejemplo: Construya un diagrama de flujo que imprima lamatrícula del alumno y el promedio de 5 calificaciones.
(Lectura de la matricula y las Calificaciones)
(Almacena en la variable PROMel promedio de las calificaciones)
(Escribe la matrícula y el promedio)
Pseudocódigo
1 de octubre de 2014 13Ing. Cs de la computacion Sección 10524 de septiembre de 2014 Ing. Cs. de la computación Sección 105 14
Lenguaje de especificación de algoritmos: Pseudocódigo
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 15
Para representar algoritmos debemos utilizar un métodoindependiente al lenguaje de programación elegido.
El pseudocódigo (o falso lenguaje ) es unaherramienta de programación donde lasinstrucciones se escriben en palabras similares alingles o español, que facilitan tanto la escrituracomo la lectura de programas.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 16
Las palabras reservadas comúnmente utilizadas en pseudocódigo son:
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 17
- Inicio,
- Fin,
- Leer,
- Escribir,
- Si,
- Entonces,
- Sino,
- FinSi,
- Según,
- FinSegun,
- Mientras,
- Hacer,
- FinMientras,
- Repetir,
- HastaQue,
- Para,
- FinPara,
- Desde
Características del
Pseudocódigo
1 de octubre de 2014 Ing. Cs de la computacion Sección 105 1824 de septiembre de 2014 Ing. Cs. de la computación Sección 105 18
Mantiene una sangría adecuada para facilitar laidentificación de elementos que lo componen.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 19
Inicio
Escribir ("Introduce tus 4 calificaciones")
leer c1, c2, c3, c4
promedio<-(c1+c2+c3+c4) /4
según (promedio) hacer
caso 6: escribir ("Regular")
caso 7: escribir ("Bien")
caso 8: escribir ("Muy bien")
caso 9: escribir ("Excelente")
caso 10: escribir ("Excelente")
De otro modo
escribir ("Reprobado")
FinSegun
Fin
Permite la declaración de datos (constantes y/ovariables) manipulados por el algoritmo.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 20
Inicio
Introduzca un numero entero: 7
¿Desea introducir otro numero (s/n)? s
Introduzca un numero entero: 16
¿Desea introducir otro numero (s/n)? s
Introduzca un numero entero: -3
¿Desea introducir otro numero (s/n)? n
La suma de los números ingresados es: 20
Fin
En donde (7, s, 16, -3, n, 20) son variables o constantes
Dispone de un conjunto pequeño de palabrasreservadas para expresar las acciones delalgoritmo.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 21
- Inicio,
- Fin,
- Leer,
- Escribir,
- Si,
- Entonces,
- Sino,
- FinSi,
- Según,
- FinSegun,
- Mientras,
- Hacer,
- FinMientras,
- Repetir,
- HastaQue,
- Para,
- FinPara,
- Desde
Y entre muchas otras.
Supera las 2 principales desventajas deldiagrama de flujo: Lento de crear y difícil demodificar
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 22
INICIO
- CLAVE
- NUM
CLAVE
COS = NUM*8COS = NUM*6COS = NUM*5COS = NUM*2
FIN
12
18 23
29
“Costo total de la llamada”
COST
Permite el seguimiento de la lógica de un algoritmo.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 23
1.- Inicio
2.- Escribir ("Introduce tus 4 calificaciones")
3.- leer c1, c2, c3, c4
4.-
5.- promedio<-(c1+c2+c3+c4) /4
6.-
7.- según (promedio) hacer
8.- caso 6: escribir ("Regular")
9.- caso 7: escribir ("Bien")
10.- caso 8: escribir ("Muy bien")
11.- caso 9: escribir ("Excelente")
12.- caso 10: escribir ("Excelente")
13.- De otro modo
14.- escribir ("Reprobado")
15.- FinSegun
16.- Fin
1 de octubre de 2014 Ing. Cs de la computacion Sección 105 24
Estructuras
Secuenciales
24 de septiembre de 2014 Ing. Cs. de la computación Sección 105 24
También conocidas como sentencias o proposiciones son una unidad compleja, ejecutable en si misma.
La ejecución se realiza de manera secuencial, es decir, cada una a continuación de la anterior.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 25
Inicio
Si (condición) entonces
Sentencia 1
Sentencia 2
…
Sentencia n
FinSi
Fin
Componentes de Estructuras
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 26
Asignación
Es el paso de resultados a una zona de la memoria que será reconocida con el nombre de la variable que recibe el valor. Se clasifica de la siguiente forma:
• Simples: Pasar un valor constate a una variable (a=15)
• Contador: Un verificador del número de veces que se realiza un proceso (a=a+1)
• Acumulador: Un sumador en un proceso (a=a+b)
• De trabajo: Puede recibir el resultado de una operación matemática que involucre muchas variables (a=c+b*2/4).
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 27
Componentes de Estructuras
Lectura
La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor. Esta operación se representa en un pseudocódigo como sigue:
Leer a, b
Donde “a” y “b” son las variables que recibirán los valores
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 28
Componentes de Estructuras
Escritura
Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Este proceso se representa en un pseudocódigo como sigue:
Escribe “El resultado es:”, R
Donde “El resultado es:” es un mensaje que se desea aparezca y R es una variable que contiene un valor.
En pseudocódigo una estructura secuencial se representa de la siguiente manera:
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 29
PSEUDOCODIGO Nombre
VARIABLES
Nombre: Tipo de Dato
CONSTANTES
Nombre = Valor
INICIO
acción
acción1
acción2
.
.
.
acciónN
FIN
Ejemplo. Escriba un algoritmo que pregunte por dos números y muestre como resultado la suma de estos. (Use pseudocódigo)
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 30
PSEUDOCODIGO Sumar
VARIABLES
Num1, Num2, Suma: Entero
INICIO
Escribir (“Introduzca dos números”)
Leer (Num1, Num2)
Suma=Num1 + Num2
Escribir (“La suma es:”, Suma)
FIN
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 31
Estructuras de
decisión simple
Estas permiten seleccionar la próximasentencia a ejecutarse sobre la base de unadecisión (expresión lógica o variable lógica).
Los tipos de estructuras de decisión que podemos encontrar son:● Simples●Dobles●Múltiples
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 32
Si Simple
La estructura de decisión simple es la llamada, Si_Entoncesejecuta una determinada acción cuando se cumpla una ciertacondición y en caso contrario seguir el orden secuencial.
La selección Si_Entonces evalúa la condición y de ACUERDO a los resultados:
• Si es verdadero, ejecuta una o varias opciones.
• Si es falsa, entonces no hace nada y sigue la ejecución normal del programa.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 33
Condición
Sentencia(s)
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 34
Pseudocódigo
1.- Inicio2.- Escribir «Introduce la calificación»3.- Leer CAL4.- Si (CAL>8) entonces4.1 Escribir «APROBADO»
5.- Fin Si6.- Fin
Ejemplo: Dada la calificación de un alumno, escriba «Aprobado» en caso de
que la calificación sea mayor a 8.
Hay un Indicador que esuna variable o unafunción cuyo valor escomparado en cada casocon los valores "Valor",
Si en algún casocoinciden ambos valores,entonces se ejecutaránlas Instruccionescorrespondientes.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 35
Opción múltiple
1 de octubre de 2014 Ing. Cs de la computacion Sección 105 36
Pseudocódigo
1.- Inicio2.- Escribir «Introduce la calificación»3.- Leer CAL4.- Si (CAL>8) entonces4.1 Escribir «APROBADO»4.2 Si No4.3 Escribir «REPROBADO»
5.- Fin Si6.- Fin
Ejemplo: Dada la calificación de unalumno, escriba «Aprobado» si lacalificación es mayor a 8 si no escribir«Reprobado».
Estructuras de
Repetición
1 de octubre de 2014 13Ing. Cs de la computacion Sección 10524 de septiembre de 2014 Ing. Cs. de la computación Sección 105 37
Permiten la ejecución de una lista o secuencia 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”.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 38
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 39
Ciclo Para
El ciclo para ejecuta un bloque de instrucciones
un número determinado de veces. Este número
de veces está determinado por una variable
contadora (de tipo entero) que toma valores
desde
un límite inferior hasta un límite superior.
PSEUDOCODIGO
Para (<variable> := <lim_inf> hasta <lim_sup>)
hacer
<bloque instrucciones>
Fin_Para
1 de octubre de 2014 Ing. Cs de la computacion Sección 105 40
Pseudocódigo:
1.-Inicio
2.- Serie<-0
3.- i<-1
4.- Para i con paso 1 hasta N hacer
4.1 Serie<-Serie+ i**i
i<-i+1
5.-Fin Para
6.- Escribir «La serie es:», Serie
7.- Fin
Ejemplo: Lectura de un número entero N y calcula la suma de la sig. Serie
1**1+2**2+3**3….N
Ejecuta un bloque de instrucciones mientras una expresión lógica dada se
cumpla, es decir su evaluación dé como resultado verdadero.
Siempre se evalúa antes de ejecutar el bloque de instrucciones.
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.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 41
Ciclo Mientras
PSEUDOCODIGO
Mientras <condición> hacer
<bloque instrucciones>
Fin_mientras
1 de octubre de 2014 Ing. Cs de la computacion Sección 105 42
Pseudocódigo:
1.-Inicio
2.- Leer NUM
3.- Mientras (NUM<> -1) hacer
3.1 CUB<- NUM**3
3.2 Escribir «El Cubo del número es:», CUB
3.3 Leer NUM
4.-Fin Mientras
5.- Fin
Ejemplo: Dado un grupo de números naturales positivos, calcule e imprima el cubo de estos
números.
Aquí la condición se evalúa después de ejecutar el bloque de
instrucciones, por tanto, el bloque se ejecuta por lo menos una vez.
Este bloque se ejecuta nuevamente si la condición evalúa a verdadero,
y no se ejecuta más si se evalúa como falso.
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 43
Ciclo Hacer-Mientras
PSEUDOCODIGO
Hacer
<bloque instrucciones>
Mientras <condición>
1 de octubre de 2014 Ing. Cs de la computacion Sección 105 44
Pseudocódigo:
1.-Inicio
2.- SUMGAS<-0
3.- Leer GASTO
4.- Mientras ( GASTO<> -1) hacer
4.1 SUMGAS<- SUMGAS+GASTO
4.2 Leer GASTO
5.- Fin Mientras
6.- Fin
Ejemplo: Obtener la suma de los gastos que hicimos en un último viaje, pero no se saben
exactamente cuántos fueron esos gastos.
http://informaticaingqmi.blogspot.mx/2010/11/estructuras-de-decision-
simples-y.html
http://es.slideshare.net/Picasagrupo3/estructura-de-decisin-simple
http://mrch26-programacion.blogspot.mx/2010/10/decisiones-son-
estructuras-de-control.html
http://algorinteco.blogspot.mx/2011/04/si-anudado-y-estructuras-
secuenciales.html
http://mis-algoritmos.com/aprenda-a-crear-diagramas-de-flujo
http://www.monografias.com/trabajos40/pseudo-codigo/pseudo-
codigo.shtml
1 de octubre de 2014 Ing. Cs. de la computación Sección 105 45
Bibliografía