hola q tal, bueno hace rato estaba haciendo un ejercicio sencillo, era un algoritmo que lea un numero entero y obtenga el inverso ejemplo:
123=321, 4789=9874
y bueno lo digite asi:
Imports System.Console
Module Module1
Sub Main()
Dim num, y As Integer
y = 0
Do
WriteLine("INGRESE UN NUMERO")
num = ReadLine()
Do
y = y * 10 + (num Mod 10)
num = num \ 10
Loop While num > 0
WriteLine(y)
WriteLine()
y = 0
Loop While y = 0
End Sub
End Module
y si corre bien y sirve ... pero aqui viene mi duda.... en la linea 12 donde esta :
num = num \ 10
si cambio a:
num = num / 10
es decir solo el signo \ por este: /
cuando lo ejecuto si me da el numero inverso pero solo hasta 345
ejemplo: escribo 345 me da el inverso 453 >>>ojo<<<< pero si escribo 456 me da 665 y si escribo cualquier otro numero mayor no lo invierte sino que da otra cantidad, entonces esa es mi duda.. cual es la diferencia entre "\" y "/"
gracias.!!! aqui dejo el algoritmo que marca el inverso mal a partir de 456
Imports System.Console
Module Module1
Sub Main()
Dim num, y As Integer
y = 0
Do
WriteLine("INGRESE UN NUMERO")
num = ReadLine()
Do
y = y * 10 + (num Mod 10)
num = num / 10
Loop While num > 0
WriteLine(y)
WriteLine()
y = 0
Loop While y = 0
End Sub
End Module
· Los códigos deben ir en etiquetas GeSHi
· No se debe escribir en mayúsculas
· Los temas de .NET van en su respectivo subforo
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex
Cita de: DSREY en 22 Junio 2017, 05:59 AMesa es mi duda.. cual es la diferencia entre "\" y "/"
La diferencia es que un divisor es para divisiones entre números enteros (la operación devuelve un valor de tipo
Integer), y el otro para decimales (la operación devuelve un valor de tipo
Double)...
Asignar un valor decimal a una variable entera se considera una operación ilegal "permitida". Si eres nuevo en la programación de Visual Basic.NET entonces deberías activar la sentencia
Option Strict ON para prevenir ese tipo de fallos, esto lo puedes activar de forma temporal escribíendo la sentencia en la cabecera de una clase, o de forma global (afectando a todas las clases actuales y futuros proyectos de VB.NET) en la configuración de Visual Studio.
Usando el divisor para enteros:
Cita de: Visual Studio Output WindowINGRESE UN NUMERO
Input: 123456
Loop 1: 12345
Loop 2: 1234
Loop 3: 123
Loop 4: 12
Loop 5: 1
Loop 6: 0
Result: 654321
Usando el divisor para decimales:
Cita de: Visual Studio Output WindowINGRESE UN NUMERO
Input: 123456
Loop 1: 12346
Loop 2: 1235
Loop 3: 124
Loop 4: 12
Loop 5: 1
Loop 6: 0
Result: 665421
Por último, déjame aconsejarte una cosa más...
Si el código que has hecho ha sido con la intención de aprender cosas básicas, o por que te han mandado un ejercicio en el que te obligan a solucionar el problema de esa forma, entonces está bien, pero si es por cualquier otro motivo entonces no estás haciendo lo más apropiado, puesto que hablando en términos de productividad y eficiencia, la librería de clases de .NET Framework expone una función llamada
IEnumerable.Reverse() la cual sirve para invertir los elementos de un array/secuencia...
Para que te hagas una idea de la diferencia o ventaja que supone:
En una CPU AMD Ryzen 7 1700X, 10 millones de iteraciones del siguiente código finaliza en 16 segundos aprox.:
For x As Integer = 0 To 10000000
Dim num As Integer = 123456789, y As Integer
Do
y = y * 10 + (num Mod 10)
num = num \ 10
Loop While num > 0
Next x
100 millones de iteraciones del mismo código toma un tiempo de ejecución total de 2:42 minutos.
Este otro código, bajo las mismas circunstancias que el primero, con 10 millones de iteraciones se toma 10 segundos aprox.:
For x As Integer = 0 To 10000000
Dim num As Integer = 123456789
num = CInt(String.Join("", num.ToString().Reverse()))
Next x
100 millones de iteraciones del mismo código toma un tiempo de ejecución total de 1:41 minutos.
¿Cual es la conclusión de este
benchmark?, pues que en la mayoría de ocasiones reinventar la rueda no es lo más apropiado ni tampoco lo más eficiente...
La lbrería de clases de .NET Framework se lleva desarrollando desde el año 2002, ¿alguien cree que no han pensado en la necesidad de invertir secuencias?, ¡por supuesto que si!, .NET Framework expone una inmensa cantidad de sofisticados miembros (métodos y funciones desarrolladas por Microsoft) que nos facilitan la vida y, aunque para realizar una inversión de los dígitos del valor de una variable numérica debemos sufrir un tedioso proceso de conversión de tipo a string, luego a array/IEnumerable, iterar la secuencia hacia atrás, unir la secuencia resultante y el direct cast a Integer, al final lo cierto es que el tiempo de ejecución total supone mucho menos que si lo intentásemos hacer de otro modo... por lo tanto es más eficiente ( aunque por otro lado el algoritmo interno de la función
IEnumerable.Reverse() no es muy eficiente, pero eso es otra historia ).
¡Saludos!
El modo más fácil y rápido de invertir una cadena de texto, es acceder a sus bytes individuales y operar sobre ellos... Toma rel primero e intercambialro por el último, luego el segundo por el penúltimo, etc... hasta que se encuentren en el centro.
Ahora bien, cuando tienes un número, cada byte no retiene un carácter del número, si no que es un 'trozo' de la base numérica en sí misma (decimal al caso), por lo que se hace preciso convertirlo a cadena de texto (una base numérica de base 256, donde los números tienen una posición concreta dentro de dicha base), sólo entonces la inversión puede aplicarse adecuadamente operando con los bytes...
Más o menos como los tienes (y digo más o menos, porque al tiempo que inviertes, vas generando el número, es más óptimo, convertirlo entero a cadena, luego invertirlo y luego convertirlo a número (si es preciso que deba devolverse un número)), sin embargo, en tu código hay dos errores de lógica...
Cita de: DSREY en 22 Junio 2017, 05:59 AM
...
Do
WriteLine("INGRESE UN NUMERO")
num = ReadLine()
Do
y = y * 10 + (num Mod 10)
num = num \ 10
Loop While num > 0
WriteLine(y)
WriteLine()
y = 0
Loop While y = 0
...
Marcado en negrita...
- Tu bucle interno, debería tener el 'while' tras el 'do', ya que si la entrada es 0, todavía entrará en el bucle una vez, siendo innecesario (sin entrar a valorar el código interno).
- Tu bucle externo, es un bucle sin fin... porque le dices (marcado en negrita):
Y = 0 y luego:
Repetir mientras Y=0, como acabas de asignarle el valor 0, jamás saldrá del bucle, porque jamás dejará de cumplir esa condición.
Matemáticamente...
Do
Console.WriteLine("Escribe un número:")
Dim numero As Integer = Console.ReadLine()
Dim numeroInvertido As String = Nothing
Dim y As Integer
While numero > 0
y = numero Mod 10
numero \= 10
numeroInvertido &= y
End While
Console.WriteLine(numeroInvertido)
Console.WriteLine()
Loop
Con Substring:
Do
Console.WriteLine("Escribe un número:")
Dim numero As String = Console.ReadLine()
Dim numeroInvertido As String = Nothing
For I As Integer = 1 To numero.Length
numeroInvertido += numero.Substring(numero.Length - I, 1)
Next
Console.WriteLine(numeroInvertido)
Console.WriteLine()
Loop
gracias por su ayuda, entiendo que hay mas formas de hacer que un numero se invierta y son mejores, como estoy recien aprendiendo a programar no conozco aun todas sus funciones aunq me gustaria algun folleto de los espacios de nombres y variables que existen y en que situaciones se las puede usar o para que sirven,
asi podre ponerlas en mi speudocodigo.... :huh: :huh: :huh:
gracias por su ayuda, entiendo que hay mas formas de hacer que un numero se invierta y son mejores, como estoy recien aprendiendo a programar no conozco aun todas sus funciones aunq me gustaria algun folleto de los espacios de nombres y variables que existen y en que situaciones se las puede usar o para que sirven,
asi podre ponerlas en mi speudocodigo....
por otro lado tengo una duda... en cuanto a reolver ejercicios como sumas, resta, multiplicacion, division y potencias,
que variable se usa.?? xq no me resuelve ninguna operacion este codigo que hice,,, se trata sobre sacar el indice de masa corporal y bueno se usan varias operaciones ...
este es mi codigo
Imports System.Console
Module Module1
Sub Main()
Dim nom As String
Dim cm, lb, m, kg, m2 As Integer
Dim masa As Long
cm = 0
lb = 0
m = cm / 100
kg = lb / 2.2
m2 = m * m
WriteLine("CALCULADORA DE MASA CORPORAL CMC")
WriteLine("")
WriteLine("ESCRIBA SU NOMBRE")
nom = ReadLine()
WriteLine("ESCRIBA SU ESTATURA EN CENTIMETROS")
cm = ReadLine()
WriteLine("ESCRIBA SU PESO EN LIBRAS")
lb = ReadLine()
WriteLine(masa)
WriteLine(kg)
WriteLine(m)
WriteLine(m2)
masa = kg / m2
WriteLine(("SU PORCENTAJE DE MASA CORPORAL ES, "), masa, ("%"))
WriteLine("*---------------------------------------------------------*")
WriteLine("*Indice de masa Clasificacion *")
WriteLine("*---------------------------------------------------------*")
WriteLine("*<16.00___________________Infrapeso: Delgadez Severa______*")
WriteLine("*16.00 - 16.99____________Infrapeso: Delgadez moderada____*")
WriteLine("*17.00 - 18.49____________Infrapeso: Delgadez aceptable___*")
WriteLine("*18.50 - 24.99____________Peso Normal_____________________*")
WriteLine("*25.00 - 29.99____________Sobrepeso_______________________*")
WriteLine("*30.00 - 34.99____________Obeso: Tipo I___________________*")
WriteLine("*35.00 - 40.00____________Obeso: Tipo II__________________*")
WriteLine("*>40.00___________________Obeso: Tipo III_________________*")
WriteLine("*---------------------------------------------------------*")
ReadLine()
If masa < 16 Then
WriteLine(nom, ("Tiene infrapeso: delgadez severa"))
WriteLine("presione enter para salir")
ReadLine()
If masa > 16 And masa < 16.99 Then
WriteLine("Tiene Infrapeso: Delgadez moderadap")
WriteLine("presione enter para salir")
ReadLine()
If masa >= 17 And masa <= 18.49 Then
WriteLine(nom, " Tiene Infrapeso: Delgadez aceptable")
WriteLine("presione enter para salir")
ReadLine()
If masa >= 18.5 And masa <= 24.99 Then
WriteLine(nom, " Tiene Peso Normal")
WriteLine("presione enter para salir")
ReadLine()
If masa >= 25 And masa <= 29.99 Then
WriteLine(nom, " Tiene sobrepeso")
WriteLine("presione enter para salir")
ReadLine()
If masa >= 30 And masa <= 34.99 Then
WriteLine(nom, " Se encuentra con Obesidad: Tipo I")
WriteLine("presione enter para salir")
ReadLine()
If masa >= 35 And masa <= 40 Then
WriteLine(nom, " Se encuentra con Obesidad: Tipo II")
WriteLine("presione enter para salir")
ReadLine()
If masa > 40 Then
WriteLine(nom, " Se encuentra con Obesidad: Tipo III")
WriteLine("presione enter para salir")
ReadLine()
End If
End If
End If
End If
End If
End If
End If
End If
End Sub
End Module
"no se como insertan el codigo y q salga con las letras azules o rojas segun corresponde"
que debo cambiar.?? xq aumente unas lineas para verificar si esta resolviendo los ajercicios y nada
puse
writeline (masa)
writeline (kg)
writeline (m)
writeline (m2)
y me sale
0
0
0
0
.... :( :( :( :huh: :huh: :huh: :huh:
Cita de: DSREY en 24 Junio 2017, 21:48 PM
puse
writeline (masa)
writeline (kg)
writeline (m)
writeline (m2)
y me sale
0
0
0
0
.... :( :( :( :huh: :huh: :huh: :huh:
Te sale ...
0
0
0
porque colocas las operaciones ANTES de que el usuario haya introducido algún valor, y como es de esperar operas con valores nulos
(ANTES)
m = cm / 100
kg = lb / 2.2
m2 = m * m
...
(DESPUÉS)
WriteLine("ESCRIBA SU ESTATURA EN CENTIMETROS")
cm = ReadLine()
WriteLine("ESCRIBA SU PESO EN LIBRAS")
lb = ReadLine()
...
Como puedes imaginar
primero se debe introducir el valor y luego operar.
Por otro lado como operas con DECIMALES debes usar el tipo de variable
DecimalCuando introduzcas valores numéricos en el código si son decimales añade la letra D para indicar a VB, por ejemplo
2.2D
. De este modo indicas a VB que es un número decimal, y trabajará con el como tal.
Bueno aquí dejo tu código creo que arreglado, espero te sirva y esté correcto. Si ves cualquier problema o no entiendes algo nos comentas ¿ok?.
Imports System.Console
Imports System.ConsoleColor
Module Module1
Sub Main()
Dim nom As String
Dim cm, lb, m, kg, m2 As Decimal
Dim masa As Decimal
WriteLine("CALCULADORA DE MASA CORPORAL CMC")
WriteLine("")
WriteLine("ESCRIBA SU NOMBRE")
nom = ReadLine().ToUpper
WriteLine("ESCRIBA SU ESTATURA EN CENTIMETROS")
cm = ReadLine()
WriteLine("ESCRIBA SU PESO EN LIBRAS")
lb = ReadLine().Replace(".", ",")
m = cm / 100D
kg = lb / 2.20462D
m2 = m * m
masa = CDec(kg / m2)
WriteLine()
WriteLine("===========================================")
ForegroundColor = Cyan
WriteLine(String.Format("NOMBRE: {0}", nom))
WriteLine(String.Format("PESO (KG): {0:0.0000} kg", kg)) '{0} referencia a valor kg y :00.0000 formato a mostrar ej: 45,5899
WriteLine(String.Format("ESTATURA: {0:0.00} m", m))
WriteLine(String.Format("M{1}: {0:0.0000} m{1}", m2, Convert.ToChar(178)))
ForegroundColor = White
WriteLine("===========================================")
WriteLine()
ForegroundColor = White
WriteLine("SU PORCENTAJE DE MASA CORPORAL ES: ")
WriteLine()
BackgroundColor = Yellow
ForegroundColor = Red
Write(String.Format("{0:0.0000} %", masa))
WriteLine()
WriteLine()
BackgroundColor = Yellow
ForegroundColor = Blue
WriteLine("*---------------------------------------------------------*")
WriteLine("*Indice de masa Clasificacion *")
WriteLine("*---------------------------------------------------------*")
WriteLine("*<16.00___________________Infrapeso: Delgadez Severa______*")
WriteLine("*16.00 - 16.99____________Infrapeso: Delgadez moderada____*")
WriteLine("*17.00 - 18.49____________Infrapeso: Delgadez aceptable___*")
WriteLine("*18.50 - 24.99____________Peso Normal_____________________*")
WriteLine("*25.00 - 29.99____________Sobrepeso_______________________*")
WriteLine("*30.00 - 34.99____________Obeso: Tipo I___________________*")
WriteLine("*35.00 - 40.00____________Obeso: Tipo II__________________*")
WriteLine("*>40.00___________________Obeso: Tipo III_________________*")
WriteLine("*---------------------------------------------------------*")
BackgroundColor = Black
ForegroundColor = White
WriteLine()
Select Case masa
Case Is < 16D
WriteLine(nom & "Tiene Infrapeso: Delgadez Severa")
Case 16D To 16.99D
WriteLine(nom & "Tiene Infrapeso: Delgadez moderada")
Case 17D To 18.49D
WriteLine(nom & " Tiene Infrapeso: Delgadez aceptable")
Case 18.5D To 24.99D
WriteLine(nom & " Tiene Peso Normal")
Case 25D To 29.99D
WriteLine(nom & " Tiene sobrepeso")
Case 30D To 34.99D
WriteLine(nom & " Se encuentra con Obesidad: Tipo I")
Case 35D To 40D
WriteLine(nom & " Se encuentra con Obesidad: Tipo II")
Case Is > 40D
WriteLine(nom & " Se encuentra con Obesidad: Tipo III")
End Select
'If masa > 16 And masa < 16.99 Then
' WriteLine("Tiene Infrapeso: Delgadez moderada")
'End If
'If masa >= 17 And masa <= 18.49 Then
' WriteLine(nom, " Tiene Infrapeso: Delgadez aceptable")
'End If
'If masa >= 18.5 And masa <= 24.99 Then
' WriteLine(nom, " Tiene Peso Normal")
'End If
'If masa >= 25 And masa <= 29.99 Then
' WriteLine(nom, " Tiene sobrepeso")
'End If
'If masa >= 30 And masa <= 34.99 Then
' WriteLine(nom, " Se encuentra con Obesidad: Tipo I")
'End If
'If masa >= 35 And masa <= 40 Then
' WriteLine(nom, " Se encuentra con Obesidad: Tipo II")
'End If
'If masa > 40 Then
' WriteLine(nom, " Se encuentra con Obesidad: Tipo III")
'End If
ForegroundColor = Yellow
WriteLine()
WriteLine("Presione ENTER para salir")
ReadLine()
End Sub
End Module
Por cierto según esto tengo peso
Normal, sin embargo ya estoy mas que harto que me digan que estoy muy delgado. En fin que le vamos a hacer.
He realizado una arreglo para que esto
SU PORCENTAJE DE MASA CORPORAL ES: 21 %
quede en una sola línea tal que así:
CitarSU PORCENTAJE DE MASA CORPORAL ES: 21 %")
Simplemente remplazas lo anterior por esto y listo:
Out.NewLine = Convert.ToChar(ConsoleKey.Backspace)
WriteLine("SU PORCENTAJE DE MASA CORPORAL ES: ")
BackgroundColor = Yellow
ForegroundColor = Red
Out.NewLine = Environment.NewLine
WriteLine(String.Format("{0:0.0000} %", masa))
WriteLine()
COMPLETO:
Imports System.Console
Imports System.ConsoleColor
Module Module1
Sub Main()
Dim nom As String
Dim cm, lb, m, kg, m2 As Decimal
Dim masa As Decimal
WriteLine("CALCULADORA DE MASA CORPORAL CMC")
WriteLine("")
WriteLine("ESCRIBA SU NOMBRE")
nom = ReadLine().ToUpper
WriteLine("ESCRIBA SU ESTATURA EN CENTIMETROS")
cm = ReadLine()
WriteLine("ESCRIBA SU PESO EN LIBRAS")
lb = ReadLine().Replace(".", ",")
m = cm / 100D
kg = lb / 2.20462D
m2 = m * m
masa = CDec(kg / m2)
WriteLine()
WriteLine("===========================================")
ForegroundColor = Cyan
WriteLine(String.Format("NOMBRE: {0}", nom))
WriteLine(String.Format("PESO (KG): {0:0.0000} kg", kg)) '{0} referencia a valor kg y :00.0000 formato a mostrar ej: 45,5899
WriteLine(String.Format("ESTATURA: {0:0.00} m", m))
WriteLine(String.Format("M{1}: {0:0.0000} m{1}", m2, Convert.ToChar(178)))
ForegroundColor = White
WriteLine("===========================================")
WriteLine()
ForegroundColor = White
Out.NewLine = Convert.ToChar(ConsoleKey.Backspace)
WriteLine("SU PORCENTAJE DE MASA CORPORAL ES: ")
BackgroundColor = Yellow
ForegroundColor = Red
Out.NewLine = Environment.NewLine
WriteLine(String.Format("{0:0.0000} %", masa))
WriteLine()
BackgroundColor = Yellow
ForegroundColor = Blue
WriteLine("*---------------------------------------------------------*")
WriteLine("*Indice de masa Clasificacion *")
WriteLine("*---------------------------------------------------------*")
WriteLine("*<16.00___________________Infrapeso: Delgadez Severa______*")
WriteLine("*16.00 - 16.99____________Infrapeso: Delgadez moderada____*")
WriteLine("*17.00 - 18.49____________Infrapeso: Delgadez aceptable___*")
WriteLine("*18.50 - 24.99____________Peso Normal_____________________*")
WriteLine("*25.00 - 29.99____________Sobrepeso_______________________*")
WriteLine("*30.00 - 34.99____________Obeso: Tipo I___________________*")
WriteLine("*35.00 - 40.00____________Obeso: Tipo II__________________*")
WriteLine("*>40.00___________________Obeso: Tipo III_________________*")
WriteLine("*---------------------------------------------------------*")
BackgroundColor = Black
ForegroundColor = White
WriteLine()
Select Case masa
Case Is < 16D
WriteLine(nom & "Tiene Infrapeso: Delgadez Severa")
Case 16D To 16.99D
WriteLine(nom & "Tiene Infrapeso: Delgadez moderada")
Case 17D To 18.49D
WriteLine(nom & " Tiene Infrapeso: Delgadez aceptable")
Case 18.5D To 24.99D
WriteLine(nom & " Tiene Peso Normal")
Case 25D To 29.99D
WriteLine(nom & " Tiene sobrepeso")
Case 30D To 34.99D
WriteLine(nom & " Se encuentra con Obesidad: Tipo I")
Case 35D To 40D
WriteLine(nom & " Se encuentra con Obesidad: Tipo II")
Case Is > 40D
WriteLine(nom & " Se encuentra con Obesidad: Tipo III")
End Select
ForegroundColor = Yellow
WriteLine()
WriteLine("Presione ENTER para salir")
ReadLine()
End Sub
End Module
:D :D
okik, Muchas gracias, ahora entiendo mejor como hacer q funcione el pseudogodigo y como usar las variables,
CitarBueno aquí dejo tu código creo que arreglado, espero te sirva y esté correcto. Si ves cualquier problema o no entiendes algo nos comentas ¿ok?.
Código
;-)
Si funciono bien con select case y con if.
No tengo muy claro para que es exactamente "Convert.ToChar(178)"
CitarWriteLine(String.Format("M{1}: {0:0.0000} m{1}", m2, Convert.ToChar(178)))
"ToUpper"
Citarnom = ReadLine().ToUpper
y "Cyan"
CitarForegroundColor = Cyan
CitarPor otro lado como operas con DECIMALES debes usar el tipo de variable Decimal
Cuando introduzcas valores numéricos en el código si son decimales añade la letra D para indicar a VB, por ejemplo 2.2D
. De este modo indicas a VB que es un número decimal, y trabajará con el como tal.
y lo de los decimales me sirvio mucho, asi pude corregir otros pseudocodigos que estoy haciendo, la verdad es q tengo un examen el jueves en visual y como requisito para dar el examen es llevar 12 aplicaciones funcionando, (temas q ya nos dieron) y bueno ya solo me faltan 4 (hoy ya los termino) pero en fin
como uso visul basic 2017 en internet google o en otras paginas no encuentro mucha ayuda xq tienen pseudocodigos mas de visual estudio 2010 y ahora hay mas variables que son mejores para usarlas
Cita de: DSREY en 25 Junio 2017, 18:32 PM
No tengo muy claro para que es exactamente "Convert.ToChar(178)"
"ToUpper"
y "Cyan"
Convert.ToChar() Convierte un valor
Char en un carácter Unicode. Donde Char es un código
UTF-16 (16-bits Unicode Transformation Format). En la tabla Unicode se puede encontrar que el superíndice "²" en formato UTF-16 corresponde al número Unicode U+00B2, 0x00B2, o bien
&HB2. Donde B2 es el valor hexadecimal de 178. De modo que puedes ponerlo de las dos maneras.
WriteLine(Convert.ToChar(&HB2))
WriteLine(Convert.ToChar(178))
WriteLine("²")
https://en.wikipedia.org/wiki/List_of_Unicode_characters (https://en.wikipedia.org/wiki/List_of_Unicode_characters)
https://unicode-table.com/es/#00B2 (https://unicode-table.com/es/#00B2)
´
También puede ser que lo veas escrito así
ChrW(178
) en lugar de
Convert.ToChar(). Antiguamente en VB se usaba ChrW(), que es una función de VB6, pero todavía se puede usar en VB.NET.
Para declara una variable de tipo char se hace de la siguiente manera:
Dim miChar As Char = Convert.ToChar(178) ' o ChrW(178),
Console.WriteLine(miChar)
Console.ReadLine()
Una forma sencilla de encontrar el valor numérico Unicode de un carácter es usar el miembro
Enumeración ConsoleKeyEnumeración ConsoleKey (https://msdn.microsoft.com/es-es/library/system.consolekey(v=vs.110).aspx)
Dim caracter As Integer = ConsoleKey.A
WriteLine(caracter)
WriteLine(Convert.ToChar(caracter))
Enter por ejemplo sería el 13
Y si te fijas en el código hay una línea como esta:
Out.NewLine = Convert.ToChar(ConsoleKey.Backspace)
He utilizado el ConsoleKey para obtener el código de retroceso o retorno de carro (ConsoleKey.Backspace). Que es el 8.
De modo que envío un retorno de carro a la consola para subir el valor del porcentaje hacia la línea anterior.
ToUpper es un método que convierte una cadena todo en mayúsculas
Dim cadena as String= "Hola mundo"
WriteLine(cadena.ToUpper())
ReadLine()
Devuelve "HOLA MUNDO"
Método String.ToUpper () (https://msdn.microsoft.com/es-es/library/ewdd6aed(v=vs.110).aspx)
Cyan es un color de la lista de colores de
System.ConsoleColor. El color azul clarito ▓▓▓ .
Enumeración ConsoleColor (https://msdn.microsoft.com/es-es/library/system.consolecolor(v=vs.110).aspx)
Al principio de código he importado System.ConsoleColor para no tener que escribirlo todo el tiempo. Pero de no haberlo importado tendría que ponerlo así:
Console.ForegroundColor = ConsoleColor.Cyan
Si escribes "ConsoleColor." en el editor de código te aparecerá una lista de colores.