jueves, 20 de marzo de 2014

PORTAFOLIO



CENTRO DE BACHILLERATO TECNOLÓGICO AGROPECUARIO N°32  “LIC. AGUSTÍN YÁÑEZ”

MÓDULO PROFESIONAL III.-DESARROLLO DE SISTEMAS BÁSICOS DE INFORMACIÓN.


 PORTAFOLIO DE EVIDENCIAS ELECTRÓNICO


DOCENTE: ING. MIGUEL GUTIÉRREZ NUNGARAY

ALUMNO: ROMÁN ZÚÑIGA MACÍAS
GRADO: 4°SEMESTRE                   GRUPO: “C” INFORMÁTICA
NO. DE LISTA: 33




YAHUALICA DE GONZÁLEZ GALLO, JAL., JUNIO DE 2014



INTRODUCCIÓN

P
rogramar, es más que sólo código organizado. Representa el empleo de un conjunto de conocimientos que, a través de un lenguaje en específico, te abre las puertas de comunicarte con tu ordenador indicándole qué tareas quieres que realice de acuerdo a tus necesidades.
El saber diseñar y crear programas de acuerdo a las necesidades propias es una herramienta muy útil que puede hacer más eficaces y eficientes tareas que demoran mucho tiempo.
Los sistemas de información automatizados (a través de computadora) son fundamentales en toda organización o empresa, ya que los datos que proporcionan son imprescindibles en todo tipo de decisiones para su beneficio, siendo los componentes principales las bases de datos que permiten organizar enormes cantidades de datos de forma fácil y relacional.
A lo largo del Módulo Profesional III se adquirieron un conjunto de habilidades y conocimientos relacionados precisamente con la programación (lenguajes C y Visual Basic) y el desarrollo de sistemas de información (mediante bases de datos en Access).
En el primer submódulo se realizó una introducción a una increíble dimensión de la informática: la programación. Se inició con los principios y la metodología, desde algoritmos y diagramas de flujo, hasta tipos de datos y operadores, lo cual representaría la base y los sólidos fundamentos para codificar programas tanto en C como en Visual Basic. Este submódulo giraría en torno en la programación estructurada, utilizando el lenguaje C.
Después, pasaríamos al submódulo II, en el cual se abordó el tema de los sistemas de información y, por supuesto, de las bases de datos. De esta manera, se aprendió cómo diseñar una base de datos usando el programa Microsoft Access, creando tablas, consultas, formularios e informes.
Por último se encuentra el submódulo III, en el cual el tópico central fue la programación orientada a objetos y a eventos, utilizando Visual Basic 2012.
Dichos aprendizajes, nos posibilitaron la realización de un proyecto en un contexto externo a la escuela, más en concreto, en un negocio. Consistió en la detección de problemas de información para tratar de resolverlos empleando y creando una base de datos para, posteriormente, generar un programa útil para el negocio y que estuviera vinculada con la base de datos previamente hecha.

En el presente portafolio se muestran las evidencias referentes a los principales contenidos abordados durante el Módulo, seleccionadas en base a la complejidad o el aprendizaje que representó su realización. De esta forma, se presentan en primera instancia los diagramas de flujo, los códigos y las  aplicaciones generadas con lenguaje C que me parecieron más útiles e interesantes. En segunda instancia se encuentra una muestra del proyecto sobre el diseño de un sistema de información de un negocio, que incluye tablas, consultas, formularios e informes. Como último bloque, se encuentran los códigos e imágenes de los programas hechos en Visual Basic que más me llamaron la atención. 




OBJETIVO


Recopilar y difundir todos los aprendizajes adquiridos durante este Módulo, el cual abordó temáticas relacionadas con la metodología de la programación, la programación estructurada (empleando el lenguaje de medio nivel C), el diseño de sistemas de información (base de datos en Access) y la programación orientada a objetos (utilizando Visual Basic), mostrando cómo las habilidades adquiridas para el correcto manejo de cada una de ellas, en conjunto, permiten el desarrollo de sistemas, programas y proyectos útiles en la vida cotidiana y laboral.


EVIDENCIAS

SUBMÓDULO I.-“APLICAR LOS PRINCIPIOS DE LA PROGRAMACIÓN EN LA SOLUCIÓN DE PROBLEMAS”

PRIMERA EVIDENCIA

Fecha de realización: 17 de febrero de 2014
La evidencia que se muestra a continuación se eligió porque en su momento se convirtió en una tarea compleja de realizar, pues era el diagrama de flujo más grande que se había realizado y que combinaba diferentes tipos de estructuras algorítmicas (selectiva múltiple y repetitiva while). Cabe destacar que lo que más se complicó fue el establecimiento de una condición efectiva y el orden de los procesos.
Para elaborarlo correctamente el grupo trabajó en equipo y se resolvió, llegando al siguiente diagrama de flujo.

Hacer un programa para llevar a cabo las elecciones presidenciales del municipio de Yahualica, en donde van a intervenir 4 partidos políticos. Hacer el diagrama de flujo que sirva para contar los votos de cada partido y al final imprima la cantidad obtenida por cada partido.
Tabla de datos
Entradas
Voto y partido.
Procesos
Contabilizar votos por partido y contabilizar total de votos registrados.
Salidas
Total de votos, votos de partido 1, votos de partido 2 y votos de partido 3.




Fecha de realización: 06 de marzo de 2014
Esta evidencia se seleccionó porque en mi opinión, fue el algoritmo más difícil de codificar, pues para su correcta ejecución, implicaba sentencias selectivas (switch, if), colocadas dentro de una sentencia repetitiva (do-while). El hecho de ya tener el diagrama de flujo que resolvía el correspondiente algoritmo, facilitó las cosas, pero aún así fue una tarea laboriosa, pues faltaba ordenar correctamente las sentencias, siguiendo una lógica efectiva determinada.
Realizar un programa que sirva para contabilizar los votos de una elección presidencial donde participan 3 partidos políticos.

Código fuente                                                                      
  Programa ejecutable



SEGUNDA EVIDENCIA

Fecha de realización: 11 de marzo de 2014
Elegí esta evidencia porque a pesar de que ya había observado muchas alternativas para aplicar el bucle “for”, la mayoría iba enfocada a realizar cálculos de un conjunto de números comprendidos en determinado rango. Ninguna se había relacionado con una utilidad práctica en la vida cotidiana, cosa que sí se hizo en este programa.
Hacer un programa que sirva para llevar el control de gastos de un estudiante por semana.
Código fuente                

  Programa ejecutable

Diagrama de flujo


TERCERA EVIDENCIA

Fecha de realización: 06 de marzo de 2014
Opté por esta evidencia porque me pareció muy interesante, pues relativamente con poco código se llevó a cabo un programa muy útil y muy común en muchas tiendas, pues para ellas es una necesidad.  
Creo que es de llamar la atención cómo se utiliza el ciclo do-while, con un cuerpo de bucle pequeño, además de cómo se incluyó en el programa la sentencia selectiva doble (if-else) para calcular o no un descuento a la compra.
Hacer un programa para una tienda que cuente los productos comprados y realice la suma de los precios, además, si la compra es mayor o igual a 500, se le deberá aplicar un descuento del 3.5% al valor de la compra.

Código fuente                                                               

 Programa ejecutable





SUBMÓDULO II.- DISEÑAR SISTEMAS DE INFORMACIÓN
CUARTA EVIDENCIA
PROYECTO: Base de datos de una tienda de abarrotes

Fecha de realización: 11 de abril- 06 de mayo de 2014

Seleccioné esta evidencia porque consistió en un proyecto en el que se diseñó un sistema de información para un negocio, y cuya elaboración requería de la aplicación de todos los conocimientos abordados durante el resto del submódulo y que involucraba el ponerlos en práctica en un contexto externo al escolar.

Se creó una base de datos o un sistema de información que constaba de dos tablas (una de productos y otra de proveedores), once consultas de diferente tipo, cuatro formularios y dos informes.
Sin embargo, no sólo fue la elaboración de la base de datos, sino que previamente se tuvo que hacer un análisis  para el  establecimiento de problemas de información y de oportunidades del negocio, así como el objetivo que seguiría nuestro proyecto. Asimismo, se identificaron las entidades, procesos y atributos de dichas entidades, involucrados en el negocio para diseñar adecuadamente el sistema de información, actividad que se llevó a cabo enlistando los elementos anteriores y elaborando los diagramas de flujo de datos y de entidad relación correspondientes.

PROBLEMA IDENTIFICADO:
Los productos no se encuentran organizados ni cuantificados a través de un inventario, además, se desconoce que productos están próximos a caducarse o ya están caducados.
OBJETIVO:
Llevar a cabo un inventario de los productos con los que cuenta la tienda organizando su información basándose  en proveedor, marca, etc.
Evitar pérdidas económicas por productos caducados.
OPORTUNIDADES:
Interés del dueño por conocer la cantidad total de productos de su tienda, así como la suma en dinero que éstos representan.
Disposición del dueño para ayudar en la realización del inventario y proporcionar la información necesaria.
El propietario posee una computadora en su hogar y su hijo sabe utilizarla.



ENTIDADES


·         Productos
·         Proveedores
·         Tienda
·         Cliente
·         Encargado
·         Propietario

PROCESOS

o   Surtir mercancía
o   Comprar-vender

ATRIBUTOS


Ø  Caducidad de producto
Ø  Nombre del proveedor
Ø  Nombre del producto
Ø  Tamaño o presentación del producto
Ø  Precio del producto
Ø  Cantidad o existencias (producto)
Ø  Teléfono de proveedor
Ø  Domicilio de proveedor


Ø  Reemplazar productos

Ø  Invertir
Imagen 1                                                                                                             I
Imagen 2
Imagen 3

Imagen 4
Tabla de productos, la cual contiene 715 registros y posee los siguientes campos: Id, Artículo, Marca, Tamaño, Precio, Cantidad, Fecha de caducidad, ¿Caducado?, Proveedor y Código de proveedor.

Imagen 5
Tabla de proveedores, que cuenta con 47 registros y con los siguientes campos: Código del proveedor, Proveedor, Teléfono, Domicilio, Ciudad y Nombre de contacto.

Imagen 6
Relación entre las tablas anteriores (proveedores y productos), basándose en el campo común (código del proveedor), guardando una relación de uno a varios.

Imagen 7
Consulta de campo calculado que multiplica los valores de los campos precio y cantidad para, de esa manera, calcular el dinero que se tenía invertido por cada producto, obteniendo un nuevo campo con el nombre total.


Imagen 8
Consulta de resumen en la que se agruparon las cantidades de dinero invertidas por producto de acuerdo a su proveedor, ordenando dichas sumatorias por proveedor de mayor a menor (para apreciar mejor en qué proveedores se estaba invirtiendo más).

 Imagen 9
 Consulta de selección acerca de los productos que estaban por caducar en los siguientes diez días de haberse realizado la consulta.

 Imagen 10

Formulario que presenta los registros de la tabla productos, apareciendo en cada pantalla los campos correspondientes, así como dos cuadros de texto calculados (inversión en este producto y ganancia). También presenta diferentes controles para facilitar la navegación y la búsqueda de registros, además de los correspondientes encabezado y pie de informe.

 Imagen 11
 Informe de base de datos que combina datos tanto de la tabla proveedores (Proveedor, Teléfono,) como de la tabla productos (Marca, Id, Artículo, Tamaño, Precio, Cantidad, Fecha de caducidad). Asimismo, los registros se ordenaron de acuerdo a dos niveles: primero por proveedor y después por marca.



SUBMÓDULO III.- LENGUAJE DE PROGRAMACIÓN ORIENTADO A OBJETOS

Fecha de realización: 13 de mayo de 2014

QUINTA EVIDENCIA
Hacer una calculadora
La evidencia que se presenta a continuación la elegí debido a la dificultad que representó su realización, pues aún no se tenía la suficiente experiencia con el uso de Visual Basic, además de que se nos presentó un reto, pues además de que se debería programar en varios botones distintos (uno para cada tipo de operación), se deberían de insertar los valores numéricos y recuperar los resultados en cuadros de texto, cosa que no se sabía hacer, pues hasta ese momento dichos procesos sólo se habían hecho empleando InputBox y MsgBox.

Hacer una calculadora que se muestre en un segundo formulario, que sume, reste, multiplique, divida y calcule porcentaje, mientras que en el primer formulario se dará la bienvenida al programa.
Código fuente

Public Class CALCULADORA

Private Sub Button1_Click (sender As Object, e As EventArgs) Handles Button1.Click
Dim númeroa As Double
númeroa = TextBox1.Text
Dim númerob As Double
númerob = TextBox2.Text
Dim suma As Double = númeroa + númerob
        TextBox3.Text = ("=  "& suma)
End Sub

Private Sub Button2_Click (sender As Object, e As EventArgs) Handles Button2.Click
Dim númeroa As Double
númeroa = TextBox1.Text
Dim númerob As Double
númerob = TextBox2.Text
Dim resta As Double = númeroa - númerob
        TextBox3.Text = ("=  "& resta)
End Sub

Private Sub Button3_Click (sender As Object, e As EventArgs) Handles Button3.Click
Dim númeroa As Double
númeroa = TextBox1.Text
Dim númerob As Double
númerob = TextBox2.Text
Dim producto As Double = númeroa * númerob
        TextBox3.Text = ("=  "& producto)
End Sub

Private Sub Button4_Click (sender As Object, e As EventArgs) Handles Button4.Click
Dim númeroa As Double
númeroa = TextBox1.Text
Dim númerob As Double
númerob = TextBox2.Text
Dim cociente As Double = númeroa / númerob
        TextBox3.Text = ("=  "& cociente)
End Sub

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Dim númeroa As Double
númeroa = TextBox1.Text
Dim númerob As Double
númerob = TextBox2.Text
Dim porcentaje As Double = númeroa * númerob / 100
        TextBox3.Text = ("=  "& porcentaje)
End Sub

Private Sub Button6_Click (sender As Object, e As EventArgs) Handles Button6.Click
End
End Sub

Private Sub TextBox1_TextChanged (sender As Object, e As EventArgs) Handles TextBox1.TextChanged

End Sub

Private Sub TextBox2_TextChanged (sender As Object, e As EventArgs) Handles TextBox2.TextChanged

End Sub

Private Sub TextBox3_TextChanged (sender As Object, e As EventArgs) Handles TextBox3.TextChanged

End Sub

Private Sub Button7_Click (sender As Object, e As EventArgs) Handles Button7.Click
        TextBox1.Text = ""
        TextBox3.Text = ""
        TextBox2.Text = ""
End Sub
End Class

Programa ejecutable



SEXTA EVIDENCIA

PROGRAMA PARA HACER CONVERSIONES

Fecha de realización: 21 de mayo de 2014

Esta evidencia la elegí porque me pareció muy interesante la utilización de Select Case y cómo se combinó con la herramienta ListBox para crear una aplicación más atractiva visualmente e intuitiva para el usuario, ofreciendo ejecutar procesos (conversiones) diferentes para cada opción mostrada en el ListBox y cuya selección se llevaba a cabo mediante el clic y no a través del insertar determinado número o carácter (como es el caso de Select Case cuando se emplea  sin ListBox).

Elaborar un programa que sirva para hacer conversiones, mínimo 5, ya sean físicas, químicas o monetarias, utilizando ListBox para mostrar el menú de opciones al usuario.
Código fuente
Public Class Form2

Private Sub Button1_Click (sender As Object, e As EventArgs)

End Sub

Private Sub Button2_Click (sender As Object, e As EventArgs) Handles Button2.Click
End
End Sub

Private Sub Button3_Click (sender As Object, e As EventArgs) Handles Button3.Click
Me.Hide()
Form1.Show()
End Sub

Private Sub Form2_Load(sender As Object, e As EventArgs) HandlesMyBase.Load
        ListBox1.Items.Add("De cm a pulgadas")
        ListBox1.Items.Add("De litros a galones")
        ListBox1.Items.Add("De millas a metros")
        ListBox1.Items.Add("De libras a gramos")
        ListBox1.Items.Add("De pesos a euros")
End Sub

Private Sub ListBox1_SelectedIndexChanged (sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
Dim x As Double
Dim resultado As Double
Select Case ListBox1.SelectedIndex
Case 0
                Label2.Text = "Introduce el número de cm:"
                Label3.Text = "Pulgadas equivalentes:"
                x = TextBox2.Text
                resultado = x / 2.54
                TextBox3.Text = resultado
Case 1
                Label2.Text = "Introduce el número de litros:"
                Label3.Text = "Galones equivalentes:"
                x = TextBox2.Text
                resultado = x / 3.785
                TextBox3.Text = resultado
Case 2
                Label2.Text = "Introduce el número de millas:"
                Label3.Text = "Metros equivalentes:"
                x = TextBox2.Text
                resultado = x * 1609
                TextBox3.Text = resultado
Case 3
                Label2.Text = "Introduce el número de libras:"
                Label3.Text = "Gramos equivalentes:"
                x = TextBox2.Text
                resultado = x * 453.59
                TextBox3.Text = resultado
Case 4
                Label2.Text = "Introduce el número de pesos:"
                Label3.Text = "Euros equivalentes:"
                x = TextBox2.Text
                resultado = x / 17.64
                TextBox3.Text = resultado
End Select
End Sub
End Class



Programa ejecutable




SÉPTIMA EVIDENCIA

Fecha de realización: 30 de mayo de 2014
Opté por la evidencia que se presenta a continuación porque el uso de la herramienta MenuStrip me pareció muy fácil de utilizar y, sobre todo, el entorno visual tan atractivo que podemos generar con ella, presentando múltiples opciones a través de menús desplegables. El código es este caso, no representó problema alguno, ya que se requirió en muy poca cantidad. Lo que representó el reto fue la asignación de propiedades a los Label para conseguir que estos fueran transparentes y simularan un mapa de imagen.

Hacer un programa que utilice menús que sirva para desglosar las diferentes partes del cuerpo humano y, además, por medio de una imagen al señalar estas partes, muestre en español y en inglés las partes del cuerpo.

Código fuente
Private Sub imagen_Load(sender As Object, e As EventArgs) HandlesMyBase.Load
Dim x As Control
For Each x In Me.Controls
If x.GetType.ToString.Contains("Label") Then
x.BackColor = Color.Transparent
x.Text = "     "
x.Cursor = Cursors.Hand
End If
Next

End Sub
Private Sub Label1_MouseMove(sender As Object, e As MouseEventArgs) Handles Label1.MouseMove
        Label2.Text = "Dedos-fingers"
End Sub

Private Sub Label4_MouseMove(sender As Object, e As MouseEventArgs) Handles Label4.MouseMove
        Label2.Text = "Pierna-Leg"
End Sub

Private Sub Label3_MouseMove(sender As Object, e As MouseEventArgs) Handles Label3.MouseMove
        Label2.Text = "Pierna-Leg"
End Sub

Private Sub Label6_MouseMove(sender As Object, e As MouseEventArgs) Handles Label6.MouseMove
        Label2.Text = "Mano-hand"
End Sub

Private Sub Label5_MouseMove(sender As Object, e As MouseEventArgs) Handles Label5.MouseMove
        Label2.Text = "Pecho-chest"
End Sub


Private Sub Label16_MouseMove(sender As Object, e As MouseEventArgs) Handles Label16.MouseMove
        Label2.Text = "Cabello-hair"
End Sub


Private Sub Label15_MouseMove(sender As Object, e As MouseEventArgs) Handles Label15.MouseMove
        Label2.Text = "Oreja-Ear"
End Sub

Private Sub Label14_MouseMove(sender As Object, e As MouseEventArgs) Handles Label14.MouseMove
        Label2.Text = "Dedos-toes"
End Sub

Private Sub Label13_MouseMove(sender As Object, e As MouseEventArgs) Handles Label13.MouseMove
        Label2.Text = "Rodilla-Knee"
End Sub

Private Sub Label12_MouseMove(sender As Object, e As MouseEventArgs) Handles Label12.MouseMove
        Label2.Text = "Cuello-Neck"
End Sub

Private Sub Label11_MouseMove(sender As Object, e As MouseEventArgs) Handles Label11.MouseMove
        Label2.Text = "Tobillo-ankle"
End Sub

Private Sub Label9_MouseMove(sender As Object, e As MouseEventArgs) Handles Label9.MouseMove
        Label2.Text = "Pie-foot"
End Sub

Private Sub Label10_MouseMove(sender As Object, e As MouseEventArgs) Handles Label10.MouseMove
        Label2.Text = "Hombro-shoulder"
End Sub

Private Sub Label8_MouseMove(sender As Object, e As MouseEventArgs) Handles Label8.MouseMove
        Label2.Text = "Muñeca-Wrist"
End Sub

Private Sub Label7_MouseMove(sender As Object, e As MouseEventArgs) Handles Label7.MouseMove
        Label2.Text = "Estómago-Stomach"
End Sub

Private Sub Label18_MouseMove(sender As Object, e As MouseEventArgs) Handles Label18.MouseMove
        Label2.Text = "Cejas-Eyebrows"
End Sub

Private Sub Label17_MouseMove(sender As Object, e As MouseEventArgs) Handles Label17.MouseMove
        Label2.Text = "Ojos-Eyes"
End Sub

Private Sub Label19_MouseMove(sender As Object, e As MouseEventArgs) Handles Label19.MouseMove
        Label2.Text = "Boca-mouth"
End Sub

Private Sub Label21_MouseMove(sender As Object, e As MouseEventArgs) Handles Label21.MouseMove
        Label2.Text = "Codo-Elbow"
End Sub

Private Sub Label22_MouseMove(sender As Object, e As MouseEventArgs) Handles Label22.MouseMove
        Label2.Text = "Brazo-arm"
End Sub

Private Sub Label23_MouseMove(sender As Object, e As MouseEventArgs) Handles Label23.MouseMove
        Label2.Text = "Brazo-arm"
End Sub

Private Sub Label20_MouseMove(sender As Object, e As MouseEventArgs) Handles Label20.MouseMove
        Label2.Text = "Nariz-Nose"
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
End
End Sub
End Class

Programa ejecutable





REFLEXIONES

Durante el transcurso de este Módulo profesional se abarcaron diversas temáticas, pero todas enfocadas a forjar la capacidad para desarrollar sistemas básicos de información. Las  temáticas principales estuvieron separadas por submódulos, siendo el primero referente a la metodología de la programación y a la programación estructurada mediante el lenguaje C; el segundo acerca de los sistemas de información y, más en específico, de las bases de datos; mientras que el tercero nos adentraría en la programación orientada a objetos utilizando Visual Basic. No obstante, cada uno de los conocimientos que se iban adquiriendo era primordial para avanzar al siguiente e ir consiguiendo los objetivos de manera óptima, de forma que todos los contenidos estuvieron íntimamente relacionados y al final, formaron parte esencial de un “todo”, permitiendo la aplicación de las habilidades adquiridas para concluir un proyecto integrador.

Con respecto al primer submódulo, de acuerdo a mi experiencia adquirida durante el mismo y después de buscar la solución a muy diversos tipos de problemáticas, me di cuenta de que es un aspecto clave el saber identificar las partes de un algoritmo (entradas, procesos y salidas), ya que de eso depende una correcta conformación del diagrama de flujo y del código a utilizar y, por lo tanto, la solución efectiva a una problemática. Muestra de lo anterior fue el programa para contabilizar los votos (evidencia 1), cuyo diagrama de flujo, previamente hecho, facilitó en gran medida la elaboración de un código que podría parecer complejo en primera instancia.
 Además de lo anterior, el conocer previamente los diferentes tipos de operadores (aritméticos, relacionales y lógicos), la función de cada uno y en qué casos es necesaria su utilización, fue imprescindible para saber establecer condiciones (en sentencias selectivas y repetitivas) y los procesos de acuerdo a la forma requerida. Reflejo de lo anterior está prácticamente plasmado en los códigos fuente tanto de C como de Visual, presentados en este portafolio (evidencias 1, 2, 3, 5 y 6), en los cuales la correcta definición de operaciones matemáticas y expresiones booleanas, fue lo que posibilitó el buen funcionamiento y el cumplimiento del propósito de las distintas aplicaciones.
Otro aspecto de vital importancia dentro de la programación fue el saber los tipos de datos existentes y en qué forma o cuándo se debería de aplicar cada uno de acuerdo al programa solicitado. Ejemplo de esto está en la parte de declaración de variables de todos los códigos presentados, utilizando datos enteros en la mayoría de los casos (en los contadores de las evidencias 1, 2 y 3) y de tipo flotante, pues se requerían decimales en las evidencias 2 y 3, ya que manejan variables que tomarían el valor de una cantidad de dinero o se necesitaría el cálculo de porcentajes.
Todos los aprendizajes anteriores conformarían las bases para una efectiva codificación tanto en el lenguaje C como en lenguaje Visual Basic, siendo la llamada metodología de la programación.
En el momento en que comenzamos a abordar los temas de sentencias selectivas y repetitivas, fue cuando empezamos a elaborar programas más complejos y con mayor número de aplicaciones útiles en la vida diaria. Fue entonces, muy importante el saber cuál tipo de sentencia selectiva utilizar de acuerdo al propósito del programa a elaborar: en la evidencia 1, se utilizó una simple (if) para permitir que se desplegara el menú de opciones sólo cuando el valor de voto fuera de “1”; en la evidencia 3, se empleó una doble (if-else) calculando un descuento si la condición era verdadera y sino, mostrando el total previamente calculado; en la primera evidencia se empleó una múltiple (switch) para ofrecer un menú de los partidos políticos que se podían elegir.
Con respecto a las sentencias repetitivas también es de suma relevancia el identificar qué tipo de cíclica se usaría para la resolución de cada problema, ya que “for” es para un número determinado de repeticiones (de forma que se utilizó en la segunda evidencia), pero “while” y “do-while” son para un número indefinido de iteraciones (empleándola entonces en las evidencias 1 y 2).

Pasando al submódulo 2, el saber diseñar las tablas (cimientos de las bases de datos) de manera apropiada, fue primordial para crear sistemas de información útiles y que ofrecieran datos interesantes. En la evidencia número 4, la cual fue un proyecto en el que se aplicaron todas las habilidades adquiridas durante el submódulo, se muestran dos tablas, cada una con una cantidad considerable de registros, cuya captura se facilitó gracias al tipo de datos y las propiedades  que se establecieron en los campos. Además, entre dichas tablas (imágenes 4 y 5) se creó una relación de uno a muchos (un proveedor-muchos productos, visualizada en la imagen 6), lo cual permitía la utilización, edición y visualización simultánea de datos de ambas tablas.
No obstante, el diseño apropiado de dichas tablas requirió de un previo análisis de los requerimientos de información, enlistando y agregando todas las entidades, los atributos y los  procesos relacionados con el funcionamiento del negocio creando los diagramas (imágenes 2 y 3) de flujo de datos y el de entidad relación (con las entidades principales). Además de que todo el proyecto estuvo basado en el problema identificado a través de la entrevista, tomando en cuenta las oportunidades y orientado a cumplir con el objetivo planteado.
Se utilizaron diferentes tipos de consulta de acuerdo a la información que se requería obtener o filtrar, haciendo consultas simples, de ordenado y filtrado y, las dos que considero más interesantes y útiles, las de resumen y de campo calculado. Estas dos últimas fueron las que arrojaron datos muy importantes acerca de cantidades o sumatorias de dinero invertidas por proveedor, marca, producto, o bien, el total de dinero y cantidad de toda la mercancía (imágenes 7 y 8). En cuanto a las consultas de selección y filtrado las consultas que creo que fueron las más útiles para la toma de decisiones del negocio es la referente a las productos caducados y los próximos a caducar (imagen 9).
Los formularios son herramientas que permiten mostrar pantallas ordenadas de los campos y registros que se poseen en las tablas o consultas correspondientes con mejor diseño y presentación, además de facilitar la edición y adición de registros, agregando controles para la navegación y búsqueda en dichos registros. Considero que el haber presentado en formularios (imagen 10) los registros de ambas tablas y de las consultas sobre la caducidad de los productos, facilita en gran medida la lectura de la información que estas proporcionaban y, sobre todo, mejora su presentación.
Con respecto a los informes de bases de datos (imagen 11), me parecen que son una buena opción para resumir lo contenido en una base de datos, pero también para compartir la información de ésta, seleccionando sólo aquella que es necesaria e imprimiéndola o exportándola a otros formatos de archivo.

Dando paso al submódulo 3, me introduje en el mundo de la programación orientada a objetos, empleando el lenguaje Visual Basic que es de alto nivel, característica que facilita la programación, pues la sintaxis está compuesta prácticamente de vocabulario en inglés. De igual manera, el entorno de desarrollo integrado de Visual Basic me facilitó mucho la tarea de programar, además de que el ubicar perfectamente sus distintos componentes (cuadro de herramientas, propiedades, orígenes de datos, explorador de soluciones, etc.) y la función de cada uno, fue esencial para el diseño eficiente, rápido  y atractivo de la interfaz de usuario.
A través de este lenguaje de programación se lograron  crear aplicaciones mucho más atractivas visualmente, pues se diseñaron y organizaron los distintos programas en formularios, en los cuales se añadían los controles o herramientas necesarias, dependiendo de la tarea que se necesitaba llevar a cabo: realizar cálculos específicos como respuesta a un evento (ejemplificado en la evidencia 6) o para permitir salir del programa, ir al siguiente o al anterior formulario (evidencias 5, 6 y 7), que son tareas propias de los botones; indicar al usuario qué datos introducir en los cuadros de texto, o bien, simplemente para describir al programa en sí, que es el caso del Label (empleado en todas las evidencias del submódulo 3); ListBox (evidencia 6) para presentar una lista de opciones al usuario y, dependiendo de la elegida, ejecutar determinados procesos; el TextBox, que son cuadros de texto cuya principal función es la de permitir que el usuario introduzca datos, así como recuperar datos de salida resultantes de algún cálculo (como es el caso de las evidencias 5 y 6) ; el MenuStrip para crear menús desplegables de una forma fácil y rápida (evidencia 7).
Haciendo referencia al programa que simulaba una calculadora, su realización se dificultó en su momento porque se necesitaban recuperar los datos de salida en cuadros de texto, tarea que hasta el momento sólo se había concretado mediante MsgBox. Sin embargo, la capacidad de proponer soluciones e intentar de múltiples formas, produjo que se pudiera conseguir el resultado deseado.
Con respecto al ejercicio de conversiones, me llamó mucho la atención el cómo se combinó la herramienta ListBox con la instrucción Select Case para conformar una aplicación muy útil y efectiva. Igualmente, la codificación fue muy fácil, pues simplemente se colocó el código en cada caso de acuerdo a los procesos que se deberían llevar a cabo en cada uno de ellos.
La última evidencia representó un reto en el aspecto de lograr que los Label fueran transparentes para que pudieran actuar como un mapa de imagen sobre la ilustración del cuerpo humano, cosa que resolví a través de la asignación de la propiedad color de fondo como transparente y reemplazando el texto que debería aparecer por una serie de espacios en blanco. Cabe destacar que en este programa hice uso del bucle For Each-Next (que en un principio me había parecido prácticamente innecesario en cualquier programa), para facilitarme la tarea de la asignación de lo previamente mencionado a los más de veinte Label que necesité, siendo esto una clara muestra de que todo conocimiento es útil cuando sabes aplicarlo.
El uso de las sentencias de control selectivas, simple, doble, anidada y múltiple (ésta última empleada en el ejercicio de conversiones) y el manejo de bucles en Visual Basic se facilitó realmente gracias a los conocimientos previos acerca de cómo es que éstos actúan en un programa, en que situaciones se emplean y la forma en que se codifican, adquiridos durante el primer submódulo (evidencias 1, 2 y 3).


CONCLUSIONES

Ø  Los algoritmos están más presentes de lo que imaginamos en nuestras actividades diarias, pues desde las más sencillas hasta las más complejas, necesitan del seguimiento ordenado de un conjunto de pasos específicos. Dichos algoritmos, son representados y desglosados en los diagramas de flujo, los cuales te proporcionan una gran perspectiva gráfica acerca de la conformación y partes (entradas, salidas y procesos) que estos poseen, lo que, al momento de crear el programa correspondiente, se convierte en imprescindible para codificarlo correctamente.

Ø  El lenguaje de programación C es muy flexible, ya que permite la combinación de diferentes tipos de sentencias (secuenciales, selectivas y repetitivas) dentro de un mismo código para consolidar una aplicación de más utilidad que le da solución a problemáticas complejas, además de que creo que la programación estructurada que ofrece me facilitó mucho la introducción a la programación y el posterior uso del lenguaje Visual Basic. No obstante, es de primera importancia el apegarse a la sintaxis de este lenguaje para evitar errores en la compilación de nuestro programa que son difíciles de detectar, debiendo conocer entonces los formatos generales propios de cada sentencia y la manera de declarar y  llamar funciones, cómo incluir las bibliotecas en nuestro código, cómo declarar e identificar variables, etc.

Ø  Es muy importante conocer e identificar los diferentes tipos de datos que se puedan llegar a necesitar en determinado programa para que, al momento de codificarlo, pueda funcionar de acuerdo a cómo lo planeamos y nos apeguemos a la forma correcta de declararlos e incorporarlos a nuestro código. De esta forma, es muy relevante el saber qué tipos de datos existen (numéricos, alfanuméricos, variables, constante, enteros, de coma flotante, de doble precisión, caracteres, cadena de caracteres) y cómo hacer buen uso de sus maneras de declaración, de sus identificadores y, en general, de la forma apropiada de utilizarlos.

Ø  Los sistemas de información computarizados bien organizados y completos son vitales en la correcta toma de decisiones que empujen al mejoramiento del funcionamiento de cualquier empresa u organización. Para su creación es imprescindible el seguir al pie de la letra las etapas del ciclo de vida del desarrollo de sistemas, de forma que el sistema de información sea verdaderamente útil para la organización.


Ø  Las tablas son los cimientos de una base de datos, de forma que su diseño, su relación y el llenado de los registros deben ser los adecuados. Asimismo, las consultas son esenciales, ya que permiten filtrar, seleccionar o calcular datos que son importantes., basándose en lo registrado en las tablas. Los formularios son de gran ayuda para la presentación y la adición de registros, mientras que los informes son útiles para compartir información de la base de datos. Todos estos objetos de bases de datos en conjunto y llevados a cabo correctamente, conformarían un gran sistema de información que no sólo almacenara datos de forma organizada, sino que proporcionara información interesante y útil para la buena toma de decisiones de la organización correspondiente.

Ø  En Visual Basic, el programar y la utilización de aplicaciones, son mucho más atractivos tanto para el programador como para el usuario respectivamente, ya que al estar orientado a objetos y a eventos, te permite generar aplicaciones más vistosas, con mejor diseño, de fácil manipulación y conjuntando controles (cada uno con una función específica en el programa). Además, el entorno de desarrollo integrado que ofrece nos facilita en gran medida la tarea de programar, apoyándonos con código y señalando errores de sintaxis.

Ø  Las herramientas o controles en Visual Basic son muy vistosos y útiles, teniendo cada uno una tarea determinada junto con propiedades particulares sobre su aspecto y funcionamiento, y que, en conjunto, crean una interfaz de usuario de los programas creados muy llamativa. Cabe destacar, que la codificación en cada uno de ellos es rápida y muy eficiente.


Ø  Lo que considero que fue lo más esencial para concretar los diversos retos que se nos iban presentando fue, sin duda, el razonamiento lógico y ordenado, así como la capacidad para crear innovaciones (desde el saber qué variables utilizar, qué condiciones serían efectivas, ordenar sentencias e instrucciones de acuerdo a nuestra conveniencia, introducir el código en el lugar adecuado, diseñar estructura general del programa, etc.) que cada estudiante poseía y ponía en práctica, pues esto es claramente requerido para superar y concretar los problemas y ejercicios propuestos.