Está en la página 1de 5

aprenderaprogramar.

com

Ejerciciosejemplosconifthenelse enVisualBasic(CU00324A)
Seccin:Cursos
Categora:CursoVisualBasicNivelI Fechaltimaactualizacin:2012 Autor:MarioR.Rancel Resumen:Entregan23delCursoVisualBasicNivelI

12

20062012aprenderaprogramar.com

EjerciciosejemplosconifthenelseVisualBasic.

EJERCICIOCONIFTHENELSEENVISUALBASIC Crearunprogramaquepidaunnmeroenterodistintodeceroynosmuestreenpantallaunmensaje indicndonossielnmeroesparoimpar. Nota:ElprocedimientoaemplearserbasadoenelusodeloperadorMod. SOLUCIN CrearemosunLabel desolicitud delnmero,unTextboxdeentrada,unCommandButtonyunLabel paraelclculoyelresultado.Leponemoslosnombresyorganizamosloscontrolesenpantallacomo nos parezca correcto (no tiene por qu coincidir con lo que ponemos aqu). Los nombres que hemos empleadonosotrosson:LabelPideNum,TextNentero,CommandHallaryLabelResultado. Grficamente:
Private Sub CommandHallar_Click() Num = Val(TextNentero) Res = Num Mod 2 LabelResultado.FontSize = 10 LabelResultado.FontBold = True If Res = 0 Then LabelResultado = "El nmero es par" Else LabelResultado = "El nmero es impar" End If End Sub Private Sub Form_Load() Form1.Caption = "Determina naturaleza par o impar" CommandHallar.Caption = "Determinar" LabelPideNum = "Introduzca un n entero" End Sub Option Explicit Dim Num As Integer Dim Res As Integer

HemosescritoelIf...ThenElsecomounbloqueenvezdecomounanicalnea.Elmotivoparaelloes queaportamayorclaridadyfacilidaddeinterpretacin.
20062012aprenderaprogramar.com

EjerciciosejemplosconifthenelseVisualBasic.

EJERCICIO Crearunprogramaqueresuelvalaecuacincuadrticatipoax2+bx+c. SOLUCIN Elprograma"funciona",sibientienesuslimitaciones.Pruebaaintroducirlossiguientesdatos:a=0,b = 3 y c = 1 . Te aparecer el siguiente mensaje: "Error 6 en tiempo de ejecucin. Desbordamiento." Efectivamente,a=0implicaquee=0yalencontrarnosconunaoperacindeltipo(b+Sqr(d))/e donde el denominador vale cero... se acab! Mejor dicho, "se acab" mientras no preparemos el programaparadetectarestetipodesituaciones,cosaqueveremosmsadelante. Estamosconstruyendoprogramassencillosqueenlneasgeneralesrespondenbiencuandosedanlas circunstancias previstas pero que fallan ante situaciones extraas. Esto no debe preocuparnos por el momento, ya que a medida que progresemos como programadores iremos construyendo programas cadavezmsslidos.
Option Explicit Rem Declaracin de variables Dim a!, b!, c!, d!, e As Single Rem Contenido del formulario Private Sub Form_Load() Form1.Caption = "Ecuacin cuadrtica" CommandCalcular.Caption = "Calcular x" LabelTtulo = "Parmetros a, b y c para ecuacin tipo a*x^2 + b*x + c = 0" Labela.Caption = "Valor parmetro a" Labelb.Caption = "Valor parmetro b" Labelc.Caption = "Valor parmetro c" End Sub Rem Clculo y muestra de resultados Private Sub CommandCalcular_Click() LabelResultado.FontSize = 10 LabelResultado.FontBold = True a = Val(Texta) b = Val(Textb) c = Val(Textc) d=b^2-4*a*c e=2*a If d = 0 Then LabelResultado = "x1 = x2 = " & - b / e Else If d > 0 Then LabelResultado = "x1 = " & (-b + Sqr(d)) / e LabelResultado = LabelResultado & vbCrLf & "x2 = " & (-b - Sqr(d)) / e Else LabelResultado = "x1 = " & -b / e & " + " & Sqr(-d) / e & " * i" LabelResultado = LabelResultado & vbCrLf & "x2 = " & -b / e & " - " & Sqr(-d) / e & " * i" End If End If End Sub

20062012aprenderaprogramar.com

EjerciciosejemplosconifthenelseVisualBasic.

Aspectogrfico: EJEMPLOSCONIFTHENELSEENVISUALBASIC:PARADOJADELSIBURLADOPORUNINTERVALO Reflexionasobreelsignificadoypruebalossiguientescdigosentuordenador: Versin1: Versin2:


Option Explicit Dim A% Private Sub Form_Load() Show A = 160 If A > 50 And A < 75 Then Print "Arabia" Else Print "Eusebio" End If Option Explicit Dim A% Private Sub Form_Load() Show A = 160 If 50 < A < 75 Then Print "Arabia" Else Print "Eusebio" End If End Sub

20062012aprenderaprogramar.com

EjerciciosejemplosconifthenelseVisualBasic.

Si bien podra esperarse obtener el mismo resultado con ambos cdigos, al ejecutar la versin 1 obtenemos como resultado que se muestre en pantalla "Arabia", mientras que en la versin 2 se muestra"Eusebio".Larazn:VisualBasicnoadmitecomparacionesdoblesdeltipox<y<z.Anteeste tipo de escritura, slo es evaluada la primera condicin de las dos pretendidas. Solucin? No usar comparacionesdobles. Esteresultadoinesperadopuedeocasionarunbuenquebraderodecabeza,yaqueenunprograma extenso no ser nada fcil detectar este error. Como remedio, usaremos siempre la escritura de condicionesunadetrsdeotraynodeformamltiple. Prximaentrega:CU00325A Accesoalcursocompletoenaprenderaprogramar.com >Cursos,oenladireccinsiguiente:
http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61

20062012aprenderaprogramar.com

También podría gustarte