Anda di halaman 1dari 35

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

TRABAJO COLABORATIVO MOMENTO 1


PSICOLOGIA

ACTIVIDAD 3 UNIDAD 1
INTERVENCION GRUPAL

JUAN RAFAEL POLO


SANTIAGO ALEJANDRO FRANCO
HUIL SEBASTIAN CAMACHO
YON IVAN MRQUEZ BUITRAGO.

TUTOR:
JORGE EDUARDO PEREZ GARCIA

Universidad Nacional Abierta y a Distancia UNAD Cead Arbelez.


Ingeniera de Sistemas.
Visual Basic Avanzado
Grupo 08

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

INTRODUCCIN

Se busca en esta actividad hacer la respectiva revisin del material de estudio referenciado
en el entorno de conocimiento correspondiente a la unidad uno, resolver la Actividad
Crucigrama y hacer la seleccin y solucin de 5 de los casos propuestos para la
apropiacin donde se reconocen los elementos bsicos de la programacin en ambiente
visual,
Las temticas a revisar son:
Introduccin a la plataforma .NET
Fases en el desarrollo de un programa
Utilizacin de Visual Basic. Net

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

OBJETIVOS

Revisin del material de estudio referenciado en el entorno de conocimiento


correspondiente a la unidad uno.
Seleccin y solucin de 5 de los casos propuestos para la apropiacin donde se
reconocen los elementos bsicos de la programacin en ambiente visual,
Aplicar los conceptos de variables, expresiones matemticas, condicionales, manejo
de controles y formularios.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

EJERCICIOS

Se utilizan procedimientos muy sencillos para la obtencin de los resultados, con alta
funcionalidad y una curva de aprendizaje no elevada, para un rpido manejo de la aplicacin
Para la aplicacin de los ejercicios, se aplic una presentacin principal con un menStrip
donde se ubicaron los accesos a los diferentes ejercicios. El archivo es FrmPrincipal.vb, el
cual se visualiza asi:

TextBox personalizado. TbPlus.Dll.


Con este control logramos tener entradas validadas, con el propsito de producir datos con la
forma requerida para las diferentes operaciones. Este control contempla los casos de
desbordamiento, aunque se consideran nmeros extensos, por lo que utiliza bsicamente el
tipo de datos Decimal, el cual maneja ampliamente nmeros grandes. A continuacin algunos
partes del cdigo.
Private Sub RealesKeyPress(e As KeyPressEventArgs)
'Si se trata de reales con signo, valide la entrada de "-"
If RealConSigno Then
ValidarSignoMenos(e)
End If

'Si ya hay Punto o coma dec, que no acepte otra y retorne

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
If e.KeyChar = SeparadorDec Then
If Me.Text.Contains(SeparadorDec) Then
e.Handled = True
Return
Else
Return
End If
End If
'Si no es un dgito y tampoco caracter de control, que retorne
If Not (Char.IsDigit(e.KeyChar)) And Not (Char.IsControl(e.KeyChar)) Then
e.Handled = True
Return
End If
If Char.IsDigit(e.KeyChar) AndAlso HayDesborde(e.KeyChar) Then
MuestraMensajeDesbordamiento()
e.Handled = True
Return
End If
'Si el Me est vaco y se escribe 0, aceptelo y retorne enseguida
If e.KeyChar = "0" AndAlso Me.Text.Length = 0 Then
Return
End If
'Si se tecle 0 y el tb no est vaco y el indicador est al inicio del num
If e.KeyChar = "0" AndAlso Me.Text.Length > 0 AndAlso Me.SelectionStart = 0 Then
'Si se cumple lo anterior y adems el nm es entero, ent. inserte un 0, al inicio
If Not Me.Text.Contains(SeparadorDec) Then
Me.Text = Me.Text.Insert(0, "0,")
Me.SelectionStart = 2
e.Handled = True
Return
End If
End If
Dim PosAct As Integer

'Pos actual del indicador en el Me

Dim sNumIzq As String

'String a la izquierda de el indicador

Dim sNumDer As String

'String a la derecha de el indicador

Dim iNumIzq As Decimal

'Entero que queda ala izquierda del indicador

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
PosAct = Me.SelectionStart
sNumIzq = Me.Text.Substring(0, PosAct)
sNumDer = Me.Text.Substring(PosAct)
'Si lo que est a la izq contiene dec no haga nada y si es entero haga...
If Not sNumIzq.Contains(SeparadorDec) Then
'Si sNumIzq = Nothing, tambin iNumIzq = 0
Decimal.TryParse(sNumIzq, iNumIzq)
'Si hay 0 a la izq o no hay nada
If iNumIzq = 0 Then
'Si es un 0, rechace y salga
If e.KeyChar = "0" Then
e.Handled = True
Return
Else
'Si no, borre lo de la izquierda y escriba
Me.Text = sNumDer
Me.SelectionStart = 0
End If
End If
End If
End Sub
Private Sub EnterosKeyPress(e As KeyPressEventArgs)
'Si se trata de entero con signo, verifique si se tecle "-"
If EnteroConSigno Then
ValidarSignoMenos(e)
End If
'Si no es ni dgito ni caracter de control, ignore y salga
If Not (Char.IsDigit(e.KeyChar)) And Not (Char.IsControl(e.KeyChar)) Then
e.Handled = True
Return
End If
If Char.IsDigit(e.KeyChar) AndAlso HayDesborde(e.KeyChar) Then
MuestraMensajeDesbordamiento()
e.Handled = True
Return
End If

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
'Si se tecle 0 y el tb est vaco
If e.KeyChar = "0" AndAlso Me.Text.Length = 0 Then
Return
End If
'Si se tecle 0 y el tb no est vaco y el indicador de insercin est al inicio
If e.KeyChar = "0" AndAlso Me.Text.Length > 0 AndAlso Me.SelectionStart = 0 Then
e.Handled = True
Return
End If
Dim PosAct As Integer

'Pos actual del indicador en el Me

Dim sNumIzq As String

'String a la izquierda de el indicador

Dim sNumDer As String

'String a la derecha de el indicador

Dim iNumIzq As Decimal

'Entero que queda ala izquierda del indicador

PosAct = Me.SelectionStart
sNumIzq = Me.Text.Substring(0, PosAct)
sNumDer = Me.Text.Substring(PosAct)
'Si sNumIzq = Nothing, tambin iNumIzq = 0
Decimal.TryParse(sNumIzq, iNumIzq)
'Si hay 0 a la izq o no hay nada
If iNumIzq = 0 Then
'Si es un 0, rechace y salga
If e.KeyChar = "0" Then
e.Handled = True
Return
Else
'Si no, borre lo de la izquierda y escriba
Me.Text = sNumDer
Me.SelectionStart = 0
End If
End If
End Sub

1. Realizar un ejercicio que calcule la velocidad, el espacio y el tiempo segn la


informacin recibida por teclado.
Caso1. Calcular velocidad, se digita tiempo y distancia se calcula velocidad en kph.
7

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

Caso2. Calcular distancia, se digita tiempo y velocidad se calcula distancia en km.


Caso3. Calcular tiempo, se digita velocidad y distancia se calcula tiempo en minutos.
1) Planificacin
mbito

Desarrollamos un programa que calcula la velocidad, el espacio y el tiempo segn


la informacin obtenida por teclado.
Para ello hacemos uso de un WinForm con un TabControl que nos permita
movernos entre el desarrollo de los tres ejercicios planteados: Clculo de
Velocidad (V=d/t), Clculo de distancia (D = vt), Clculo de Tiempo (T=d/v).
Dentro de las pginas del TabControl agrupamos dos controles TextBox para el
ingreso de los datos conocidos (por ejemplo distancia y tiempo) y un botn para
evaluar la frmula (figura de carro).
Al accionar el botn para evaluar la frmula, la salida del resultado se genera a
travs de una caja de mensaje MessageBox.
Hay un botn Salir, para cerrar esta ventana y salir de este mdulo de programa.
No tiene navegabilidad.

Recursos del entorno Hardware y Software


Entorno 1
Computador Asus Core i5, 1 Tb en Disco Duro y 6Gb de memoria Ram.
Windows 10.
Programa Microsoft Visual Studio Community 2015
Entorno 2
Computador: procesador Pentium Dual Core CPU T4200 @ 2.00Ghz disco duro de
500 Gigabyte Memoria de 4 Gb
Sistema Operativo: Windows 10 Pro
Programa Microsoft Visual Studio 2010 Professional
Recurso humano.
Cuatro programadores trabajando en Visual Studio.
Duracin
Se estima que se realizara en 3 das
No se trabaja modelos para estimacin de costos ni tiempo.
2) Diseo

Programa que evala la frmula de la Velocidad.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

<< Aqu se ubican los pantallazos del form, la entrada y salida de datos>>
Para hallar la Velocidad: V = distancia/tiempo
El valor de Distancia y de tiempo se leen desde un TextBox para cada uno.
La evaluacin de la expresin se realiza en un mtodo (EvaluaExp) que recibe un
parmetro Char que puede ser V o v, D o d, T, t, para determinar si se
debe hallar Velocidad, Distancia o tiempo.
Se implementa esto en un Select Case. Ejemplificamos uno de los casos
(Distancia), as:
Case "D", "d"
num1 = tbpDVelocidad.ValorDec

Extrae del TextBox personalizado, el valor numrico

num2 = tbpDTiempo.ValorDec

Extrae del TextBox personalizado, el valor numrico

Try
r = num1 * num2
MessageBox.Show("La Distancia es: " + r.ToString() + " Kmt", "Distancia",
MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("El resultado rebasa los lmites aceptados!" + vbCrLf +
"Puede volver a intentar con otros valores", "Desbordamiento",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try

Se implementa un TextBox personalizado, en una DLL llamada TbPlus, para el


ingreso exclusivo de nmeros enteros con o sin signo, reales con o sin signo, texto
comn.

3. Codificacin
Archivo FrmVelocidad.vb
Public Class FrmVelocidad
Private Sub FrmVelocidad_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Configuracin de TextBox TbPlus
tbpVDistancia.RealSinSigno = True
tbpVDistancia.Text = "1"
tbpVTiempo.RealSinSigno = True
tbpVTiempo.Text = "1"
tbpDVelocidad.RealSinSigno = True
tbpDVelocidad.Text = "1"
tbpDTiempo.RealSinSigno = True
tbpDTiempo.Text = "1"
tbpTDistancia.RealSinSigno = True
tbpTDistancia.Text = "1"
tbpTVelocidad.RealSinSigno = True
tbpTVelocidad.Text = "1"
' Configuracin tabPrincipal
tabPrincipal.DrawMode = TabDrawMode.OwnerDrawFixed
End Sub
Private Sub FrmVelocidad_Shown(sender As Object, e As EventArgs) Handles Me.Shown

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
tbpVDistancia.Focus()
End Sub
Private Sub tabPrincipal_DrawItem(sender As Object, e As DrawItemEventArgs) Handles tabPrincipal.DrawItem
Dim g As Graphics = e.Graphics
Dim tp As TabPage = tabPrincipal.TabPages(e.Index)
'Dim brBackColor As Brush
Dim brForeColor As Brush
Dim sf As New StringFormat
Dim FontItem As Font
Dim TituloItem As String
Dim Rectangulo As New RectangleF(e.Bounds.X + 2, e.Bounds.Y + 4, e.Bounds.Width, e.Bounds.Height)
TituloItem = tp.Text
'brBackColor = New SolidBrush(tp.BackColor) 'Set Tab Page Background
brForeColor = New SolidBrush(tp.ForeColor) 'Set title foreground
'sf.Alignment = StringAlignment.Center
If tabPrincipal.SelectedIndex = e.Index Then
FontItem = New Font(tabPrincipal.Font, FontStyle.Bold) 'set Font
Else
FontItem = New Font(tabPrincipal.Font, FontStyle.Regular) 'set Font
End If
'g.DrawString(TituloItem, FontItem, brForeColor, Rectangulo, sf)
g.DrawString(TituloItem, FontItem, brForeColor, Rectangulo)
End Sub
Private Sub tabPrincipal_SelectedIndexChanged(sender As Object, e As EventArgs) Handles
tabPrincipal.SelectedIndexChanged
Select Case tabPrincipal.SelectedIndex
Case 0
tbpVDistancia.Focus()
Case 1
tbpDVelocidad.Focus()
Case 2
tbpTDistancia.Focus()
End Select
End Sub
'___________________________________________________________________________Eventos btn Tab0
Private Sub btnEvaluarV_Click(sender As Object, e As EventArgs) Handles btnEvaluarV.Click
btnEvaluarV.Image = My.Resources.Beetle_Avocado_icon_Verde64
EvaluaExp("V")
End Sub
Private Sub btnEvaluarV_MouseMove(sender As Object, e As MouseEventArgs) Handles btnEvaluarV.MouseMove
btnEvaluarV.Image = My.Resources.Beetle_Canary_icon_Amarillo64
End Sub
Private Sub btnEvaluarV_MouseLeave(sender As Object, e As EventArgs) Handles btnEvaluarV.MouseLeave
btnEvaluarV.Image = My.Resources.Beetle_Avocado_icon_Verde64
End Sub
Private Sub btnEvaluarV_Enter(sender As Object, e As EventArgs) Handles btnEvaluarV.Enter
btnEvaluarV.Image = My.Resources.Beetle_Canary_icon_Amarillo64
End Sub
Private Sub btnEvaluarV_Leave(sender As Object, e As EventArgs) Handles btnEvaluarV.Leave
btnEvaluarV.Image = My.Resources.Beetle_Avocado_icon_Verde64
End Sub
'__________________________________________________________________________Eventos btn Tab1
Private Sub btnEvaluarD_Click(sender As Object, e As EventArgs) Handles btnEvaluarD.Click
btnEvaluarD.Image = My.Resources.Beetle_Avocado_icon_Verde64
EvaluaExp("D")
End Sub
Private Sub btnEvaluarD_MouseMove(sender As Object, e As MouseEventArgs) Handles btnEvaluarD.MouseMove
btnEvaluarD.Image = My.Resources.Beetle_Canary_icon_Amarillo64
End Sub
Private Sub btnEvaluarD_MouseLeave(sender As Object, e As EventArgs) Handles btnEvaluarD.MouseLeave
btnEvaluarD.Image = My.Resources.Beetle_Avocado_icon_Verde64
End Sub
Private Sub btnEvaluarD_Enter(sender As Object, e As EventArgs) Handles btnEvaluarD.Enter
btnEvaluarD.Image = My.Resources.Beetle_Canary_icon_Amarillo64
End Sub
Private Sub btnEvaluarD_Leave(sender As Object, e As EventArgs) Handles btnEvaluarD.Leave
btnEvaluarD.Image = My.Resources.Beetle_Avocado_icon_Verde64
End Sub
'__________________________________________________________________________________Eventos btn Tab2
Private Sub btnEvaluarT_Click(sender As Object, e As EventArgs) Handles btnEvaluarT.Click
btnEvaluarT.Image = My.Resources.Beetle_Avocado_icon_Verde64
EvaluaExp("T")
End Sub
Private Sub btnEvaluarT_MouseMove(sender As Object, e As MouseEventArgs) Handles btnEvaluarT.MouseMove
btnEvaluarT.Image = My.Resources.Beetle_Canary_icon_Amarillo64
End Sub
Private Sub btnEvaluarT_MouseLeave(sender As Object, e As EventArgs) Handles btnEvaluarT.MouseLeave
btnEvaluarT.Image = My.Resources.Beetle_Avocado_icon_Verde64

10

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
End Sub
Private Sub btnEvaluarT_Enter(sender As Object, e As EventArgs) Handles btnEvaluarT.Enter
btnEvaluarT.Image = My.Resources.Beetle_Canary_icon_Amarillo64
End Sub
Private Sub btnEvaluarT_Leave(sender As Object, e As EventArgs) Handles btnEvaluarT.Leave
btnEvaluarT.Image = My.Resources.Beetle_Avocado_icon_Verde64
End Sub
#Region "Metodos"
Private Sub EvaluaExp(f As Char)
Dim num1, num2 As Decimal
Dim r As Decimal
Select Case f
Case "V", "v"
num1 = tbpVDistancia.ValorDec
num2 = tbpVTiempo.ValorDec
If num2 = 0 Then
MessageBox.Show("El Tiempo (t) NO puede ser cero", "Divisin no vlida",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End If
Try
r = num1 / num2
MessageBox.Show("La Velocidad es: " + r.ToString() + " Kmt/h", "Velocidad",
MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("El resultado rebasa los lmites aceptados!" + vbCrLf +
"Puede volver a intentar con otros valores", "Desbordamiento",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
Case "D", "d"
num1 = tbpDVelocidad.ValorDec
num2 = tbpDTiempo.ValorDec
Try
r = num1 * num2
MessageBox.Show("La Distancia es: " + r.ToString() + " Kmt", "Distancia",
MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("El resultado rebasa los lmites aceptados!" + vbCrLf +
"Puede volver a intentar con otros valores", "Desbordamiento",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
Case "T", "t"
num1 = tbpTDistancia.ValorDec
num2 = tbpTVelocidad.ValorDec
If num2 = 0 Then
MessageBox.Show("La Velocidad (v) NO puede ser cero", "Divisin no vlida",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End If
Try
r = (num1 / num2) * 60
MessageBox.Show("El Tiempo es: " + r.ToString() + " min", "Tiempo",
MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("El resultado rebasa los lmites aceptados!" + vbCrLf +
"Puede volver a intentar con otros valores", "Desbordamiento",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
Case Else
MessageBox.Show("El parmetro del mtodo EvaluaExp() no es vlido", "EvaluaExp()",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End Select
End Sub
Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles btnSalir.Click
Me.Close()
End Sub
Private Sub tabVelocidad_Click(sender As Object, e As EventArgs) Handles tabVelocidad.Click
End Sub
#End Region
End Class

4. Prueba
Calculo de Velocidad con el resultado

11

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

Calculo de Distancia con el resultado

Calculo de Tiempo con el resultado

2. Ingresar las notas de un curso de 10 estudiantes de la universidad, indicar cuantos


pasan o pierden el curso segn la siguiente informacin.
Caso 1. Aprueba excelente si puntos mayor a 400.
Caso 2. Aprueba Aceptable si sus puntos estn entre 350 y 400.
Caso 3. Aprueba Regular si sus puntos estn entre 300 y 349.
Caso 4. Pierde Bajo alto si sus puntos estn entre 250 y 299.
12

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

Caso 5. Pierde Bajo Medio si sus puntos estn entre 200 y 249.
Caso 6. Pierde Bajo Bajo si sus puntos estn entre 0 y 199.

1) Planificacin
mbito

Desarrollamos un programa para calcular las dos races de una ecuacin


cuadrtica, recibiendo los valores necesarios a travs del teclado.
Utilizamos tres TextBox para obtener los valores (a,b,c) implicados en la expresin,
teniendo en cuenta las diferentes validaciones matemticas, a saber, no dividir
sobre cero, que no se aplique radical a cantidades negativas, lo cual se sale de los
reales hacia el campo de los nmeros imaginarios.
Tenemos un botn para las soluciones, que es mostrada a travs de un
MessageBox.
Hay una pequea imagen ilustrativa con la presentacin de la expresin a evaluar.
Hay un botn Salir, para terminar este mdulo de programa.
No tiene navegabilidad.
.

Recursos del entorno Hardware y Software


Entorno 1
Computador Asus Core i5, 1 Tb en Disco Duro y 6Gb de memoria Ram.
Windows 10.
Programa Microsoft Visual Studio Community 2015
Entorno 2
Computador: procesador Pentium Dual Core CPU T4200 @ 2.00Ghz disco duro de
500 Gigabyte Memoria de 4 Gb
Sistema Operativo: Windows 10 Pro
Programa Microsoft Visual Studio 2010 Professional
Recurso humano.
Cuatro programadores trabajando en Visual Studio.
Duracin
Se estima que se realizara en 3 das
No se trabaja modelos para estimacin de costos ni tiempo.
2) Diseo
13

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

Formulario para ingreso de datos


En el men vamos a Estudiantes Lista de estudiantes

La entrada y salida de datos estn el mismo formulario, usando un DataGridView

3. Codificacin
Archivo FrmEstudiantes.vb
Imports System.ComponentModel
Public Class FrmEstudiantes
Private WithEvents txtCalificacion As TextBox = Nothing
Private Sub FrmEstudiantes_Load(sender As Object, e As EventArgs) Handles MyBase.Load
dgvEstudiantes.AllowUserToAddRows = False
dgvEstudiantes.AllowUserToDeleteRows = False
dgvEstudiantes.AllowUserToOrderColumns = False
dgvEstudiantes.RowCount = 10
dgvEstudiantes.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight
End Sub
Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles btnSalir.Click
Me.Close()
End Sub
Private Sub dgvEstudiantes_CurrentCellChanged(sender As Object, e As EventArgs) Handles
dgvEstudiantes.CurrentCellChanged
If dgvEstudiantes.CurrentCell Is Nothing Then Return
If dgvEstudiantes.CurrentRow.Cells(0).Value Is Nothing Then
lblEstudiante.Text = ""
lblResultado.Text = ""
Return
End If
Dim Estudiante As String = dgvEstudiantes.CurrentRow.Cells(0).Value.ToString()
Estudiante = Estudiante.Trim()
If String.IsNullOrEmpty(Estudiante) Then
Return
End If
If dgvEstudiantes.CurrentRow.Cells(1).Value Is Nothing Then

14

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
lblEstudiante.Text = ""
lblResultado.Text = ""
Return
End If
Dim Resultado As String = ""
Dim NumValor As Double
Dim StrValor As String
StrValor = dgvEstudiantes.CurrentRow.Cells(1).Value.ToString().Trim()
If String.IsNullOrEmpty(StrValor) Then
Return
End If
Double.TryParse(StrValor, NumValor)
If NumValor >= 0 And NumValor < 200 Then
Resultado = "Pierde - Bajo Bajo"
ElseIf NumValor >= 200 And NumValor < 250 Then
Resultado = "Pierde - Bajo Medio"
ElseIf NumValor >= 250 And NumValor < 300 Then
Resultado = "Pierde - Bajo Alto"
ElseIf NumValor >= 300 And NumValor < 350 Then
Resultado = "Aprueba - Regular"
ElseIf NumValor >= 350 And NumValor < 400 Then
Resultado = "Aprueba - Aceptable"
ElseIf NumValor >= 400 And NumValor <= 500 Then
Resultado = "Aprueba - Excelente"
Else
lblEstudiante.Text = String.Empty
lblResultado.Text = String.Empty
Return
End If
lblEstudiante.Text = "Estudiante: " + Estudiante
lblResultado.Text = "Resultado: " + Resultado
End Sub
Private Sub dgvEstudiantes_EditingControlShowing(sender As Object, e As
DataGridViewEditingControlShowingEventArgs) Handles dgvEstudiantes.EditingControlShowing
If dgvEstudiantes.CurrentCell.ColumnIndex <> 1 Then Return
txtCalificacion = TryCast(e.Control, TextBox)
End Sub
Private Sub txtCalificacion_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtCalificacion.KeyPress
If dgvEstudiantes.CurrentCell.ColumnIndex <> 1 Then Return
If e.KeyChar = "-" Then
e.Handled = True
Return
End If
CellNumeric.SoloRealesConSigno(txtCalificacion, e)
End Sub
Private Sub txtCalificacion_Validating(sender As Object, e As CancelEventArgs) Handles txtCalificacion.Validating
If dgvEstudiantes.CurrentCell.ColumnIndex <> 1 Then Return
Dim NumValor As Double
Dim StrValor As String
StrValor = txtCalificacion.Text.Trim()
Double.TryParse(txtCalificacion.Text, NumValor)
If String.IsNullOrEmpty(StrValor) OrElse NumValor < 0 Or NumValor > 500 Then
MessageBox.Show("Valor no permitido", "Calificacin", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
dgvEstudiantes.CurrentCell.Value = "0"
End If
End Sub
Private Sub dgvEstudiantes_KeyDown(sender As Object, e As KeyEventArgs) Handles dgvEstudiantes.KeyDown
If e.KeyCode = Keys.Enter Then
SendKeys.Send("{TAB}")
e.SuppressKeyPress = True
End If
End Sub
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As
System.Windows.Forms.Keys) As Boolean
Select Case keyData
Case Keys.Enter
If dgvEstudiantes.IsCurrentCellInEditMode Then
SendKeys.Send("{TAB}")
Return True
End If
End Select
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
Private Sub dgvEstudiantes_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles
dgvEstudiantes.CellContentClick
End Sub
End Class

4. Prueba
15

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

3. Solucionar la ecuacin cuadrtica, validando los datos de entrada que informen o


notifiquen cuando no es viable la operacin o el caso cuando no se puede realizar.
Se usa para indicar las dos soluciones:

1) Planificacin
mbito

16

Desarrollamos un programa para calcular las dos races de una ecuacin


cuadrtica, recibiendo los valores necesarios a travs del teclado.
Utilizamos tres TextBox para obtener los valores (a,b,c) implicados en la expresin,
teniendo en cuenta las diferentes validaciones matemticas, a saber, no dividir
sobre cero, que no se aplique radical a cantidades negativas, lo cual se sale de los
reales hacia el campo de los nmeros imaginarios.
Tenemos un botn para las soluciones, que es mostrada a travs de un
MessageBox.
Hay una pequea imagen ilustrativa con la presentacin de la expresin a evaluar.
Hay un botn Salir, para terminar este mdulo de programa.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

No tiene navegabilidad.
.
Recursos del entorno Hardware y Software
Entorno 1
Computador Asus Core i5, 1 Tb en Disco Duro y 6Gb de memoria Ram.
Windows 10.
Programa Microsoft Visual Studio Community 2015
Entorno 2
Computador: procesador Pentium Dual Core CPU T4200 @ 2.00Ghz disco duro de
500 Gigabyte Memoria de 4 Gb
Sistema Operativo: Windows 10 Pro
Programa Microsoft Visual Studio 2010 Professional
Recurso humano.
Cuatro programadores trabajando en Visual Studio.
Duracin
Se estima que se realizara en 3 das
No se trabaja modelos para estimacin de costos ni tiempo.
2) Diseo
Para la entrada de datos se utiliza un formulario que contiene 3 TbPlus y un Boton para
calcular, los resultados se muestran en un MessageBox

3. Codificacin
Archivo FrmCuadratica.vb
17

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
Public Class FrmCuadratica
Private Sub FrmCuadratica_Load(sender As Object, e As EventArgs) Handles MyBase.Load
tbpA.BackgroundEnter = Color.LightYellow
tbpB.BackgroundEnter = Color.LightYellow
tbpC.BackgroundEnter = Color.LightYellow
tbpA.RealConSigno = True
tbpB.RealConSigno = True
tbpC.RealConSigno = True
End Sub
Private Sub btnHallar_Click(sender As Object, e As EventArgs) Handles btnHallar.Click
HallarRaices()
End Sub
Private Sub btnHallar_MouseMove(sender As Object, e As MouseEventArgs) Handles btnHallar.MouseMove
btnHallar.Image = My.Resources.Otro_calculator_icon48
End Sub
Private Sub btnHallar_MouseLeave(sender As Object, e As EventArgs) Handles btnHallar.MouseLeave
btnHallar.Image = My.Resources.calculator_icon48
End Sub
Private Sub btnHallar_Enter(sender As Object, e As EventArgs) Handles btnHallar.Enter
btnHallar.Image = My.Resources.Otro_calculator_icon48
End Sub
Private Sub btnHallar_Leave(sender As Object, e As EventArgs) Handles btnHallar.Leave
btnHallar.Image = My.Resources.calculator_icon48
End Sub
#Region "Mtodos"
Private Sub HallarRaices()
Dim a As Double
Dim b As Double
Dim c As Double
a = tbpA.ValorDbl
b = tbpB.ValorDbl
c = tbpC.ValorDbl
If a = 0 Then
MessageBox.Show("(a) no puede tomar el valor de cero!", "Divisin imposible",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End If
Dim dis As Double
Try
dis = Math.Pow(b, 2) - (4 * a * c)
Catch ex As Exception
MessageBox.Show("El resultado rebasa los lmites aceptados!" + vbCrLf +
"Puede volver a intentar con otros valores", "Desbordamiento",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End Try
If dis < 0 Then
MessageBox.Show("La ecuacin NO tiene races entre los Reales", "Soluciones complejas",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End If
Dim x1 As Double
Dim x2 As Double
Try
x1 = ((-1) * b + Math.Sqrt(dis)) / (2 * a)
x2 = ((-1) * b - Math.Sqrt(dis)) / (2 * a)
Catch ex As Exception
MessageBox.Show("El resultado rebasa los lmites aceptados!" + vbCrLf +
"Puede volver a intentar con otros valores", "Desbordamiento",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End Try
MessageBox.Show("Las races son: " + vbCrLf +
"x1 = " + x1.ToString() + vbCrLf +
"x2 = " + x2.ToString(),
"Soluciones", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Private Sub FrmCuadratica_Shown(sender As Object, e As EventArgs) Handles Me.Shown
tbpA.Focus()
End Sub
Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles btnSalir.Click
Me.Close()
End Sub
Private Sub GroupBox2_Enter(sender As Object, e As EventArgs) Handles GroupBox2.Enter
End Sub
#End Region
End Class

18

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

4. Prueba

4. Adivinar un nmero de una serie de opciones, si es novato 15 opciones y si es


avanzado 7 opciones de acertar, debe enviar un mensaje si est por debajo o encima
del nmero que se quiere adivinar. El rango de nmeros es de 1 a 100, el nmero que
se piensa adivinar es al azar que lo selecciona el sistema.
En este ejercicio no se trabaj, pero se espera que se realice como actividad complementaria
a los conocimientos que se estn adquiriendo

5. Realice un programa que calcule:


La serie de Fibonacci.
El mximo comn divisor.
En este ejercicio no se trabaj, pero se espera que se realice como actividad complementaria
a los conocimientos que se estn adquiriendo

6. Convertir unidades de medida en un formulario:


De centmetros a:

De kilmetros a:

Pulgadas

Metros

Metros

Centmetros

Milmetros

Millas

Kilmetros

Yardas

19

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

Pies
Pulgadas.

1) Planificacin
mbito

Otro mdulo de programa es el que convierte unidades de medida de longitud, de


centmetros a pulgadas, metros, milmetros y Kolmetros. Tambin de Kilmetros a
metros, centmetros, millas, yardas, pies, pulgadas.
Para ello utilizamos un formulario que bsicamente cuenta con dos TextBox para
escribir el valor de las unidades a convertir, uno para centmetros y otro para
Kilmetros.
Tenemos dos ComboBox, para elegir entre una lista, la unidad de destino de la
conversin. Uno para la conversin de Centmetros y otro para la de Kilmetros.
Utilizamos dos TextBox adicionales, con propiedad de ReadOnly fijada en True,
solo para mostrar el valor de la conversin y poderse desplazar dentro de l, pero
sin poder modificarlo (de slo lectura).
Un botn de Salir nos permite terminar la ejecucin de este mdulo..

Recursos del entorno Hardware y Software


Entorno 1
Computador Asus Core i5, 1 Tb en Disco Duro y 6Gb de memoria Ram.
Windows 10.
Programa Microsoft Visual Studio Community 2015
Entorno 2
Computador: procesador Pentium Dual Core CPU T4200 @ 2.00Ghz disco duro de
500 Gigabyte Memoria de 4 Gb
Sistema Operativo: Windows 10 Pro
Programa Microsoft Visual Studio 2010 Professional
Recurso humano.
Cuatro programadores trabajando en Visual Studio.
Duracin
Se estima que se realizara en 3 das
No se trabaja modelos para estimacin de costos ni tiempo.
2) Diseo
20

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

3. Codificacin
Archivo FrmConversorUn.vb
Public Class FrmConversorUn
Private Sub btnSalir_Click(sender As Object, e As EventArgs)
Me.Close()
End Sub
Private Sub FrmConversorUn_Load(sender As Object, e As EventArgs) Handles MyBase.Load
tbpCms.RealSinSigno = True
tbpKmts.RealSinSigno = True
cboCms.Items.Add("Pulgadas")
cboCms.Items.Add("Metros")
cboCms.Items.Add("Milmetros")
cboCms.Items.Add("Kilmetros")
cboCms.SelectedIndex = 0
cboCms.DropDownStyle = ComboBoxStyle.DropDownList
cboKmts.Items.Add("Metros")
cboKmts.Items.Add("Centmetros")
cboKmts.Items.Add("Millas")
cboKmts.Items.Add("Yardas")
cboKmts.Items.Add("Pies")
cboKmts.Items.Add("Pulgadas")
cboKmts.SelectedIndex = 0
cboKmts.DropDownStyle = ComboBoxStyle.DropDownList
txtCms.Clear()
txtCms.Text = "0"
txtCms.ReadOnly = True
txtKmts.Clear()
txtKmts.Text = "0"
txtKmts.ReadOnly = True
End Sub
Private Sub tbpCms_KeyUp(sender As Object, e As KeyEventArgs) Handles tbpCms.KeyUp
ConvertirCms()
End Sub
Private Sub cboCms_SelectedIndexChanged(sender As Object, e As EventArgs) Handles
cboCms.SelectedIndexChanged
ConvertirCms()
End Sub
Private Sub cboKmts_SelectedIndexChanged(sender As Object, e As EventArgs) Handles
cboKmts.SelectedIndexChanged
ConvertirKmts()
End Sub
Private Sub tbpKmts_KeyUp(sender As Object, e As KeyEventArgs) Handles tbpKmts.KeyUp
ConvertirKmts()
End Sub
Private Sub ConvertirCms()
Select Case cboCms.SelectedIndex

21

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
Case 0 'Pulgadas
Dim Pulgadas As Double
Double.TryParse(tbpCms.Text, Pulgadas)
Try
Pulgadas = Pulgadas * 0.3937
Catch ex As Exception
MessageBox.Show("El resultado rebasa los lmites aceptados!" + vbCrLf +
"Puede volver a intentar con otros valores", "Desbordamiento",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End Try
txtCms.Text = Pulgadas.ToString()
Case 1 'Metros
Dim Metros As Double
Double.TryParse(tbpCms.Text, Metros)
Try
Metros = Metros * 0.01
Catch ex As Exception
MessageBox.Show("El resultado rebasa los lmites aceptados!" + vbCrLf +
"Puede volver a intentar con otros valores", "Desbordamiento",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End Try
txtCms.Text = Metros.ToString()
Case 2 'Milmetros
Dim Milimetros As Double
Double.TryParse(tbpCms.Text, Milimetros)
Try
Milimetros = Milimetros * 10
Catch ex As Exception
MessageBox.Show("El resultado rebasa los lmites aceptados!" + vbCrLf +
"Puede volver a intentar con otros valores", "Desbordamiento",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End Try
txtCms.Text = Milimetros.ToString()
Case 3 'Kilmetros
Dim Kilometros As Double
Double.TryParse(tbpCms.Text, Kilometros)
Try
Kilometros = Kilometros * 0.00001
Catch ex As Exception
MessageBox.Show("El resultado rebasa los lmites aceptados!" + vbCrLf +
"Puede volver a intentar con otros valores", "Desbordamiento",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End Try
txtCms.Text = Kilometros.ToString()
End Select
End Sub
Private Sub ConvertirKmts()
Select Case cboKmts.SelectedIndex
Case 0 'Metros
Dim Metros As Double
Double.TryParse(tbpKmts.Text, Metros)
Metros = Metros * 1000
txtKmts.Text = Metros.ToString()
Case 1 'Centmetros
Dim Centimetros As Double
Double.TryParse(tbpKmts.Text, Centimetros)
Centimetros = Centimetros * 100000
txtKmts.Text = Centimetros.ToString()
Case 2 'Millas
Dim Millas As Double
Double.TryParse(tbpKmts.Text, Millas)
Millas = Millas * 0.621371
txtKmts.Text = Millas.ToString()
Case 3 'Yardas
Dim Yardas As Double
Double.TryParse(tbpKmts.Text, Yardas)
Yardas = Yardas * 1093.61
txtKmts.Text = Yardas.ToString()
Case 4 'Pies
Dim Pies As Double
Double.TryParse(tbpKmts.Text, Pies)
Pies = Pies * 3280.84
txtKmts.Text = Pies.ToString()
Case 5 'Pulgadas
Dim Pulgadas As Double
Double.TryParse(tbpKmts.Text, Pulgadas)

22

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
Pulgadas = Pulgadas * 39370.1
txtKmts.Text = Pulgadas.ToString()
End Select
End Sub
Private Sub btnSalir_Click_1(sender As Object, e As EventArgs) Handles btnSalir.Click
Me.Close()
End Sub
End Class

4. Prueba
De Centmetros a otras Unidades

De Kilometros a otras unidades

7. Calcular la conversin de moneda de peso colombiano a su equivalente en algunas


monedas extranjeras.
Dlar EE.UU
Euro
Yen Japons
Franco Suizo
Dlar australiano
Rublo RUSO.
En este ejercicio no se trabaj, pero se espera que se realice como actividad complementaria
a los conocimientos que se estn adquiriendo

23

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

8. Programa que calcule la multiplicacin de matrices tomando los datos dese el


teclado, debe adems calcular la sumatoria del contenido de las matrices, hallar el
nmero mayor y el nmero menor digitado.
1) Planificacin
mbito

Otro mdulo es el de operacin de matrices. Halla la multiplicacin de dos


matrices, calcula la sumatoria de los valores de cada una, el valor mayor y el
menor digitado.
Los valores para el llenado de la matriz ingresan por teclado, para lo cual se
utilizan dos controles DataGridView, para tener una representacin visual de la
matriz, propicia.
Tres controles NumericUpDown. El primero para fijar la cantidad de filas de la
matriz A; el segundo para fijar la cantidad de columnas de A que son la cantidad de
filas de B, lo cual es un requisito matemtico para hacer posible la multiplicacin de
dos matrices. El tercero es para fijar la cantidad de columnas de B. Los valores
posibles del control NumericUpDown van desde 2 hasta 9.
Botn Llenar. Hace aparecer el DataGridView de cada matriz en el formulario, para
proceder a su llenado, basados en las dimensiones fijadas en los controles
NumericUpDown.
Botn Multiplicar. Este efecta la multiplicacin y la guarda en una tercera matriz,
que ser pasada como argumento al constructor de otro formulario donde se
muestra la matriz resultante, en el cual se utiliza tambin un DataGridView para la
representacin visual y un botn Salir para cerrar ese nuevo Form.
Botn Mayor/Menor. Este recorre cada matriz, y va averiguando el valor Mayor y el
Menor introducido. El resultado lo muestra a travs de un MessageBox.
Botn Sumatoria. Con este se efecta un recorrido por cada matriz donde se van
sumando los valores de sus elementos y se muestra la sumatoria de cada una a
travs de una caja de mensajes MessageBox.
Botn Salir. Termina la ejecucin de este mdulo y cierra la ventana.
.

Recursos del entorno Hardware y Software


Entorno 1
Computador Asus Core i5, 1 Tb en Disco Duro y 6Gb de memoria Ram.
Windows 10.
Programa Microsoft Visual Studio Community 2015
Entorno 2
Computador: procesador Pentium Dual Core CPU T4200 @ 2.00Ghz disco duro de
500 Gigabyte Memoria de 4 Gb
Sistema Operativo: Windows 10 Pro
24

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

Programa Microsoft Visual Studio 2010 Professional


Recurso humano.
Cuatro programadores trabajando en Visual Studio.
Duracin
Se estima que se realizara en 3 das
No se trabaja modelos para estimacin de costos ni tiempo.
2) Diseo

25

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

3. Codificacin
Archivo FrmMultiplicarM.vb
Public Class FrmMultiplicarM
Private C(,) As Decimal
Private PuntoDec As String = Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator
'_____________________________________________________________________Variables controladoras de celdas
Private WithEvents CeldaA As DataGridViewTextBoxEditingControl = Nothing
Private WithEvents CeldaB As DataGridViewTextBoxEditingControl = Nothing
'Private WithEvents CeldaA As TextBox = Nothing
'Private WithEvents CeldaB As TextBox = Nothing
Private Sub FrmMultiplicarM_Load(sender As Object, e As EventArgs) Handles MyBase.Load
btnMultiplicar.Enabled = False
numM.Minimum = 2
numM.Maximum = 9
numN.Minimum = 2
numN.Maximum = 9
numP.Minimum = 2
numP.Maximum = 9
'______________________________Matriz A
lblA.Visible = False
ConfigDgv(dgvA)
'______________________________Matriz B
lblB.Visible = False
ConfigDgv(dgvB)
End Sub
Public Sub ConfigDgv(ByRef dgv As DataGridView)
With dgv
Dim FontName As String = .RowHeadersDefaultCellStyle.Font.Name
Dim FontSize As Single = .RowHeadersDefaultCellStyle.Font.Size
.Visible = False
.BorderStyle = BorderStyle.None
.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter
.ColumnHeadersDefaultCellStyle.Font = New Font(FontName, FontSize, FontStyle.Bold)
.RowHeadersDefaultCellStyle.Font = New Font(FontName, FontSize, FontStyle.Bold)
.RowHeadersWidth = 45
.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing
.AllowUserToAddRows = False
.AllowUserToDeleteRows = False
.AllowUserToOrderColumns = False
.AllowUserToResizeColumns = False
.AllowUserToResizeRows = False
End With
End Sub

26

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
Private Sub FrmMultiplicarM_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
numM.Value = 2
numN.Value = 2
numP.Value = 2
numM.Focus()
End Sub
Private Sub btnLlenar_Click(sender As Object, e As EventArgs) Handles btnLlenar.Click
dgvA.RowCount = numM.Value
dgvA.ColumnCount = numN.Value
dgvB.RowCount = numN.Value
dgvB.ColumnCount = numP.Value
ValoresInicialesDgv(dgvA)
ValoresInicialesDgv(dgvB)
btnMultiplicar.Enabled = True
lblA.Visible = True
dgvA.Visible = True
lblB.Visible = True
dgvB.Visible = True
dgvA.Focus()
End Sub
Public Sub ValoresInicialesDgv(ByRef dgv As DataGridView)
Dim i As Integer
Dim j As Integer
Dim m As Integer = dgv.Rows.Count
Dim n As Integer = dgv.Columns.Count
With dgv
For i = 0 To m - 1
For j = 0 To n - 1
If i = 0 Then
.Columns(j).HeaderText = (j + 1).ToString
.Columns(j).Width = 30
.Columns(j).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
End If
.Item(j, i).Value = 0
Next
.Rows(i).HeaderCell.Value = (i + 1).ToString
Next
.ClearSelection()
End With
End Sub
Private Sub btnMultiplicar_Click(sender As Object, e As EventArgs) Handles btnMultiplicar.Click
Dim m As Integer = numM.Value
Dim n As Integer = numN.Value
Dim p As Integer = numP.Value
Dim A(m, n) As Decimal
Dim B(n, p) As Decimal
ReDim C(m, p)
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Aux As Decimal = 0
'Llenado de Matriz A
For i = 0 To m - 1
For j = 0 To n - 1
A(i, j) = dgvA(j, i).Value
Next
Next
'Llenado de Matriz B
For i = 0 To n - 1
For k = 0 To p - 1
B(i, k) = dgvB(k, i).Value
Next
Next
For i = 0 To m - 1
For k = 0 To p - 1
For j = 0 To n - 1
Aux += A(i, j) * B(j, k)
Next
C(i, k) = Aux
Aux = 0
Next
Next
Dim frmMatrizC As FrmMatrizC = New FrmMatrizC(C)
frmMatrizC.ShowDialog()
End Sub
Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles btnSalir.Click
Me.Close()
End Sub
'_________________________________________________________________________________ CONTROL NumericUpDn numM
Private Sub numM_Enter(sender As Object, e As EventArgs) Handles numM.Enter

27

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
numM.Select(0, numM.Value.ToString.Length)
End Sub
Private Sub numM_GotFocus(sender As Object, e As EventArgs) Handles numM.GotFocus
numM.BackColor = Color.LightCyan
End Sub
Private Sub numM_LostFocus(sender As Object, e As EventArgs) Handles numM.LostFocus
numM.BackColor = Color.White
End Sub
Private Sub numM_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles
numM.PreviewKeyDown
If e.KeyCode = Keys.Enter Then
e.IsInputKey = True
End If
End Sub
Private Sub numM_KeyDown(sender As Object, e As KeyEventArgs) Handles numM.KeyDown
'Si la tecla presionada es <Enter>
If e.KeyCode = Keys.Enter Then
SendKeys.Send("{TAB}")
e.SuppressKeyPress = True 'Suprime el <Enter>, pero a dems no suena el Bin
End If
'Si utilizamos e.Handled=true, ignora el <Enter>, pero suena el Bin
End Sub
Private Sub numM_MouseClick(sender As Object, e As MouseEventArgs) Handles numM.MouseClick
numM.Select(0, numM.Value.ToString.Length)
End Sub
'_________________________________________________________________________________ CONTROL NumericUpDn numN
Private Sub numN_Enter(sender As Object, e As EventArgs) Handles numN.Enter
numN.Select(0, numN.Value.ToString.Length)
End Sub
Private Sub numN_GotFocus(sender As Object, e As EventArgs) Handles numN.GotFocus
numN.BackColor = Color.LightCyan
End Sub
Private Sub numN_LostFocus(sender As Object, e As EventArgs) Handles numN.LostFocus
numN.BackColor = Color.White
End Sub
Private Sub numN_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles
numN.PreviewKeyDown
If e.KeyCode = Keys.Enter Then
e.IsInputKey = True
End If
End Sub
Private Sub numN_KeyDown(sender As Object, e As KeyEventArgs) Handles numN.KeyDown
'Si la tecla presionada es <Enter>
If e.KeyCode = Keys.Enter Then
SendKeys.Send("{TAB}")
e.SuppressKeyPress = True 'Suprime el <Enter>, pero a dems no suena el Bin
End If
'Si utilizamos e.Handled=true, ignora el <Enter>, pero suena el Bin
End Sub
Private Sub numN_MouseClick(sender As Object, e As MouseEventArgs) Handles numN.MouseClick
numN.Select(0, numN.Value.ToString.Length)
End Sub
'_________________________________________________________________________________ CONTROL NumericUpDn numP
Private Sub numP_Enter(sender As Object, e As EventArgs) Handles numP.Enter
numP.Select(0, numP.Value.ToString.Length)
End Sub
Private Sub numP_GotFocus(sender As Object, e As EventArgs) Handles numP.GotFocus
numP.BackColor = Color.LightCyan
End Sub
Private Sub numP_LostFocus(sender As Object, e As EventArgs) Handles numP.LostFocus
numP.BackColor = Color.White
End Sub
Private Sub numP_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles
numP.PreviewKeyDown
If e.KeyCode = Keys.Enter Then
e.IsInputKey = True
End If
End Sub
Private Sub numP_KeyDown(sender As Object, e As KeyEventArgs) Handles numP.KeyDown
'Si la tecla presionada es <Enter>
If e.KeyCode = Keys.Enter Then
SendKeys.Send("{TAB}")
e.SuppressKeyPress = True 'Suprime el <Enter>, pero a dems no suena el Bin
End If
'Si utilizamos e.Handled=true, ignora el <Enter>, pero suena el Bin
End Sub
Private Sub numP_MouseClick(sender As Object, e As MouseEventArgs) Handles numP.MouseClick
numP.Select(0, numP.Value.ToString.Length)
End Sub
__________________________________________________________________________________________________________dgvA
Private Sub dgvA_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs)
Handles dgvA.EditingControlShowing
CeldaA = TryCast(e.Control, DataGridViewTextBoxEditingControl)

28

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
'CeldaA = TryCast(e.Control, TextBox)
End Sub
Private Sub dgvA_ColumnAdded(sender As Object, e As DataGridViewColumnEventArgs) Handles dgvA.ColumnAdded
e.Column.SortMode = DataGridViewColumnSortMode.NotSortable
End Sub
Private Sub dgvA_KeyDown(sender As Object, e As KeyEventArgs) Handles dgvA.KeyDown
If e.KeyCode = Keys.Enter Then
SendKeys.Send("{TAB}")
e.SuppressKeyPress = True
End If
End Sub
Private Sub dgvA_GotFocus(sender As Object, e As EventArgs) Handles dgvA.GotFocus
dgvA.CurrentCell.Selected = True
End Sub
Private Sub dgvA_LostFocus(sender As Object, e As EventArgs) Handles dgvA.LostFocus
dgvA.ClearSelection()
End Sub
'____________________________________________________________________________________________________dgvB
Private Sub dgvB_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs)
Handles dgvB.EditingControlShowing
CeldaB = TryCast(e.Control, DataGridViewTextBoxEditingControl)
'CeldaB = TryCast(e.Control, TextBox)
End Sub
Private Sub dgvB_ColumnAdded(sender As Object, e As DataGridViewColumnEventArgs) Handles dgvB.ColumnAdded
e.Column.SortMode = DataGridViewColumnSortMode.NotSortable
End Sub
Private Sub dgvB_GotFocus(sender As Object, e As EventArgs) Handles dgvB.GotFocus
dgvB.CurrentCell.Selected = True
End Sub
Private Sub dgvB_LostFocus(sender As Object, e As EventArgs) Handles dgvB.LostFocus
dgvB.ClearSelection()
End Sub
Private Sub dgvB_KeyDown(sender As Object, e As KeyEventArgs) Handles dgvB.KeyDown
If e.KeyCode = Keys.Enter Then
SendKeys.Send("{TAB}")
e.SuppressKeyPress = True
End If
End Sub
'____________________________________________________________________________ Mtodos
'________________________________________________________________________________Eventos de Celda
Private Sub CeldaA_KeyPress(sender As Object, e As KeyPressEventArgs) Handles CeldaA.KeyPress
CellNumeric.SoloRealesConSigno(CeldaA, e)
End Sub
Private Sub CeldaA_Validated(sender As Object, e As EventArgs) Handles CeldaA.Validated
dgvA.CurrentCell.Value = Val(dgvA.CurrentCell.Value).ToString
End Sub
Private Sub CeldaB_KeyPress(sender As Object, e As KeyPressEventArgs) Handles CeldaB.KeyPress
CellNumeric.SoloRealesConSigno(CeldaB, e)
End Sub
Private Sub CeldaB_Validated(sender As Object, e As EventArgs) Handles CeldaB.Validated
dgvB.CurrentCell.Value = Val(dgvB.CurrentCell.Value).ToString
End Sub
Private Sub btnMayor_Click(sender As Object, e As EventArgs) Handles btnMayor.Click
If dgvA.Visible = False Or dgvB.Visible = False Then
MessageBox.Show("Deben haber dos matrices para mostrar estos datos", "Nmero mayor y menor",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End If
Dim m As Integer = numM.Value
Dim n As Integer = numN.Value
Dim p As Integer = numP.Value
Dim A(m, n) As Decimal
Dim B(n, p) As Decimal
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim MayorA As Decimal = dgvA(0, 0).Value
Dim MayorB As Decimal = dgvB(0, 0).Value
Dim MenorA As Decimal = dgvA(0, 0).Value
Dim MenorB As Decimal = dgvB(0, 0).Value
'Llenado de Matriz A
For i = 0 To m - 1
For j = 0 To n - 1
If dgvA(j, i).Value > MayorA Then
MayorA = dgvA(j, i).Value
End If
If dgvA(j, i).Value < MenorA Then
MenorA = dgvA(j, i).Value
End If
Next

29

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
Next
'Llenado de Matriz B
For i = 0 To n - 1
For k = 0 To p - 1
If dgvB(k, i).Value > MayorB Then
MayorB = dgvB(k, i).Value
End If
If dgvB(k, i).Value < MenorB Then
MenorB = dgvB(k, i).Value
End If
Next
Next
If MayorA = MenorA Then
MessageBox.Show("Todos los valores de la matriz [A] son iguales", "Matriz [A]")
Else
MessageBox.Show("Nmero Mayor de A: " + MayorA.ToString() + vbCrLf +
"Nmero Menor de A: " + MenorA.ToString(), "Matriz [A]",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
If MayorB = MenorB Then
MessageBox.Show("Todos los valores de la matriz [B] son iguales", "Matriz [B]")
Else
MessageBox.Show("Nmero Mayor de B: " + MayorB.ToString() + vbCrLf +
"Nmero Menor de B: " + MenorB.ToString(), "Matriz [B]",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Sub
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As
System.Windows.Forms.Keys) As Boolean
Select Case keyData
Case Keys.Enter
If ((CeldaA IsNot Nothing) AndAlso (CeldaA.Focused)) Then
SendKeys.Send("{TAB}")
Return True
'Se le indica que ya se proces la tecla, que no la procese el sist.
ElseIf ((CeldaB IsNot Nothing) AndAlso (CeldaB.Focused)) Then
If (dgvB.CurrentCell.RowIndex = dgvB.Rows.Count - 1) And
(dgvB.CurrentCell.ColumnIndex = dgvB.Columns.Count - 1) Then
btnMultiplicar.Focus()
Else
SendKeys.Send("{TAB}")
End If
Return True
'Se le indica que ya se proces la tecla, que no la procese el sist.
End If
Case Keys.Tab
If (dgvB IsNot Nothing) AndAlso (dgvB.Focused) Then
If (dgvB.CurrentCell.RowIndex = dgvB.Rows.Count - 1) And
(dgvB.CurrentCell.ColumnIndex = dgvB.Columns.Count - 1) Then
btnMultiplicar.Focus()
Return True
End If
End If
End Select
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
Private Sub btnSumatoria_Click(sender As Object, e As EventArgs) Handles btnSumatoria.Click
If dgvA.Visible = False Or dgvB.Visible = False Then
MessageBox.Show("Deben haber dos matrices para mostrar estos datos", "Sumatoria",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End If
Dim m As Integer = numM.Value
Dim n As Integer = numN.Value
Dim p As Integer = numP.Value
Dim A(m, n) As Decimal
Dim B(n, p) As Decimal
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim SumaA As Decimal = 0
Dim SumaB As Decimal = 0
'Llenado de Matriz A
For i = 0 To m - 1
For j = 0 To n - 1
SumaA += dgvA(j, i).Value
Next
Next
'Llenado de Matriz B
For i = 0 To n - 1
For k = 0 To p - 1
SumaB += dgvB(k, i).Value

30

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA
Next
Next
MessageBox.Show("La Sumatoria de [A] es: " + SumaA.ToString() + vbCrLf +
"La Sumatoria de [B] es: " + SumaB.ToString(), "Sumatoria",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Private Sub dgvB_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvB.CellContentClick
End Sub
End Class

FrmMatrizC.vb
Public Class FrmMatrizC
Private Producto(,) As Decimal
Public Sub New(C As Decimal(,))
' Esta llamada es exigida por el diseador.
InitializeComponent()
' Agregue cualquier inicializacin despus de la llamada a InitializeComponent().
Producto = C
End Sub
Private Sub FrmMatrizC_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Producto = frmMultiplicacionMatrices.C
Dim m = Producto.GetUpperBound(0)
Dim n = Producto.GetUpperBound(1)
Dim i As Integer
Dim j As Integer
dgvC.ReadOnly = False
ConfigDgv(dgvC)
dgvC.RowCount = m
dgvC.ColumnCount = n
With dgvC
For i = 0 To m - 1
For j = 0 To n - 1
If i = 0 Then
.Columns(j).HeaderText = (j + 1).ToString
.Columns(j).Width = 30
.Columns(j).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
End If
.Item(j, i).Value = Producto(i, j).ToString
Next
.Rows(i).HeaderCell.Value = (i + 1).ToString
Next
End With
dgvC.ReadOnly = True
dgvC.Visible = True
End Sub
Public Sub ConfigDgv(ByRef dgv As DataGridView)
With dgv
Dim FontName As String = .RowHeadersDefaultCellStyle.Font.Name
Dim FontSize As Single = .RowHeadersDefaultCellStyle.Font.Size
.Visible = False
.BorderStyle = BorderStyle.None
.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter
.ColumnHeadersDefaultCellStyle.Font = New Font(FontName, FontSize, FontStyle.Bold)
.RowHeadersDefaultCellStyle.Font = New Font(FontName, FontSize, FontStyle.Bold)
.RowHeadersWidth = 45
.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing
.AllowUserToAddRows = False
.AllowUserToDeleteRows = False
.AllowUserToOrderColumns = False
.AllowUserToResizeColumns = False
.AllowUserToResizeRows = False
End With
End Sub
Private Sub btnSalit_Click(sender As Object, e As EventArgs) Handles btnSalit.Click
Me.Close()
End Sub
Private Sub dgvC_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvC.CellContentClick
End Sub
End Class

4. Prueba

31

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

Mayor/Menor

Sumatoria

32

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

Multiplicacion

33

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

CONCLUSIN

Tras el desarrollo de esta actividad se logran afianzar conocimientos tericos y


prcticos respecto a .NET, recordando y aplicando diferentes temticas como objetos,
eventos, formas controles, propiedades, variables y tipos de datos, manejo de la caja
de herramientas.
Se logra identificar que los lenguajes de alto nivel como lo es .NET se desarrollaron
con el objetivo de ser ms accesibles y entendibles por la mayora de desarrolladores,
de manera que se pueda concentrarse ms en resolver la tarea o los problemas y no
en el lenguaje que la maquina tena que entender.

34

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


TRABAJO COLABORATIVO MOMENTO 1
PSICOLOGIA

BIBLIOGRAFA

Vanegas, Carlos Alberto, Visual Basic y ASP.Net a su alcance. Nivel Basico /


IntermedioBogota, Enero 2011
Som , Guilermo el Guille. Curso de iniciacin a la programacin con Visual Basic .NET
Microsoft Visual Studio 2010 trabaja con el marco de trabajo .NET Framew con algunas de
estas caractersticas. Tomado de:https://msdn.microsoft.com/eses/library/ms171868%28v=vs.100%29.aspx

35