Programa completo de resolución de ecuaciones de 2º grado



Documentos relacionados
Programa de resolución de ecuaciones de primero y segundo grado

Programa de saludo 2 (resuelto)

PROCEDIMIENTOS Y FUNCIONES DE LA PROGRAMACIÓN (VISUAL BASIC)

Manual del Profesor Campus Virtual UNIVO

Resolver triángulos en Visual Basic. Parte 3/3

VISUAL BASIC Diseño de Formularios MDI y Menús - Proyectos Aplica

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

FUNDAMENTOS DE INFORMÁTICA

Operaciones con vectores

Programación: QBASIC

PRACTICAS DE EXCEL. Primero conoce un poco el Excel y practica a la vez que aprendes

Ejemplo de programa básico en Visual Basic. Option Explicit, Form, Dim, String, etc. (CU00310A)

Formulario VBA en Excel. Creación del formulario. Actividad grado 10.

La ventana de Microsoft Excel

Enviar Felicitación Navideña por con Off. 2007

Operaciones con vectores

LABORATORIO Nº 1 Sistemas de Información asociados a los Formularios en Excel

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Uso del programa CALC

Proyectos de Innovación Docente

CÓMO CREAR NUESTRO CATÁLOGO

Programa Presupuestos de Sevillana de Informática.

Que es Velneo vdataclient V7?

Prerrequisitos El alumno debe conocer y dominar los aspectos básicos de programación.

Como hacer un troyano en Visual Basic 6.0

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

La lección de hoy es sobre Resolver Ecuaciones. El cuál es la expectativa para el aprendizaje del estudiante SEI.2.A1.1

PRÁCTICAS DE GESTIÓN GANADERA:

Lección 9: Polinomios

LABORATORIO 1 OPERACIONES DE ENTRADA Y SALIDA

Por ejemplo convertir el número 131 en binario se realiza lo siguiente: Ahora para convertir de un binario a decimal se hace lo siguiente:

Práctica 2: Simón dice

MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7

Incluimos una pequeña introducción al programa para aquellos profesores que quieran iniciarse en la programación a través de este entorno.

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

CAPÍTULO 2 INTERFASE VISUAL BASIC 6.0

Qué hacer si no aparece el menú programador?

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

GUIA BÁSICA DE ABSYSNET PARA PRINCIPIANTES

Gestión de Retales WhitePaper Noviembre de 2009

Subespacios vectoriales en R n

Índice Introducción Números Polinomios Funciones y su Representación. Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones

Ejercicio 3 Diapositivas Interactivas.

Tutorial Básico de vbscript

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Guía de uso del sistema CV-Online

Centro de Capacitación en Informática

Fundamentos de Informática Examen 18 de Septiembre de 2006 Mecánica y Electricidad

Como se declara un vector en Visual Basic 6.0

Manual de usuario investigador

Diseño visual. Creacion de un modulo para la API

Ejemplos de conversión de reales a enteros

Instructivo de Microsoft Excel 2003

Concesionario de coches

Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A)

GUÍA DEL ALUMNO. 1.- Estructura y contenido de la página web. 2.- Cómo usar esta página web. 3.- Contenidos. 4.- Metodología didáctica.

UML, ejemplo sencillo sobre Modelado de un Proyecto

Manual de Uso Web profesional

Ecuaciones de primer grado con dos incógnitas

MANUAL DE USUARIO ARCHIVO

Manual de Usuario del Sistema RECIBOS DE HABERES UNLu Contacto:

NemoTPV SAT Manual de usuario 1. NemoTPV SAT APLICACIÓN DE GESTIÓN DE SERVICIO TÉCNICO PARA PUNTOS DE VENTA DE EUSKALTEL

Definiciones. Tema 21_Módulos Menú 1

Tutorial. Programación en Eneboo (I). Primer contacto

Comencemos a programar con. Entrega 09

Sistema de Gestión Académica TESEO. Revisión 1.0. Servicio de Informática Área de Gestión (GESTIÓN DE RESÚMENES DE TESIS DOCTORALES)

Manual de Usuario. Del. Módulo de Lector de códigos de barras. FacturPin. Diseñado y producido por. SystemPin

Los números racionales

Caso práctico de Cuadro de Mando con Tablas Dinámicas

Manual Excel Formularios y controles

Módulo 8: Ofimática básica. Unidad didáctica 4: Introducción y modificación de datos. Access

Guía Notas Parciales. Intermedio (Nueva Versión)

col Type mismatch cadena vacía fila 1 z + i 4 1 fila 2

CALCULAR NOTAS CON EXCEL

Tecnologías de la Información. Apuntes de programación en Visual Basic 6.0

UNIDAD EJECUTORA DE CONSERVACION VIAL MANUAL DEL USUARIO DEL SISTEMA INTEGRAL DE CONTROL DE PROYECTOS

Centro de Capacitación en Informática

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS

ZCARTAS: Iniciación a la suma y resta de números enteros Introducción Actividad 1: Escenario con cartas numeradas desde -2 hasta 2...

ÁLGEBRA DE MATRICES. Al consejero A no le gusta ninguno de sus colegas como presidente.

1.- INTRODUCCIÓN 2.- PARÁMETROS

Divisibilidad y números primos

EMPLEO NTIC`S II SEGUNDO SEMESTRE

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER

GIROS Bancarios en NOTIN

6.1. Conoce la papelera

Aplicaciones Lineales

EMPEZAR A TRABAJAR CON VISUAL BASIC.NET

Capítulo 1. MANUAL DE USUARIO

Indicaciones específicas para los análisis estadísticos.

Programa de resolución de ecuaciones de primero y segundo grado

Academia técnica de computación A.T.C.

Laboratorio de Física Universitaria II. FISI 3014 Primer semestre del año académico Departamento de Física y Electrónica de la UPR-H

PASOS PARA CREAR UNA PÁGINA WEB

Exportación e Importación horarios XML

MANUAL PARA EMPRESAS PRÁCTICAS CURRICULARES

Otros tipos de Consultas

MANUAL DE AYUDA DEL USUARIO

Antes de construir tu base de datos es conveniente saber que tipos de datos vas a almacenar y como distribuirlos.

SUBIENDO NUESTRA WEB CON MACROMEDIA DREAMWEAVER

Transcripción:

Fundamentos de Informática 2012-2013 Laboratorio 10: Funciones y procedimientos (3) Objetivos: Profundizar en el uso de subprogramas y el paso de parámetros por referencia Profundizar en la manipulación de cadenas de caracteres Evento de carga de un formulario Propiedades Locked y MaxLength de los cuadros de texto Dar formato a los datos mediante la función Format Programa completo de resolución de ecuaciones de 2º grado Interfaz Figura 10.1 Objetos presentes en la interfaz de la calculadora de ecuaciones. Funcionamiento El funcionamiento de esta calculadora para resolver ecuaciones de primero y segundo grado es similar al visto en el Laboratorio 4 salvo que ahora vamos a considerar también las soluciones complejas. Es recomendable partir de la solución ya vista tanto para el diseño gráfico como para la codificación, ya que la solución será algorítmicamente similar. Pasos a seguir 1. Crearemos los objetos del tipo y forma mostrados en la Figura 10.1. Sólo daremos un nombre particular a aquéllos que nos interesa leer o modificar sus propiedades en algún momento del programa. En la Figura 10.2 se muestran en rojo los nombres propuestos para estos objetos. 2. Añadir el código a los eventos, es decir, la carga del formulario y el clic sobre los botones:

Figura 10.2 Nombres de los objetos en la interfaz de la calculadora de ecuaciones. a) Código de carga del formulario: para especificar el código de carga del formulario haremos clic dos veces sobre el formulario. Lo que conviene hacer es bloquear las cajas de texto de la solución (de una vez por todas) mediante la propiedad Locked (nótese que en el Laboratorio 3 utilizábamos la propiedad Enabled que tiene la lógica True-False inversa). También pondremos todos los objetos asociados a la solución invisibles (que haremos visibles cuando sea preciso): Sub Form_Load() Call ponersolucioninvisible txtsol1.locked = True txtsol2.locked = True txtima1.locked = True txtima2.locked = True Se observa que al principio de este procedimiento hemos puesto una llamada (Call) al procedimiento ponersolucioninvisible, que es un subprograma que escribiremos inmediatamente a continuación. Lo que tendremos que hacer es especificar uno a uno que los objetos relacionados con la solución (lblsol1, lblsol2, txtsol1, txtsol2, lblmas1, lablmas2, txtima1, txtima2, lblima1 y lblima2) van a estar invisibles, es decir, van a tener la propiedad Visible a False. Luego, dependiendo del tipo de solución, haremos visibles de manera selectiva algunos de ellos, e incluso cambiaremos las etiquetas según convenga. El esqueleto de este procedimiento se da a continuación (habrá que completarlo): Sub ponersolucioninvisible() b) Código del botón Calcular: se controlará la validez de los coeficientes (han de ser numéricos) y se llamará al procedimiento CalcularEcuacion cuya cabecera se muestra en la Figura 10.3. a,b,c: real CalcularEcuacion x1, x2, i1, i2: real tipo: entero Figura 10.3. Cabecera del procedimiento CalcularEcuacion. 2 de 7

Los parámetros de entrada son los coeficientes a, b y c de la ecuación. El parámetro de salida tipo determinará el tipo de ecuación de acuerdo con los valores posibles de la Tabla 10.1. Tipo Descripción 1 Ecuación Real de Segundo Grado 2 Ecuación Compleja de Segundo Grado 3 Ecuación de Primer Grado 4 No es una ecuación Tabla 10.1. Tipos de ecuación. Aunque en el Laboratorio 3 no tuvimos en cuenta las soluciones complejas, ahora sí lo vamos a hacer. El resto de los parámetros de salida contienen la solución, dependiendo del tipo: Cuando la solución sea una ecuación real de segundo grado x1 y x2 albergarán estas soluciones. Cuando la solución sea compleja de segundo grado x1 y x2 albergarán la parte real, obteniéndose en i1 e i2 las partes imaginarias. Cuando la solución sea de primer grado x1 albergará la solución. Cuando no sea una ecuación, ninguno de los cuatro valores de salida x1, x2, i1 o i2 tendrán un valor significativo. c) Se dará formato a los resultados mediante la función Format que es similar a CStr permitiendo especificar el número de decimales. Por ejemplo, mediante el modo 0.00 mostraremos dos valores decimales. A continuación se harán visibles los objetos gráficos que corresponda. Sub cmdcalcular_click() Dim a As Double, b As Double, c As Double Dim x1 As Double, x2 As Double Dim i1 As Double, i2 As Double Dim tipo As Integer ' Obtener los valores de los coeficientes If IsNumeric(txtA.Text) And _ IsNumeric(txtB.Text) And _ IsNumeric(txtC.Text) Then ' Los valores son numéricos a = CDbl (txta.text) b = CDbl (txtb.text) c = CDbl (txtc.text) Call CalcularEcuacion(a, b, c, x1, x2, i1, i2, tipo) If tipo = 1 txtsol1.text = Format(x1, "0.00") txtsol2.text = Format(x2, "0.00") Call ponerecuacionrealsegundogrado ElseIf tipo = 2 txtsol1.text = Format(x1, "0.00") txtsol2.text = Format(x2, "0.00") txtima1.text = Format(i1, "0.00") 3 de 7

txtima2.text = Format(i2, "0.00") Call ponerecuacionimagsegundogrado ElseIf tipo = 3 txtsol1.text = Format(x1, "0.00") Call ponerecuacionprimergrado ElseIf tipo = 4 MsgBox "Error: No es una ecuación" Else MsgBox "Error de programa: tipo de ecuación incorrecto" End If Else MsgBox "Error: Coeficientes no numéricos" End If El código asociado al subprograma ponerecuacionrealsegundogrado se encarga de hacer visibles los objetos necesarios para mostrar la solución de las raíces reales, y es el siguiente (habrá que completarlo): Sub ponerecuacionrealsegundogrado() Call bloquearabc lblsol1.caption = "Raíz 1:" lblsol2.caption = "Raíz 2:" Siempre que vayamos a mostrar la solución a una ecuación vamos a bloquear los objetos de entrada de los coeficientes de la ecuación, ya que si permitimos modificarlos no serán consistentes con las soluciones mostradas. Este bloqueo lo haremos con el subprograma bloquearabc. El código para esto será (a completar): Sub bloquearabc () txta.locked = True Cuando se trata de una ecuación de segundo grado con soluciones imaginarias tendremos que hacer visibles los mismos objetos que los de la solución anterior, lo cual haremos mediante un nuevo subprograma al que llamaremos ponerecuacionimagsegundogrado y luego llamaremos al subprograma anterior ponerecuacionrealsegundogrado, además de visualizar los objetos correspondientes a la parte imaginaria (a completar): Sub ponerecuacionimagsegundogrado () Call ponerecuacionrealsegundogrado lblmas1.visible = True Finalmente, cuando el coeficiente a es nulo nos encontramos ante una ecuación lineal, que sólo tendrá una raíz. Con esto finalizaremos el código asociado al botón Calcular y añadiremos un subprograma para visualizar una única raíz. El código del subprograma ponerecuacionprimergrado es más sencillo que los anteriores: 4 de 7

Sub ponerecuacionprimergrado () Call bloquearabc lblsol1.caption = "Raíz:" Código del botón Borrar: antes hemos creado un subprograma para borrar todos los objetos de la solución al cargar el formulario llamada ponersolucioninvisible. Además de eso hemos de desbloquear los campos de los coeficientes a, b y c, poniéndolos vacíos: Sub cmdborrar_click () Call ponersolucioninvisible Call desbloquearabc El subprograma para desbloquear los coeficientes es fácilmente adivinable: Sub desbloquearabc () txta.locked = False txta.text = "" Ejercicio 10.1: Control de letra del DNI Interfaz Figura 10.4. Comprobador de la letra del DNI. La letra del DNI sirve para comprobar que se ha introducido correctamente el número. Se calcula obteniendo el resto de dividir el número de DNI por 23 y el número resultante será la posición de la letra (empezando por 0) en la cadena: TRWAGMYFPDXBNJZSQVHLCKE. Así, para el DNI 12345678 haríamos: n = 12345678 Mod 23 Nos da 15 y se comprobará que en la posición 16 (empezando por 1) en la cadena dada se encuentra la letra Z. Se pide: Verificar que se introducen los 8 dígitos del DNI 5 de 7

Verificar que todos los caracteres introducidos son dígitos del 0 al 9 Verificar que se ha introducido la letra (en mayúsculas o minúsculas) Calcular la letra correspondiente al DNI Decir si la letra introducida es correcta (la calculada) o incorrecta Compruébese con el DNI de uno mismo Para asegurarnos de que no se introducen en cada campo más dígitos de los necesarios se limitará el contenido del campo a los caracteres correspondientes (8 y 1 respectivamente) mediante la propiedad MaxLength de los cuadros de texto. Ejercicio 10.2: Control de cuentas bancarias Interfaz Figura 10.5. Comprobador de cuenta bancaria. Un número de cuenta bancaria completo se compone de 20 dígitos (d 19 a d 0 ) que se corresponden con los conceptos expresados en la Tabla 10.2. Entidad Oficina Control Número de cuenta d 19 d 18 d 17 d 16 d 15 d 14 d 13 d 12 d 11 d 10 d 9 d 8 d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 Tabla 10.2. Dígitos de una cuenta bancaria. Así, los cuatro primeros dígitos de una cuenta se corresponden con la entidad, por ejemplo, el código de Caja Vital ; los cuatro dígitos siguientes hacen referencia al código único de una oficina o sucursal de esa entidad; los dos dígitos siguientes se llaman dígitos de control y 6 de 7

sirven para controlar la corrección de la cuenta completa; los diez últimos números se corresponden con el número de cuenta. Los dos dígitos de control se calculan a partir de los otros 18 dígitos y sólo una de las 100 combinaciones posibles (de 00 a 99 ) es válida. Más en concreto, el primer dígito de control (d 11 ) se corresponde con los ocho primeros dígitos (todas las cuentas de la misma oficina tienen el mismo dígito) y el segundo dígito de control (d 10 ) se corresponde con el número de cuenta. El método de cálculo de los dígitos de control no es infalible pero permite detectar que se ha intercambiado el orden de dos dígitos consecutivos. Consiste en sumar los dígitos ponderados por un coeficiente y luego obtener un solo dígito a partir del número resultante. La Tabla 10.3 recoge los coeficientes correspondientes a cada dígito. Entidad Oficina Control Número de cuenta d 19 d 18 d 17 d 16 d 15 d 14 d 13 d 12 d 11 d 10 d 9 d 8 d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 4 8 5 10 9 7 3 6 - - 1 2 4 8 5 10 9 7 3 6 Tabla 10.3. Coeficientes para el cálculo del dígito de control. Para los dígitos de control d 11 y d 10 sumaremos respectivamente: s 11 = 4 d 19 + 8 d 18 + 5 d 17 + 10 d 16 + 9 d 15 + 7 d 14 + 3 d 13 + 6 d 12 s 10 = d 9 + 2 d 8 + 4 d 7 + 8 d 6 + 5 d 5 + 10 d 4 + 9 d 3 + 7 d 2 + 3 d 1 + 6 d 0 El cálculo que se realizará a continuación será para d 11 : d 11 = 11 (s 11 Mod 11) Si el resultado es mayor que 9 se hará: d 11 = 11 d 11 De manera similar, para d 10 haremos: d 10 = 11 (s 10 Mod 11) Si el resultado es mayor que 9 se hará: d 10 = 11 d 10 Otros detalles Se controlará que todos los caracteres son dígitos y que se introducen los necesarios. Para asegurarnos de que no se introducen en cada campo más dígitos de los necesarios se limitará el contenido del campo a los caracteres correspondientes (4, 4, 2 y 10 respectivamente) mediante la propiedad MaxLength de los respectivos cuadros de texto. Mid (ByVal cad As String, ByVal ini As Long, [ByVal lon As Long]) As String Len (ByVal str As String}) As Integer Ucase (ByVal exp As String) As String Lcase (ByVal exp As String) As String Format (ByVal num As Double, ByVal fmt As String) As String Subcadena desde ini hasta la longitud indicada Tabla 10.4. Lista de funciones relevantes de Visual Basic Longitud de str (puede utilizarse con otros tipos) Convierte la exp a Mayúsculas o Minúsculas. Da formato al número num utilizando el formato fmt (puede utilizarse con otros tipos, por ejemplo fechas) 7 de 7