Índice Ejercicio 1. Función Seno por desarrollo en serie (1.5ptos) . +

Anuncio
Curso 2002-2003 Examen Grupo B
Programación en Visual Basic 6.0
Pág. 1
Índice
Ejercicio 1. Función Seno por desarrollo en serie (1.5ptos).......................................................... 1
Ejercicio 2. Simulación del movimiento de un muelle (5.0ptos)........................................................ 3
Antes de empezar a realizar el examen es conveniente recalcar tres cosas:
•
Deben verificar que se les ha creado la cuenta G:\ , en la cual tienen que crear dos
subdirectorios : Uno será G:\Ejer1 y el otro G:\Ejer2.
•
Es importante que lean con detenimiento los ejercicios, sobretodo tienen que tratar de
entender bien lo que se les está pidiendo.
•
Se debe desarrollar primero el ejercicio 1 para poder optar a que se les corrija el segundo
ejercicio.
Ejercicio 1. Función Seno por desarrollo en serie
(1.5ptos)
Este ejercicio consiste en la realización de un pequeño algoritmo matemático en Visual Basic 6.0
que permita calcular el valor del seno de un ángulo por desarrollo en serie.
El desarrollo en serie de la función sen(x) viene dado por la siguiente ecuación:
sen( x) = x −
x3 x5 x7
+ − +…
3! 5! 7!
siendo x el ángulo en radianes y el símbolo ”!” es el factorial de un número (3! es el factorial de
3=6). Como se puede observar en la ecuación, mientras más términos se empleen, mejor
aproximación se obtendrá.
En la Fig. 1 se muestra el formulario principal de la aplicación. A continuación vamos a describir
los componentes del formulario:
•
2 cajas de texto para dar el ángulo (txtAng) y el número de términos a desarrollar (txtNum).
El ángulo será escrito en esta caja de texto en grados.
•
El resultado se mostrará en la etiqueta Resultado (lblRes).
•
Una lista (lstLista) para mostrar todos los términos calculados.
•
Un botón de comando para iniciar el cálculo (cmdCalcular).
•
Y por último un menú con la opción Salir para finalizar el programa.
Metodología de programación:
Como único requisito para dar por válido este ejercicio es que el cálculo de la serie se realice en
una función Seno que reciba como argumentos un vector (vec), una variable para el ángulo (x), otra
variable para el número de términos (num) y que devuelva el resultado de la serie.
La definición de la función es como sigue:
Public Function Seno(vec() As Double, x As Double, num As Integer) As Double
A continuación se describen los argumentos de la función:
Escuela Superior de Ingenieros – TECNUN – Universidad de Navarra
Curso 2002-2003 Examen Grupo B
Programación en Visual Basic 6.0
Pág. 2
•
vec() es un vector de num elementos, en el cual se devolverán los valores de la función
hallados a medida que se va incrementado el número de términos (estos datos luego serán
volcados en la lista. Ver Fig. 1).
•
X es el ángulo y
•
Num es el número de términos que se hará en el desarrollo de la serie.
Recordar que para que una función devuelva un valor (es este caso debe devolver el valor del seno),
se debe utilizar una variable que tiene el mismo nombre que la función.
La llamada en el formulario principal (desde el evento del botón calcular) podría ser de la siguiente
manera:
Private Sub cmdCalcular_Click()
Dim vec() As Double, x As Double, Num As Integer
‘ copiar valores de las cajas de texto y dimensionar el vector
res = Seno(vec, x, num)
‘escribir el resultado en la etiqueta lblRes y llenar la lista
End Sub
La función se debe realizar en un módulo nuevo, al que se le denominará funcSeno.bas.
El nombre del formulario será Seno.frm y el del proyecto será Seno.vbp.
Estos tres ficheros deben estar en el directorio G:\Ejer1.
Fig. 1 Formulario del programa Seno.
En la figura se puede observar que el primer término (el primero de la lista) siempre es x (en
radianes) y a medida que se va aumentando el número de términos, los valores se van aproximando
más.
Para el cálculo del factorial, si se crea una función, hay que usar variables tipo double, porque si no
se desbordan (overflow) rápidamente. Por ejemplo el factorial de 9 es 362880; este número no se
podría representar con una variable tipo Integer.
Escuela Superior de Ingenieros – TECNUN – Universidad de Navarra
Curso 2002-2003 Examen Grupo B
Programación en Visual Basic 6.0
Pág. 3
Ejercicio 2. Simulación del movimiento de un muelle (5.0ptos)
En este ejercicio se pide realizar un programa
en Visual Basic que permita simular el movimiento
de una masa atada a un muelle, sin rozamiento, con
desplazamiento inicial A cm, ya sea en compresión o
alargamiento.
La ecuación que rige este movimiento es:
x(t ) = A * cos(ω * t )
Fig. 2 Masa y muelle
Donde A es el desplazamiento inicial y ω = k / m , siendo k la constante del muelle (en
N/m) y m la masa (en kg.).
El período de oscilación de la masa viene dado por la sgte. fórmula: T = 2 * π m / k
Este es el tiempo que tarda la masa en ir y volver desde el punto Inicial. Como no existe rozamiento,
la masa puede estar indefinidamente yendo de un punto a otro.
Como se puede apreciar en la ecuación, sólo existe desplazamiento en el eje x, el cual está
en función del tiempo t, esto quiere decir que al desarrollar la simulación, hay que calcular el valor
de x en la que se encuentra la masa m a cada instante, partiendo siempre de la posición inicial A.
Según se puede observar en la Fig. 3, el muelle está anclado a la pared izquierda de la
gráfica y según se vaya seleccionando la posición inicial A, la masa se debe dibujar en su
respectivo lugar. Por ejemplo, para una posición inicial A=0, la masa debe estar en el centro. En el
caso de la Fig. 3, la masa está estirada 50 cm.
En la Fig. 3 se muestra el formulario del programa Muelle así como los componentes
necesarios para la realización de este ejercicio, los cuales describiremos a continuación:
•
ScrollBar horizontal (hsbPos): para elegir la posición Inicial A de la masa (de 0 a 100 cm.)
•
Una caja de texto txtPos para introducir de forma directa el valor de la posición Inicial
(debajo de la Scrollbar). El dato aquí introducido sólo se aceptará cuando se presione la tecla
Enter, en cuyo caso, se debe también reflejar o modificar la scrollbar hsbPos. Concluyendo,
hay dos formas de introducir la Posición Inicial: con la scrollbar y con la caja de texto, las
cuales deben estar relacionadas, es decir que cuando cambie una, se actualice la otra.
•
Dos Option Buttons para elegir si el muelle está inicialmente comprimido o estirado.
•
TextBox (txtK): permite introducir el valor de la constante del muelle (en N/m).
•
TextBox (txtM): permite introducir el valor de la masa (en kg).
•
Un PictureBox (pctBox) para realizar las gráficas. Poner el origen 0,0 según se ve en la
figura y elegir la escala de acuerdo con la posición inicial A máxima que se puede elegir
(tener en cuenta que puede estar comprimido o estirado).
•
Un timer (timer1) con un intervalo de 50ms para realizar la simulación.
•
Un botón de Start para empezar. Este botón debe cambiar a Stop para poder detener la
simulación (tiene una doble función).
•
Un menú con la opción Salir para terminar el programa.
Escuela Superior de Ingenieros – TECNUN – Universidad de Navarra
Curso 2002-2003 Examen Grupo B
Programación en Visual Basic 6.0
Pág. 4
Condición: Una vez iniciada la simulación ya no se debe permitir cambiar la Posición Inicial ni si
está estirado o comprimido, sólo se debe poder cambiar la masa m y la constante k del muelle.
0,0
Fig. 3 Formulario del programa Muelle.
Pasos a seguir en la programación:
•
Todas las variables deben ser declaradas, para lo cual se debe utilizar Option Explicit.
•
Poner la escala adecuada del PictureBox al inicio del programa, en la función que se ejecuta
sólo una vez, cuando se carga el formulario (cuál es?). Dibujar los ejes en el método paint.
•
Una vez se inicie la simulación (“Start”), se debe habilitar el timer1 y deshabilitar los
componentes necesarios e inicializar una variable t (declarada como global cómo?) a cero.
El botón de comando debe cambiar su “caption” a Stop.
•
En el evento del timer1 hay que realizar el cálculo de la posición x en función t. Con este
valor se puede dibujar la posición de la masa y el muelle (para dibujar el muelle basta con
hacer una línea, para no complicar demasiado el ejercicio. La masa se puede hacer con un
cuadrado relleno de 4 cm. de lado). Luego incrementar el valor de t (sumándole el intervalo
del timer1 en ms) para que se pueda realizar el nuevo cálculo (recordar que para “limpiar”
un pictureBox se usa su método cls o sino se puede utilizar el método paint para hacer el
gráfico. Queda a criterio del alumno qué método utilizar).
•
Cuando se presiona el botón “Stop” se detiene el timer1 y se habilitan los componentes que
no lo están y se inicializa la variable t a cero y las demás que se deseen.
Según los datos de la Fig. 3, se obtiene un período de 1.98 segundos, este es el tiempo que tarda la
masa en ir y volver desde la posición inicial A, ya sea comprimida o estirada. Este tiempo es
independiente de la posición inicial en que se encuentre la masa.
Los ficheros de este ejercicio deben estar en el directorio G:\Ejer2 y deben ser los siguientes:
•
Formulario: Muelle.frm
Proyecto: Muelle.vbp
Suerte a todos!!!
Escuela Superior de Ingenieros – TECNUN – Universidad de Navarra
Descargar