Академический Документы
Профессиональный Документы
Культура Документы
0
Entorno gráfico de programación y automatización de diagramas de flujo
Marco Veneros
1
AutoFlujo 2.0
En cumplimiento a lo dispuesto por la ley de Derechos de autor:
Advertencia:
La presentación y disposición en conjunto de AutoFlujo 2.0. Entorno gráfico de
programación y automatización de diagramas de flujo son de propiedad del autor.
Ninguna parte de esta obra puede ser reproducida o transmitida, mediante ningún sistema o
método, electrónico o mecánico (entre ellos el fotocopiado, la grabación o cualquier sistema
de recuperación y almacenamiento de información), sin consentimiento por escrito del autor.
Se exceptúan citas en revistas, diarios o libros, siempre que se mencione la procedencia de las
mismas.
E-mail: marco.veneros@gmail.com
Twitter: @marcoVeneros
Facebook: AutoFlujo
Laboratorio: El Alto, Río Seco, Av. Misael Saracho 1301
Teléfono: 2866294
Celular: 70676646
2
“Los que sueñan de día son conscientes de muchas
cosas que escapan a los que sueñan sólo de
noche”.
3
PRÓLOGO
Ahora bien, en la actualidad, aprender a diseñar programas para computadora es una actividad
que los estudiantes realizan teóricamente, como comúnmente se dice, con lápiz y papel. Pero,
¿no sería más provechoso y útil para los alumnos y potenciales usuarios realizar y probar sus
diagramas de flujo en la misma computadora? Hay buenas probabilidades de que una persona,
conociendo de primera mano la computadora e interactuando desde un principio con ella, se
sienta más atraída a esta maravillosa máquina y, por ende, aprenda a sacarle el mayor provecho
posible.
En virtud de todo lo anterior y después de varios años de desarrollo, el año 2004 tuve la dicha
de presentar la primera versión de AutoFlujo; un programa bastante pequeño que podía
ejecutarse en Ms-Dos y Windows; aunque sólo permitía el diseño y prueba de diagramas de
flujo básicos, la capacidad que poseía de generar código en C y Java fue la característica que
más llamó la atención de los primeros usuarios.
Promocionar la primera versión de AutoFlujo fue una labor tan o más ardua que haberla
programado. Pese a todo, el haber recorrido muchísimos centros de educación y universidades
me permitió conocer inquietudes de docentes y estudiantes acerca de las características que
deseaban tuviera la siguiente versión.
EPÍLOGO
AutoFlujo fue desarrollado, desde un comienzo, con la misión de automatizar el diseño,
ejecución e implementación de diagramas de flujo, para facilitar el proceso de enseñanza y
aprendizaje de programación de computadoras. Si bien la primera versión cumplía en parte
esta misión, AutoFlujo 2.0 la satisface enormemente. Téngalo por seguro: AutoFlujo 2.0 le
facilitará grandemente el diseño de diagramas de flujo, así como coadyuvará a que usted pueda
entender y comprender visualmente su funcionamiento, con el beneficio adicional de poder
obtener la respectiva codificación en C, C++, Java o C#.
De antemano, amigo lector, si tiene alguna duda, inquietud o crítica, por favor hágamela
conocer por mi correo electrónico: marco.veneros@gmail.com, o por mi cuenta de Twitter:
@marcoVeneros.
Espero que este capricho personal llamado AutoFlujo haga que usted se convierta, en el futuro,
en un gran programador. ¡Buena suerte!
El Autor
5
TERMINOLOGÍA BÁSICA
Tanto para la parte introductoria de este libro como para los capítulos dedicados a AutoFlujo,
se utilizaron los siguientes términos:
Variable. Sirve para almacenar un valor que puede ser cambiado durante la ejecución de un
programa.
Proceso. Está conformado por una variable, el operador de asignación (=) y una expresión.
Por lo tanto, se llama proceso a la asignación o almacenamiento del resultado de una expresión
en una variable.
Ejemplos:
1) edad=18
2) x=2.4-(m*k)+3
3) m=y
1) a==b
2) b+2>76
3) m%2==0
Botón principal del mouse (ratón). Generalmente el botón izquierdo es el botón principal.
LA PROGRAMACIÓN DE COMPUTADORAS
Programar computadoras es, por experiencia propia, una actividad fascinante, ya que, a
diferencia de otras, en ésta se trabaja con un elemento intangible e invisible, pero existente y
muy importante en la actualidad: la información. Tal es la esencia y naturaleza de la
programación de computadoras: procesar información para solucionar un problema.
¿Desea ingresar a este fascinante mundo? Si es así, primero debe conocer y dar los pasos
iniciales.
¿Cómo lo
resuelvo?
Problema
planteado
¡Ya sé!
Algoritmo
Herramienta o
de diseño diagrama de
flujo
Utilizar una herramienta de diseño para obtener el algoritmo o diagrama de flujo que resuelva el problema
8
Para la ejecución de esta fase, un programador puede aplicar alguna de las siguientes
herramientas:
1. Inicio
2. Introducir valores para Base y Altura
3. Dividir entre dos el resultado del producto de Base y Altura
4. Mostrar el resultado obtenido
5. Fin
Sin embargo, los algoritmos pueden ser condicionales, es decir, en ellos puede cambiar el
orden de ejecución de los procesos, en función del cumplimiento o no de la condición
establecida.
Ejemplo 1.2: Determinar si una persona es mayor de edad o no, tomando en cuenta si
tiene por lo menos 18 años o más.
1. Inicio
2. Pedir la edad de la persona
3. ¿Tiene 18 años o más? Sí 4, No 5
4. Es mayor de edad
5. Es menor de edad
6. Fin
Los algoritmos constituyen la herramienta más básica y elemental con la que cuenta un
programador.
Inicio
b,h
a=(b*h)/2
Fin
(*) Aunque ambos símbolos pueden utilizarse para desplegar datos, en este manual se utilizó el símbolo de
impresión para evitar cualquier confusión entre el símbolo de la pantalla y el del ciclo repetitivo controlado por
condición.
10
Ejemplo 1.4: Diagrama de flujo del ejemplo 1.2:
Inicio
edad
No Sí
edad >= 18
Fin
Ejemplo 1.5: Prueba de escritorio perteneciente al diagrama de flujo del ejemplo 1.3 con
4 y 7 como valores de entrada.
b h a Resultado
4 7 14 14
Ejemplo 1.6: Dos ejecuciones pertenecientes al diagrama de flujo del ejemplo 1.4
edad Salida
7 Es menor
48 Es mayor
Algoritmo
o Programa
Diagrama de (Software)
flujo
11
2
DISEÑO DE DIAGRAMAS ESTRUCTURADOS
Los ejemplos del capítulo anterior ilustraron cómo se puede plantear un algoritmo, así como su
respectiva representación gráfica. Mas para poder diseñar un diagrama que pueda ser
implementado posteriormente en la computadora, se debe aplicar y cumplir el teorema
fundamental de la programación estructurada, que más o menos dice: Un diagrama o
programa sólo debe tener un punto de entrada (inicio) y un punto de salida (fin), y para su
diseño se pueden utilizar únicamente tres estructuras de control; éstas son: secuenciales,
condicionales y repetitivas.
Proceso1
Proceso2
Proceson
Inicio
n1,n2
S=n1+n2
Fin
12
2.2. ESTRUCTURA DE CONTROL CONDICIONAL
Esta estructura evalúa una condición y luego,
en función del cumplimiento o no de ésta,
Sí ejecuta uno o más procesos.
Condición
Una estructura condicional puede ser simple
No Proceso(s) o de alternativa doble.
Inicio
a,b
May=a
Sí
b>May
No May=b
May
Fin
No Sí
Condición
Procesos Y Procesos X
13
Ejemplo 2.3: Pedir las calificaciones de un alumno correspondientes a tres exámenes, obtener
el respectivo promedio y determinar si dicho alumno aprobó o reprobó. Tomar 51 como nota
mínima de aprobación.
Inicio
n1,n2,n3
pr=(n1+n2+n3)/3
No Sí
pr >= 51
“Reprobado” “Aprobado”
Fin
Si el promedio obtenido es mayor o igual a 51, se muestra “Aprobado”; en el caso contrario, “Reprobado”
Expresión
1 2 3 n Otro
14
Ejemplo 2.4: Realizar un diagrama que pida un número e indique qué día de la semana
representa.
Si el valor introducido está entre 1 y 7, muestra el día de la semana; si no, muestra “Error”.
Condición
de control
Sí
Proceso(s)
Sí
No
15
Ejemplo 2.4: Realizar un diagrama que genere la serie numérica de 1 a 10.
Inicio
c=1
c <= 10
Sí
c=c+1
Sí
No
Fin
La diferencia entre ambas estructuras está en que while (mientras) primero evalúa la condición
de control; si ésta se cumple, ejecuta los procesos del ciclo repetitivo; en cambio, do–while
(hacer-mientras) primero realiza los procesos del ciclo repetitivo y después evalúa la
condición; si se verifica la condición, ejecuta los procesos del ciclo repetitivo; si no, termina.
Proceso(s)
Sí
Condición
de control
16 No
Ejemplo 2.5: Realizar un diagrama para obtener la sumatoria de un número cualquiera.
Inicio
c=0
s=0
c=c+1
s=s+c
Sí
c<n
No
S
Fin
2.3.3. Estructura repetitiva for. Es un bucle repetitivo conocido también como contador
automático. Funciona sobre la base de una variable de control (vc) que, a partir de un valor
inicial (val_ini), puede incrementarse o decrementarse (incr|decr) según la operación que se
emplee. El límite del bucle está definido por una expresión.
Sí
Proceso(s)
No
17
Donde: vc es una variable; val_ini, el valor inicial que toma; límite es una expresión que
delimita el ciclo repetitivo; incr|decr son expresiones que definen de cuánto en cuánto
incrementará o decrementará el ciclo.
x = 10, 0, -1
Sí
x
No
Fin
q= 0, n, 1
Sí
No
Fin
18
3
MODULARIZACIÓN DE PROGRAMAS
Como cualquier otro campo, la metodología de la programación de computadoras es una
actividad que con el paso del tiempo se fue refinando y optimizando. Uno de los serios
problemas que aquejaba a los primeros programas para computadora era que al hacerse grandes
y complejos se hacían difíciles de comprender, y, lo que es peor, doblemente difíciles de
mantener o editar. ¿Cuál era la razón? Los programas eran de un solo bloque; es decir, un solo
programa realizaba muchas tareas y procesos, todos ellos mezclados los unos con los otros.
¿Cómo se puso orden a todo este caos? Aplicando la conocida regla de divide y vencerás.
Ésta aplicada al mundo de la programación de computadoras dice: Un programa debe
organizarse de tal forma que esté compuesto por otros pequeños (subprogramas) que lleven a
cabo tareas específicas.
3.1.1. FUNCIONES
Una función puede recibir uno o más parámetros de entrada, pero siempre devuelve un solo
resultado.
3.1.2. PROCEDIMIENTOS
Un procedimiento puede recibir uno o más parámetros de entrada y devolver uno o más
resultados.
La mayoría de los lenguajes actuales, como Java, C++ y otros, sólo utilizan
funciones. Tal vez Visual Basic sea de los pocos que aún permiten el uso de
procedimientos.
19
El valor de la variable num
es copiado a la variable n
Como verá, tenemos el diagrama principal y la función sumatoria. ¿Cómo funciona? Primero,
el módulo principal pide la introducción de un número (num) y luego cede el control del
programa a la función sumatoria, copiando el valor de num a la variable n de dicha función.
Luego, la función realiza todo el proceso para obtener la sumatoria del número y devuelve este
resultado (t), que es copiado a la variable s de la función principal. Después, el resultado es
mostrado y finaliza la ejecución del diagrama.
De manera similar: la función principal envía n a la función factorial, valor que es recibido
por la variable num; se calcula el factorial y se devuelve el resultado (f), que es asignado a la
variable fac de la función principal.
20
Ejemplo 3. Diseñe una función que calcule la potencia de un número.
En este ejemplo la función principal envía dos parámetros (b,e) a la función potencia, valores
que son asignados a las variables ba y ex; luego calcula la potencia y devuelve el resultado (t),
que es copiado a la variable p de la función principal.
21
3
CONOCIENDO AUTOFLUJO 2.0
AutoFlujo automatiza las fases de diseño, ejecución e implementación de software, con lo cual
aprender a programar computadoras ya no tiene que ser una actividad teórica ni aburrida, como
lo es en la actualidad.
Se diseña el diagrama
22
Se prueba el
funcionamiento
del diagrama.
Se obtiene el programa
en C, C++, Java o C#.
¿Simple, no es cierto? Así de fácil es diseñar un diagrama de flujo, ver y analizar cómo
funciona y, de paso, obtener su respectivo programa fuente en C, C++, Java o C#.
23
3
ELEMENTOS INTERNOS DE AUTOFLUJO
AutoFlujo ha sido diseñado para ser manejado de una forma fácil y sencilla. Por ejemplo, el
manejo de números es implícito, es decir, no es necesario definir tipos de datos como en otros
lenguajes; también, el diseño y notación de los diagramas de flujo es similar a lo planteado al
comienzo de este texto, en el capítulo dedicado a los diagramas de flujo, con ligeras
excepciones que en su momento se indicarán.
Las variables en AutoFlujo, al igual que en otros lenguajes, siempre deben comenzar con una
letra (no acentuada ni eñe); después pueden ser letras (no acentuadas ni eñes) o números y
no deben contener símbolos extraños ni espacios. Aunque AutoFlujo soporta nombres de
variables largos, se recomiendan nombres pequeños que sean significativos y representativos.
24
3.3. OPERADORES RELACIONALES
Estos operadores sirven para comparar los valores de verdad de dos expresiones, para luego
devolver un valor lógico (falso o verdadero).
Operador Significado
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
== Igual a
!= Diferente o distinto de
Ejemplos:
1) k>8
Pregunta si el valor de k es mayor a 8
2) m%2 == 0
Pregunta si el módulo de m entre 2 es igual a 0
3) n != 0
Evalúa si el valor de n es distinto de 0
Por lo tanto, siempre tome en cuenta que las operaciones se llevan a cabo en orden de
prioridad.
a*b + c/3
24 + 4
28
O sea, primero se llevan a cabo las multiplicaciones y divisiones; luego, las sumas.
26
Ejemplo: Sabiendo que m=12, t=4, p=9; evaluar la siguiente expresión:
t ^ 2 - m % t + 5.26
16 - 0 + 5.26
16 + 5.26
21.26
q * r ^ 2 \ w
63 ^ 2 \ w
3969 \ w
992
J + k - m + 45
7 - m + 45
-1 + 45
44
Cuando tienen la misma prioridad, se evalúan de izquierda a derecha
a + b > 57
53 > 57
Primero se lleva a cabo la suma y luego la comparación. El resultado del ejemplo es FALSO,
porque 53 no es mayor a 57.
27
Ejemplo: Suponiendo que p=69, evaluar la siguiente expresión:
p % 2 == 1
1 == 1
V & V
Ahora, si usted desea alterar el orden de prioridad de ejecución de las operaciones, debe utilizar
paréntesis en la escritura de la expresión.
B * ( n - ( z + 45 ) + 3 )
B * ( n - ( 47 ) + 3 )
B * ( n - 47 + 3 )
B * ( - 39 + 3 )
B * ( - 36 )
-108
28
(V & V) | (V)
V|V
Como verá, en ambos ejemplos primero se llevaron a cabo las operaciones contenidas por los
paréntesis.
29
AutoFlujo incorpora la función RANDENT para facilitar la generación de
números aleatorios enteros a personas nuevas en el campo de la
programación de computadoras. Para que RANDENT funcione en C o C++,
se debe utilizar la siguiente notación: int(random(x))
En Java es casi lo mismo, sólo que debe anteponerse el prefijo Math. Por
ejemplo:
w= int(Math.random(6))+ 1
En C# es totalmente diferente; le sugiero que revise un manual de C# para la
generación correcta de números aleatorios.
Ejemplos:
1) x=7
El número 7 es almacenado en la variable x.
2) m=5*(w+b)-3
El resultado de toda la expresión es almacenado en la variable m.
3) t=factorial(6)
El valor que devuelve la función factorial es almacenado en la variable t.
30
31
4
INSTALACIÓN Y DESCRIPCIÓN DE AUTOFLUJO 2.0
Bueno, amigo lector, descritos ya todos los elementos internos y características de AutoFlujo
2.0, estamos listos para comenzar a aplicar y utilizar esta valiosa herramienta.
¡IMPORTANTE!
Dependiendo del sistema operativo que tenga la computadora en que se instalará
AutoFlujo, es probable que en algún momento de la instalación Windows le alerte que
se está copiando un archivo más antiguo que el actual y le recomendará que
mantenga el archivo actual. Simplemente acepte la proposición de Windows y la
instalación continuará con toda normalidad.
32
Una vez que usted inicie AutoFlujo aparecerá momentáneamente la siguiente pantalla con
información de contacto que puede utilizar para solicitar datos adicionales de este programa o
conocer otros disponibles, igual de interesantes.
d
a
e f g h i
33
a. BARRA DE SÍMBOLOS
Contiene símbolos normalizados para el diseño de diagramas de flujo. Sólo debe
arrastrar el símbolo deseado al área de diseño (pizarra), para posteriormente poder
moverlo o modificarlo de manera similar al manejo de objetos en programas
Windows.
m=b*(6.5+x)
Ejemplos:
1) edad=18
2) a=(b*h)/2
3) x=y
vec[10]
mat[5][3]
Ejemplo 1:
Valor inicial
C=0 ,10 ,1
Ejemplo 2:
Valor inicial
x=10, 1,-1
Salida impresa. Indica que los datos o resultados saldrán por papel.
35
b. BARRA DE OPERACIÓN
Contiene las opciones más utilizadas para diseñar diagramas de flujo.
Modo Selección. Utilice este modo para seleccionar, mover o redimensionar los
símbolos de un diagrama de flujo.
Mostrar guías. Muestra guías verticales y horizontales para diseñar en forma más
precisa un diagrama de flujo.
Mostrar división. AutoFlujo tiene un espacio equivalente a dos hojas tamaño oficio
para el diseño de diagramas de flujo. Esta opción muestra la división entre ambas
para efectos de impresión.
c. VISOR DE COORDENADAS
Muestra la posición (coordenadas x,y) del ratón.
d. PIZARRA
Es el área de diseño de AutoFlujo, o sea, el área en que usted puede dibujar y diseñar
su diagrama de flujo.
e. BARRA DE CONTROL
Esta barra contiene los siguientes botones:
f. BOTÓN DESHACER
Sirve para anular la última operación realizada.
36
g. BARRA DE PROGRAMA
Contiene opciones para la ejecución e implementación del diagrama de flujo diseñado;
contiene, además, la opción de ayuda de AutoFlujo.
Ejecutar todo. Presione este botón para ejecutar todo el diagrama de una
vez.
Ejecutar proceso por proceso. Use esta opción para ejecutar el diagrama
proceso por proceso.
h. AJUSTAR PREFERENCIAS
Contiene opciones para ajustar AutoFlujo a sus necesidades y gustos. Esta opción está
compuesta por las siguientes fichas:
37
COLORES
Esta ficha contiene opciones para configurar el color de fondo, de dibujo y de rastreo:
Color de fondo. Presione este botón para cambiar el color de fondo de la pizarra.
Color de dibujo. Utilice esta opción para cambiar el color de dibujo de la pizarra.
Color de rastreo. Presione este botón para establecer el color de rastreo, es decir, el
color que AutoFlujo utilizará para mostrar el funcionamiento del diagrama de flujo
activo.
FUENTE Y SÍMBOLOS
Contiene opciones para configurar el alto y ancho de los símbolos, y el tipo y tamaño
de letra.
38
VELOCIDAD
Utilice esta opción para regular la velocidad de ejecución del modo PROCESO POR
PROCESO.
39
NÚMEROS Y CÁLCULOS
Contiene opciones para la medición de ángulos en grados o radianes y para fijar la
cantidad de decimales que AutoFlujo utilizará para mostrar los resultados.
Aceptar. Con esta opción los cambios sólo tendrán efecto durante la ejecución actual
de AutoFlujo; en otras palabras: la próxima vez que inicie AutoFlujo se cargarán los
valores predeterminados del programa.
i. BOTONES DE ALINEACIÓN
Utilice estos botones para ajustar el texto de los símbolos y líneas del diagrama de
flujo activo.
Arriba
Izquierda
Derecha
Abajo
Centrar
40
5
TRABAJANDO CON AUTOFLUJO
¿Está listo?... Bien, sin más preámbulos conozcamos las herramientas de AutoFlujo y algunas
características y consideraciones que deben tomarse en cuenta para el diseño de diagramas de
flujo.
Para mover el símbolo: ubíquese dentro del objeto, el puntero del ratón tomará la forma de
una cruz; para mover, mantenga presionado el botón principal del ratón y mueva el símbolo
en el sentido que usted desee.
41
Para redimensionar el símbolo: ubíquese sobre el contorno del objeto (línea punteada) y,
presionando el botón principal, mueva el ratón en el sentido que le indique el puntero.
42
5.2. ESCRIBIENDO TEXTO DENTRO DE LOS SÍMBOLOS
Sólo debe hacer clic sobre el símbolo con el botón secundario del ratón y, a continuación,
escribir el texto. Recuerde siempre: presione la tecla Enter para finalizar la escritura del texto
y la tecla Escape para cancelarla.
43
5.3.1. DECLARACIÓN DE FUNCIONES EN AUTOFLUJO 2.0
Como se mencionó en el capítulo tres, las funciones son el mecanismo que tiene la
programación de computadoras para organizar y optimizar el diseño de software.
Para declarar una función en AutoFlujo, se debe escribir el nombre de la función y, entre
paréntesis, las variables que recibirán los valores enviados (parámetros de entrada) por el
programa o subprograma que llama a la función:
Para la devolución de valores, se debe escribir la palabra RETORNAR y, si fuera el caso, entre
paréntesis la variable o número que devuelve la función:
44
5.4. LECTURA DE DATOS
Para la lectura de datos debe utilizar el símbolo que identifica al teclado o el de lectura
genérica y escribir las variables que se utilizarán para este cometido.
Ejemplos de instrucciones:
1) Edad
Se leerá un valor que se almacenará en la variable Edad.
2) x,y,z
Se leerán tres valores que se almacenarán en las variables x, y, z.
3) vec[2]
Se leerá un valor que se almacenará en la posición 2 del vector llamado vec.
4) lista[q]
Se leerá un valor que se almacenará en la posición indicada por la variable q del
vector llamado lista.
5) mat[2,4]
Se leerá un valor que se almacenará en la posición indicada por la fila 2, columna 4
de la matriz llamada mat.
6) w[i,q]
Se leerá un valor que se almacenará en la posición indicada por la fila i, columna q
de la matriz llamada w.
45
5.5. ESCRITURA DE PROCESOS
¿Recuerda?, un proceso está conformado por una variable, el operador de asignación (=) y una
expresión. Escriba el proceso sin dejar espacios en blanco.
k[5]
Se implementará un vector llamado k de cinco posiciones
lista[n]
El vector lista tendrá la cantidad de posiciones indicada por el valor de la variable n.
m[2,4]
46
Se implementará una matriz llamada m de dos filas y cuatro columnas
notas[q,w]
La matriz notas tendrá q filas y w columnas.
1) Edad
Mostrará como resultado el valor de la variable Edad
2) bas,alt,ar
Se mostrarán los valores de las variables bas, alt, ar en el orden que aparecen.
3) “Hola”
Mostrará como resultado Hola
4) “Total es ”,tot
Mostrará la cadena Total es y, a continuación, el valor de la variable tot.
5) “Orden ”,n1,n2,n3
Se visualizará la cadena Orden y los valores de n1,n2 y n3.
6) x, “por”,y, “es”,z
Por ejemplo, supongamos que los valores de x,y,z son 4,2 y 8; visualizará: 4 por 2 es 8.
47
7) v[i]
Mostrará el valor de la posición i del vector v.
8) w[2]
Mostrará el valor de la posición 2 del vector w.
9) m[q,r]
Mostrará el valor de la posición indicada por la fila q, columna r de la matriz m.
10) datos[0,3]
Mostrará el valor contenido en la posición fila 0, columna 3.
h) w*h
Mostrará el resultado de la multiplicación de ambas variables.
Ejemplos:
1) m>= n
Pregunta si el valor de m es mayor o igual al valor de n
48
2) num%c == 0
Evalúa si el módulo (residuo) de num entre c es igual a 0
4) p>q&q>r
Evalúa si p es mayor a q y q es mayor a r
Ejemplos:
1) i=0,n,1
2) q=10,1,-1
3) w=1,z-1,2
49
La variable w tomará valores desde 1 hasta el resultado de z-1 con incrementos de 2 en 2.
No tiene contenido
50
Para la estructura FOR, debe escribir R dentro del conector
51
Debe escribir la letra D para la estructura repetitiva Hacer-mientras.
52
Luego, ubíquese en el símbolo origen (de donde partirá la línea), escoja el lado del que
comenzará el trazado (aparecerá un círculo negro), mantenga presionado el botón principal del
ratón, vaya hasta el símbolo destino, escoja también el lado al que conectará la línea, y suelte el
botón del ratón. La línea se trazará automáticamente:
Para mejorar el trazado, active el modo Selección; mueva los símbolos y la línea se irá
ajustando automáticamente.
53
5.10.1. CONTROL DE TRAZADO DE LÍNEAS
AutoFlujo, en relación con este aspecto, tiene varias características incorporadas:
No permite que salgan más líneas que las soportadas por un símbolo.
Identifica automáticamente con las etiquetas Sí y No las líneas que salen de
las condiciones de estructuras condicionales y repetitivas, así como aquellas
que salen de los conectores de flujo.
Y aunque esté por demás decirlo: las líneas pueden ser eliminadas y, en algunos casos,
ajustadas. Para eliminar una línea, sólo debe seleccionarla y presionar la tecla SUPRIMIR.
El único caso en que una línea puede ser ajustada es para las del siguiente tipo:
54
Sólo debe ubicarse sobre el segmento vertical (debe hacer clic sobre la línea), mantener
presionado el botón principal del ratón y mover a la izquierda o derecha, según lo que necesite:
55
6
Dibuje todos los símbolos que tendrá su diagrama con sus respectivos contenidos.
Primero, esta
línea.
57
Después, la línea de flujo por falso (no).
Si el texto de la línea no está bien ubicado, seleccione la línea y acomode el texto con
las herramientas de alineación.
Seleccione la
línea haciendo
clic sobre ella.
58
… y utilice esta
herramienta para
acomodar el texto.
Arriba
Izquierda Derecha
Abajo
Ya se mencionó, para mejorar el aspecto de las líneas, sólo mueva los símbolos del
diagrama y las líneas se acomodarán automáticamente:
59
6.2. GUARDANDO EL DIAGRAMA DISEÑADO
Como en cualquier otro programa, es bueno grabar un trabajo recién realizado. Para guardar
un diagrama en AutoFlujo, debe presionar el botón GRABAR DIAGRAMA del panel principal
de control, escribir un nombre para el diagrama, escoger la carpeta en que se grabará el archivo
y presionar el botón GUARDAR.
60
No se preocupe, AutoFlujo asigna automáticamente la extensión DFW al
diagrama recién grabado.
Ahora bien, si el diagrama ya tiene nombre y lo quiere grabar con otro,
borre el nombre actual y escriba el nuevo.
Ejemplos de nombres:
Válidos: peso, serie1, ejer17, mi tarea, a2006, salarios 8, mi primer diagrama
No válidos: 2ejer, p”@27, #%72lo-3, practica.juan
61
6.3. EJECUTANDO EL DIAGRAMA
El diagrama ya ha sido diseñado, por lo tanto, podemos ejecutarlo para entender su
funcionamiento. Para ejecutar el diagrama, tiene a su disposición tres modos: ejecutar todo,
proceso por proceso y ejecutar hasta. Cualquiera que sea la opción escogida, AutoFlujo
primero revisará la sintaxis de cada símbolo utilizado en el diagrama (fase de compilación); si
encuentra algún error, AutoFlujo se lo hará saber mediante un mensaje; en cambio, si su
diagrama ha sido bien diseñado y no tiene errores, AutoFlujo le preguntará si desea ejecutar el
diagrama:
Si continúa con la ejecución del diagrama, o sea, si usted presiona el botón SÍ, AutoFlujo
ejecutará el diagrama de flujo.
62
a b c
63
Prueba de escritorio. Sirve para hacer un seguimiento del
comportamiento interno de los elementos del programa, vale decir:
variables y arreglos. Posee las siguientes fichas:
64
6.4 AUTOFLUJO Y EL MANEJO DE ERRORES
AutoFlujo controla errores en las tres fases de desarrollo de un diagrama de flujo: diseño,
compilación y ejecución.
65
66
7
GENERANDO CÓDIGO CON AUTOFLUJO
Ahora, sólo resta que usted escoja el lenguaje y presione el botón GENERAR
CÓDIGO. Una vez hecho esto, AutoFlujo mostrará la siguiente pantalla con
el código ya generado:
67
Como verá, la ventana de generación de código de AutoFlujo posee cuatro
botones: GRABAR, para grabar el código generado; IMPRIMIR, para
imprimirlo; SELECCIONAR TODO, que permite seleccionar todo el código
generado; y COPIAR, que copia el código en el portapapeles de Windows,
para que luego usted lo pueda pegar en cualquier otro programa (por ejemplo:
Microsoft Word).
Las variables del programa generado deben ser declaradas en el lugar en que
aparece el mensaje: /*declare en esta parte todas las variables*/. En nuestro
programa ejemplo se debería escribir: int edad;
AutoFlujo genera automáticamente código para variables enteras en Lenguaje
C (int en Lenguaje C). Si cree conveniente cambiarlo o si las operaciones
que lleve a cabo el programa así lo exigen, puede hacerlo, siempre y cuando
tenga conocimientos de los demás tipos de datos que soporta el C, así como
de sus respectivos códigos de formato (%f, %c, etc.). Por si no conoce, a
continuación se detallan los tipos de datos numéricos más usados del
Lenguaje C y sus respectivos códigos de formato.
68
Números Tipo de dato Código de formato
Enteros int %d
Enteros largos long %ld
Real de simple precisión float %f
Real de doble precisión double %lf
Para más detalles, consulte un manual de Turbo C
71
8
EJERCICIOS CON DIAGRAMAS DE FLUJO
Amigo lector, a continuación se detallan 57 diagramas de flujo debidamente organizados.
Puedo asegurarle que encontrará casi todos los ejercicios que son básicos e indispensables
durante el proceso de enseñanza-aprendizaje de programación de computadoras. Entonces,
sólo queda que comience a diseñar estos diagramas en AutoFlujo para analizar y entender su
funcionamiento. ¡Adelante y disfrute programando!
ac= *radio2
Variables utilizadas:
r : radio
pi : la constante PI
ac : área de la circunferencia
72
6. Convertir un monto expresado
en bolivianos a dólares.
En este ejercicio se pide la introducción de
una cantidad en bolivianos (bs) y la
cotización actual del dólar (cot), para
luego mostrar el equivalente en dólares.
Variables utilizadas:
Bs : Monto en bolivianos
Cot : Cotización actual del dólar
Dol : Cantidad expresada en dólares
Variables:
pcd : Precio costo en dólares
cot : Cotización actual del dólar
cb : Precio costo en bolivianos
inc : 30% del costo en bolivianos
pvb : Precio venta en bolivianos
73
10. Dados cuatro números: sumar
el primero con el tercero,
multiplicar el segundo con el
cuarto y dividir después ambos
8. Distancia entre dos puntos resultados.
El siguiente diagrama pide la introducción
de las coordenadas de dos puntos (x1,y1; Variables:
x2,y2) y calcula la distancia (d) existente
a : Primer número
entre ellos aplicando la siguiente fórmula: b : Segundo número
c : Tercer número
d= (x1-x2)2 + (y1-y2)2 d : Cuarto número
74
11. Convertir grados Fahrenheit a Celsius.
Para realizar esta conversión aplicamos la fórmula:
C = 5 (F-32)
9
Donde:
C : Grados celcius
F : Grados fahrenheit
Donde:
p1,p2,p3 : Son las notas parciales del alumno.
pr : Es el promedio final del alumno.
75
13. Determinar si un número leído es par, impar o cero
Para saber si un número es par o impar, se debe utilizar el operador módulo (%) para obtener el
residuo de la división del número entre 2. Si el residuo es 0, el número es par; caso contrario,
es impar.
Por ejemplo:
14 2
Se debe utilizar el
operador módulo (%) 0 7
para obtener el residuo
de la división. Como el residuo es 0, el número 14 es par
76
14. Leer dos números y determinar el mayor de ellos o si son iguales
Para realizar este ejercicio sólo hay que comparar los valores de ambos números (a,b).
77
16. Ordenar tres números en forma descendente
Con este diagrama los números (a,b,c) son ordenados en forma descendente, es decir, de
mayor a menor.
78
18. Realizar un diagrama para la resolución de ecuaciones de segundo grado
aplicando la fórmula general.
Para resolver una ecuación de segundo grado
mediante la fórmula general, primero se debe saber
cuál es el valor del discriminante (d) dado por la
expresión b2-4ac. La naturaleza de las soluciones
depende de este resultado.
Para:
d=0 raíces dobles iguales
d>0 raíces dobles distintas y reales
d<0 raíces imaginarias
79
20. Serie descendente
Este diagrama genera la serie: 10,8,6,4,2,0
80
22. Generar los N primeros números
En este diagrama se genera la serie de los N primeros números
naturales.
Donde:
n : Es el número introducido
c : Cuenta el número de iteraciones del ciclo repetitivo, desde 1
hasta el valor de n
Variables utilizadas:
n : Es el número introducido por
teclado
c : Cuenta el número de
iteraciones
del ciclo repetitivo
cd : Cuenta las divisiones
efectuadas
81
24. Obtener el factorial de un número
El factorial de un número (n!) se obtiene multiplicando todos los dígitos de la serie, desde uno
hasta el valor del número.
Ejemplo: 5! = 1 * 2 * 3 * 4 * 5 = 120
Variables utilizadas:
x : Número introducido
f : Para almacenar el factorial
w : Variable de control del ciclo
repetitivo automático.
Donde:
n : Es el número introducido
m : Variable auxiliar que
guarda una copia del valor de n
c : Cuenta la cantidad de dígitos
dig : Para obtener un dígito del número
82
26. Invertir un número
El algoritmo para invertir un número entero es el siguiente:
1. Leer el número
2. Obtener un dígito del número que se desea invertir mediante la operación DÍGITO=N
módulo 10 (d=d%10)
3. Acumular los dígitos e ir formando el número invertido mediante la expresión
INVERTIDO=INVERTIDO*10 + DÍGITO (s=s*10+d)
4. Obtener la parte entera de la división de N entre 10 ( n=int(n/10) )
5. Repetir el proceso desde el paso 2, mientras el número N sea distinto de 0
83
27. Generar los N primeros números pares
Este programa genera los N primeros números pares. Para tal efecto, se aplica la definición
algebraica de número par: i * 2
84
29. Serie fibonacci
En la serie fibonacci cada dígito es resultado de la suma de los dos dígitos precedentes. Por
ejemplo:
1 , 1 , 2 , 3 , 5 , 8 , 13
1+2 = 3
85
30. Eliminar los dígitos pares de un número
En este diagrama se eliminan los dígitos pares de un número cualquiera. Por ejemplo, si el
número leído es 98274, el resultado será 97.
86
31. Convertir un número decimal a su equivalente en cualquier base
Este diagrama convierte un número entero decimal a su equivalente en una base comprendida
entre 2 y 9. Para ello, se divide el número por la base sucesivamente hasta que sea 0; luego, se
forma el nuevo número con los residuos de las divisiones efectuadas.
13 2
(1) 6 2
(0) 3 2
(1) 1 2
Se toman los residuos en (1) 0
este sentido y se forma
el número.
87
32. Rota dígitos de un número hacia la derecha
Dado un número entero positivo N de más de
tres dígitos, se pide hacer rotar los dígitos de
N a la derecha k veces (k>0).
Por ejemplo:
Si N=927 y K=2
Resultado: N=792, N=279
88
33. Ordenar ascendentemente los dígitos de un número cualquiera
Este diagrama ordena los dígitos de un número cualquiera en forma ascendente. Por ejemplo,
si el número introducido es 913487, el resultado será 134789.
89
34. Realizar un diagrama de flujo que utilice una función para obtener la potencia
de un número.
Este diagrama utiliza una función para calcular la potencia de un número. Para ello, envía dos
parámetros (b,e) a la función Potencia, los cuales son recibidos en las variables ba y ex; luego,
la función calcula la potencia y devuelve el resultado (t), que es recibido en la variable p de la
función principal y mostrado posteriormente.
35. Diagrama de flujo que utiliza una función para calcular el factorial de un
número.
90
36. Calcular el mínimo común múltipo (m.c.m.) de dos números
El siguiente diagrama genera números aleatorios entre 0 y 9. Diseñe este diagrama, ejecútelo,
le recomiendo que lo haga con la opción EJECUTAR TODO, y utilice la opción PRUEBA DE
ESCRITORIO para ver los valores generados.
91
38. Variante del ejemplo anterior de Randent
Este diagrama es una variante del ejemplo anterior, ya que se genera un valor comprendido
entre uno y, exactamente, el parámetro de randent. Así, la instrucción: n=randent(10)+1
generará números aleatorios comprendidos entre 1 y 10.
92
Observe la parte entera de
estos números.
Observe que random produce números reales, donde la parte entera de los mismos son los
números aleatorios comprendidos, como ya dijimos, entre 0 y el valor límite-1.
Por lo tanto, para generar números enteros aleatorios, hay que aplicar la notación:
int(random(n)); o sea, hay que extraer la parte entera de los números generados.
93
40. Un juego matemático simple
Este diagrama de flujo utiliza la función matemática randent, propia de AutoFlujo, para
generar dos números aleatorios comprendidos entre 0 y 9. Luego, el programa pregunta cuánto
es el resultado de la multiplicación y verifica la respuesta del usuario.
94
41. Encuentra el número secreto
En este ejercicio la computadora genera un número aleatorio secreto, que el usuario debe tratar
de adivinar; para ello dispone de cinco oportunidades.
El programa funciona de la siguiente manera: primero, genera un número secreto (ns)
comprendido entre 1 y 100; luego, pide que el usuario introduzca un número (nu) y verifica si
éste es igual al número secreto; si es igual, el juego termina, si no, indica si el número secreto
es mayor o menor que el número introducido.
95
42. Realizar un diagrama que aplique el algoritmo de Euclides para obtener el
máximo común divisor (M.C.D.) de dos números.
43. Diagrama que utiliza una función para contar los dígitos de un número
cualquiera.
96
44. Multiplicar tres números mediante sumas
Dado que:
1!= 1
2!= 1*2=2
3!=1*2*3=6
97
46. Generar los números primos de dos cifras
98
48. Cargar un vector, sumar sus elementos y obtener el promedio de los mismos
Donde:
max : Es el número de elementos del vector.
dato : Es el dato a buscar en el vector.
ban : Es la variable bandera o interruptor, que inicialmente vale 0 y cambia a 1
cuando el dato es encontrado en el vector.
99
50. Ordenar en forma ascendente los elementos de un vector
Ejemplo: dado el siguiente vector de cuatro posiciones (n=4): V(6,9,8,5)
Se obtendrá: V(5,6,8,9)
100
52. Generar una matriz X
En este ejercicio se cargan con 1 las posiciones de las diagonales principal y
secundaria de la matriz, y con 0 las restantes.
Ejemplo:
1 0 0 0 1
0 1 0 1 0
M= 0 0 1 0 0
0 1 0 1 0
1 0 0 0 1
101
53. Dada una matriz cuadrada, obtener la suma de los elementos de la diagonal
principal y el producto de los de la diagonal secundaria.
102
54. Suma de dos matrices
103
55. Cargar una matriz y obtener el promedio de los números primos que tenga.
104
EJEMPLOS DE DIAGRAMAS RECURSIVOS
En términos simples: una función es recursiva cuando se invoca a sí misma. A continuación se
incluyen dos ejemplos clásicos de problemas que se resuelven aplicando recursividad.
Si n=6, el diagrama mostrará como resultado 8, dado que es el sexto elemento de la serie.
105