Anda di halaman 1dari 8

Aprenda a Programar -1-

INTRODUCCIÓN
Las técnicas de desarrollo y diseño de programas
que se utilizan en la programación convencional tienen
inconvenientes, sobre todo a la hora de verificar y modificar
un programa. En la actualidad están adquiriendo gran
importancia las técnicas de programación, cuyo objetivo
principal es el de facilitar la comprensión del programa, y
además permiten, de forma rápida, las ampliaciones y
modificaciones que surjan en la fase de explotación del ciclo
de vida de un programa o una aplicación informática.

En la programación convencional se suele hacer


un uso indiscriminado y sin control de las instrucciones de
salto condicional e incondicional, lo cual produce cierta
complejidad en la lectura y en las modificaciones de un
programa . eliminar estas dificultades es uno de los
propósitos de la programación estructurada y, por ello, en
ocasiones, se ha definido como la técnica de programación
sin saltos condicionales e incondicionales.

De una forma general los diagramas de flujo de


datos son gráficas dirigidas en donde los nodos especifican
las actividades de proceso y los arcos la transferencia de
datos entre nodos de proceso. Como cualquier diagrama de
flujo, estos pueden ser utilizados en cualquier nivel de
abstracción. Un diagrama de datos representa el flujo de
datos entre estatutos individuales o entre bloques de
estatutos dentro de una rutina; flujo de datos entre rutinas
secuénciales, flujo de datos entre procesos concurrentes o
flujo de datos entre sistemas de cómputo distribuidos, donde
cada nodo representa una unidad de proceso
geográficamente separada. Distinto a otros diagramas de
flujo, las burbujas no indican la lógica de decisión o las
condiciones bajo las cuales varios nodos de proceso se
activen.

Los diagramas de datos pueden expresarse


utilizando una notación informal, o por medio de símbolos
especiales para denotar a los nodos de proceso, a los nodos
de entrada.

Los diagramas generales especifican los procesos


de un sistema en forma funcional; cada diagrama describe
las entradas, los pasos de proceso y las salidas para la
función en cuestión; un diagrama general puede indicar la
localización de los diagramas de detalles subordinados
necesarios.

Universidad América – Ing. Oscar David Murcia Portilla


Aprenda a Programar -2-

DIAGRAMAS DE FLUJOS ESTRUCTURADOS


CARACTERÍSTICAS DE LOS DIAGRAMAS ESTRUCTURADOS
Los diagramas de flujo representan la forma más
tradicional para especificar y documentar los detalles En los distintos departamentos de informática
algorítmicos de un producto de programación; estos existentes no siempre se dispone de los mismos
diagramas utilizan cajas rectangulares para especificar las programadores con respecto al tiempo que se pretende que
acciones, cajas en forma de rombos para las proposiciones dure una aplicación, por lo cual es de suma importancia que
de decisión, arcos dirigidos para las interconexiones entre un programa realizado por una persona sea fácil de
las diversas cajas, así como una variedad de formas modificas u mantener por otra. En este sentido, la
especiales para denotar las entradas, las salidas, los diagramación estructurada ofrece muchas ventajas para
almacenamientos, etcétera. logras estos objetivos. Con esto podemos decir que:

TEOREMA DE LA ESTRUCTURA (EL NACIMIENTO DE LOS DIAGRAMAS DE Un diagrama estructurados es:


FLUJO)
Fácil de leer y comprender.
En un inicio, la programación estructurada fue Fácil de codificar en una amplia gama de lenguajes y
desarrollada en sus principios por Edsgar W. Dijkstra en sus en diferentes sistemas.
Notes on Structured Programming y se basa en el Fácil de mantener.
denominado Teorema de la Estructura desarrollado en 1966 Eficiente, aprovechando al máximo los recursos de la
por Bömh y Jacopini, que se ratificó con los trabajos de computadora.
Charlan D. Mills. Modularizable.
En la actualidad existen diversas definiciones de
estos diagramas, pero todas ellas giran alrededor del
teorema de estructura que, como ya hemos dicho, se debe a ALGUNAS DIFERENCIAS DE LOS DIAGRAMAS ESTRUCTURADOS Y LOS
Bömh y Jacopini que inician todo esto con esta técnica de DIAGRAMAS TRADICIONALES.
programación a través de módulos o bloques.
Los diagramas de flujo estructurados difieren de
Para un buen entendimiento del teorema los diagramas tradicionales en que los primeros tienen
mencionado, se realiza una definición previa de algunos de restricción en cuanto a las formas de uso; con esto se
los conceptos que trata el teorema: obtiene que la gráfica obtenida sea un equivalente gráfico de
la descripción por medio del seudocódigo estructurado; un
1. Diagrama Propio. Es aquel que posee un solo punto de ejemplo de las formas comunes y de los equivalentes en
entrada y uno de salida. seudocódigo son:

Los diagramas estructurados poseen una entrada


única y una salida única; así estas formas pueden ser
anidadas dentro de otras formas hasta el nivel deseado de
anidamiento,Smanteniendo el principio del teorema de la
A estructura.

N ALGUNAS VENTAJAS Y DESVENTAJAS SOBRE LOS DIAGRAMAS


TRADICIONALES.

Sabemos ahora, que los diagramas estructurados,


a diferencia de los tradicionales es que, los primeros son una
2. Programa Propio. Es aquel programa que cumple las representación gráfica tal cual de los que es el seudocódigo
siguientes condiciones: estructurados de los programas que desarrollan hoy en día
de acuerdo a la tendencia de la programación modulada.
Posee un solo inicio y un solo fin. También existe un mejor entendimiento a mayor velocidad
Todo elemento del programa es accesible, es decir, de cómo se maneja la transformación de datos.
existe al menos un camino desde el inicio al fin que
pasa a través de él. En los diagramas tradicionales, son mucho
No posee bucles infinitos. mejores para representar las especificaciones del diseño
externo y del diseño interno en cualquier nivel además de
que aquí los diagramas especifican los procesos de un
sistema en forma funcional.

APLICACIONES DE LOS DIAGRAMAS DE FLUJO.


3. Teorema de la Estructura. Todo programa propio,
realice el trabajo que realice, tiene siempre al menos un Los diagramas de flujo estructurados, como su
programa propio equivalente que sólo utiliza las nombre menciona, es actualmente caracterizado como una
estructuras básicas de la programación, que son: herramienta de la programación estructurada. Gracias a esta
herramienta (y debido a las características de la
La secuencia. programación estructurada) podemos interpretar cada acción
de un programa y representarlo gráficamente (en un
La selección.
diagrama estructurado) con la debida estructura (simple o
La repetición. compuesta) de la diagramación estructurada.

Universidad América – Ing. Oscar David Murcia Portilla


Aprenda a Programar -3-

Instrucción(es):Son las acciones a realizar cuando se


PRINCIPALES ESTRUCTURAS DE LOS DIAGRAMAS ESTRUCTURADOS. cumple o no la condición
si no :Precede a las acciones a realizar cuando no se
1. Estructura Secuencial. Es una estructura con una cumple la condición
entrada y una salida en la cual figuran una serie de Dependiendo de si la comparación es cierta o falsa, se
acciones cuya ejecución es lineal y en el orden en que pueden realizar una o más acciones.
aparecen. A su vez. Todas las acciones tienen una
única entrada y una única salida. Múltiples:

Las estructuras de comparación múltiples, son tomas de


decisión especializadas que permiten comparar una variable
2. Estructura Alternativa. Es una estructura con una sola
contra distintos posibles resultados, ejecutando para cada
entrada y una sola salida en la cual se realiza una
caso una serie de instrucciones especificas. La forma común
acción de entre varias, según una condición o se
es la siguiente:
realiza una acción según el cumplimiento o no de una
determinada condición. Esta condición puede ser
simple o compuesta. Las estructuras alternativas
pueden ser:

De dos salidas, en la que una de ellas puede ser la


acción nula.
De tres o más salidas, que también se llama múltiple. Pseudocódigo: Diagrama de flujo:

Simples:

Las estructuras condicionales simples se les conoce como


“Tomas de decisión”. Estas tomas de decisión tienen la
siguiente forma:

Pseudocódigo: Diagrama de flujo:

Dobles: Múltiples (En caso de):

Las estructuras condicionales dobles permiten elegir entre Las estructuras de comparación múltiples, es una toma de
dos opciones o alternativas posibles en función del decisión especializada que permiten evaluar una variable
cumplimiento o no de una determinada condición. Se con distintos posibles resultados, ejecutando para cada caso
representa de la siguiente forma: una serie de instrucciones especificas. La forma es la
siguiente:
Pseudocódigo: Diagrama de flujo:

Donde:
Si:Indica el comando de comparación
Condición : Indica la condición a evaluar
Entonces : Precede a las acciones a realizar cuando se
cumple la condición Pseudocódigo: Diagrama de flujo:

Universidad América – Ing. Oscar David Murcia Portilla


Aprenda a Programar -4-

Escriba “Aprobó el curso”


Fin-Si
FIN

Diagrama de flujo:

Veamos algunos ejemplos donde se aplique todo lo anterior:

Realizar un algoritmo en donde se pide la edad del usuario;


si es mayor de edad debe aparecer un mensaje indicándolo.
Expresarlo en Pseudocódigo y Diagrama de flujos.

Pseudocódigo: Diagrama de flujo:

Se desea escribir un algoritmo que pida la altura de una


persona, si la altura es menor o igual a 150 cm envíe el
mensaje: “Persona de altura baja”; si la altura está entre 151
y 170 escriba el mensaje: “Persona de altura media” y si la
altura es mayor al 171 escriba el mensaje: “Persona alta”.
Exprese el algoritmo usando Pseudocódigo y diagrama de
flujos.

Pseudocódigo:

INICIO
Altura: ENTERO
ESCRIBA “Cuál es tu altura? ”
LEA Altura
Si Altura <=150 entonces
ESCRIBA “persona de altura baja”
Sino
Si Altura <=170 entonces
ESCRIBA “persona de altura media”
Sino
Si Altura>170 ENTONCES
ESCRIBA “persona alta”
Fin-Si
Fin-Si
Fin-Si
FIN
Se pide leer tres notas del alumno, calcular su definitiva en
un rango de 0-5 y enviar un mensaje donde diga si el alumno ¡Es importante ser ordenado en el código que se escribe!
aprobó o reprobó el curso. Exprese el algoritmo usando
Pseudocódigo y diagrama de flujos. Diagrama de flujo:

Pseudocódigo:

INICIO
Not1, Not2, Not 3 :REAL
Def: REAL
LEA Nota1, Nota2, Nota3
Def ß (Not1 + Not2 + Not3) /3
Si Def < 3 entonces
Escriba “Reprobó el curso”
Sino

Universidad América – Ing. Oscar David Murcia Portilla


Aprenda a Programar -5-

Ejemplos

Instrucciones Si-Entonces-SiNo.

El siguiente ejemplo utiliza la instrucción selectiva Si, de la


forma más elemental en Decisión simple.
SI_1.ALG
Dado un numero entre 1 y 7 escriba su correspondiente día INICIO
de la semana así: Entero numero
1- Lunes 2- Martes 3- Miércoles 4- Jueves 5- Viernes 6-
Sábado 7- Domingo Escribir("Digite un número: ")
Exprese el algoritmo usando Pseudocódigo y diagrama de Leer(numero)
flujos. Si (numero > 100) entonces
Escribir("Se digitó un número mayor a 100")
Pseudocódigo: Pseudocódigo: FinSi
FIN
INICIO
Dia: ENTERO 1 El siguiente algoritmo utiliza la instrucción selectiva Si, en
ESCRIBA “Diga un número para escribir su día” decisión simple.
LEA Dia SI_2.ALG
En-caso-de Dia haga INICIO
Caso 1: ESCRIBA “Lunes” Entero numero
Caso 2: ESCRIBA “Martes”
Caso 3: ESCRIBA “Miércoles” Escribir("Digite un número: ")
Caso 4: ESCRIBA “Jueves” Leer(numero)
Caso 5: ESCRIBA “Viernes” Si (numero > 100) entonces
Caso 6: ESCRIBA “Sábado” numero = numero + 10
Caso 7: ESCRIBA “Domingo” Escribir("Se digitó un número mayor a 100 ")
SINO: ESCRIBA “Escribió un numero fuera del rango 1-7” Escribir("y a continuación se incrementa en 10 para
dar ")
Fin-Caso FinSi
FIN Escribir(numero)
FIN.
Diagrama de flujo:
2 El siguiente algoritmo utiliza la instrucción selectiva Si en su
forma completa y de la forma más elemental, es decir sin
bloques de código delimitados. Este es un ejemplo de decisión
múltiple
SI_3.ALG
INICIO
Entero numero

Escribir("Digite un número: ")


Leer(numero)

Universidad América – Ing. Oscar David Murcia Portilla


Aprenda a Programar -6-

Si (numero > 100) entonces


Escribir("Se digitó un número mayor a 100") Si ( (b<a Y a<c) O (c<a Y a<b) ) entonces
Si_no Escribir(a, " es el del medio")
Escribir("Se digitó un número menor o igual a 100") FinSi
FinSi
FIN. Si ( (a<b Y b<c) O (c<b Y b<a) ) entonces
Escribir(b, " es el del medio")
FinSi
3 El siguiente algoritmo permite leer desde el teclado dos
números y mostrar comentarios que digan: "los dos son Si ( (a<c Y c<b) O (b<c Y c<a) ) entonces
positivos" o "los dos son negativos" o "tienen diferente signo". Escribir(c, " es el del medio")
Es una aplicación de decisión múltiple. FinSi
SI_7.ALG
INICIO FIN.
Real a, b
6 El siguiente algoritmo calcula el número medio entre tres
Escribir("Digite real: ") enteros, no es el promedio. Segunda versión
Leer(a) SI_6.ALG
Escribir("Digite real: ")
Leer(b) INICIO
Si ( a > 0 Y b > 0) entonces Entero a, b, c
Escribir("LOS DOS SON POSITIVOS")
Si_no Escribir("Digite entero: ")
Si (a < 0 Y b < 0) entonces Leer(a)
Escribir("LOS DOS SON NEGATIVOS") Escribir("Digite entero: ")
Si_no Leer(b)
Escribir("TIENEN DIFERENTE SIGNO") Escribir("Digite entero: ")
FinSi Leer(c)
FinSi
FIN. Si ( (b<a Y a<c) O (c<a Y a<b) ) entonces
Escribir(a, " es el del medio")
4 El siguiente algoritmo utiliza la instrucción selectiva Si en su SiNo
forma completa de decisión múltiple. Si ( (a<b Y b<c) O (c<b Y b<a) ) entonces
Escribir(b, " es el del medio")
SI_4.ALG SiNo
Escribir(c, " es el del medio")
INICIO FinSi
Entero numero FinSi

Escribir("Digite un número: ") FIN.


Leer(numero)

Si (numero > 100) entonces 7 Se desarrolla un algoritmo el cual lee desde teclado los
Escribir("Se digitó un número mayor a 100 ") datos de una persona así: nombre, edad, sexo y estado civil.
numero = numero + 10 Se debe imprimir el nombre solo si corresponde a un hombre
Escribir("y a continuación se incrementa en 10 para casado menor de 30 años o a una mujer soltera menor de 50
dar ") años.
Si_no SI_20.ALG
Escribir("Se digitó un número menor o igual a 100 ") INICIO
numero = numero - 10 Entero Edad
Escribir("y a continuación se decrementa en 10 para Caracter Sexo, EstadoCivil
dar") Caracter Nombre[25]
FinSi
Escribir(numero) Escribir("Digite el nombre del encuestado: ")
FIN. Leer((Nombre)
Escribir("Sexo (M/F): ")
Leer(Sexo)
5 El siguiente algoritmo calcula el número medio entre tres Escribir("Edad: ")
enteros, no es el promedio. Leer(Edad)
SI_5.ALG Escribir("Estado Civil (Casado, Soltero, Otro): ")
Leer(EstadoCivil)
INICIO
Entero a, b, c Si ( ( Sexo=='M' Y Edad<30 ) O ( Sexo=='F' Y
Edad<50 ) ) entonces
Escribir("Digite entero: ") Escribir(Nombre, " Cumple una de las condiciones")
Leer(a) SiNo
Escribir("Digite entero: ") Escribir("No cumple ninguna de las condiciones
Leer(b) solicitadas")
Escribir("Digite entero: ") FinSi
Leer(c) FIN.

Universidad América – Ing. Oscar David Murcia Portilla


Aprenda a Programar -7-

8 Se debe digitar por teclado un entero de hasta cuatro y = x*x - 4


dígitos, con el siguiente limitante, que el usuario debe tener en SiNo
cuenta al digitar: los dos primeros (00 al 23) significan las Si (x <= 10) entonces
horas en un reloj de 24 horas, y los dos de la derecha y = x^3 + 2*x - 31
representan minutos (00 al 59). A continuación se hace SiNo
aparecer la hora en el formato HH:MM, debiendo aparecer los y = 3*x*x - 10.5*x - 3
cuatro dgitos aún cuando seán ceros. Ejemplo: entrada: 904 FinSi
debe producir en pantalla 09:04. FinSi
Escribir("Variable dependiente Y = ", y)
SI_8.ALG FIN.

INICIO
Entero hora, minuto 11 Un capital Co, está colocado a un tipo de interes I. Al
termino de dos años, calcular el capital final Cf y decir si es el
Escribir("Digite entero de hasta cuatro dígitos: ") doble o mayor del inicial. Sabiendo que Cf = Co (1+i)_, donde
Leer(hora) n es el periodo en este caso dos años.
minuto = hora MOD 100 SI_11.ALG
hora = hora / 100
Si ( hora < 10 Y minuto < 10 ) entonces INICIO
Escribir("0", hora, ":", "0", minuto) Real Co, // capital inicial
Si_no Cf, // capital final
Si ( hora < 10 Y minuto >= 10 ) entonces I // interes
Escribir("0", hora, ":", minuto) Entero n // número de periodos
Si_no
Si ( hora > 10 Y minuto < 10 ) entonces Escribir("Capital inicial $ ")
Escribir(hora, ":", "0", minuto) Leer(Co)
Si_no Escribir("Interes en % por periodo de tiempo: ")
Si ( hora > 10 Y minuto >= 10 ) entonces Leer(I)
Escribir(hora, ":", minuto) I = I /100
FinSi Cf = Co * (1+I) * (1+I)
FinSi Escribir("Capital final = $ ", Cf)
FinSi Si (Cf >= 2*Co) entonces
FinSi Escribir("El Capital es mayor o igual al doble " )
FIN. SiNo
Escribir("El Capital No se duplicó " )
FinSi
9 Dados dos enteros leídos desde teclado, ¿uno es divisor del FIN.
otro?
12 Dados tres valores numéricos por teclado, a, b c: se
SI_9.ALG imprime el mayor, el menor y se calcula su promedio.
SI_12.ALG
INICIO
Entero x, y INICIO
Escribir("Digite separados por un espacio dos números Real a, b, c, menor, mayor, promedio
enteros: ")
Leer(x, y) Escribir("Digite valor para a: ")
Si (x MOD y == 0) entonces Leer(a)
Escribir(y, " es divisor de " , x)
SiNo Escribir("Digite valor para b: ")
Si (y MOD x == 0) entonces Leer(b)
Escribir(x, " es divisor de ", y)
SiNo Escribir("Digite valor para c: ")
Escribir("No son divisores entre si") Leer(c)
FinSi
FinSi Si (a > b Y a > c) entonces
FIN. Escribir("Mayor es ", a)
SiNo
10 Se calcula el valor de Y en función de X, teniendo en
cuenta los siguientes intervalos: Si (b > a Y b > c) entonces
Escribir("Mayor es ", b)
Y = X^2 - 4 si X<4 SiNo
Y = X^3 + 2X - 31 si X>4 y X<=10 Escribir("Mayor es " , c)
Y = 3X^2 - 10.5X - 3 si X>10 FinSi
SI_10.ALG
INICIO FinSi
Real x, y
Si (a < b Y a < c) entonces
Escribir("Digite valor de la variable independiente X: ") Escribir(" Menor es " , a)
Leer(x)
Si (x <= 4) entonces SiNo

Universidad América – Ing. Oscar David Murcia Portilla


Aprenda a Programar -8-

Si (b < a Y b < c) entonces


Escribir("Menor es ", b)
SiNo
Escribir("Menor es " , c)
FinSi

FinSi

promedio = (a + b + c) / 3

Escribir("Promedio de los tres números = " , promedio)

FIN.

Actividad

Los ejemplos propuestos se deben pasar a Diagrama de Flujo


de Datos y lenguaje Visual Basic.

Universidad América – Ing. Oscar David Murcia Portilla

Anda mungkin juga menyukai