Entorno grรกfico de programaciรณn y automatizaciรณn de diagramas de flujo
Manual de programaciรณn
Marco Veneros 1
¡Bienvenido al proyecto AutoFlujo! Amigo usuario: AutoFlujo tiene como propósito facilitar el proceso de enseñanza-aprendizaje de programación de computadoras. Si el presente material le resulta útil, lo invito a colaborar con el proyecto mediante una donación económica para que siga evolucionando como herramienta y como plataforma educativa alternativa de autoaprendizaje. Para ello, visite www.autoflujo.wordpress.com/donaciones y conozca la forma cómo puede colaborar con el proyecto. Un abrazo, Marco Veneros Desarrollador de AutoFlujo
IMPORTANTE: Para conocer los puntos de venta en Bolivia de la versión física de este libro, haga clic en el siguiente enlace: www.autoflujo.wordpress.com/puntos-de-venta 2
AutoFlujo 2.0 Entorno grรกfico de programaciรณn y automatizaciรณn de diagramas de flujo
Marco Veneros
3
4
AutoFlujo 2.0 En cumplimiento a lo dispuesto por la ley de Derechos de autor: La obra AutoFlujo. Entorno gráfico de programación y automatización de diagramas de flujo queda legalmente registrada en la Servicio Nacional de Propiedad Intelectual (SENAPI) bajo resolución administrativa No. 1-669/2005 A favor del autor Marco Antonio Veneros Limache quedando amparados los derechos conforme a ley. El programa de computación (software) AutoFlujo queda legalmente registrado en el Servicio Nacional de Propiedad Intelectual (SENAPI) bajo resolución administrativa No. 6-670/2005 a favor de su autor Marco Antonio Veneros Limache quedando amparados sus derechos conforme a ley. El programa de computación (software) AutoFlujo 2.0 queda legalmente registrado en el Servicio Nacional de Propiedad Intelectual (SENAPI) bajo resolución administrativa No. 6-936/2014 a favor de su autor Marco Antonio Veneros Limache quedando amparados sus derechos conforme a ley. 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. DERECHOS RESERVADOS © 2005 – 2014
Marco Veneros Lab Inventor: El Alto, Río Seco, Av. Misael Saracho 1301 Teléfono: (591-2) 2866294 Celular: (591) 70676646 E-mail: marco.veneros@gmail.com Twitter: @marcoVeneros Facebook: www.facebook.com/autoflujo Página web: www.autoflujo.wordpress.com YouTube: www.youtube.com/c/marcoveneros Depósito legal: 4-1-2562-15 Impreso en La Paz – Bolivia
5
“Los que sueñan de día son conscientes de muchas cosas que escapan a los que sueñan sólo de noche”. Edgar Allan Poe (1809-1849), poeta y narrador estadounidense.
6
7
ÍNDICE Prólogo .............................................................................................................. 7 Terminología básica ........................................................................................... 9 La programación de computadoras ................................................................... 11 Diseño de diagramas estructurados................................................................... 15 Modularización de programas .......................................................................... 23 Conociendo AutoFlujo 2.0 ............................................................................... 27 Elementos internos de AutoFlujo ..................................................................... 29 Instalación y descripción de AutoFlujo 2.0 ....................................................... 37 Trabajando con AutoFlujo 2.0 .......................................................................... 47 Diseño y prueba de un diagrama de flujo.......................................................... 63 Generando código con AutoFlujo ..................................................................... 73 Características técnicas de AutoFlujo 2.0 ......................................................... 77 Ejercicios con diagramas de flujo ..................................................................... 79
8
9
PRÓLOGO Es interesante observar cómo la computadora se ha insertado en todas las actividades y áreas del saber humano. Por experiencia propia recuerdo a universitarios de diversas carreras y a futuros profesores de magisterio que requerían mis servicios para que les enseñara a diseñar ejercicios básicos de programación de aplicaciones para computadora. Lo que sucedía era que les estaban enseñando la materia de programación de computadoras y no entendían lo que se les estaba instruyendo, lo cual resulta totalmente comprensible, pues realizar programas para computadora, aunque no es difícil ni imposible, tampoco es algo sencillo de asimilar de buenas a primeras. También de manera acertada se está incorporando la materia de computación, en especial programación de computadoras, como parte del plan curricular de algunas escuelas y colegios de nuestro país. Acertado desde el punto de vista de que esta materia mejora el razonamiento y la agilidad mental de una persona. Sin embargo, para programar una computadora es necesario aprender a estructurar la solución del problema planteado mediante herramientas de diseño como son los algoritmos y los diagramas de flujo. Estos últimos son, sin temor a equivocaciones, la principal herramienta para diseñar programas para computadora. 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 que conozca de primera mano la computadora e interactué 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. Posteriormente, y tratando de satisfacer todas las inquietudes y sugerencias de los primeros usuarios, comencé a programar la segunda versión de AutoFlujo, versión desarrollada específicamente para Windows. AutoFlujo 2.0 se potenció con la inclusión de varias funciones matemáticas, capacidad de modularización de programas, manejo de arreglos (vectores y matrices) y manejo de funciones recursivas; también, se mejoró la interfaz gráfica de usuario y se simplificó el proceso de 10
diseño, con lo cual ahora es más fácil diseñar diagramas de flujo, probar y analizar cómo funcionan. Además, AutoFlujo 2.0 ahora genera código fuente para diagramas de flujo en cuatro lenguajes de programación: C, C++, Java y C#. En conclusión: AutoFlujo 2.0 es un software más completo y versátil que su versión predecesora. En la actualidad AutoFlujo está presente en Internet: tiene una página en Facebook (www.facebook.com/autoflujo); un blog (www.autoflujo.wordpress.com), y lo más importante: ¡videos educativos en YouTube! Así es, busque AutoFlujo en YouTube o ingrese directamente al canal www.youtube.com/c/marcoveneros y se encontrará con auténticas clases que enseñan programación de computadoras con AutoFlujo 2.0. SOBRE ESTE LIBRO Naturalmente éste ha sido escrito para brindar la mayor información posible de AutoFlujo, pero también es un auténtico manual de programación de computadoras que lo introducirá en este campo; le enseñará fundamentos de programación y manejo de estructuras de control; además, contiene en la parte final 60 diagramas de flujo importantes e imprescindibles para la práctica y aprendizaje de programación de computadoras. 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 mediante mi correo electrónico: marco.veneros@gmail.com, o por mi cuenta de Twitter: @marcoVeneros, cuenta en la que publico periódicamente novedades de mis proyectos y noticias de índole tecnológica. Espero que este capricho personal llamado AutoFlujo haga que usted se convierta, en el futuro, en un gran programador. ¡Buena suerte!
El Autor
11
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. Expresión. Es una combinación de operadores, variables o números que produce un resultado. En AutoFlujo se consideran expresiones: 42 (un número) m (una variable) (i+23)*1971 (una operación) 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 Condición. En esta participan dos expresiones separadas por un operador relacional. Ejemplos: 1) a==b 2) b+2>76 3) m%2==0 Carácter (caracteres). Término utilizado en informática para generalizar el uso de letras, números, signos ortográficos o numéricos u otros símbolos o códigos de control. En consecuencia: cuando se dice carácter, se hace referencia a un número, letra o símbolo. Tecla Enter. También conocida como Entrar o Intro ( ) Botón principal del mouse (ratón). Generalmente el botón izquierdo es el botón principal. Botón secundario del mouse (ratón). Usualmente es el botón derecho. Clic. Pulsación que se hace en alguno de los botones del ratón. Sin embargo, la configuración de los botones del ratón puede cambiar en Windows. ¡Verifique cuál es la configuración de su ratón para no tener problemas con AutoFlujo! 12
13
1 LA PROGRAMACIÓN DE COMPUTADORAS Programar computadoras es, por experiencia propia, una actividad fascinante, ya que, a diferencia de otras, en esta 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. 1.1. RESOLUCIÓN DE PROBLEMAS CON AYUDA DE LA COMPUTADORA Para resolver problemas con la computadora es necesario llevar a cabo tres fases importantes: análisis, diseño e implementación. a)
Análisis. En esta fase se estudia y analiza en detalle el problema planteado para darle una solución. ¿Cómo lo resuelvo?
Problema planteado
Pensar mucho para encontrar la mejor solución
b)
Diseño. Es la piedra angular del desarrollo de programas para computadora (software), porque en esta fase se diseña la solución del problema planteado. ¡Ya sé!
Herramienta de diseño
Algoritmo o diagrama de flujo
Utilizar una herramienta de diseño para obtener el algoritmo o diagrama de flujo que resuelva el problema
14
Para la ejecución de esta fase un programador puede aplicar alguna de las siguientes herramientas: b.1) Algoritmos. problema.
Consiste en detallar los pasos necesarios para solucionar un
Ejemplo 1.1. Diseñar un algoritmo para calcular el área de un triángulo. 1. 2. 3. 4. 5.
Inicio Introducir valores para Base y Altura Dividir entre dos el resultado del producto de Base y Altura Mostrar el resultado obtenido Fin
El ejemplo anterior es un algoritmo lineal, dado que los procesos se ejecutan secuencialmente. 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. Tomar en cuenta que se considera mayor de edad a las personas que tienen 18 años o más. 1. 2. 3. 4. 5. 6.
Inicio Pedir la edad de la persona ¿Tiene 18 años o más? Sí 4, No 5 Es mayor de edad Es menor de edad Fin
En el paso tres se determina si la persona es mayor de edad: si la persona tiene 18 años o más, se ejecuta el paso cuatro; si no, se realiza el paso cinco. Los algoritmos constituyen la herramienta más básica y elemental con la que cuenta un programador. b.2) Diagramas de flujo. En términos simples: un diagrama de flujo es la representación gráfica de un algoritmo. Para tal efecto se cuenta con un conjunto de símbolos estandarizados, de los cuales estos son los más utilizados: Símbolo terminal. Se utiliza para indicar el inicio y el final de un diagrama de flujo. Lectura de datos por teclado. 15
Símbolo utilizado para realizar cualquier tipo de procesamiento.
Salida de datos por pantalla (*)
Evalúa una condición o pregunta.
Salida de datos impresa (*)
Ciclo repetitivo controlado por condición.
Ciclo repetitivo automático.
Entrada de datos genérica.
Líneas de flujo. Indican el flujo y recorrido de los datos de un diagrama de flujo. Conector de flujo. Sirve para conectar o reagrupar líneas de flujo. Ahora con la ayuda de estos símbolos es posible graficar los algoritmos. Ejemplo 1.3: Diagrama de flujo del ejemplo 1.1: Donde: b es la base, h la altura y a el área
Inicio
b,h
a=(b*h)/2
a Fin (*) Aunque ambos símbolos pueden utilizarse para desplegar datos, en este manual se optó por 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.
16
Ejemplo 1.4: Diagrama de flujo del ejemplo 1.2: Inicio
edad No
edad >= 18
“Es menor”
Sí “Es mayor”
Fin
b.2.1) Prueba de escritorio. Es el proceso mediante el cual se prueba y analiza el funcionamiento de un diagrama de flujo. En la práctica, es una tabla en la que se anotan todas las variables del diagrama y se van registrando los valores que van tomando estas durante la ejecución del mismo. Ejemplo 1.5: Prueba de escritorio perteneciente al diagrama de flujo del ejemplo 1.3 con 4 y 7 como valores de entrada. b 4
h 7
a 14
Resultado 14
Ejemplo 1.6: Dos ejecuciones pertenecientes al diagrama de flujo del ejemplo 1.4 edad 7 48 c)
Salida Es menor Es mayor
Implementación. En esta fase se procede a programar con un lenguaje de programación el algoritmo o diagrama de flujo diseñado. Algoritmo o Diagrama de flujo
Programa (Software)
Programar el algoritmo o diagrama con un lenguaje de programación
17
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 deben utilizar únicamente tres estructuras de control; estas son: secuenciales, condicionales y repetitivas. 2.1. ESTRUCTURA DE CONTROL SECUENCIAL Es una secuencia lineal de procesos, es decir, no existe en ningún momento ruptura de control ni bifurcaciones. Proceso1
Proceso2
Proceson Ejemplo 2.1: Leer dos números y obtener la suma de ambos. Inicio
n1,n2
S=n1+n2
S
Fin
18
2.2.
ESTRUCTURA DE CONTROL CONDICIONAL Esta estructura evalúa una condición y luego, en función del cumplimiento o no de esta, ejecuta uno o más procesos. Sí Condición Una estructura condicional puede ser simple o de alternativa doble. No Proceso(s) 2.2.1. Estructura condicional simple. Sólo ejecuta procesos cuando la condición establecida es cumplida.
Ejemplo 2.2: Leer dos números y mostrar el mayor de ambos. Inicio
a,b
May=a
Sí b>May
No
May=b
May
Fin
2.2.2. Estructura condicional de alternativa doble. En esta estructura si se verifica la condición se ejecuta el proceso por verdadero (Sí); en el caso contrario, se ejecuta el proceso por falso (No). No Procesos Y
Condición
Sí Procesos X
19
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
pr >= 51
“Reprobado”
Sí
“Aprobado”
Fin Si el promedio obtenido (pr) es mayor o igual a 51, se muestra “Aprobado”; en el caso contrario, “Reprobado”
2.2.3. Estructura de alternativa múltiple. En esta estructura, en función del resultado de una expresión, se ejecuta uno de varios procesos predeterminados.
Expresión 1 Proceso1
2 Proceso2
3 Proceso3
n Proceson
Otro Proceso por falso
Si en las opciones definidas no se encuentra el valor de la expresión, se ejecuta el proceso determinado por la etiqueta Otro. 20
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”.
2.3. ESTRUCTURAS DE CONTROL REPETITIVAS Estas estructuras repiten la ejecución de procesos en función del cumplimiento de la condición establecida. Por la ubicación de la condición de control se pueden reconocer las estructuras mientras y hacer-mientras. Además, se dispone de una variante automática de la estructura mientras: la estructura for. 2.3.1. Estructura repetitiva Mientras (while). Funciona así: mientras se cumpla o verifique la condición de control, ejecuta los procesos del ciclo repetitivo.
Condición de control Sí
Proceso(s) Sí No
21
Ejemplo 2.4: Realizar un diagrama que genere la serie numérica de 1 a 10. Inicio
c=1
c <= 10 Sí
c
c=c+1 Sí No Fin
2.3.2. Estructura repetitiva Hacer-Mientras (do-while). Esta estructura ejecuta los procesos del ciclo repetitivo mientras la condición de control sea verdadera.
Proceso(s)
Sí
Condición de control No
22
Ejemplo 2.5: Realizar un diagrama para obtener la sumatoria de un número cualquiera.
Inicio
n c=0
s=0
c=c+1
s=s+c
Sí
c<n No S
Fin
Diferencia entre While y Do-While La diferencia entre ambas estructuras está en que while (mientras) primero evalúa la condición de control; si esta 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.
23
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.
vc = val_ini, límite, incr|decr Sí
Proceso(s)
No
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. Ejemplo 2.6: Generar la siguiente serie: 10,9,8,7,6,5,4,3,2,1,0 Donde: Valor inicial=10 Inicio Límite=0 Decremento= -1 x = 10, 0, -1 Sí
x
No Fin
24
Ejemplo 2.7: Generar la siguiente serie: 0,1,2,3,4…….. n Donde: Valor inicial=0 Límite=n Inicio Incremento= 1
n
q= 0, n, 1 Sí q
No Fin
25
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. Esta 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. TIPOS DE SUBPROGAMAS En teoría se reconocen dos tipos: funciones y procedimientos. 3.1.1. Funciones. Una función puede recibir uno o más parámetros de entrada, siempre devuelve un solo resultado.
pero
3.1.2. Procedimientos. Un procedimiento puede recibir uno o más parámetros de entrada y devolver uno o más resultados, o no devolver ninguno.
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.
3.2. USO DE FUNCIONES Como ya se mencionó, para que una función pueda ejecutarse, necesita datos de entrada, conocidos también como parámetros de entrada. Para entender mejor, analicemos el siguiente diagrama que utiliza una función para calcular la sumatoria de un número.
26
El valor de la variable num es copiado a la variable n
La función devuelve el resultado, que es asignado a la variable s.
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. Veamos también los siguientes dos ejemplos: Ejemplo 1. Realizar un diagrama de flujo que calcule el factorial de un número cualquiera.
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.
27
Ejemplo 2. 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 la función calcula la potencia y devuelve el resultado (t), que es copiado a la variable p de la función principal.
28
29
4 CONOCIENDO AUTOFLUJO 2.0 4.1 ¿QUÉ ES AUTOFLUJO? Es un programa para computadora (software) que sirve para diseñar un diagrama de flujo, demostrar cómo funciona y generar su correspondiente programa en C, C++, Java o C#. 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. 4.2. FASES DE DESARROLLO DE UN PROGRAMA EN AUTOFLUJO El proceso de desarrollo de un programa en AutoFlujo se resume en: diseño, ejecución e implementación. Observe el siguiente esquema que detalla dichas fases: Se diseña el diagrama
30
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#.
31
5 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. 5.1. LAS VARIABLES EN AUTOFLUJO Las variables son elementos cuyos valores pueden cambiar durante la ejecución de un programa. Técnicamente, son posiciones de memoria que almacenan valores correspondientes a determinados tipos de dato. En AutoFlujo las variables sólo almacenan números. 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. Ejemplos de nombres válidos: 1) 2) 3) 4) 5)
x tasa n1 cli3 edad
5.2. OPERADORES ARITMÉTICOS Como cualquier otro lenguaje, AutoFlujo dispone de operadores para realizar operaciones aritméticas básicas, así como otros para operaciones más avanzadas: Operador + * / \ % ^ 32
Operación Suma Resta Multiplicación División real División entera Módulo (resto) Exponenciación
Prioridad 2 2 1 1 1 1 1
Ejemplo 5+8=13 3-2=1 7*5=35 5/2=2.5 5\2=2 7%2=1 2^3=8
5.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
4)
m+1 <= t*3 Evalúa si el resultado de m+1 es menor o igual al resultado de t*3
5.4. OPERADORES LÓGICOS AutoFlujo tiene dos operadores lógicos para realizar operaciones condicionales más complejas. Operador Se lee y &
|
o
Operación lógica Condición1 & condición2
Condición1 | condición2
Significado Conjunción. El resultado es verdadero si ambas condiciones son verdaderas; es falso en el caso contrario. Disyunción. El resultado es verdadero si alguna de las condiciones es verdadera; es falso cuando ambas son falsas.
Las operaciones lógicas se realizan según la siguiente tabla de verdad: Condición1 Verdadero Verdadero Falso Falso
Condición2 Verdadero Falso Verdadero Falso
Condición1 & Condición2 Condición1 | Condición2 Verdadero Verdadero Falso Verdadero Falso Verdadero Falso Falso 33
Ejemplos: Expresión lógica 3 >=12 & 8 < 98 18%2 ==0 | 4 <2
Resultado Falso Verdadero
En la conjunción para que el resultado sea verdadero, ambas condiciones deben ser verdaderas. En cambio, en la disyunción basta que una condición sea verdadera para que el resultado también lo sea.
5.5. NIVELES DE PRIORIDAD DE LOS OPERADORES AutoFlujo reconoce cuatro niveles de prioridad para los operadores aritméticos y relacionales: Operador * / \ % ^ + < > >= <= != == & |
Operación Multiplicación División real División entera Módulo (resto) Exponenciación Suma Resta Menor que Mayor que Mayor o igual que Menor o igual que Diferente de Igualdad Conjunción (y) Disyunción (o)
Prioridad 1 1 1 1 1 2 2 3 3 3 3 3 3 4 4
Por lo tanto, siempre tome en cuenta que las operaciones se llevan a cabo en orden de prioridad. Ejemplo: Si a=4, b=6 y c=12; evaluar la siguiente expresión: a*b + c/3 24
+ 4
28 O sea, primero se llevan a cabo las multiplicaciones y divisiones; luego, las sumas. 34
Ejemplo: Evaluar la siguiente expresión para m=12 y t=4: t ^ 2 - m % t + 5.26 16
-
0 +
5.26
16
+
5.26
21.26 Primero se realizan exponenciales y módulos; después, sumas y restas. Ahora bien, si en una expresión se encuentran operadores de la misma prioridad, las operaciones se llevan a cabo de izquierda a derecha. Ejemplo: Si q=7, r=9 y w=4, evaluar: q * r ^ 2 \ w 63 ^ 2
\
w
3969
\
w
992 Ejemplo: Evaluar la siguiente expresión para j=3, k=4, m=8: J
+
k - m + 45
7 - m -1
+ 45 + 45
44 Cuando tienen la misma prioridad se evalúan de izquierda a derecha Ejemplo: Si a=19 y b=34, evaluar la siguiente expresión: 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. 35
Ejemplo: Suponiendo que p=69, evaluar la siguiente expresión: p % 2 == 1 1 == 1 El resultado de la expresión es VERDADERO porque el módulo de la división de 69 entre 2 es 1; es decir, primero se opera el módulo y luego la igualdad. Ejemplo: Suponiendo que x=40, q=23, p=38; evaluar la siguiente expresión: x > q & p <= 51 40 > 23 & 38 <=51 V
&
V
V El resultado es verdadero, dado que ambas condiciones también son verdaderas. 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. Ejemplo: Si b=3, n=8 y z=2, evaluar: B * ( n - ( z + 45 ) + 3 ) B * ( n - ( 47 ) + 3 ) B * ( n
- 47 + 3 )
B * ( - 39 + 3 ) B * ( - 36 ) -108 Ejemplo: Suponiendo que p=62, b=35 y c=35; evaluar: (p>51 & b>=c) | (c>10) (62>51 & 35>=35) | (35>10) 36
(V & V) | (V) V|V V Como verá, en ambos ejemplos primero se llevaron a cabo las operaciones contenidas por los paréntesis. 5.6.
FUNCIONES MATEMÁTICAS
A diferencia de la primera versión, AutoFlujo 2.0 incorpora 18 funciones matemáticas: Nombre
Argumento(x)
Operación
sqrt(x)
Expresión numérica
Obtiene la raíz cuadrada de un argumento positivo.
abs(x)
Expresión numérica
Obtiene el valor absoluto del argumento.
int(x)
Expresión numérica
Devuelve la parte entera de un número real.
round(x)
Expresión numérica
Redondea un número
random(x)
Expresión numérica
Devuelve un número aleatorio entre 0 y el valor de x-1.
randent(x)
Expresión numérica
Función propia de AutoFlujo que devuelve un número aleatorio mayor o igual a 0 y menor que el argumento.
sin(x)
Expresión numérica
Devuelve el seno del argumento.
cos(x)
Expresión numérica
Devuelve el coseno del argumento.
tan(x)
Expresión numérica
Devuelve la tangente del argumento.
asin(x)
Expresión numérica
Devuelve el arco seno del argumento.
acos(x)
Expresión numérica
Devuelve el arco coseno del argumento.
atan(x)
Expresión numérica
Devuelve el arco tangente del argumento.
sinh(x)
Expresión numérica
Devuelve el seno hiperbólico del argumento.
cosh(x)
Expresión numérica
Devuelve el coseno hiperbólico del argumento.
tanh(x)
Expresión numérica
Devuelve la tangente hiperbólica del argumento.
exp(x)
Expresión numérica
Eleva e(2.71828…) a la potencia x (ex)
log(x)
Expresión numérica
Proporciona el logaritmo natural (base e) del argumento.
log10(x)
Expresión numérica
Proporciona el logaritmo decimal (base 10) del argumento.
37
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))
Ejemplo 1: Para que la instrucción de AutoFlujo x=randent(6) funcione en C o C++, debe ser escrita: x = int(random(6)) Genera un número aleatorio entero comprendido entre 0 y 5.
Ejemplo 2: Para que w=randent(6)+1 funcione en C o C++, debe escribirse: w= int(random(6))+ 1 Ahora se genera un valor entero aleatorio entre 1 y 6.
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.
5.7. EL OPERADOR DE ASIGNACIÓN (=) Sirve para almacenar el resultado de una expresión en una variable. Ejemplos: 1)
38
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.
39
6 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 herramienta. 6.1. INSTALACIÓN DE AUTOFLUJO 2.0 Para la instalación de AutoFlujo 2.0 debe seguir los siguientes pasos:
Inserte el CD de AutoFlujo 2.0 Haga doble clic sobre el icono MI PC de Windows XP o EQUIPO si tiene Windows 7 o Windows 8.1. Seleccione la unidad de disco CD o DVD en que insertó el disco de instalación de AutoFlujo 2.0. Haga doble clic o presione la tecla Enter sobre el archivo SETUP. Presione el botón ACEPTAR de la pantalla de bienvenida. Presione el botón grande (el que tiene una imagen una computadora) para iniciar la instalación. Presione el botón CONTINUAR. Presione el botón ACEPTAR. ¡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.
6.2. INGRESANDO A AUTOFLUJO 2.0 Para comenzar a utilizar AutoFlujo 2.0:
40
Haga clic en el botón INICIO de Windows. Haga clic en la opción TODOS LOS PROGRAMAS. Haga clic en la opción AUTOFLUJO PARA WINDOWS Haga clic en la opción AUTOFLUJO 2.0
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.
6.3. INTERFAZ DE AUTOFLUJO La interfaz de AutoFlujo estรก constituida por los siguientes componentes:
d a
b c
e
f
g
h
i 41
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 poderlo mover o modificar de manera similar al manejo de objetos en programas Windows. Terminal. Símbolo utilizado para indicar el inicio y el final de un diagrama de flujo. En este símbolo sólo se puede escribir INICIO, FIN, RETORNAR o la declaración de una función. Proceso. En este símbolo se anotan operaciones. Como se mencionó en Terminología Básica, un proceso está compuesto por una variable, el operador de asignación y una expresión. La instrucción no debe contener espacios en blanco. m=b*(6.5+x) variable
asignación
expresión
Ejemplos: 1) edad=18 2) a=(b*h)/2 3) x=y Además, en AutoFlujo 2.0 este símbolo se utiliza también para la declaración de arreglos (vectores y matrices): vec[10] nombre del arreglo
longitud
mat[5][3] nombre del arreglo
filas
columnas
Ciclo repetitivo automático. Realiza un número determinado de ciclos repetitivos. Ya se dijo: un ciclo repetitivo funciona sobre la base de tres componentes: variable de control, límite, incremento o decremento. Ejemplo 1: Valor inicial C=0 ,10 ,1 Variable de control 42
Límite
Incremento
La variable de control C tomará valores desde 0 hasta 10 con incrementos de uno en uno. Ejemplo 2: Valor inicial
x=10, 1,-1 Variable de control
Límite
Decremento
La variable de control x tomará valores desde 10 hasta 1 con decrementos de uno en uno.
Condición. Evalúa una determinada condición o pregunta para tomar una decisión. Lectura de datos por teclado. Se utiliza para la introducción de datos por teclado. Lectura de datos. Este símbolo se utiliza para la introducción de datos sin especificar el dispositivo que se utilizará. Ciclo repetitivo controlado por condición. Esta condición determina la cantidad de ciclos o repeticiones que se realizarán. A diferencia del ciclo repetitivo automático, el control de ciclos e iteraciones de esta estructura es de entera responsabilidad del programador. Salida visual. Símbolo utilizado para mostrar la salida de datos o resultados por pantalla. Salida impresa. Indica que los datos o resultados saldrán por papel.
Conector de flujo. Utilizado en AutoFlujo para establecer la conexión o reagrupación de líneas de flujo. Alternativa múltiple. Símbolo utilizado en AutoFlujo para implementar la estructura de alternativa múltiple; en esta, en función del resultado de la expresión establecida en este objeto, se ejecuta uno de varios procesos predeterminados.
43
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. Modo Conexión. Sirve para conectar los símbolos de un diagrama de flujo. Mostrar guías. Muestra guías verticales y horizontales que ayudan a 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: Nuevo. Presione este botón para comenzar un nuevo diagrama de flujo.
Grabar. Utilice esta opción para grabar su diagrama de flujo.
Abrir. Presione este botón para recuperar archivos grabados
Imprimir. Utilice este botón para imprimir su diagrama de flujo. Vista preliminar. diagrama de flujo.
Presione este botón para ver cómo se imprimirá su
Información. Utilice este botón para conocer información de contacto de AutoFlujo. f.
44
BOTÓN DESHACER Sirve para anular la última operación realizada.
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. Ejecutar hasta. Este botón ejecuta el diagrama hasta el objeto seleccionado. Generar código. Presione este botón para generar el programa o código fuente en Turbo C, C++, Java o C# correspondiente a su diagrama de flujo. Ayuda. Esta opción enlaza directamente con el manual electrónico PDF de AutoFlujo que contiene la información completa del manejo del programa, fundamentos y ejercicios de programación de computadoras. Si desea buscar algún tema específico, ubíquese en la caja de texto BUSCAR, escriba el tema o palabra a buscar y presione la tecla Enter:
Escriba aquí la palabra a buscar y presione Enter.
h.
AJUSTAR PREFERENCIAS Contiene opciones para ajustar AutoFlujo a sus necesidades y gustos. Esta opción está compuesta por las siguientes fichas: 45
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.
46
FUENTE Y SÍMBOLOS Contiene opciones para configurar el alto y ancho de los símbolos, y el tipo y tamaño de letra.
VELOCIDAD Utilice esta opción para regular la velocidad de ejecución del modo PROCESO POR PROCESO.
47
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.
Ajustar preferencias, además, posee los siguientes botones: Cancelar. Presione este botón para cancelar los cambios efectuados. 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. Predeterminar. Presione este botón para que AutoFlujo registre y utilice posteriormente como predeterminados los valores modificados. Recuperar valores por defecto. AutoFlujo tiene una configuración inicial de funcionamiento. Presione este botón para recuperar dichos valores. 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
48
49
7 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. 7.1. DIBUJANDO LOS SÍMBOLOS Ubíquese sobre el símbolo y arrástrelo hasta la pizarra.
Como en cualquier otro programa, para borrar un objeto en AutoFlujo, sólo se debe presionar la tecla SUPRIMIR.
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. 50
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.
51
7.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.
Luego, ajuste el ancho del símbolo de acuerdo a su contenido.
Los símbolos de AutoFlujo soportan como máximo 60 caracteres.
7.3. USO DEL SÍMBOLO TERMINAL Utilice este símbolo para comenzar y terminar el diagrama principal o las funciones (subprogramas) que tenga el mismo. Su contenido sólo puede ser INICIO, FIN, la declaración de una función o RETORNAR.
52
7.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. Generalmente los programas tienden a crecer y a hacerse complejos; la única forma de organizarlos y hacerlos entendibles y fáciles de mantener es con la utilización y aplicación de funciones. 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.
53
¡IMPORTANTE! En AutoFlujo 2.0 las funciones se diseñan junto al diagrama principal, es decir, en la misma ventana de diseño.
7.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: Edad Se leerá un valor que se almacenará en la variable Edad. x,y,z Se leerán tres valores que se almacenarán en las variables x, y, z. vec[2] Se leerá un valor que se almacenará en la posición 2 del vector llamado vec. lista[q] Se leerá un valor que se almacenará en la posición indicada por la variable q del vector llamado lista. 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. 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. 54
Utilice comas para separar más variables y no deje espacios en blanco.
7.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.
7.5.1. Declaración de arreglos Este símbolo también se utiliza para la declaración de arreglos (vectores o matrices).
Se declara un vector llamado X de cinco posiciones
Veamos más ejemplos de declaración de arreglos en AutoFlujo: k[5] Se implementará un vector llamado k de cinco posiciones. 55
lista[n] El vector lista tendrá la cantidad de posiciones indicada por el valor de la variable n. m[2,4] Se implementará una matriz llamada m de dos filas y cuatro columnas. notas[q,w] La matriz notas tendrá q filas y w columnas.
Tome en cuenta que en AutoFlujo la longitud máxima para arreglos es de 200 posiciones.
7.6. SALIDA DE DATOS Para la salida de datos puede utilizar el símbolo que identifica a la pantalla o el que identifica a la impresora.
Salida impresa (por papel)
Salida por pantalla
Ejemplos de instrucciones de salida: Edad Mostrará como resultado el valor de la variable Edad. bas,alt,ar Se mostrarán los valores de las variables bas, alt, ar en el orden que aparecen. “Hola” Mostrará como resultado Hola. “Total es ”,tot Mostrará la cadena Total es y, a continuación, el valor de la variable tot.
56
“Orden ”,n1,n2,n3 Se visualizará la cadena Orden y los valores de n1,n2 y n3. 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. v[i] Mostrará el valor de la posición i del vector v. w[2] Mostrará el valor de la posición 2 del vector w. m[q,r] Mostrará el valor de la posición indicada por la fila q, columna r de la matriz m. datos[0,3] Mostrará el valor contenido en la posición fila 0, columna 3. w*h Mostrará el resultado de la multiplicación de ambas variables.
No se olvide separar con comas los componentes de una salida compuesta (cadenas y variables). Recuerde siempre: las cadenas de texto en AutoFlujo sólo soportan LETRAS (no acentuadas ni eñes), ESPACIOS EN BLANCO y DOS PUNTOS. 7.7. ESCRITURA DE CONDICIONES Ya sabe: una condición está compuesta por dos expresiones separadas por un operador relacional.
Condición
Condición de ciclo repetitivo
57
Ejemplos: m>= n Pregunta si el valor de m es mayor o igual al valor de n num%c == 0 Evalúa si el módulo (residuo) de num entre c es igual a 0 s+1 <= n-1 Pregunta si el resultado de s+1 es menor o igual a n-1 p>q&q>r Evalúa si p es mayor a q y q es mayor a r El formato de escritura de condiciones es el mismo para estructuras condicionales y ciclos repetitivos controlados por condición.
7.8. USO DEL CICLO REPETITIVO AUTOMÁTICO Como se mencionó anteriormente, un ciclo repetitivo automático funciona mediante una variable de control, que toma un valor inicial; un límite del ciclo repetitivo, constituido por una expresión, y una expresión que define la cantidad de incremento o decremento del ciclo.
Ciclo repetitivo automático
Ejemplos: i=0,n,1 La variable i tomará valores desde 0 hasta el valor de n con incrementos de 1 en 1.
q=10,1,-1 El ciclo comenzará desde 10 hasta 1 con decrementos de 1 en 1. 58
w=1,z-1,2 La variable w tomará valores desde 1 hasta el resultado de z-1 con incrementos de 2 en 2.
Nunca lo olvide: utilice un valor negativo para decrementos y uno positivo para incrementos.
7.9. USO DEL CONECTOR DE FLUJO En teoría, siempre se debería utilizar este símbolo para conectar dos líneas de flujo, aunque en la práctica no se lo suele hacer. En AutoFlujo es obligatorio usar este símbolo. Tome en cuenta las siguientes consideraciones para su utilización:
En estructuras condicionales no se anota nada.
No tiene contenido
59
ď&#x192;&#x2DC;
Debe anotar la letra R para la estructura repetitiva mientras y el ciclo repetitivo automĂĄtico for.
Para la estructura FOR, debe escribir R dentro del conector
El conector debe tener R para la estructura repetitiva MIENTRAS
60
Debe escribir la letra D para la estructura repetitiva Hacer-mientras.
7.10. TRAZADO DE LÍNEAS DE FLUJO Tome en cuenta: siempre dibuje primero los símbolos que utilizará su diagrama de flujo. Para conectar los símbolos, primero active el modo Conexión de líneas.
61
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.
Eso sí: trace las líneas respetando la forma de la estructura de control que esté utilizando.
62
7.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. Utilice los botones de alineación para acomodar el texto de un símbolo o de una línea. En ambos casos, debe seleccionar primero el elemento haciendo clic sobre él y utilizar dichos botones para mover las etiquetas de las líneas.
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:
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. 63
Este tipo de lĂneas se presentan en las estructuras de control repetitivas for, while y do-while.
64
65
8
DISEÑO Y PRUEBA DE UN DIAGRAMA DE FLUJO Bueno, una vez conocidos todos los símbolos, propiedades y otras características de AutoFlujo… ¡estamos en condiciones de poder diseñar un diagrama y ejecutarlo para ver cómo funciona! 8.1. DISEÑO DEL DIAGRAMA DE FLUJO Aunque usted puede diseñar el diagrama en el orden y de la forma que sea más de su agrado, tome en cuenta lo siguiente: Dibuje todos los símbolos que tendrá su diagrama con sus respectivos contenidos.
66
Conecte los símbolos en orden, de principio a fin.
En caso de condiciones, ciclos repetitivos y conectores de flujo, trace primero la línea que continúa el flujo por verdadero (sí).
Primero esta línea.
67
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…
68
… y utilice estos botones para acomodar el texto.
Arriba
Izquierda
Derecha
Abajo
Termine de diseñar el diagrama.
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:
69
8.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.
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. 8.2.1. ACERCA DE LOS NOMBRES DE ARCHIVO Los nombres de archivo siempre deben comenzar con una letra; después pueden ser letras o números; nunca utilice símbolos extraños, comas ni puntos porque crean conflictos al sistema operativo. Ejemplos de nombres: Válidos: No válidos: 70
peso, serie1, ejer17, mi tarea, a2006, salarios 8, mi primer diagrama 2ejer, p”@27, #%72lo-3, practica.juan
8.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.
8.3.1. LA BARRA DE EJECUCIÓN Esta barra sólo aparece cuando se está ejecutando y probando un diagrama de flujo. Consta de las siguientes partes:
71
a a) b)
c)
b
c
Panel de descripción del símbolo Identifica el símbolo y describe la operación que realiza. Panel de ejecución En este panel se llevará a cabo la operación inherente al símbolo activado. Por ejemplo: si es pantalla, mostrará resultados; si es teclado, permitirá la introducción de datos para las variables; si es condición, mostrará los valores que se comparan, y así sucesivamente. Panel de control de ejecución y seguimiento Sirve para controlar la ejecución del diagrama, así como para realizar un análisis y seguimiento minucioso del mismo. Posee las siguientes opciones: Presione este botón para ejecutar el diagrama proceso por proceso. Presione este botón para ejecutar todo el diagrama de una vez. Presione este botón para detener la ejecución del diagrama.
72
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: Variables. programa.
Muestra el comportamiento de las variables del
Arreglos. Muestra grรกficamente los vectores o matrices que maneje un diagrama de flujo. Ejemplo de un vector de cuatro posiciones:
73
Ejemplo de una matriz de dos filas y tres columnas:
8.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. 8.4.1. Errores en tiempo de diseño En esta fase AutoFlujo controla el número de flujos que pueden entrar o salir de un símbolo. Si en algún momento una línea de flujo provoca un error, AutoFlujo se lo hará saber mediante un mensaje 8.4.2. Errores en tiempo de compilación En esta fase AutoFlujo verifica la sintaxis, en otras palabras, el contenido de cada símbolo del diagrama de flujo. Si encuentra algún error, AutoFlujo le mostrará un mensaje indicando el error y la posición en que se localiza. 8.4.3. Errores en tiempo de ejecución En esta fase AutoFlujo controla las variables del diagrama. Cuando AutoFlujo detecta que una variable no tiene valor o, lo que es lo mismo, que no fue inicializada, muestra el mensaje “Variable no tiene valor” y detiene la ejecución del diagrama.
74
75
9 GENERANDO CÓDIGO CON AUTOFLUJO Seguramente usted, amigo lector, hasta el momento ha llegado a la conclusión de que AutoFlujo es una herramienta de ayuda para el diseño de diagramas de flujo. Sin embargo hay más: AutoFlujo también tiene la capacidad de poderlo ayudar en la tercera fase de desarrollo, o sea en la fase de implementación. Sin duda esta característica lo sorprenderá gratamente, pues AutoFlujo puede generar el programa en Lenguaje C, C++, Java o C# correspondiente al diagrama diseñado. 9.1. PASOS PARA LA GENERACIÓN DE CÓDIGO Para generar código en AutoFlujo, siga cuidadosamente los siguientes pasos: Compruebe que su diagrama ha sido correctamente diseñado y que cumple su cometido; en otras palabras: que funcione bien. Grabe su diagrama de flujo antes de generar el código. Si ya realizó los pasos anteriores, presione el botón GENERAR CÓDIGO del panel principal de control.
Presione este botón.
76
A continuación, AutoFlujo le mostrará la siguiente pantalla:
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:
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 77
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). 9.2. CONSIDERACIONES SOBRE LA GENERACIÓN DE CÓDIGO AutoFlujo genera de manera exacta el código correspondiente a las estructuras de control mencionadas anteriormente, vale decir: secuenciales, condicionales y repetitivas. Sin embargo, hay que hacer notar las siguientes características: 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. Números Enteros Enteros largos Real de simple precisión Real de doble precisión
Tipo de dato int long float double
Código de formato %d %ld %f %lf
Para más detalles consulte un manual de Turbo C
Algunas operaciones indicadas de AutoFlujo se simplifican en los lenguajes de programación. Tome en cuenta: El operador de parte entera. Para obtener la parte entera en los lenguajes mencionados, sólo es necesario que la variable que almacena el resultado sea de tipo entero (int). La división entera. Para obtener una división entera (sin decimales) basta con declarar de tipo entero la variable que almacena el resultado o declarar los dos operandos (dividendo y divisor) de tipo entero (int). La función Randent de AutoFlujo debe ser reemplazada por int(random(valor)) en C y C++, y en Java por Math.int(Math.random(valor)) . Por ejemplo, la expresión randent(6) de AutoFlujo debe ser reemplazada por int(random(6)) en C y C++, o Math.int(Math.random(6)) en Java. 78
Reemplace las operaciones exponenciales de AutoFlujo por expresiones del tipo pow(base,exponente) en C y C++, y Math.pow(base,exponente) en Java y C#. Por ejemplo, la expresión x ^ 3 de AutoFlujo debe ser cambiada por pow(x,3) en C o Math.pow(x,3) en Java y C#.
No lo olvide: generar números aleatorios en C# es diferente; le sugiero que revise un manual de C#.
UNAS PALABRAS FINALES ¿Qué le parece AutoFlujo? Espero que le haya gustado. Como verá, con su uso se simplifica enormemente el proceso de diseño de programas para computadora; éste ya no tiene que ser, lo vuelvo a reiterar, una actividad teórica ni aburrida. AutoFlujo es producto de muchos años de desarrollo y, téngalo por seguro, continuará evolucionando. Para ello, sus comentarios, opiniones o críticas son valiosas; hágamelas llegar a mi correo electrónico: marco.veneros@gmail.com; si gusta, al perfil de AutoFlujo en Facebook o a mi cuenta de Twitter: @marcoVeneros, cuenta en la que publico periódicamente novedades de mis proyectos, así como noticias de índole tecnológica. Por último, le vuelvo a reiterar la invitación para que busque los videos de AutoFlujo en YouTube y continué, de esta manera, aprendiendo a programar computadoras. ¡Buena suerte y continúe en el maravilloso mundo de la programación de computadoras!
79
CARACTERÍSTICAS TÉCNICAS DE AUTOFLUJO 2.0
80
Tamaño del software
:
Aproximadamente 16 megabytes
Procesador
:
Pentium III de 800 MHz como mínimo
Espacio en disco duro
:
Mínimamente 100 megabytes
Sistema operativo
:
Windows XP (SP3), Windows 7 o Windows 8.1.
Memoria mínima
:
128 megabytes
Pantalla (resolución mínima) :
800 x 600 píxeles
81
10 EJERCICIOS CON DIAGRAMAS DE FLUJO Amigo lector, a continuación se detallan 60 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! 1. Hola mundo Diagrama equivalente en AutoFlujo al famoso primer programa escrito en Lenguaje C. Este diagrama muestra por pantalla el mensaje “Hola mundo”.
3. Área de un triángulo Este diagrama calcula el área de un triángulo; para ello pide la introducción de la base (b) y la altura (h), y aplica la fórmula: at = b * h 2
2. Suma de dos números Este diagrama lee dos números, n1 y n2, los suma y almacena el resultado en la variable s.
4. Área de una circunferencia En este ejemplo se calcula el área de una circunferencia; se aplica la fórmula: ac= *radio2 Variables utilizadas: r : radio pi : la constante PI ac : área de la circunferencia 82
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
5.
Convertir un monto en dólares a bolivianos En este ejercicio se pide la introducción de una cantidad en dólares (dol) y la cotización actual del dólar (cot), para luego multiplicar ambos valores y obtener el equivalente en bolivianos.
7.
Calcular el precio de venta de un producto Se pide la introducción del precio de costo en dólares de un producto (pcd) y la cotización actual del dólar (cot), para luego convertir este precio a su equivalente en bolivianos (cb) y determinar un incremento del 30 %; ambos resultados determinarán a qué precio se debe vender el producto (pvb). 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
83
10.
8. Distancia entre dos puntos El siguiente diagrama pide la introducción de las coordenadas de dos puntos (x1,y1; x2,y2) y calcula la distancia (d) existente entre ellos aplicando la siguiente fórmula: d=
9.
(x1-x2)2 + (y1-y2)2
Sumar dos números sin utilizar el signo más. Se suman dos números (e,r) aplicando la regla de signos de la multiplicación. 84
Dados cuatro números: sumar el primero con el tercero, multiplicar el segundo con el cuarto y dividir después ambos resultados.
Variables: a : b : c : d :
Primer número Segundo número Tercer número Cuarto número
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
12. Determinar el promedio de calificaciones de un alumno En este ejercicio de aplicación se piden tres calificaciones de un alumno; estas se promedian y se determina si el alumno aprobó o reprobó. Se toma 51 como nota mínima de aprobación. Donde: p1,p2,p3 pr
: Son las notas parciales del alumno. : Es el promedio final del alumno.
85
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; en el caso contrario, es impar. Por ejemplo: Se debe utilizar el operador módulo (%) para obtener el residuo de la división.
86
14 0
2 7
Como el residuo es 0, el número 14 es par
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).
15. Determinar el mayor de tres números Para determinar el mayor de tres números leídos (x,y,z), sólo se deben realizar comparaciones entre ellos.
87
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.
17. Día de la semana Este diagrama pide la introducción de un número e indica qué día de la semana representa.
88
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
19. Generar los 10 primeros números naturales Este diagrama genera la serie de 1 a 10.
89
20. Serie descendente Este diagrama genera la serie: 10,8,6,4,2,0
21. Introducir un número y determinar si es perfecto o no. Un número es perfecto cuando la suma de todos sus divisores menores que él es igual al mismo número. Por ejemplo, el seis es perfecto, dado que la suma de sus divisores es, también, seis. Veamos: 1+2+3 = 6.
90
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 uno hasta el valor de n
23.
Determinar si un número introducido es primo Número primo es aquel que sólo es divisible por la unidad y por sí mismo. Por ejemplo, el cinco es primo, porque en la serie de uno a cinco es divisible sólo por uno y por cinco.
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
91
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 que va desde uno hasta el valor del número. Ejemplo: 5! = 1 * 2 * 3 * 4 * 5 = 120 Variables utilizadas: x f w
: Número introducido : Para almacenar el factorial : Variable de control del ciclo repetitivo automático.
25. Mostrar y contar los dígitos de un número Para descomponer un número, se debe dividir éste entre 10 sucesivamente hasta que sea 0 y contar la cantidad de veces que el número se dividió.
Donde: n m c dig
92
: Es el número introducido : Variable auxiliar que guarda una copia del valor de n : Cuenta la cantidad de dígitos : Para obtener un dígito del número
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=n%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
93
27. Tabla de sumar de un número Este programa genera números del 1 al 10. Realiza la correspondiente suma del dato de entrada num con los números generados para la variable i y se imprime en pantalla. Ejemplo : si num=4 el resultado es: 4+1=5 4+2=6 ….. 4+10=14
28. 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 Donde: i es un valor entero de 1, 2, 3, 4, .....n
94
29. Generar los N primeros números impares Este diagrama genera los N primeros números impares, aplicando la definición algebraica de número impar: k * 2 +1 Donde: k es un valor entero de 0, 1, 2, 3, 4, .....n-1
30. 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
95
31. 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.
96
32. 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. Ejemplo: Convertir 13 a su equivalente en base 2: 13 (1)
2
Se toman los residuos en este sentido y se forma el número.
6 (0)
2 3 (1)
2 1 (1)
2 0
Resultado: El número 13 es igual a 1101 en base 2.
97
33.
Generar n números en binario
Este diagrama lee n cantidad de números y obtiene su equivalente en una base 2 para cada número. Ejemplo: Generar números binarios menores o iguales a n. Si n = 6, Se generan números del 0 al 6 (base 10) y cada uno de ellos se convierte a binario (base 2) y el resultado es: Base 10 Base 2 =================== 0 0 1 1 2 10 3 11 4 100 5 101 6 110
98
34. Rotar los dígitos de un número hacia la derecha y mostrar cada rotación 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
99
35. 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.
100
36.
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.
37.
Diagrama de flujo que utiliza una función para calcular el factorial de un número. Diagrama modularizado que realiza lo mismo que el explicado en el ejercicio 24.
101
38. Calcular el mínimo común múltipo (m.c.m.) de dos números Ejemplo: si a=10 y b=4, el resultado será m=20
39. Uso de la función Randent Randent es una función matemática propia de AutoFlujo. Esta función genera un número entero aleatorio comprendido entre 0 y valor límite-1. Randent fue diseñada para que el manejo de números aleatorios enteros sea fácil para usuarios sin experiencia en el campo de la programación de computadoras. 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.
102
40. 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.
41. Uso de la función Random para generar números enteros aleatorios Como ya se mencionó anteriormente, Randent es una función propia de AutoFlujo que tiene por objetivo facilitar la generación de números enteros aleatorios. Pero, ya en la práctica, los lenguajes de programación, tales como: C y Java usan la función random para generar números aleatorios comprendidos entre 0 y el valor límite-1. Veamos, diseñe y ejecute el siguiente diagrama de flujo:
103
El diagrama producirá la siguiente salida de resultados:
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. Dicho lo anterior, el siguiente diagrama realiza lo mismo que el planteado en el ejercicio anterior, pero se usa random para generar los números aleatorios.
104
42. 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.
105
43. 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.
106
44.
Realizar un diagrama que aplique el algoritmo de Euclides para obtener el máximo común divisor (M.C.D.) de dos números
Ejemplo: si a=10 y b=4, el resultado será m=2
Le vuelvo a recordar que en AutoFlujo 2.0 el diagrama principal y las funciones se diseñan juntos, es decir, en la misma pantalla de diseño. ¡Dibújelos como los vea en los ejemplos! 45.
Diagrama que utiliza una función para contar los dígitos de un número cualquiera Ejemplo: si num=107, el resultado será c=3
107
46. Multiplicar tres números mediante sumas Este diagrama utiliza una función para multiplicar dos números mediante sumas.
47. Serie de factoriales En este ejercicio se obtiene la suma de los factoriales de cada digito de una serie de n términos. Por ejemplo, para n=3: s= 1! + 2! + 3! S=9 Dado que: 1!= 1 2!= 1*2=2 3!=1*2*3=6 El resultado de la suma de los tres factoriales es: 9
108
48. Generar los números primos de dos cifras Para resolver este ejercicio se genera los números de dos cifras (de 10 hasta 99); luego cada número generado es enviado a la función CONTARD que cuenta y devuelve los dígitos del número; luego el programa principal evalúa este resultado; si se dividió dos veces es primo; si no, no.
49.
Cargar un vector y mostrar su contenido
109
50. Cargar un vector, sumar sus elementos y obtener el promedio de los mismos Ejemplo: dado el siguiente vector de cuatro posiciones (max=4): V(5,4,8,1) La suma será: 5+4+8+1 = 18 El promedio: 18/4 = 4.5; donde 4 es el número de elementos del vector.
51. Llenar un vector con n datos y hallar el valor máximo. Ejemplo: dado el siguiente vector de tamaño cinco: n=5 V(6,9,8,5,3) Se obtendrá como máximo valor 9.
110
52.
Buscar un dato en un vector
Donde: max dato ban
: : :
Es el nĂşmero de elementos del vector. Es el dato a buscar en el vector. Es la variable bandera o interruptor, que inicialmente vale 0 y cambia a 1 cuando el dato es encontrado en el vector.
111
53. 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รก:
54.
112
V(5,6,8,9)
Cargar una matriz y mostrar su contenido
55.
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:
M=
1 0 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
1 0 0 0 1
113
56.
Dada una matriz cuadrada, obtener la suma de los elementos de la diagonal principal y el producto de los de la diagonal secundaria. Dada la siguiente matriz:
M=
3 1 7 2 5
8 2 9 1 3
5 7 2 0 8
6 4 0 3 7
9 6 1 8 1
Entonces: Suma de la diagonal principal: 3+2+2+3+1 = 11 Producto de la diagonal secundaria: 9*4*2*1*5 = 360
114
57.
Suma de dos matrices
Ejemplo: Para f=2 y c=2 Donde: f : nĂşmero de filas c: nĂşmero de columnas Entonces: 9
6
X=
4 +
3
1
1
Y=
13
7
9
6
=> Z= 6
5
115
58.
Cargar una matriz y obtener el promedio de los nĂşmeros primos que tenga
Ejemplo: Si nf=2 y nc=3, llenar la matriz mat de tamaĂąo nf por nc (mat nf x nc) Donde: nf es nĂşmero de filas y nc es la cantidad de columnas.
5
6
4
8
1
7
Mat=
116
=>
p=(5+7)/2=6
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. 59.
Obtener el factorial de un número recursivamente
60.
Diagrama de flujo recursivo que calcula el elemento enésimo de la serie Fibonacci.
Por ejemplo, dada la serie Fibonacci: 1,1,2,3,5,8,13,21,34… Si n=6, el diagrama mostrará como resultado 8, dado que es el sexto elemento de la serie.
117