FACULTAD DE MINAS
Escuela de Sistemas
3004578 - Algoritmos y Programación

Regresar al índice de los ejercicios resueltos Índice de la sección 7.5 Problemateca & Talleres Continuar con el Ejemplo Resuelto #5


Ejercicios resueltos: Algoritmos y Programas


Preparó:William Alvarez Montoya.

Ejercicio #4: Ecuaciones cuadráticas AX2 + BX + C = 0

La solución de ecuaciones cuadráticas de la forma AX2 + BX + C = 0 implica obtener las raíces, X1, X2, que satiafacen la ecuación.

Objetivos

Los objetivos que se pretenden lograr con este ejemplo resuelto son los siguientes:

  1. Practicar el diseño de una Interfaz Gráfica de Usuario (GUI) en Visual Basic, a partir del algoritmo que resuelve un problema.

  2. Aprender y aplicar los conceptos básicos de programación, empleando las técnicas de diseño de algoritmo y de escritura de progamas en lenguaje (Visual Basic 6.0). Particularmente, el manejo de variables y constantes, expresiones, operadores, procedimientos, controles y sus propiedades y eventos, estructuras de selección lógica, estructuras de iteración.

Conceptos implicados

  1. Empleo de las estructuras automáticas básicas, que permiten expresar la lógica de un algoritmo: SECUENCIA (de arriba-a-abajo y de izquierda-a-derecha), SELECCIÓN LÓGICA (IF ... ELSE ... END IF, ITERACIÓN (FOR ... NEXT). Véase la sección 2.1 de estos apuntes.
  2. Uso de Controles (objetos): Form, Frame, Label, TextBox, CommandButton. Propiedades de los controles.
  3. Instrucciones del lenguaje: Dim, para definir variables; asignación aritmética (Variable= Expresión). Funciones: Val(), STR(), IsNumeric(), Sqr(), MsgBox(). Véase la sección 3.2 de estos apuntes.
  4. Diferencias entre el tiempo de diseño y tiempo de ejecución. Qué actividades permite cada uno.
  5. El tiempo de depuración, mediante el cual es posible corregir los errores de ejecución que se presentan en el proyecto.
  6. Manejo de Propiedades de un objeto a tiempo de diseño (con la ventana de propiedades) y a tiempo de ejecución mediante la asignación de un valor a la propiedad respectiva del objeto (objeto.propiedad = valor). El concepto del operador punto (.).
  7. Manejo de métodos de un objeto a tiempo de ejecución. Por ejemplo, Text1.SetFocus.
  8. El concepto de Subprograma (procedimiento, o subrutina): Plantilla básica (SUB .. END SUB), nombre del procedimiento (Objeto_Evento()), cuerpo del procedimiento.
  9. Concepto de objeto y sus componentes (apariencia, nombre, propiedades, eventos, métodos, programas).
  10. Tipos de programación empleada: Visual interactiva, que genera automáticamente código fuente a partir del diseño gráfico de la interfaz; manual, empleando código fuente a partir de instrucciones y comandos propios del lenguaje de programación Visual Basic (sección 3.2).
  11. Variables lógicas, expresiones lógicas, operadores lógicos (sección 3.2, tablas respectivas).

Requisitos

Para un mejor entendendimiento de los conceptos involudrados en este ejemplo es muy conveniente que el estudiante cumpla con los siguientes requisitos:

  1. Estudio de la sección 2.1.

  2. Estudio y práctica con el Proyecto #1.

  3. Realización de las tareas previas (sesiones teóricas y prácticas #1, #2).

  4. Saber elaborar un algoritmo sencillo, ya sea mediante diagrama de lógica o por medio del lenguaje de programación, a partir del proceso de Análisis y Diseño.
  5. Estudio de la sección 3.1.
  6. Manejo del Sistema Operativo, Explorador de Windows.
  7. Manejo de los diferentes elementos del escritorio principal de Visual Basic (Menús, Barra de herramientas, Caja de herramientas, Ventana exploradora de proyectos, Ventana de propiedades, formulario básico de diseño), véase la sección 3.1.

Solución

Para resolver, algorítmicamente, este ejercicio se emplea la metodología de solución de problemas, típica en áreas técnicas y de ingenierías, que consta de los siguientes pasos generales:

  • Análisis del problema que implica conocer el dominio donde el problema surge, o estar asesorado por expertos en dicho dominio. Esto permite el entendimeitno cabal del problema. Lo cual permite identificar sus componentes, cómo interactúan dichos componentes. Los datos involucrados tanto de entrada cómo de salida. El entendimiento general de los procesamientos involucrados.

  • Diseño de una solución. Con los elementos de juicio obtenidos mediante el Análisis del problema entonces se está en capacidad de esbozar un Algoritmo general<7font>, que es la secuencia de pasos, procesos, o tareas, que llevan de los datos de entrada a los reusltados. Luego se detallan todos los pasos que así lo requieran.

  • Programación. Con los algoritmos, previamente elaborados, se escriben los programas pertinentes, que implementan los algoritmos dentro del contexto de un lenguaje de programación de computadores.

  • Pruebas, ajustes, mejoras. Los programas requieren, generalmente, de pruebas con datos típicos, de mejoras y ajustes según surjan nuevas necesidades de procesamiento de datos.

La metodología expuesta corresponde al algoritmo secuencial del proceso de datos, que lleva a solucionar problemas, mediante un computador, el cual se esquematiza en la siguiente figura:


Etapas genéricas del proceso de datos

Regresar al inicio de esta sección


ENTENDER EL PROBLEMA

Este problema consiste en resolver ecuaciones cuadráticas de la forma AX2 + BX + C = 0, cuyo dominio corresponde al Álgebra básica.

El dominio del problema es trivial, con el fín de centrarnos inicialmente en el dominio de la Teoría de Algoritmos y Programación.

El primer paso, dentro del enfoque metodológico adoptado, consiste en tener un cabal entendimiento del problema. Esto implica una correcta formulación del mismo, caracterizando todos sus parámetros, relaciones y restricciones.

La estructura de datos, expresada por medio de las variables, es fundamental, y normalmente se presenta en una tabla de Definición de Variables, como la que se ilustra a continuación, en la cual para cada variable se explicita el nombre, una descripción suscinta, y el tipo de datos.

Nombre Descripción suscinta Tipo de datos
A, B, C
  • Los datos de entrada, o coeficientes de la ecuación cuadrática.
Real
D
  • El discriminante, que corresponde al término B2 - 4*A*C.
Real
X1, X2
  • Las raíces de la ecuación.
Real

Las Relaciones entre las variables se expresan, generalmente, mediante el uso de fórmulas algebraicas o más avanzadas. Para este caso dichas relaciones son:

  • El discriminante D = B2 - 4*A*C
  • Las raíces, X1 y X2, se obtienen mediante la aplicación de esta fórmula.



Las Restricciones para este caso corresponden a los rangos de precisión numérica del campo de los reales (véase sección 3.2, tabla 1). Además, es necesario considerar los casos cuando A = 0.0, que sólo genera una única raíz; y cuando D menor que 0.0, que da raíces imaginarias (Visual Basic 6.0 NO maneja la variable compleja).

El Proceso de Datos que se realiza en este proyecto corresponde a un Algoritmo Secuencial, cuyas etapas básicas se ilustran en el figura siguiente:


Algoritmo Secuencial

Puede conceptalizarse que el Núcelo central del Algoritmo transforma, mediante ciertas relaciones lógicas y operaciones matemáticas, los datos de entrada en los datos de salida (o resultados).

DIAGRAMA DE LÓGICA

El algoritmo secuencial para este problema se ilustra en forma más detallada en la siguiente figura. La operación MOSTRAR equivale a desplegar en la pantalla, por medio de ciertos objetos. En su representación diagramática, el algoritmo genérico es el siguiente:


Diagrama estructurado de lógica

Aunque este algoritmo resuelve, en general, ecuaciones cuadráticas, NO involucra todas las posibilidades lógicas de tal proceso de solución. Por lo tanto, dicho algoritmo No está refinado.

DISEÑO DE LA INTERFAZ

El siguiente paso, en la elaboración de un proyecto en Visual Basic, consiste en el diseño de una interfaz gráfica de usuario (o simplemente: interfaz). Dicho diseño tiene como base un formulario (Form) sobre el cual se ubican otros objetos (controles), de acuerdo a la lógica expresada en el algoritmo.

Para este primer problema se emplea un formulario (Form1) y tres marcos (Frame1, Frame2, Frame3) para contener los demás objetos. La figura siguiente ilustra una distribución típica para este estilo de interfaz.


Interfaz en Visual Basic

Las propiedades que se cambian para los diferentes objetos (controles) de la interfaz anterior, se compendian en la tabla siguiente:

OBJETO
(CONTROL)
PROPIEDADES
A CAMBIAR
VALORES
Form1
  • Caption
  • BackColor
  • ControlBox
  • Picture
  • WindowState
  • Form1: SEGUNDO PROYECTO
  • (escoger color)
  • False
  • (escoger imagen de fondo)
  • 2 - Maximized
Frame1
  • Caption
  • BackColor
  • Font
  • ForeColor
  • DATOS DE ENTRADA
  • (escoger color)
  • (escoger letra, tipo, tamaño)
  • (escoger color)
Frame2
  • Caption
  • BackColor
  • Font
  • ForeColor
  • RESULTADOS
  • (escoger color)
  • (escoger letra, tipo, tamaño)
  • (escoger color)
Frame3
  • Caption
  • BackColor
  • Font
  • ForeColor
  • OPERACIONES
  • (escoger color)
  • (escoger letra, tipo, tamaño)
  • (escoger color)
Label1
  • Alignment
  • BorderStyle
  • Caption
  • BackColor
  • Font
  • ForeColor
  • 2-Center
  • 0-None
  • A =
  • (escoger color)
  • (escoger letra, tipo, tamaño)
  • (escoger color)
Label2
  • Alignment
  • BorderStyle
  • Caption
  • BackColor
  • Font
  • ForeColor
  • 2-Center
  • 0-None
  • B =
  • (escoger color)
  • (escoger letra, tipo, tamaño)
  • (escoger color)
Label3
  • Alignment
  • BorderStyle
  • Caption
  • BackColor
  • Font
  • ForeColor
  • 2-Center
  • 0-None
  • C =
  • (escoger color)
  • (escoger letra, tipo, tamaño)
  • (escoger color)
Label4
  • Alignment
  • BorderStyle
  • Caption
  • BackColor
  • Font
  • ForeColor
  • 2-Center
  • 0-None
  • X1 =
  • (escoger color)
  • (escoger letra, tipo, tamaño)
  • (escoger color)
Label5
  • Alignment
  • BorderStyle
  • Caption
  • BackColor
  • Font
  • ForeColor
  • 2-Center
  • 0-None
  • X2 =
  • (escoger color)
  • (escoger letra, tipo, tamaño)
  • (escoger color)
Text1
a Text5
  • Alignment
  • BorderStyle
  • Text
  • BackColor
  • Font
  • ForeColor
  • 2-Center
  • 1-Fixed
  • (escoger color)
  • (escoger letra, tipo, tamaño)
  • (escoger color)
Command1
  • Caption
  • Style
  • BackColor
  • Font
  • LEER
  • 1-Graphical
  • (escoger color)
  • (escoger letra, tipo, tamaño)
Command2
  • Caption
  • Style
  • BackColor
  • Font
  • CALCULAR
  • 1-Graphical
  • (escoger color)
  • (escoger letra, tipo, tamaño)
Command3
  • Caption
  • Style
  • BackColor
  • Font
  • BORRAR
  • 1-Graphical
  • (escoger color)
  • (escoger letra, tipo, tamaño)
Command4
  • Caption
  • Style
  • BackColor
  • Font
  • FIN
  • 1-Graphical
  • (escoger color)
  • (escoger letra, tipo, tamaño)

PROGRAMACIÓN

La interfaz diseñada sólo tendrá funcionalidad, efectuando las operaciones del algoritmo, si se le suministra programación específica mediante instrucciones del lenguaje de programación.

Claro está, que ya se ha hecho una Programación Visual mediante el diseño mismo de la interfaz. En forma automática, Visual Basic genera un programa que es almacenado en el archivo del formulario (con extensión .FRM).

La programación específica que se efectúa en forma manual se ilustra en la tabla siguiente, para los diferentes eventos y/o controles (objetos) que así lo requieran. En este ejemplo, se programa el evento load() del formulario Form1, y los botones de comando del Frame3.

Programación para el diagrama inicial (no refinado)
OBJETO
(o EVENTO)
NOMBRE DEL
PROCEDIMIENTO
PROGRAMA
ASIGNADO
Form1
(Load())
Form_Load()
Private Sub Form_Load()
Command2.Enabled = False
Command3.Enabled = False
End Sub
General
(declarations)
Dim A As Single, B As Single
Dim C As Single, D As Single
Dim X1 As Single, X2 As Single
Command1
(Click())
Command1_Click()
Private Sub Command1_Click()
A = Val(Text1)
B = Val(Text1)
C = Val(Text3)
Command1.Enabled = False
Command2.Enabled = True
Command3.Enabled = True
End Sub
Command2
(Click())
Command2_Click()
Private Sub Command2_Click()
D = B2 - 4*A*C
X1 = (-B+Sqr(D))/(2*A)
X2 = (-B+Sqr(D))/(2*A)
Text4.Text = Str(X1)
Text5.Text = Str(X2)
Command1.Enabled = True
Command2.Enabled = False
End Sub
Command3
(Click())
Command3_Click()
Private Sub Command3_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Text4 = ""
Text5 = ""
Command2.Enabled = False
Command3.Enabled = False
Command1.Enabled = True
End Sub
Command4
(Click())
Command4_Click()
Private Sub Command4_Click()
Unload Form1
End Sub

La anterior programación le da cierta funcionalidad a la interfaz. Para empezar a probar este proyecto, se puede intentar con datos de entrada como los mostrados en la figura siguinte:


Tiempo de ejecución, datos para A, B, C.

Varios aspectos es necesario resaltar, apartir de la figura anterior que despliega el tiempo de ejecución del Proyecto #2, una vez se digitan datos válidos en las CajaTexto respectivas:

  • El formulario, Form1, ocupa toda el área física de la pantalla. Este es el efecto de la propiedad WindowState del formulario puesta en 2 - Maximized.

  • La barra de título y control del formulario, Form1, no presenta el menú de control ni los botones de control típicos de una ventana del Sistema Operativo Windows. Este efecto se logra poniendo a False la propiedad ControlBox del objeto Form1, en la ventana de propiedades a tiempo de diseño.

  • Inicialmente, los botones de comando correspondientes a CALCULAR y a BORRAR se encuentran desactivados, como efecto de la programación en el evento Load() del formulario (Commnad2.Enabled = Flase : Command3.Enabled = False).

  • Una vez se digitan los datos, correspondientes a las variables A, B, C, entonces los respectivos valores numéricos se asignan a las variables, y se desactiva el botón LEER y se activan los botones CALCULAR y BORRAR, como se muestra en la figura.

Al hacer click en el botón CALCULAR entonces se ejecuta la programación asignada a dicho botóncomando, ejecutándose las operaciones respectivas y desplegando los resultados en las cajatexto Text4 y Text5. Igualmente, se desactiva el botón CALCULAR y se activa el botón LEER, como ilustra la siguiente figura.


Tiempo de ejecución, obtención de los resultados.

Si se digita el valor de cero (0.0) para la variable A, y se hace click en el botón CALCULAR, entonces, según la lógica del algoritmo hasta ahora diseñado, se intentará dividir por cero en la obtención de las raíces, lo cual generará automáticamente un error de desbordamiento (overflow), interrumpiéndose la ejecución dle programa.

La figura siguiente muestra el mensaje estándar que Visual Basic 6.0 genera al presentarse división por cero. Con el botón END se termina la ejecución del programa; con el botón DEBUG ("depurar") se llega al editor de programas en la línea de código fuente donde se generó el error.


Tiempo de ejecución, error de desbordamiento.

Al interrumpirse la ejecución del proyecto, con un error fatal como el de desbordamiento, todo dato o resultado internedio se perderá, el proyecto pierde el control de ejecución, el cual pasa "a manos" del "motor interno" de Visual Basic 6.0, que está diseñado para responder con una ventana de diálogo suministrando el código del error presentado, una suscinta descripción del mismo, dando las opciones de continuación, y proporcionando -eventualmente- ayuda al respecto (con el botón de Ayuda, o Help).

Para obviar los errores fatales, en la ejecución de un proyecto, es preciso refinar el algoritmo dándole más robustez, esa decir, más solidez lógica. La siguiente sección ilustra el proceso de Refino Progresivo, o Refino Paso-a-Paso, para el presente proyecto.

REFINOS

En general, siempre es posible mejorar (refinar) un algoritmo diseñado para expresar la lógica de solución de un determinado problema. Para este caso, pueden considerarse las situaciones, o restricciones, que conducen a refinos en el algoritmo, de tal suerte que el algoritmo refinado tenga mayor robustez lógica que sin refino (véase las secciones 2.1, 2.2):

  • ¿Qué pasa si A = 0.0?. En este caso, se presentaría división por cero al tatar de calcular las raíces de la ecuación cuadrática. En realidad, el término cuadrático desparecería de la ecuación, y sólo habría una única raíz, como se ilustra en el trozo de diagrama siguiente:


    ¿Qué pasa si A = 0.0?

  • ¿Qué pasa si D es negativo?. Resultarían raíces de tipo imaginario. Visual Basic 6.0 no maneja directamente la vriable compleja. Una forma de proceder, en este caso, es desplegar sendos mensajes que informen sobre la obtención de raíces imaginarias. El trozo de diagrama siguiente ilustra las opciones respectivas:


    ¿Qué pasa si D es negativo?

  • ¿Qué pasa si se digita texto, o caracteres alfanuméricos, en las cajas de texto Text1, Text2 y Text3, o si se dejan dichos controles en blanco?. Obviamente, dichos datos NO son datos numéricos válidos para ser contenidos en las variables reales A, B, C, y No se podrían efectuar cálculos aritméticos con ellos. Antes de efectuar los cálculos, e incluso: aún antes de leer efectivamente las variables A, B y C desde las cajas de texto, habría que verificar (validar) que los datos digitados sean datos numéricos válidos. Precisamente, la función IsNumeric() permite efectuar dicha validación. El trozo de diagrama siguiente, ilustra la selección lógica empleada:


    Validación de los valores de A, B, C.

    La variable Ctr_Data ha de definirse en el objeto General, procedimiento (declarations), como de tipo lógico, o Boolean (véase la sección 3.2, Tabla 1):

    Dim Ctr_Data as Boolean

    Dicha variable toma su valor (su contenido) de la expresión lógica respectiva. Una expresión lógica mezcla variables, operadores, funciones, paréntesis, y su valor de certeza es verdadero (True) o falso (False).

Involucrando los refinos arriba descritos, el diagrama de lógica para este proyecto quedaría así:


Diagrama de lógica refinado

Obviamente, la programación del procedimiento de lectura cambia. No se podrá activar la opción CALCULAR mientras los datos digitados sean no-numéricos, es decir persistan en su invalidez numérica. Una posble versión de dicho procedimiento se muestra a continuación:


         Private Sub Command1_Click()
		Dim Ctr_Data as Boolean, MM$, TT$
		Ctr_Data = IsNumeric(Text1) And IsNumeric(Text2) _
                       And IsNumeric(Text3)
		If(Not Ctr_Data)Then
			MM$ = "... DATOS LEÍDOS: " & Chr(13)
			MM$ = MM$ & "A = " & Text1.Text & Chr(13)
			MM$ = MM$ & "B = " & Text2.Text & Chr(13)
			MM$ = MM$ & "C = " & Text3.Text & Chr(13)
			MM$ = MM$ & "--------------------------------" & Chr(13)
			MM$ = MM$ & "***   DATOS NO VÁLIDOS   ***"
			TT$ = "** ERROR EN DATOS **"
			Msgbox MM$, 16, TT$
			Text1.Text = "" : Text2.Text = "" : Text3.Text = ""
			Text1.SetFocus
			EXIT SUB
		Else
			A = Val(Text1) : B = Val(Text2)
			C = Val(Text3)
			Command1.Enabled = False
			Command2.Enabled = True
			Command3.Enabled = True
			MM$ = "... DATOS LEÍDOS: " & Chr(13)
			MM$ = MM$ & "A = " & Str(A) & Chr(13)
			MM$ = MM$ & "B = " & Str(B) & Chr(13)
			MM$ = MM$ & "C = " & Str(C) & Chr(13)
			MM$ = MM$ & "--------------------------------" & Chr(13)
			MM$ = MM$ & "***   DATOS VÁLIDOS   ***"
			TT$ = "** LECTURA O.K. **"
			Msgbox MM$, 16, TT$
		End If
	   End Sub

La lógica del anterior procedimiento se basa en el contenido de la variable Ctr_Data y en el operador lógico Not para negar (véase sección 3.2); si la variable Ctr_Data es falsa, su negación es verdadera, significando esto que por lo menos uno de los controles TextBox (Text1, Text2 ó Text3) tiene datos no-numéricos.

Los objetos (controles) en Visal Basic 6.0 involucran programas pre-ensamblados denominados Métodos. El control TextBox tiene asignado el Método SetFocus cuyo funcionalismo consiste en establecer el enfoque, es decir, determinar el Objeto Activo; en este caso, se establece que el enfoque vaya a la CajaTexto Text1. La sintaxis genérica para invocar un método es: objeto.método.

La instrucción Exit Sub es una estructura automática de interrupción. Su efecto consiste en interrumpir el flujo lógico de ejecución de un procedimiento y retornar el control al sitio exacto desde el cual fue llamado el procedimiento; para este ejemplo, el control retorna a la interfaz, con el objeto activo Text1.

Obsérvese que la variable MM$, de contenido String (alfanumérico) se emplea para concatener una serie de textos, que conforman un mensaje multilínea. Se utiliza la función Chr(13), convenientemente situada, para lograr las líneas individuales del mensaje. La figura siguiente ilustra el caso de dicho mensaje cuando los datos son no válidos:


Mensaje para datos no válidos y B = 0.0

Un programa correspondiente al algoritmo mostrado en la figura anterior es el siguiente:


         Private Sub Command1_Click()
		Dim Ctr_Data as Boolean, MM$, TT$
		Ctr_Data = IsNumeric(Text1) And IsNumeric(Text2) _
                       And IsNumeric(Text3)
		If(Not Ctr_Data)Then
			MM$ = "... DATOS LEÍDOS: " & Chr(13)
			MM$ = MM$ & "A = " & Text1.Text & Chr(13)
			MM$ = MM$ & "B = " & Text2.Text & Chr(13)
			MM$ = MM$ & "C = " & Text3.Text & Chr(13)
			MM$ = MM$ & "--------------------------------" & Chr(13)
			MM$ = MM$ & "***   DATOS NO VÁLIDOS   ***"
			TT$ = "** ERROR EN DATOS **"
			Msgbox MM$, 16, TT$
			Text1.Text = "" : Text2.Text = "" : Text3.Text = ""
			Text1.SetFocus
			EXIT SUB
		Else
			A = Val(Text1) : B = Val(Text2)
			C = Val(Text3)
			Command1.Enabled = False
			Command2.Enabled = True
			Command3.Enabled = True
			MM$ = "... DATOS LEÍDOS: " & Chr(13)
			MM$ = MM$ & "A = " & Str(A) & Chr(13)
			MM$ = MM$ & "B = " & Str(B) & Chr(13)
			MM$ = MM$ & "C = " & Str(C) & Chr(13)
			MM$ = MM$ & "--------------------------------" & Chr(13)
			MM$ = MM$ & "***   DATOS VÁLIDOS   ***"
			TT$ = "** LECTURA O.K. **"
			Msgbox MM$, 16, TT$
                  If(A = 0.0 And B = 0.0)Then
                     MsgBox "NO HAY SOLUCIÓN"
                  ElseIf(A = 0.0 And B <> 0.0)Then
                     D = B^2 -4.0 * A * C
                     If(D < 0.0)Then
                        MsgBox "RAÍCES IMAGINARIAS"
                     Else
                        X1 = (-B + Sqr(D)) / (".0 * A)
                        X2 = (- B - Sqr(D) / (2.0 * A)
                        MM$ "X1 = " & X1 & Chr(13) & "X2 = " & X2
                        MM$ = MM$ & Chr(13) & "DOS RAÍCES REALES"
                        MsgBox MM$, 64, "**  RESULTADOS  **"
                     End If
                  End If
		End If
	   End Sub

OBSERVACIONES

Tomando como base este segundo ejemplo, se pretende ilustrar varios conceptos relacionados con los principios básicos de la Programación de Computadores:

  • El concepto de Algoritmo y su Representación mediante un Diagrama Estructurado de Lógica.

  • Utilización de las Estructuras Automáticas Básicas, mediante las cuales es posible expresar y representar una gama muy amplia de algoritmos. Dichas estructuras incluyen: la Secuencia, la Selección lógica, y la Iteración.

  • Empleo de la Interfaz Gráfica de Usuario [GUI] para elaborar, a su vez, una interfaz gráfica de usuario (o solamente, Interfaz) que permite la solución del problema planteado y expresado lógicamente en el Diagrama de Lógica.

  • Reconocer y aplicar los diferentes componentes del Escritorio Principal de Visual Basic: Barra de título y control ([design]/[run]), menú principal, barra de herramientas (íconos para grabar/abrir proyecto; íconos para visualizar ventana de propiedades, ventana exploradora de proyectos, caja de herramientas), formulario básico de diseño.

  • El concepto de Proyecto en Visual Basic.

  • Reconocer y manejar los diferentes tipos de objetos (controles) vistos en el proyecto: Form, Frame, Label, TextBox, CommandButton. Cómo se nombran dichos objetos (Form1; Frame1, Frame2,...; Label1, Label2,...; Text1, Text2,...; Command1, Command2,...).

  • Cómo se cambian las propiedades de un objeto (control) a tiempo de diseño (mediante la ventana de propiedades) y a tiempo de ejecución (mediante la instrucción de Asignación, como en Command2.Enabled = False).

  • Saber explicar la funcionalidad del objeto General.

  • Categorías de programación que utiliza Visual Basic 6.0: Visual Interactiva, generando automáticamente código que se almacena en el archivo del formulario (*.FRM), lo que se conoce como Programación Automática; con Código Fuente, es decir, escribiendo instrucciones específicas en el lenguaje Visual Basic.

  • Reconocer y aplicar el concepto de Procedimiento, que permite realizar una programación modularmente. Componentes de un procedimiento: nombre del procedimiento; plantilla estándar para el inicio y el fín del procedimiento; cuerpo del procedimiento.

  • El concepto de Evento. Reconocer y aplicar los eventos: Load(), Click(). Significado y funcionalidad de cada uno.

  • Explicar y aplicar correctamente las siguientes funciones de la Librería Estándar de Visual Basic 6.0: Val(), Str(), Sqr(), MsgBox(), IsNumeric().

  • Saber reconocer el significado, funcionalidad y la aplicación de las siguientes instrucciones:

    • Command3.Enabled = True

    • Text1.Enabled = False

    • Dim A as Single, B as Single, SUMA as Single

    • A = Val(Text1) : B = Val(Text2)

    • MsgBox "DATOS LEÍDOS", 48, "*LECTURA*"

    • SUMA = A + B : MULT = A * B : DIV_REAL = A / B : DIV_ENT = A \ B

    • Text3.Text = Str(SUMA) : Text4.Text = Str(MULT)

    • Text1 = "" : Text2 = "" : Text3 = "". Cuál es el significado de ""?

    • Unload Form1

  • Cómo se detiene el Tiempo de Ejecución cuando se presentan errores en la programación.

Regresar al inicio de esta sección


Tareas: (a) - Elaborar un algoritmo y un proyecto Visual Basic para involucrar los Refinos descritos, mostrando los mensajes pertinentes cuando haya lugar. valores numéricos (en general, N ternas), suendo cada terna los coeficientes A, B y C de una ecuación cuadrática. Considerar para cada ecuación las raíces imaginarias. Mostrar los resultados en forma tabular.

Regresar al inicio de esta sección


Regresar al índice de los ejercicios resueltos Índice de la sección 7.5 Problemateca & Talleres Continuar con el Ejemplo Resuelto #5


uare>