Cap 04
Cap 04
Cap 04
ETIMOLOGIA
• Desde la antigüedad la Programación se ha venido dando un interés mutuo y esto
se puede ver en la actualidad teniendo como base la ampliación de las memorias
centrales y las altas velocidades de los procesadores , el estilo de escritura de los
programas se vuelve una de las características mas sobresalientes en la
programación
Programación Modular
Raíz
Modulo30 Modulo 31
Modulo 41
4.2.1. Tamaño de los módulos.
Esto se origina debido a la complejidad del programa y para un fácil entendimiento
por lo que lo el tamaño mas usual de un módulo seria de una pagina (40lineas de
Instrucciones).
Ejemplo: Diseñar un algoritmo que muestre los sgts resultados:
• Impresión de Cabeceras de un Informe.
• Lectura de Datos.
• Ejecutar Cálculos
• Imprimir líneas detalladas de información.
• Imprimir totales.
Solución
Modulo Principal:
• Llamada a sub. modulo”Impresión de Cabeceras”.
• Llamada a sub. modulo”Proceso de Datos”.
• Llamada a sub. modulo “Impresión de totales”
• Fin del Proceso
Diseño Descendente
Un Programa propio puede ser escrito utilizando solamente tres tipos de estructuras
de control:
• Estructura secuencial.
• Estructura selectiva.
• Estructura repetitiva.
4.4. Estructura secuencial.
Concepto: Es aquella en la que una acción (instrucción) sigue a otra en secuencia,
Las tareas se suceden de tal modo que la salida de un programa es la entrada de
Otro programa hasta llegar al final del proceso del programa.
Estructura secuencial
Acción 1
Acción 2
Acción n
Acción 1
Acción 2
………..
………..
………..
………..
………..
………..
………..
………..
Acción n
Ejemplo:
Calculo de la suma y producto de dos números. Hallar su algoritmo:
Solución
Inicio
Leer (A)
Leer (B)
S A+B
P A*B
Escribir(s, p)
Fin
Diagrama de Flujo
Inicio
Leer
A
Leer
B
S A+B
S A*B
Escribir
S, P
Fin
Tipos
• Alternativa simple (si-entonces/if-then).
• Alternativa doble(si-entonces-si_no / if- then- else).
• Alternativa múltiple(según _sea ,caso de / case)
Acción
Pseudocodigo en Castellano
S1 (acción compuesta)
Si < Condición> entonces
< acción s11 >
< acción s 12 >
.
.
.
Fin _ si
Diagrama de Flujo
Condición
Verdadera Falsa
Acciones
Pseudocodigo en castellano
Si < condición > entonces
< acción SI >
Fin _ si
Pseudocodigo en Inglés
If < condición > then
< Acción SI >
Endif
Si Condición no
Acción S1 Acción S2
Pseudocodigo en Castellano
Si < Condición> entonces
< Acción SI >
Si_no
< Acción S2 >
Fin _ si
Pseudocodigo en Inglés
If < condición > then
< Acción SI >
Else
< Acción S2 >
Endif
¿Condición?
Verdadera Falsa
Acción S1 Acción S2
Pseudocodigo en Castellano
S1 (acción compuesta)
Si < Condición> entonces
< Acción s11 >
.
.
.
< Acción S 2n >
si_no
< Acción S21 >
< Acción S22 >
. .
< Acción S 1n >
Fin _ si
Ejemplo: Dados tres números imprimir o escribir cual es el mayor (Pseudocodigo)
Start
Read: a, b, c
If a > b and b > c then
m a
if b >a and a>c then
m b
else
m c
Write : m
End
Modelo (simplificado)
Según E hacer
.
.
.
Fin _ según
Diagrama de Flujo
1
Condición
2 4 n
3
Bucles infinitos
Algunos bucles no existen fin y otros no encuentran el fin por error en su diseño,
el bucle y el programa corren siempre, o al menos hasta que la computadora se
apaga; en otras ocasiones el bucle no se termina nunca por que nunca se cumple
la condición.
Regla Práctica
Las pruebas o tesis en las expresiones booleanas es conveniente que sean
mayor o menor que en lugar de pruebas de igualdad o desigualdad. En el caso de
la codificación en un lenguaje de programación, esta regla debe seguirse
rígidamente el caso de comparación de números reales.
a) b)
c) d)
Nota: Las variables índices o de control de los bucles toman valores de modo tal que por
cada valor de la variable índice del ciclo externo se debe ejecutar totalmente el bucle
internos .Es posible anidar cualquier tipo de estructura selectiva con tal que cumpla las
condiciones de la grafica vista anteriormente
4.9. La instrucción ir_a (goto).
Aunque la instrucción ir_a (goto) la tienen todos los lenguajes de programación en su
Juego de instrucciones, existen mas que dependen de ella que de otros (BASICC,
FORTRAN. En general, no existe ninguna necesidad de utilizar esta instrucción, ya
que esta instrucción ha sido tema de confusión y controversia por lo que los
Programadores recomiendan no utilizarla en sus algoritmos y programas PASCAL-
Huye de esta instrucción considerándola como nefasta y no se utiliza- ya que es más
Difícil de leer y comprenderlo que otro mismo programa bien escrito, Solamente esta
instrucción se recomienda utilizar en la salida de bucles.Las bifurcaciones o saltos
Producidos por esta instrucción debe realizarse a programas o instrucciones que
Estén enumeradas o que presenten otra referencia para el salto
EJERCICIOS
4.1. Determinar la media de una lista indefinida de números positivos, terminados con un
Número negativo.
a) estructura repetir
b) estructura mientras
c) estructura desde
4.4. Determinar la media de una lista de números positivos terminada con un número no
Positivo después del último número válido.
4.6. Se desea leer las calificaciones de una clase de informática y contar el número total
de aprobados (5 o mayor que 5)
4.7. Leer las notas de una clase de Informática y deducir todas aquellas que sean
Notables (>= 7 y <9)
4.8. Leer 100 números .Determinar la media de los números positivos y la media de los
Números negativos.
4.11. Calcular:
2 n
E(x) = 1+x+x +…+n
2! n!
4.14. Un capital c está situado a un tipo de interés R, ¿al término de cuántos años se
Doblara?
4.15. Los empleados de una fábrica trabajan en dos turnos, diurno y nocturno.Se desea
Calcular el jornal diario de acuerdo con los siguientes puntos:
a) la tarifa de las horas diurnas es de 500 pesetas
b) la tarifa de las horas nocturnas es de 800 pesetas
c) caso de ser domingo, la tarifa se incrementará en 200 pesetas el turno diurno 300
Pesetas el turno nocturno.
4.16. Averiguar si dados dos números leídos del teclado, uno es divisor de otro.
4.17. Se introduce la hora del día en horas, minutos y segundos desea escribir la hora
correspondiente al siguiente segundo.
4.18. Se desea conocer una serie de datos de una empresa con 50 empleados:
a) ¿Cuántos empleados ganan más de 300.000 pesetas al mes( salarios altos)
b) entre 100.000 y 300.000 pesetas (salarios medios)
c) Menos de 100.000 pesetas (salarios bajos empleados a tiempo parcial)?
4.19. Imprimir una tabla de multiplicar como
1 2 3 4 … 15
** ** ** ** ** … **
1* 1 2 3 4 … 15
2* 2 4 6 8 … 30
3* 3 6 9 12 … 45
4* 4 8 12 16 … 60
.
.
.
15* 15 30 45 60 … 225