Sunteți pe pagina 1din 21

Octubre

de 2017
Paso 3 - Aplicar las estructuras
bsicas de programacin
Componente practico

Vctor Julio Martnez Barrios


Universidad Nacional Abierta y a Distancia
Octubre de 2017
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

Paso 3 - Aplicar las estructuras bsicas de programacin

Componente practico

Vctor Julio Martnez Barrios

Cdigo 1 067 093 036

Tutor

Hernando Arbey Robles

Universidad Nacional Abierta y a Distancia

Escuela de Ciencias Bsicas, Tecnologa e Ingeniera

Visual Basic Bsico

2017

1
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

Introduction

The present report is presented as evidence of the development of the


practical component of the Visual Basic course of the open and distance national
university. In the same it is carried out the development of 10 exercises using the
basic structures of programming in Visual Basic 2010.

2
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

Objectives

General objective

Apply the concepts studied in the first two units of the course Visual Basic, to
carry out the development of the practical component of this course.

Specific objectives

Review the contents of the second unit of the Visual Basic course.
Apply basic programming structures, in the development of simple
algorithms.

3
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

Desarrollo del componente prctico

Disear 10 programas en donde se apliquen las estructuras bsicas de


programacin, que se enlacen a un men principal. Cada estudiante debe hacer al
menos 4 ejercicios de los propuestos para la participacin individual.

1. Calcular la masa corporal de una persona (IMC) y los clasifique segn el cuadro
de ndice masa corporal y clasificacin. Es importante que recuerde introducir su
altura en centmetros en lugar de en metros en la casilla de altura. De esta forma,
si mide 1.70 metros, deber escribir 170 en el cuadro de altura. Se debe validar
que solo ingresen nmeros, que no acepte valores mayores a 230 cms y peso
mayor a 200 kilos, que no acepte 0 en ninguna de las casillas.

A continuacin, se presentan una serie de pantallazos del ejercicio:

Fig. 1. Ventana ejercicio 1

4
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

Fig. 2. Validacin de campos obligatorios

Fig. 3. Validacin de datos

5
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

Fig. 4. Persona con peso normal

Fig. 5. Persona con delgadez severa

6
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

Fig. 6. Persona obesa

A continuacin, se describe el cdigo fuente utilizado para el ejercicio:

Public Class EJ1

'Cierra la ventana'
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Close()
End Sub

'Metodo que realiza el calculo del IMC y lo clasifica '


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

'Se valida que se ingrese un valor de altura'


If (MTextBoxH.Text = "") Then
MessageBox.Show("Por favor ingrese la altura", "Validacin",
MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxH.Focus()
Return
End If

'Se valida altura minima'


If (Convert.ToInt32(MTextBoxH.Text) <= 0) Then
MessageBox.Show("Por favor ingrese una altura vlida (mayor a 0 cm)",
"Validacin", MessageBoxButtons.OK, MessageBoxIcon.Warning)

7
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

MTextBoxH.Clear()
MTextBoxH.Focus()
Return
End If

'Se valida altura maxima'


If (Convert.ToInt32(MTextBoxH.Text) > 230) Then
MessageBox.Show("Por favor ingrese una altura vlida (menor a 230
cm)", "Validacin", MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxH.Clear()
MTextBoxH.Focus()
Return
End If

'Se valida que se ingrese un valor de peso'


If (MTextBoxW.Text = "") Then
MessageBox.Show("Por favor ingrese el peso", "Validacin",
MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxW.Focus()
Return
End If

'Se valida peso minimo'


If (Convert.ToInt32(MTextBoxW.Text) <= 0) Then
MessageBox.Show("Por favor ingrese un peso vlio (mayor a 0 Kg)",
"Validacin", MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxW.Clear()
MTextBoxW.Focus()
Return
End If

'Se valida peso maximo'


If (Convert.ToInt32(MTextBoxW.Text) > 200) Then
MessageBox.Show("Por favor ingrese un peso vlido (menor a 200 Kg)",
"Validacin", MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxW.Clear()
MTextBoxW.Focus()
Return
End If

Dim peso = Convert.ToInt32(MTextBoxW.Text) 'Se toma el valor del peso'


Dim M2 = Math.Pow((Convert.ToInt32(MTextBoxH.Text) / 100), 2) 'Se
convierte la altura de CM a Metros cuadrados'
Dim IMC = peso / M2 'Calculo del IMC'

TextBoxIMC.Text = Convert.ToString(Math.Round(IMC, 2))


Dim bgColor As Color

'Determinacion de la clasificacion y color asociado'


Dim clasification As String = ""
If (IMC < 16.0) Then
clasification = "Infrapeso: Delgadez(Severa)"
bgColor = Color.OrangeRed
ElseIf (IMC < 17) Then
clasification = "Infrapeso: Delgadez moderada"
bgColor = Color.Orange
ElseIf (IMC < 18.5) Then

8
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

clasification = "Infrapeso: Delgadez aceptable"


bgColor = Color.PaleGreen
ElseIf (IMC < 25) Then
clasification = "Peso Normal"
bgColor = Color.Green
ElseIf (IMC < 30) Then
clasification = "Sobrepeso"
bgColor = Color.Orange
ElseIf (IMC < 35) Then
clasification = "Obeso: Tipo I"
bgColor = Color.OrangeRed
ElseIf (IMC <= 40) Then
clasification = "Obeso: Tipo II"
bgColor = Color.Red
Else
clasification = "Obeso: Tipo III"
bgColor = Color.Red
End If
TextBoxClass.Text = clasification 'Se presenta la clasificacion'
TextBoxClass.BackColor = bgColor 'Se asigna un color segun la
clasificacion'
End Sub

'Limpia los diferentes campos del formulario'


Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
TextBoxClass.Clear()
TextBoxClass.BackColor = SystemColors.Control
TextBoxIMC.Clear()
MTextBoxW.Clear()
MTextBoxH.Clear()
MTextBoxH.Focus()
End Sub
End Class

9
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

2. Disee un programa de cada libre que calcule. Un cuerpo cae libremente desde
el reposo durante n segundos hasta llegar al suelo. Calcular la distancia que ha
recorrido, o lo que es lo mismo, la altura desde donde se solt. Se debe validar
que solo ingresen nmeros, que no acepte 0 en ninguna de las casillas.

A continuacin, se presentan una serie de pantallazos del ejercicio:

Fig. 7. Ventada del ejercicio 5

Fig. 8. Validacin de datos obligatorios

10
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

Fig. 9. Validacin de datos ingresados

Fig. 10. Procesamiento

11
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

A continuacin, se describe el cdigo fuente utilizado para el ejercicio:

Public Class EJ5

'Evento asociado al boton Calcular altura'


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

'Se valida que se ingrese un valor de tiempo'


If (MTextBoxTime.Text = "") Then
MessageBox.Show("Por favor ingrese el tiempo en segundos del
movimiento.", "Validacin", MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxTime.Focus()
Return
End If

'Se valida tiempo minimo'


If (Convert.ToInt32(MTextBoxTime.Text) <= 0) Then
MessageBox.Show("Por favor ingrese un tiempo vlido (mayor a 0
segundos)", "Validacin", MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxTime.Clear()
MTextBoxTime.Focus()
Return
End If

'Se convierte a entero el tiempo ingresado'


Dim t = Convert.ToInt32(MTextBoxTime.Text)
'Se declara la constande de la gravedad'
Dim g As Double = 9.8
'Se calcula la altura del lanzamiento'
Dim h = 0.5 * (g * Math.Pow(t, 2))

'Se redondea el valor calculado a dos cifras decimales y se presenta en


pantalla'
TextBoxH.Text = Convert.ToString(Math.Round(h, 2))

End Sub

'Evento asociado al boton Limpiar (Borra los datos del formulario)'


Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
TextBoxH.Clear()
MTextBoxTime.Clear()
MTextBoxTime.Focus()
End Sub

'Boton salir (cierra la ventana)'


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

12
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

3. Disee un ejercicio de movimiento rectilneo uniforme en donde me permita


calcular dos variables para el siguiente ejercicio. Dos vehculos salen al
encuentro desde dos ciudades (A y B) separadas por n km, con velocidades
diferentes cada uno, v1 y v2. Si el que circula a v1 sale t (tiempo) ms tarde que
el que circula a v2, responda a las siguientes preguntas:
a) El tiempo que tardan en encontrarse
b) La posicin donde se encuentran.
Se debe validar que solo ingresen nmeros, que no acepte valores negativos ni
acepte 0 en ninguna de las casillas.

A continuacin, se presentan una serie de pantallazos del ejercicio:

Fig. 11. Ventana ejercicio 6

13
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

Fig. 12. Validacin de datos obligatorios

Fig. 13. Validacin de formato de datos

14
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

A continuacin, se describe el cdigo fuente utilizado para el ejercicio:

Public Class EJ6

'Evento asociado al boton Calcular'


Private Sub BtnCalculate_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnCalculate.Click

'Se valida que se ingrese un valor de distancia'


If (MTextBoxD.Text = "") Then
MessageBox.Show("Por favor ingrese la distancia entre las ciudades.",
"Validacin", MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxD.Focus()
Return
End If

'Se valida distancia minima'


If (Convert.ToInt32(MTextBoxD.Text) <= 0) Then
MessageBox.Show("Por favor ingrese una tiempo vlida (mayor a 0 km)",
"Validacin", MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxD.Clear()
MTextBoxD.Focus()
Return
End If

'Se valida la velocidad 1'


If (MTextBox2V1.Text = "") Then
MessageBox.Show("Por favor ingrese la velocidad del auto 1", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBox2V1.Focus()
Return
End If

'Se valida la velocidad 1'


If (Convert.ToInt32(MTextBox2V1.Text) <= 0) Then
MessageBox.Show("Por favor ingrese una velocidad vlida (mayor a 0
km/h)", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBox2V1.Clear()
MTextBox2V1.Focus()
Return
End If

'Se valida velocidad 2'


If (MTextBoxV2.Text = "") Then
MessageBox.Show("Por favor ingrese la velocidad del auto 2", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxV2.Focus()
Return
End If

'Se valida velocidad 2'


If (Convert.ToInt32(MTextBoxV2.Text) <= 0) Then
MessageBox.Show("Por favor ingrese una velocidad vlida (mayor a 0
km/h)", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxV2.Clear()
MTextBoxV2.Focus()

15
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

Return
End If

'Se valida la diferencia de tiempo'


If (MTextBoxT.Text = "") Then
MessageBox.Show("Por favor ingrese la diferencia de tiempo (en
minutos)", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxT.Focus()
Return
End If

'Se valida la diferencia de tiempo'


If (Convert.ToInt32(MTextBoxT.Text) <= 0) Then
MessageBox.Show("Por favor ingrese un tiempo vlido (mayor o igual a
1 minuto)", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
MTextBoxT.Clear()
MTextBoxT.Focus()
Return
End If

'Se convierte a entero la Distancia entre las ciudades'


Dim xT = Convert.ToInt32(MTextBoxD.Text)
'Se convierte a entero la Velocidad vehiculo 1'
Dim v1 = Convert.ToInt32(MTextBox2V1.Text)
'Se convierte a entero la Velocidad vehiculo 2'
Dim v2 = Convert.ToInt32(MTextBoxV2.Text)
'Se convierte a entero el Tiempo de diferencia en horas'
Dim tD = Convert.ToInt32(MTextBoxT.Text) / 60

'Calculo del tiempo de encuentro'


'Formula utilizada: v1(tReal) = xT - v2 (tReal - tD) = xT - v2(tReal) +
v2(tD)'
Dim v2Real = v2 * tD
Dim tReal = (xT + v2Real) / (v1 + v2)
Dim x1 = v1 * tReal

'Se formatea el tiempo calculado a 2 decimales y se presenta en pantalla'


TextBoxTime.Text = Convert.ToString(Math.Round(tReal, 2))
'Se formatea la posicion de encuentro calculada a 2 decimales y se
presenta en pantalla'
TextBoxPos.Text = Convert.ToString(Math.Round(x1, 2))

End Sub

'Boton limpiar (limpia los campos del formulario y lleva el foco al primer
campo)'
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
TextBoxPos.Clear()
TextBoxTime.Clear()
MTextBoxT.Clear()
MTextBoxV2.Clear()
MTextBox2V1.Clear()
MTextBoxD.Clear()
MTextBoxD.Focus()
End Sub

16
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

'Boton cerrar (Cierra la ventana)'


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

4. Un estudiante de ingeniera de sistemas requiere saber la altura de un punto


hasta donde debe llegar un cable de red, dotado con un cronometro lanza un
objeto rocoso en forma vertical hasta el punto seleccionado y este regresa a los
3 segundos, no tener en cuenta la resistencia del aire, calcular la velocidad inicial
del lanzamiento y la altura o distancia del punto seleccionado.

Se debe validar que solo ingresen nmeros, que no acepte valores negativos,
que no acepte 0 en ninguna de las casillas. El programa acepta n segundos.

A continuacin, se presentan una serie de pantallazos del ejercicio:

Fig. 14. Ventana ejercicio 7

17
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

Fig. 15. Validacin datos obligatorios

Fig. 16. Procesamiento

18
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

A continuacin, se describe el cdigo fuente utilizado para el ejercicio:

Public Class EJ7

'Boton calcular'
Private Sub ButtonCalculate_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonCalculate.Click

'Se valida que se ingrese el tiempo'


If (TextBoxT.Text = "") Then
MessageBox.Show("Por favor ingrese el tiempo en segundos", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Warning)
TextBoxT.Focus()
Return
End If

'Se valida que se ingrese un tiempo mayor a 0'


If (Convert.ToInt32(TextBoxT.Text) <= 0) Then
MessageBox.Show("Por favor ingrese un tiempo vlido (mayor a 0
segundos)", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
TextBoxT.Clear()
TextBoxT.Focus()
Return
End If

Dim t = Convert.ToInt32(TextBoxT.Text) 'Tiempo total del movimiento'


Dim g = 9.8 'Constante de la gravedad'
Dim t2 = t / 2 'tiempo de una etapa del movimiento'

'Velocidad inicial'
Dim Vi = g * t2

'Distancia del punto'


Dim y = (0.5 * Vi) * (t2)

'Se redondean a dos cifras decimales los valores calculados y se


presentan en pantalla'
TextBoxH.Text = Convert.ToString(Math.Round(y, 2)) & " m"
TextBoxVi.Text = Convert.ToString(Math.Round(Vi, 2)) & " m/s"
End Sub

'Boton limpiar (Limpia los campos del formulario)'


Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
TextBoxH.Clear()
TextBoxVi.Clear()
TextBoxT.Clear()
TextBoxT.Focus()
End Sub

'Boton cerrar (Cierra la pantalla)'


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

19
Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera - ECBTI
Visual Basic Bsico - 201416

Conclusions

Once completed this activity can be concluded about the importance and
facilities offered by basic programming structures in the development of any
programming routine.

20

S-ar putea să vă placă și