Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos
Algoritmos
y desarrollo de software
Marta Zorrilla
Universidad de Cantabria
Metodologa de la programacin
Objetivos
Contenidos
Bibliografa:
[Joy05] Cap. 2, [Ral97] Cap. 1-4,9 y 12, [Bow94] Cap. 2, [Gar02] Cap. 1
Objetivo de la programacin
Fases:
Documentacin
Esquema de documentacin
(proyectos grandes)
Modelo de datos
Modelo de interfaz
Arquitectura software (componentes)
Nombres descriptivos
Indentacin coherente
Debera usar nombres nemnicos para los paquetes, los tipos, las variables y
las etiquetas de ramificacin, mediante los cuales se pudiese vislumbrar su uso
y/o significado.
Establecer convencin y ser coherente con ella. Por ejemplo: empezar en
maysculas los nombres de las funciones, en minsculas los nombres de las
variables y las constantes por completo en maysculas.
Comentarios informativos
Permitir que el lector evite leer alguna parte del cdigo como averiguar el efecto de
algunas frmulas complicadas
Documentar los argumentos y los valores que devuelven las funciones, de modo que
los clientes no tengan que leer la implementacin para comprender cmo usar la
funcin.
Explicar un algoritmo o paso oscuro
Sealar deficiencias del cdigo y partes de cdigo incompleto
Concepto de algoritmo
Definiciones:
conseguir
conseguir que el algoritmo se ejecute y
se efecte el proceso correspondiente
correspondiente
Lenguaje natural
Organigramas
Diagramas Nassi-Shneiderman (N-S)
Pseudocdigo
Inconvenientes:
Organigramas
Terminal
Entrada/Salida
Decisin
Proceso
Conectores
Punto de comienzo o
final de programa
Informacin introducida
para su proceso o generada
como resultado
Organigramas (y II)
Organigramas (y III)
Comenzar
ESCRIBIR
Dame
coeficientes a, b
yc
LEER a, b, c
disc b2-4ac
disc =0
SI
s -b/2a
ESCRIBIR
Solo una
solucin, s
NO
disc > 0
NO
ESCRIBIR
No hay
soluciones reales
FIN
SI
s1 (b +discr)/(2a)
s2 (b -discr)/(2a)
ESCRIBIR
Soluciones:
s1 y s2
Organigramas (y IV)
Organigramas (y V)
Sin embargo:
Diagramas Nassi-Shneiderman
Tienen un enfoque
estructurado y menos visual
para diseo y
documentacin.
Su principal ventaja es que
adopta la programacin
estructurada y utiliza un
nmero limitado de
smbolos, de tal forma que el
diagrama de flujo ocupa
menos espacio y puede
leerse con mayor facilidad.
Existen herramientas CASE
como EasyCode.
Pseudocdigo
Pseudocdigo (y II)
ESCRIBIR Dame los coeficientes de la ecuacin de 2 grado
ESCRIBIR Cunto vale A?
LEER a
ESCRIBIR Cunto vale B?
LEER b
ESCRIBIR Cunto vale C?
LEER c
discr b2-4ac
SI discr=0 ENTONCES
s -b/(2a)
ESCRIBIR Slo hay una solucin:, s
SINO
SI discr>0 entonces
s1 (-b+discr)/(2a)
s2 (-b-discr)/(2a)
ESCRIBIR Las soluciones son:, s1, s2
SINO
ESCRIBIR No hay soluciones reales.
FINSI
FINSI
Anlisis
Diseo
Codificacin
Verificacin
Fase de anlisis
Fase de diseo
Diseo descendente:
Anlisis:
Diseo
Ejercicio
INICIO
CM_INCH = 0.39
ESCRIBIR Dame longitud a convertir
LEER longitud_cm
long_inch longitud_cm * CM_INCH;
ESCRIBIR la longitud en pulgadas es, long_inch
FIN
ESCRIBIR
Dame long_cm
LEER
long_cm
long_inch= CM_INCH * long_cm
ESCRIBIR
long_inch
FIN
Ejercicio
Comenzar
ESCRIBIR
Dame a, b y c
LEER a, b, c
SI
a+b =c
NO
SI
a+c =b
NO
SI
b+c=a
NO
ESCRIBIR
DISTINTAS
FIN
ESCRIBIR
IGUALES
Ejercicio
Comenzar
numero=3
suma=0
indicador=1
INICIO
ESCRIBIR
numero* indicador
numero=3
suma=0
indicador=1
MIENTRAS (indicador<=11)
ESCRIBIR indicador * numero
suma=suma + (indicador*numero)
indicador = indicador +1
FIN MIENTRAS
ESCRIBIR suma
FIN
suma=suma+(indicador * numero)
indicador=indicador+1
SI
indicador
<= 11
NO
ESCRIBIR
suma
FIN
Puntos a recordar