Sentencias de Control del Programa
III Sentencias de Control del Programa
El exito es un profesor horrible
• Desafortunadamente, la mejor manera de aprender es cometer errores.
• Tienes que erradicar todos los errores.
• Tecnica recomendada: Escribir poco, probar poco. 40% codificando y el 60% probando.
(escribes un poco de codigo y luego lo pruebas)
Trapping Runtime Errors
• On Error Goto
• On Error Resume Next
• Try... Catch ... Finaly
La agonia de ser vencido
Cuando encuentras un problea
• Lee el mensaje de error cuidadosamente. (muchas veces el error lo podras encontrar 3 lienas arriba. Si se lee con cuidado y trata uno de entender que significa ese error podremos encontrar el error en el codigo.
• Tratar cosas diferentes (Aislar el problema de lo que percibimos es el problema.)
• Leer el manual o ayuda completamente.
• Buscar diligentemente en la red
• Ultima Opcion: Preguntarle a alguien.
Mas acerca de las Aplicaciones de Consola.
Le vamos a pasar argumentos al programa a traves de la consola.
Function Main (ByVal Consola () As String ) As Integer
Dim NumArg As Integer
For NumArg = 0 To UBound (Consola)
Console.WriteLine ("Argumento" & ":" & " "&NumArg.ToString () & Consola (NumArg).ToString ())
Next NumArg
Return 0
End Function
Le vamos a mandar a traves de la consola varios parametros
Programa.exe cadena1 cadena2 cadena3
Lo que se ve:
Argumento:1 cadena1
Argumento:2 cadena2
Argumento:3 cadena3
If, Then, Else
Module Module1
Sub Main (ByVal ConsolaArg () As String )
If ConsolaArg(0).ToString = "str1" Then
Console.WriteLine ("Fue la cadena Str1")
ElseIf ConsolaArg(0).ToString = "str2" Then
Console.WriteLine ("fue la segunda")
Else
Console.WriteLine ("No fue ninguno de los dos")
End If
End Sub
End Module
Select Case
Module Module1
Sub Main (ByVal ConsolaArg () As String )
Select Case ConsolaArg (0)
Case "daniel"
Console.WriteLine ("Fue daniel")
Case "Gallo"
Console.WriteLine ("fue gallo")
Case Else
Console.WriteLine ("No fue el indicado " & ConsolaArg(0).ToString())
End Select
End Sub
End Module
While Statement
Dim Numero as Integer
Dim Num2 As Integer
Numero = 0
Num2 = 0
While Num2 < 50
Numero = numero + 1
Num2 = (Num2 +2 ) * 2
End While
Console.WriteLine ("Se conto"&Numero.ToString())
While Numero > 30
Numero = Numero -1
If Numero = 20
Exit While
End If
End While
'Con el Exit While se sale
Do... Loop
DO WHILE: Se repite mientas una condicion (expresion) se evalua como verdadera. Una ves evaluada falso, entonces no se repite mas.
DO UNTIL: Se Repite hasta que que una condicion (expresion) se evalua verdadera. Una ves cumplida, ya no realiza mas repeticiones.
Dim Numero As Integer
Dim Valor As Integer
Numero = 1
Valor = 0
Do While Valor < 10
Valor = Valor + 1
Loop
Do
Valor = Valor +1
Loop While Valor < 10
En el primer ejemplo checa primero la condicion antes de ejecutar. Diferente al segundo, primero hace un ciclo antes de verificar.
Do Until Valor = 10
Valor = Valor + 1
Loop
Do
Valor = Valor + 1
Loop Until Valor =10
' Es un ejemplo similar al Do While, solo que la condicion se repite hasta que se cumpla una condicion. ( ya sea al inicio o al final del Loop).
For ... Next Statements
Dim x As Integer
For x = 0 To 10
Console.WriteLine (x.ToString ())
Next
For x=0 To 10 Step 2
Console.WriteLine (x.ToString())
Next
For x=10 To 0 Step -1
Console.WriteLine (x.ToString())
Next
For x=0 To 10
If x = 5 Then
Exit For
End If
Console.WriteLine (x.ToString ())
Next
Como se puede ver tambien podemos terminar un For con un EXIT FOR antes de que termine.
Ejercicios
Programa en C (Pasarlo a VB)
2. Examine the following program. Imagine entering three numbers, and write what output you expect.
1: #include
2: int main()
3: { 4: int a, b, c;
5: cout << "Please enter three numbers\n";
6: cout << "a: ";
7: cin >> a;
8: cout << "\nb: ";
9: cin >> b;
10: cout << "\nc: ";
11: cin >> c;
12:
13: if (c = (a-b))
14: {cout << "a: ";
15: cout << a;
16: cout << "minus b: ";
17: cout << b;
18: cout << "equals c: ";
19: cout << c << endl;}
20: else
21: cout << "a-b does not equal c: " << endl;
22: return 0;
23: }
4. Examine this program and anticipate the output:
1: #include
2: int main()
3: {
4: int a = 1, b = 1, c;
5: if (c = (a-b))
6: cout << "The value of c is: " << c;
7: return 0;
8: }
Ejercicio:
Mostrar en pantalla un menú que nos pida sacar el área de un Cuadrado o un Triangulo.
Module Module1
Sub Main()
Dim Altura As Integer
Dim Ancho As Integer
Dim opcion As Integer
Dim Area As Integer
inicio:
Console.WriteLine("1. Area de un cuadradi")
Console.WriteLine("2. area de un triangulo")
Console.WriteLine("3. Salir")
opcion = Console.ReadLine()
Select Case opcion
Case 1
Console.WriteLine("Elegiste la opcion 1")
Console.WriteLine("Dame la altura")
Altura = Console.ReadLine()
Console.WriteLine("Dame el Ancho")
Ancho = Console.ReadLine()
Area = Altura * Ancho
Console.WriteLine("El Area del Cuadrado es: " & Area.ToString())
Case 2
Console.WriteLine("Elegiste la opcion 2")
Console.WriteLine("Dame la altura")
Altura = Console.ReadLine()
Console.WriteLine("Dame el Ancho")
Ancho = Console.ReadLine()
Area = (Altura * Ancho) / 2
Console.WriteLine("El Area del Triangulo es: " & Area.ToString())
Case 3
GoTo salir
Case Else
Console.WriteLine("No has elejido bien ")
End Select
GoTo inicio
salir:
End Sub
End Module
Programa que Pregunte La Altura(en cms) y Peso (kgs) y no diga si tiene sobrepeso, bajo del peso o tiene peso normal.
Module Module1
Sub Main()
Dim Peso As Double
Dim Altura As Double
Console.WriteLine("Dame el peso de la persona: ")
Peso = Console.ReadLine()
Console.WriteLine("Dame la Altura de la persona: ")
Altura = Console.ReadLine()
If Peso < (Altura / 2.5) Then
Console.WriteLine("Esta bajo del peso")
ElseIf (Altura / 2.5) <= Peso And Peso <= (Altura / 2.5) Then
Console.WriteLine("Peso Normal")
Else
Console.WriteLine("Tiene Sobre peso")
End If
End Sub
End Module
Programa que convierta de grados centigrados a Farenheit
//#include
//
//double FahrenToCelsius (double fahren)
//{
// return 5 * (fahren - 32) / 9;
//}
//
//int main (void)
//{
// double fahrenheit;
//
// cout << "Temperature in Fahrenhait: ";
// cin >> fahrenheit;
//
// cout << fahrenheit << " degrees Fahrenheit = "
// << FahrenToCelsius(fahrenheit) << " degrees Celsius\n";
// return 0;
//}