sábado, 10 de noviembre de 2012

DFD (Diagrama de Flujo de Datos)


Definición:




El diagrama de flujo de datos es un modelo que describe los flujos de datos o tuberías, los procesos que cambian o transforman los datos en un sistema, las entidades externas que son fuente o destino de los datos (y en consecuencia los límites del sistema) y los almacenamientos o depósitos de datos a los cuales tiene acceso el sistema, permitiendo así describir el movimiento de los datos a través del sistema.
En síntesis, el Diagrama de Flujo de Datos describe:









ð los lugares de origen y destino de los datos (los límites del sistema),

ð las transformaciones a las que son sometidos los datos (los procesos internos),

ð los lugares en los que se almacenan los datos dentro del sistema, y

ð los canales por donde circulan los datos.




Diagrama de flujo


 


El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como programación, economía, procesos industriales y psicología cognitiva.
En Lenguaje Unificado de Modelado (UML), un diagrama de actividades representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema. Un diagrama de actividades muestra el flujo de control general.
En SysML el diagrama de actividades ha sido extendido para indicar flujos entre pasos que mueven elementos físicos o energía. Los cambios adicionales permiten al diagrama soportar mejor flujos de comportamiento y datos continuos.


Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.



Diseño de programas sencillos

Tanto en la programación como para todo en la vida siempre es bueno comenzar desde el principio, ¿no? El programa más desarrollado a nivel mundial por todos los lenguajes de programación es el clásico “¡Hola Mundo!”, y es eso lo que haremos en este apartado.
Lo primero que haremos será abrir Visual Basic, se nos desplegará la siguiente ventana:


Como nuestro objetivo es desarrollar algo básico, escogemos “EXE estándar” como tipo de proyecto, y a continuación haremos un simple clic en el botón “Abrir”.


Como pueden observar en la captura anterior, Visual Basic tiene un entorno de desarrollo bastante intuitivo. Lo más importante es que puedes diseñar tu aplicación desde cero; en la parte izquierda tenemos a nuestra disposición los distintos objetos, por lo que sólo nos tocará arrastrar y soltar en el “Formulario” los distintos objetos que necesitamos; luego ya será cuestión de codificar y establecer las propiedades pertinentes para el mismo.
Pero bien, como nuestro objetivo es básicamente un programa que muestre un mensaje que diga “¡Hola Mundo!”, entonces nos encargaremos de agregar los siguientes objetos al formulario: 1label y 1 command button. Y si no sabes cuáles son, sólo deja el cursor del ratón sobre cualquier objeto y te irá diciendo qué objeto es con un texto descriptivo.




Ahora bien, para cada objeto, existen distintas propiedades, las cuales podemos observar en la parte derecha del entorno de Visual Basic, para establecer distintas configuraciones, y varían en función de los objetos. La propiedad “Caption” está en muchos objetos; vamos a escribir en elLabel “Mi primer programa”, y en el Command Button “¡Púlsame!”.
Con la propiedad “Font” podemos personalizar el tamaño y el tipo de fuente del objeto que seleccionemos; así conocemos qué propiedades tiene Visual Basic para cada objeto.



Muy práctico lo que hemos conseguido en pocos pasos, ¿no? Ahora, ¿qué hacemos? Si por ejemplo, al hacer clic en el botón “¡Púlsame!”, ¿qué pasará? Obvio que nada, pues no hemos codificado absolutamente nada en cualquier evento que suceda en dicho objeto. ¿Evento? ¿Codificado? Términos extraños, ¿no? Pues aclaremos esto de una buena vez.
Bueno, un evento es cualquier acción que se realiza sobre un objeto, como por ejemplo hacer clic o presionar una tecla; y codificar se refiere a establecer, a través de código de programación, distintas tareas que se van a realizar en un evento en específico.
¿En dónde debemos codificar si queremos que al hacer clic en “¡Púlsame!” salga un aviso que diga “¡Hola Mundo!”? En el Command1, que es en donde el usuario realizará el evento (“hacer clic”). Hacemos doble clic sobre el objeto en la parte de diseño, y nos llevará a la parte de código de Visual Basic, en donde codificaremos lo que queremos que haga.
El código que escribiremos en el mismo será el siguiente:MsgBox “¡Hola Mundo!”, vbInformation, “Mi primer programa”
En la parte de codificación de Visual Basic se vería así:



Para que se entienda mejor, dividí las partes más importantes de este entorno con puntos: el punto 1 es el objeto, que es el botón (CommandButton, que se llama “Command1”); el punto 2 es el evento que se realizará sobre el objeto del punto 1, que es “clic”; y por último, el punto 3 es la parte en donde codificaremos lo que deseamos hacer en el evento mismo.
Y así finalizamos nuestro “primer programa”. Si queremos, podemos ir al menú archivo, y luego hacer clic en la opción “Generar Proyecto1.exe”, que es el ejecutable del programa. De todas maneras, dejo a la disposición de todos al final del post tanto el ejecutable como el proyecto (que contiene el código y todo lo que hicimos) para que vayan practicando.
Posiblemente para los usuarios que quieran ingresar en el mundo de la programación con Visual Basic esto sea una motivación ya que como se pueden haber dado cuenta se trata de un lenguaje bastante sencillo con el que se pueden desarrollar desde las más básicas hasta las más complejas aplicaciones, y todo con un entorno de diseño y desarrollo.








Constantes


Constante


En programación, una constante es un valor que no puede ser alterado durante la ejecución de un programa.
Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos.


Por ejemplo:


El valor de pi = 3.1416


Por conveniencia, el nombre de las constantes suele escribirse en mayúsculas en la mayoría de lenguajes.


Ejemplo de una constante en C(#define)




En C las constantes se declaran con la directiva #define, esto significa que esa constante tendrá el mismo valor a lo largo de todo el programa. El identificador de una constante así definida será una cadena de caracteres que deberá cumplir los mismos requisitos que el de una variable (sin espacios en blanco, no empezar por un dígito numérico, etc).
Ejemplo: #include <stdio.h> #define PI 3.1415926 int main() { printf("Pi vale %f", PI); return 0; }


Lo cual mostrará por pantalla: Pi vale 3.1415926








Es decir, PI es una constante a la que le hemos asignado el valor 3.1415926 mediante la directiva #define.
La directiva #define también se puede utilizar para definir expresiones más elaboradas con operadores (suma, resta, multiplicación etc) y otras constantes que hayan sido definidas previamente, por ejemplo: #define X 2.4 #define Y 9.2 #define Z X + Y

El entorno en Visual Basic

En Visual Basic al comenzar podemos ver la siguiente ventana:



Está nos esta mostrando la diferentes formas para comenzar, hay 3 formas, la primera Nuevo es iniciando un Nuevo Proyecto, seleccionando uno tipo de proyecto, la segunda Existente es abriendo un proyecto ya existente, el archivo tiene que contener la extensión *.vbp, *.mak o *.vbg, y por ultimo la tercera Recientes es seleccionando un proyecto de la lista de archivos recientemente abiertos (VB se encarga automáticamente de mostrar una lista de los últimos proyectos abiertos)Para continuar elija EXE estándar y luego Abrir, ahora se explicara la Ventana principal de Visual Basic.




  1. Barra de titulo, en está se muestra el nombre del proyecto actual en el que se esta trabajando, luego viene el nombre del programa, continuado a "Microsoft Visual Basic viene el estado en el que está el proyecto, hay 3 tipos de estado en [Diseño] cuando se está escribiendo el código, [Ejecución] el programa se encuentra en ejecución, o en estado de[Interrupción] que es cuando en estado de ejecución se produjo un error, por ultimo en la barra de titulo se puede visualizar el nombre del Form (Formulario) actual en que se está trabajando y como se está trabajando [Form1 [Form]] cuando se trabaja en el diseño del Formulario o [Form1 [Código]] cuando se trabaja en el código para ese formulario.
  2. En la barra de menúes se encuentran todas las opciones para manejar Visual Basic, a medida que se vayan utilizando se irán explicando.
  3. La barra de herramientas, contiene varios accesos directos a los menús, para agilizar el manejo de Visual Basic.
  4. Se le llama Cuadro de herramientas y sirve para colocar objetos en la Ventana de Diseño, como Cuadros de textos, Botones, Imágenes, y otros. Esto funciona muy fácil ya que seleccionamos por ejemplo un CommandButton (botón), y vamos al ventana diseño y lo creamos haciendo Clic con el Mouse (sin soltarlo!) y lo arrastramos hasta el tamaño que deseemos, en ese momento soltamos el botón. Y listo ya tienes un botón estilo Windows para usar!.
  5. La Ventana diseño, es aquí donde se le da la apariencia al programa, es decir lo que el usuario va a ver. Los puntillos del fondo son utilizados con el fin de alinear más fácil los objetos en el Formulario(Ventana).
  6. El Explorador de proyectos es donde visualizamos todas los Formularios(Ventanas), Módulos, Clases, entre otros del proyecto actualmente abierto, es decir de la aplicación que se está creando, en este caso hay un solo Formulario llamado Form1, lo que aparece dentro de paréntesis es el nombre de archivo. Y este Formulario se encuentra dentro de una carpeta llamada "Formularios", por ser que VB clasifica los archivos por tipos, cuando use otros tipos de archivos además de Formularios podrá visualizar otras carpetas.
  7. La Ventana propiedades muestra todas las propiedades del control actualmente seleccionado, en este caso muestra las propiedades del Form1, luego podemos ver que abajo dice "Form1 Form", lo que está en negrita es el nombre del objeto, y lo que le sigue es el tipo de objeto, en este caso es un Formulario (Form).
  8. En la ventana Posición del Formulario, se puede ver un monitor y dentro de él una ventanita, esto sirve para definir la posición de la ventana cuando se inicie el programa, es decir donde se va a mostrar. Pruebe hacer clic sobre la ventana (sin soltar el botón!) y arrastre la ventana dentro del monitor, luego suelte el botón del Mouse. Y cuando se ejecute la aplicación la ventana aparecerá en esa posición.



Visual Basic

Visual Basic es un lenguaje de programación dirigido por eventos, desarrollado por Alan Cooper para Microsoft. Este lenguaje de programación es un dialecto de BASIC, con importantes agregados. Su primera versión fue presentada en 1991, con la intención de simplificar la programación utilizando un ambiente de desarrollo completamente gráfico que facilitara la creación de interfaces gráficas y, en cierta medida, también la programación misma.
La última versión fue la 6, liberada en 1998, para la que Microsoft extendió el soporte hasta marzo de 2008.


En 2001 Microsoft propuso abandonar el desarrollo basado en la API Win32 y pasar a un framework o marco común de librerías, independiente de la versión del sistema operativo, .NET Framework, a través de Visual Basic .NET (y otros lenguajes como C Sharp(C#) de fácil transición de código entre ellos); fue el sucesor de Visual Basic 6.


Aunque Visual Basic es de propósito general, también provee facilidades para el desarrollo de aplicaciones de bases de datos usando Data Access Objects, Remote Data Objects, o ActiveX Data Objects.
Visual Basic contiene un entorno de desarrollo integrado o IDE que integra editor de textos para edición del código fuente, un depurador, un compilador (y enlazador) y un editor de interfaces gráficas o GUI.




Tipos de estructuras de programación

ESTRUCTURAS BÁSICAS




Estructura Secuencial


Se caracteriza porque una acción se ejecuta detrás de otra. El flujo del programa coincide con el orden físico en el que se han ido poniendo las instrucciones. Dentro de este tipo podemos encontrar operaciones de inicio/fin, inicialización de variables, operaciones de asignación, cálculo, sumarización, etc. Este tipo de estructura se basa en las 5 fases de que consta todo algoritmo o programa:


Definición de variables (Declaración)


  • Inicialización de variables
  • Lectura de datos
  • Cálculo
  • Salida





Operador





Operadores Aritméticos

Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores (variables y constantes).

Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

Operadores Aritméticos

+ Suma
- Resta
* Multiplicación
/ División
mod Modulo (residuo de la división entera)

Ejemplos:Expresión Resultado7 / 2 3.512 mod 7 54 + 2 * 5 14



Prioridad de los Operadores Aritméticos


Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis anidados se evalúan de dentro a fuera, el paréntesis más interno se evalúa primero.
Dentro de una misma expresión los operadores se evalúan en el siguiente orden:^ Exponenciación*, /, mod Multiplicación, división, modulo.+, - Suma y resta.Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izquierda a derecha.

Ejemplos:

4 + 2 * 5 = 14 23 * 2 / 5 = 9.23 + 5 * (10 - (2 + 4)) = 23 2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

Operadores Relacionales


Se utilizan para establecer una relación entre dos valores. Luego compara estos valores entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso).
Los operadores relacionales comparan valores del mismo tipo (numéricos o cadenas). Estos tienen el mismo nivel de prioridad en su evaluación.
Los operadores relaciónales tiene menor prioridad que los aritméticos.

Tipos de operadores Relacionales> Mayor que< Menor que> = Mayor o igual que< = Menor o igual que< > Diferente= IgualEjemplos:
Si a = 10, b = 20, c = 30

a + b > c Falsoa - b < c Verdaderoa - b = c Falsoa * b < > c Verdadero
Ejemplos no lógicos:
a < b < c
10 < 20 < 30
T > 5 < 30
(no es lógico porque tiene diferentes operandos)

Operadores Lógicos


Estos operadores se utilizan para establecer relaciones entre valores lógicos. Estos valores pueden ser resultado de una expresión relacional.

Tipos de operadores Lógicos
And Y
Or O
Not Negación

Ejemplo:
Para los siguientes ejemplos T significa verdadero y F falso.

Variable




En programación, las variables son espacios reservados en la memoria que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. Una variable corresponde a un área reservada en la memoria principal del ordenador pudiendo ser de longitud:

Fija.- Cuando el tamaño de la misma no variará a lo largo de la ejecución del programa. Todas las variables, sean del tipo que sean tienen longitud fija, salvo algunas excepciones — como las colecciones de otras variables (arrays) o las cadenas.

Variable.-Cuando el tamaño de la misma puede variar a lo largo de la ejecución. Típicamente colecciones de datos.


Debido a que las variables contienen o apuntan a valores de tipos determinados, las operaciones sobre las mismas y el dominio de sus propios valores están determinadas por el tipo de datos en cuestión. Algunos tipos de datos usados:


  • Tipo de dato lógico.
  • Tipo de dato entero.
  • Tipo de dato de coma flotante (real, con decimales).
  • Tipo de dato carácter.
  • Tipo de dato cadena









Clasificación de algoritmos



Clasificación de algoritmos * Algoritmo determinista: en cada paso del algoritmo se determina de forma única el
siguiente paso.
* Algoritmo no determinista: deben decidir en cada paso de la ejecución entre varias
alternativas y agotarlas todas antes de encontrar la solución.
Todo algoritmo tiene una serie de características, entre otras que requiere una serie de
recursos, algo que es fundamental considerar a la hora de implementarlos en una
máquina. Estos recursos son principalmente:
· El tiempo: período transcurrido entre el inicio y la finalización del algoritmo.
· La memoria: la cantidad (la medida varía según la máquina) que necesita el algoritmo
para su ejecución.
Obviamente, la capacidad y el diseño de la máquina pueden afectar al diseño del
algoritmo.
En general, la mayoría de los problemas tienen un parámetro de entrada que es el
número de datos que hay que tratar, esto es, N. La cantidad de recursos del algoritmo es
tratada como una función de N. De esta manera puede establecerse un tiempo de
ejecución del algoritmo que suele ser proporcional a una de las siguientes funciones:
• 1 : Tiempo de ejecución constante. Significa que la mayoría de las instrucciones se ejecutan una vez o muy pocas.

• logN : Tiempo de ejecución logarítmico. Se puede considerar como una gran constante. La base del logaritmo (en informática la más común es la base 2) cambia la constante, pero no demasiado. El programa es más lento cuanto más crezca N, pero es inapreciable, pues logN no se duplica hasta que N llegue a N


2• N : Tiempo de ejecución lineal. Un caso en el que N valga 40, tardará el doble que otro en que N valga 20. Un ejemplo sería un algoritmo que lee N números enteros y devuelve la media aritmética.


• N·logN : El tiempo de ejecución es N·logN. Es común encontrarlo en algoritmos como Quick Sort y otros del estilo divide y vencerás. Si N se duplica, el tiempo de ejecución es ligeramente mayor del doble.


• N2: Tiempo de ejecución cuadrático. Suele ser habitual cuando se tratan pares de elementos de datos, como por ejemplo un bucle anidado doble. Si N se duplica, el tiempo de ejecución aumenta cuatro veces. El peor caso de entrada del algoritmo Quick Sort se ejecuta en este tiempo.


• N3: Tiempo de ejecución cúbico. Como ejemplo se puede dar el de un bucle anidado triple. Si N se duplica, el tiempo de ejecución se multiplica por ocho.


• 2N: Tiempo de ejecución exponencial. No suelen ser muy útiles en la práctica por el elevadísimo tiempo de ejecución. El problema de la mochila resuelto por un algoritmo de fuerza bruta -simple vuelta atrás- es un ejemplo. Si N se duplica, el tiempo de ejecución se eleva al cuadrado.




Pruebas de escritorio



Cuando tienes diseñado tu programa en papel (diagrama de flujo o pseudocodigo), incluso un programa ya escrito en un lenguaje, econ lapiz y papel haces manualmente lo que se supone que hace el programa inventas dats y haces las operaciones justo y como lo diseñaste, después checas si tus resultados coinciden con lo que debería de resultar.

La prueba de escritorio es una herramienta útil para entender que hace un determinado algoritmo, o para verificar que un algoritmo cumple con la especificación sin necesidad de ejecutarlo.

Básicamente, una prueba de escritorio es una ejecución ‘a mano’ del algoritmo, por lo tanto se debe llevar registro de los valores que va tomando cada una de las variables involucradas en el mismo.

si esta dando diagrama de flujos, la prueba de escritorio quiere decir, que tienes que ponerte a mirar los resultados que vaya dando el diagrama o programa en su transcurso por el mismo.

Por ejemplo si es una suma y el valor es mayor a 5 el programa te preguntara si es verdadero, si lo es termina el programa.






Algoritmo




Según los expertos en matemática, los algoritmos permiten trabajar a partir de un estado básico o inicial y, tras seguir los pasos propuestos, llegar a una solución. Cabe resaltar que, si bien los algoritmos suelen estar asociados al ámbito matemático (ya que permiten, por citar casos concretos, averiguar el cociente entre un par de dígitos o determinar cuál es el máximo común divisor entre dos cifras pertenecientes al grupo de los enteros), aunque no siempre implican la presencia de números.





Cabe mencionar por último que los algoritmos son muy importantes en la informática ya que permiten representar datos como secuencias de bits. Un programa es un algoritmo que indica a la computadora qué pasos específicos debe seguir.