Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2notas Progra2008 Desarrollo de Algoritmos
2notas Progra2008 Desarrollo de Algoritmos
Contenidos
Proceso de la informacin
DATOS DE DATOS DE
ENTRADA PROCESO SALIDA
CPU
Dispositivos Unidad Unidad Dispositivos
de entrada Control Arit-Log de salida
Memoria
Introduccin
Algoritmo
La palabra deriva de la palabra rabe Alkhowarizmi,
nombre de un matemtico y astrnomo rabe que
escribi un tratado sobre manipulacin de nmeros y
ecuaciones en el siglo IX
Se define como la serie de pasos organizados que
describe el proceso que se debe seguir para dar solucin
a un problema especfico
Estos pasos son acciones primitivas, es decir, el
procesador es capaz de ejecutarlas sin informacin
suplementaria
Introduccin
ALGORITMO
Para los mismos datos de Para los mismos datos de
entrada se producen los entrada pueden producirse
mismos datos de salida diferentes de salida
Determinstico No Determinstico
Cualitativos y Cuantitativos
Introduccin
Ejemplo
Calcular la media aritmtica de dos nmeros con una
calculadora
1.Pulsar tecla AC
2.Teclear el primer nmero
3.Pulsar la tecla +
4.Teclear el segundo nmero
5. Pulsar la tecla +
6.Pulsar la tecla /
7. Teclear el nmero 2
8.Pulsar la tecla =
Conceptos de algoritmo
Definicin
Desarrollo
Diseo
Codificacin
Prueba
Fallos de
Mantenimiento
definicin Errores
Modificaciones y adaptaciones
Elementos de un algoritmo
Datos:
Informacin con la cual trabaja la computadora
Tipos de datos:
Se clasifican atendiendo a:
Propiedades
Operaciones que se pueden realizar
Datos Simples:
Numrico (Real o entero)
Carcter (Letras, smbolos, nmeros)
Lgico (Verdadero o Falso)
Datos compuestos
Formados por agrupaciones de otros datos (arreglos,
registros, archivos, apuntadores)
Elementos de un algoritmo
Operaciones primitivas:
Se realizan directamente en un lenguaje de programacin sin
indicar como hay que llevarla a cabo
Numrico: Suma, resta, divisin, multiplicacin
Carcter y numrico: <, >, = =, < =, >=, !=
Lgico
A B AyB AoB No B
V V V V F
V F F V V
F V F V F
F F F F V
Elementos de un algoritmo
Variable:
Entidad que posee un valor y es conocido en un
programa o algoritmo por su nombre (identificador)
El valor de una variable puede cambiar a lo largo del
algoritmo
Todas las variables son de un determinado tipo y
slo pueden tomar valores de ese tipo
Se clasifican por:
Contenido
Numricas
Lgicas
Alfanumricas (String)
Uso
De trabajo
Contadores
Acumuladores
Elementos de un algoritmo
Constante:
Entidad que posee un valor y es conocido por el algoritmo
por su nombre
El valor de una constante no puede cambiar a lo largo del
algoritmo
Se debe inicializar, es decir, se asigna a un identificador su
primer y nico valor
Todas las constante de un determinado tipo slo pueden
inicializarse con valores de ese tipo
Valor constante:
Son valores que aparecen explcitamente en un algoritmo y
no tiene identificador asignado
Elementos de un algoritmo
Identificador:
Representan los datos de un programa.
Un identificador es una secuencia de caracteres que
sirve para identificar una posicin en la memoria de la
computadora, que nos permite accesar a su contenido
Reglas
Debe comenzar con una letra y no contener espacios en
blanco
Letras, dgitos y caracteres como la subraya (_) estn
permitidos despus del primer carcter
La longitud puede ser hasta 8 caracteres
Ejemplo: Num_hrs
Calif3
Elementos de un algoritmo
Expresiones:
Son combinaciones de constantes, variables,
smbolos de operacin, parntesis y nombre de
funciones especiales
Cada expresin toma un valor determinado de
acuerdo a las variables y constantes implicadas y la
ejecucin de las operaciones indicadas
Consta de operadores y operandos
Elementos de un algoritmo
Operaciones de asignacin:
Corresponde a darle a una variable un determinado
valor
A una variable se le puede asignar
un valor constante
el valor de otra variable
el valor de una constante
el resultado de evaluar una expresin
Los valores asignados deben ser del mismo tipo que
la variable
Es una operacin destructiva, el valor anterior se
pierde
Elementos de un algoritmo
Estructuras de control:
Secuencial
Una accin sigue a la otra sin romper la secuencia
Condicional
Se realiza una accin u otra dependiendo del resultado de la evaluacin de
una expresin lgica
Pueden ser simples ( Si entonces), dobles (Si entonces si no), mltiples
(Si entonces si no varias alternativas)
Repetitiva o iterativa
Se repite un conjunto de acciones 1 o ms veces
Hacer-Para
Hacer Mientras
Repetir Hasta
Ejercicios
Diagrama de Flujo
Pseudocdigo
Diagrama estructurado (Nassi-schneiderman)
Representacin de algoritmo
Diagrama de Flujo
Es la representacin grfica de un algoritmo
Esta representacin se da cuando varios smbolos se
relacionan entre s mediante lneas que indican el orden en
que se deben ejecutar los procesos
Los smbolos han sido normalizados por la ANSI
Recomendaciones
Usar lneas de flujo horizontales y/o verticales
Evitar cruce de lneas utilizando conectores
Usar conectores slo cuando sea necesario
Se trazan los smbolos de manera de leer de arriba abajo y de
izquierda a derecha
El texto escrito dentro del smbolo debe ser clara
Representacin de algoritmo
Pseudocdigo
Mezcla de lenguaje de programacin y un idioma que se
emplea
El pseudocdigo se puede definir como un lenguaje de
especificaciones de algoritmos
Es la representacin narrativa de los pasos que debe seguir
un algoritmo para dar una solucin a un problema
El pseudocdigo utiliza palabras que indican el proceso a
realizar
Es lejos el mtodo ms empleado ya que permite en forma
fcil representar las operaciones repetitivas complejas y
pasar a un lenguaje de programacin
Representacin de algoritmo
Diagramas estructurados
Tambin conocido como diagrama de chapin
Similar al diagrama de flujos pero se omiten las flechas de
unin y las cajas son contiguas
Las acciones sucesivas se pueden escribir en cajas
sucesivas
Inicio
Leer (num)
Sumar los n (n>0)
primeros nmeros Suma = 0
naturales Contador = 1
Contador
!=
num +1
Escribir suma
Fin
Algoritmo: SumaNaturales
Variables :
Naturales num, contador, suma
Inicio:
Leer num
suma = 0
contador = 1
Accin
Hacer
suma = suma + contador
contador = contador + 1
Mientras (contador != num +1)
Escribir la suma resultante es
Escribir suma
FIN
Metodologa de diseo
Para un problema existen muchos algoritmos
Para elegir el ms adecuado se debe considerar:
Legibilidad Eficiencia
Portabilidad Modularidad
Modificalidad Estructuracin
Programacin estructurada
Conjunto de tcnicas que aumentan la productividad
Utiliza un nmero limitado de estructuras de control que
minimiza la complejidad de los problemas
Teorema de Bohm-Jacopini: Cualquier programa puede
escribirse utilizando slo 3 estructuras de control (Secuencial,
selectiva, repetitiva)
Metodologa de diseo
Top Down:
Establece una serie de niveles de mayor a menor
complejidad que den solucin al problema
El diseo consiste en una serie de
descomposiciones sucesivas del problema inicial,
que recibe el refinamiento progresivo del repertorio
de instrucciones
A travs de
simplificar el problema y los subproblemas de cada
descomposicin
las diferentes partes se programan por separado
el programa final queda estructurado en forma de bloque
o mdulos lo que hace ms fcil su lectura y mantencin
Metodologa de diseo
Jerarqua de
N iv e l 1 N iv e l 1 subprogramas
N iv e l 2 N iv e l 2 N iv e l 2 N iv e l 2
N iv e l 3
Metodologa de diseo
Bottom up
Este diseo se aplica cuando necesitamos resolver
un problema que ha aparecido de inmediato
Es difcil a travs de este mtodo llegar a integrar
los subsistemas al grado tal de que el empeo
global sea fluido
Generalmente resultan ms costosos y a veces
introducen al sistema datos carentes de valor
Lenguajes de programacin
Lenguaje de mquina
Utiliza cdigo binario
Cada computador posee su propio lenguaje
Una instruccin se compone de:
Cdigo de operacin
Operandos
Ventajas
Entendible por el computador
Es muy eficiente
Inconvenientes
Es complicado trabajar con cdigo binario
El programador debe conocer la arquitectura del ordenador
Depende de la mquina
NO se pueden introducir comentarios
Conjunto de instrucciones reducido
Lenguajes de programacin
Lenguaje ensamblador
Cada instruccin en ensamblador se corresponde con una
instruccin en lenguaje mquina a la que luego ser
traducida
Cada procesador posee su propio lenguaje ensamblador
NO es necesario que el programador conozca la arquitectura
del ordenador
Cdigo de operacin es una palabra con pocas letras (add,
mov...)
Direcciones de memoria y operandos se pueden escribir en
forma de identificadores
Se pueden incluir comentarios
Lenguajes de programacin