Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructurada
Parte I
Dr. Ana Lilia Laureano-Cruces
e-mail: clc@correo.azc.uam.mx
Departamento de Sistemas
UAM, Unidad Azcapotzalco
Objetivos (I)
Que al final del curso el estudiante sea capaz de:
Ubicar la importancia de la programacin en la ingeniera
del software
Explicar el proceso de construccin de un programa
Disear algoritmos para resolver problemas simples
Disear y construir programas modulares bajo el enfoque
de la programacin estructurada utilizando eficazmente y
eficientemente un entorno de desarrollo convencional
Objetivos (II)
Contenido Sinttico
Resolucin de
problemas y los
algoritmos
De los algoritmos
a los programas
Constructores
fundamentales de
la programacin
estructurada
Fundamentos del
diseo modular
Algoritmos
iterativos de
bsqueda y
ordenamiento
Archivos
Introduccin a los
tipos de datos
abstractos
Introduccin al
anlisis y diseo
estructurado del
software
Algoritmo
Especificacin
de las entradas
Accin o
procedimiento
Accin o
procedimiento
...
Accin o
procedimiento
Accin o
procedimiento
Descripcin
del resultado o
efecto
Inicio
Leer base y altura (b, a)
ar b*a
pe 2*(b + a)
Escribir rea del rectngulo: , ar
Escribir Permetro del rectngulo: , pe
Fin
Anlisis resumido
del problema
Entrada
Proceso
Salida
Cdigo en C
Ejecutado
en
Computadora con
los compiladores
de C y Pascal
Algoritmo
Cdigo en
Pascal
Cdigo en
Fortran
Computadora con el
compilador de
Fortran
Descripcin y
anlisis del
problema
Diseo del
algoritmo
Programa en un
lenguaje de
programacin
Datos de salida:
Continuamos con el
anlisis del problema
Procesos:
Inicio
Inicializar en cero el total de personas del sexo masculino: CM
0
Inicializar en cero el total de personas del sexo femenino: CF 0
Inicializar en cero el total de personas procesadas: TP 0
Leer total de deportistas (N)
MIENTRAS
<N
6.1 Leer TP
sexo
de la persona (S)
6.2 SI S =M, entonces CM CM + 1
6.3 SI S = F, entonces CF CF + 1
6.4 Incrementar en 1 el contador: TP TP + 1
FIN-MIENTRAS
1.
2.
3.
4.
5.
Diseo del
algoritmo
Diseo
descendente
Refinamiento
Representacin
grfica
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
...
Subproblema
Subproblema
Subproblema
U
X
P1
P2
P4
P3
P31
P32
P33
Lectura y
validacin
del NIP
Seleccin de
tipo de
cuenta
Consulta de
saldo
Retiro de
efectivo
Seleccin de
tipo de
operacin
Traspaso
entre cuentas
propias
...
...
Finalizar
Pago de
servicios
3.
NE 0, SE 0, SP 0
4.
MIENTRAS NE < N
4.1 Leer edad y peso del estudiante (E, P)
4.2 SE SE + E
4.3 SP SP + P
4.4 Incrementar el contador: NE NE + 1
FIN-MIENTRAS
6.
7.
8.
9. Fin
Especificacin
en
pseudocdigo
Programa
Comnmente, la
escritura del
pseudocdigo
requiere el uso de la
indentacin de las
diferentes lneas
Algoritmo para el
clculo de la media y
desviacin estndar
de la edad y peso de
un grupo de
estudiantes (versin
en pseudocdigo)
ME SE/N
MP SP/N
write La edad promedio es: , ME
write El peso promedio es: , MP
end
Cuando se usa el
pseudocdigo como
lenguaje de
especificacin de un
algoritmo, el
programador puede
concentrarse en la
lgica y en las
estructuras de control
sin preocuparse por
la sintaxis y reglas
del lenguaje de
programacin.
Representacin
Significado
Indica el sentido de
ejecucin de las acciones
Rectngulo
Paralelogramo
Rombo
Representa el constructor de
seleccin (decisin lgica)
Rectngulo redondeado
Crculo
Inicio
Leer N
NE <- 0
4.3 SP <- SP + P
4.4 Incrementar el contador: NE <- NE + 1
SE <- 0
5. FIN-MIENTRAS
Calcular la media de la edad: ME <- SE/N
6. Calcular la media del peso: MP <- SP/N
SP <- 0
Continuacin (IV)
Leer E, P
1. Inicio
SE <- SE+E
SP <- SP+P
4. MIENTRAS NE < N
4.1 Leer edad y peso del estudiante (E, P)
4.2 SE <- SE + E
4.3 SP <- SP + P
NE <- NE+1
Si
NE <N
No
ME <- SE/N
5. FIN-MIENTRAS
Calcular la media de la edad: ME <- SE/N
6. Calcular la media del peso: MP <- SP/N
7. Escribir La edad promedio es: , ME
8. Escribir El peso promedio es: , MP
9. Fin
MP <- SP/N
Escribir
ME, MP
Fin
Palabras reservadas
comnmente usadas en la
especificacin de las acciones
(pueden ser tambin usadas
en espaol)
Begin
read
write
If-then-else
while-end
repeat-until
End
end
Asignacin
Variable = expresion
Ejemplos:
edadPromedio = sumaEdad/N
pesoPromedio = sumaPeso/N
sexo = M
Deporte = atletismo
1.
2.
3.
4.
5.
6.
7.
Inicio
Leer base y altura (b, a)
ar b*a
pe 2*(b + a)
Escribir rea: , ar
Escribir Permetro: , pe
Fin
Diagrama N-S
Inicio
real: b, a, ar, pe
Leer b, a
ar = b*a
pe = 2(b + a)
Escribir rea: , ar
Escribir permetro: , pe
Fin
Diagrama N-S
si <condicin> entonces
condicin
<accin 1>
si_no
No
<acciones>
<accin 2>
selector
Estructura
de control
condicional
CASE
otro
3 ...
<acciones>
Algoritmo
Leer sexo de la persona (S)
SI S =M, entonces CM CM + 1
SI S = F, entonces CF CF + 1
Incrementar el contador: TP TP + 1
S = M
CM = CM + 1
No
CF = CF + 1
(condicin)
HASTA (condicin)
start
read N
real: SE, SP
NE 0
entero: NE
SE 0
NE = 0
SP 0
while NE < N
read E, P
SE SE + E
SP SP + P
NE NE + 1
end while
SE = 0
SP = 0
Mientras
leer E, P
SE = SE + E
SP = SP + P
NE = NE + 1
NE <N
ME = SE/N
MP <- SP/N
MP = SP/N
end
Fin
Dispositivos
de entrada
CU
Unidad de control
Dispositivos
de salida
RAM
Memoria
Memoria externa
(almacenamiento
permanente)
Memoria
central
Memoria
cach
Procesador
El disco duro
Disquetes magnticos
Unidad CD-ROM
Unidad DVD
Memoria USB
Memoria central
Unidad de
control
Unidad lgicoaritmtica
Lenguajes declarativos
Lenguajes
ensambladores
Lenguajes de mquina
Lenguajes ensambladores
El lenguaje ensamblador es una representacin simblica del lenguaje de
mquina asociado. Es decir, cada computadora tiene un lenguaje
ensamblador propio. El lenguaje ensamblador usa palabras nemotcnicas
para representar cada instruccin (cadenas de bits) del lenguaje de
mquina asociado.
Lenguajes declarativos
Son aquellos lenguajes en los que se indica a la computadora qu es lo que
debe hacer, qu es lo que se desea obtener o qu es lo que se est
buscando. Son comnmente lenguajes de rdenes, donde se expresa lo
que hay que hacer en lugar de cmo hacerlo. Ejemplos de lenguajes
declarativos son SQL y Prolog.
Lenguaje de programacin =
Lxico + Sintaxis + Semntica
Lxico
Sintaxis
Semntica
Gestin de memoria
Manejo de excepciones
Implementacin
Pragmtica
Pragmtica
Se refiere a los aspectos prcticos del uso de los programas.
Contexto en el
que se ubican
los lenguajes de
programacin
Mquina virtual
Sistema operativo
Lenguaje
de mquina
Traductores de
lenguaje
Intrpretes
Compiladores
Programa fuente
Intrprete
Traduccin y
ejecucin lnea
a lnea
Programa fuente
Compilador
Programa objeto
Analizador
lxico
Compilador
Analizador
sintctico
Programa
objeto
Analizador
semntico
Linker
Generador
de cdigo
intermedio
Optimizador
de cdigo
Programa
ejecutable
en lenguaje
de mquina
Generador
de cdigo
objeto
Programacin imperativa
Programacin funcional
Programacin lgica
Programacin orientada a objetos
Programacin concurrente
Programacin guiada por eventos
Estrategias de construccin de
programas (I)
Fases de construccin de un programa
Descripcin y
anlisis del
problema
Diseo del
algoritmo
Codificacin
del programa
Ejecucin del
programa
Validacin del
programa
Estrategias de construccin de
programas (II)
Programacin modular (I)
La filosofa subyacente de la programacin modular es la descomposicin
del programa en mdulos independientes, cada uno de los cuales ejecuta
una nica actividad o funcin. Cada mdulo se analiza, se disea, se
codifica y se verifica por separado. El programa es una jerarqua de
mdulos, con un mdulo principal (tambin llamado programa principal) con
una funcin de controlador. El mdulo principal transfiere el control a los
mdulos inmediatamente subordinados (o subprogramas), de modo que
stos puedan ejecutar sus funciones. Una vz que el mdulo subordinado
haya completado su tarea, devolver nuevamente el control al mdulo
controlador.
La descomposicin de un mdulo en submdulos contina hasta que se
llegue a un punto en que el mdulo resultante tenga slo una tarea
especfica que ejecutar (lectura, salida de resultados, procesamiento de
datos o control de otros mdulos).
Estrategias de construccin de
programas (III)
Programacin modular (II)
Mdulo
principal
Mdulo 1
Mdulo 11
Mdulo 2
Mdulo 12
Mdulo 3
Mdulo 31
Mdulo 311
Mdulo 32
Mdulo 312
...
Mdulo N1
Mdulo N
Mdulo N2
Estrategias de construccin de
programas (IV)
Programacin modular (III)
Ejemplo de descomposicin de un programa en mdulos:
programa para el clculo de estadsticas descriptivas
Clculo de
estadsticas
Lectura de
datos
Clculo de
medidas de
tendencia
central
Clculo de
medidas de
dispersin
Generacin de
tablas
resumen
Generacin de
grficos
Estrategias de construccin de
programas (V)
Programacin estructurada (programacin sin goto)
La programacin estructurada es un conjunto de tcnicas que
incorporan:
Diseo modular