Академический Документы
Профессиональный Документы
Культура Документы
Programacin
Licenciatura en Fsica Departamento
de Fsica ECEN
Computacin y Clculo Numrico
Turner, P.A.
Adaptacion: Walter Ruiz
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
Conocer el papel de las etapas de anlisis, diseo y
programacin en el desarrollo 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 dimetro y altura
area<- 3.14159*diametro*(diametro/2+altura)
volumen<-3.14159*diametro^2*altura/4
Escribir rea del tanque: , area
Escribir volumen : , volumen
Fin
Anlisis
resumido
del
problema
Entrada
Proceso
Salida
Cdigo en C
Ejecutado
en
Computadora con
los compiladores
de C y Basic
Algoritmo
Cdigo en
Basic
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:
Continuacin del
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 Estudiantes (N)
MIENTRAS TP < N
6.1 Leer 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
Estructura secuencial
Estructura selectiva
Estructura iterativa
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 Clave
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
4.
MIENTRAS NE < N
4.1 Leer edad del estudiante (E)
4.2 SE SE + E
4.4 Incrementar el contador: NE NE + 1
FIN-MIENTRAS
6.
7. Fin
Especificacin
en
pseudocdigo
Programa
Comnmente, la
escritura del
pseudocdigo
requiere el uso de la
indentacin de las
diferentes lneas
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
Si
Condicion
Verdadera ?
No
Rectngulo redondeado
Crculo
Representa el constructor de
seleccin (decisin lgica)
Representa el inicio y fin del
diagrama
Misma
hoja
Otra
hoja
Condici
n
Verdader
a?
Si
Accin
No
Condici
n
Verdader
a?
No
Si
Accin 1
Accin 2
Fin_Si
Cond. 1
Verdader
a?
No
Si
Si
Cond. 2
Verdader
a?
No
Accin 1
Si
Accin 2
Accin 3
Fin_Si
Accin 1
Accin 2
Segn <expresin>
< Valor 1 >: < Accin 1 >
< Valor 2 >: < Accin 2 >
< Otro >: < Acciones >
Accin n
Fin_Segn
Si
Accin
No
Accin
Condici
n
Verdader
a?
Si
No
Accin
No
Condici
n
Verdader
a?
Si
Accin
Accin 2
No
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