Module Module1
Sub Main()
Dim a As Integer, b As Integer
Console.Write("Primer número: ")
a = Console.ReadLine()
Console.Write("Segundo número: ")
b = Console.ReadLine()
Console.Write("Resultado: " & a & " + " & b & " = " & a + b)
Console.ReadLine()
End Sub
End Module
yo lo que quiero hacer es escribir en una linea número + número, por ejemplo en C lo haría así.int main()
{
int a,b;
char w;
printf ("Introduce una suma: ");
scanf ("%d %c %d",&a,&w,&b);
printf("%d %c %d = %d",a,w,b,a+b);
return 0;
}
El problema que tengo es para poder escribir en la terminal: 4+2, porque no tengo ningún problema en leer un número después de otro.
Si hago esto e introduzco por el teclado: 4+2, me sale el error: "Conversion from string "4+2" to type 'Integer' is not valid."Module Module1
Sub Main()
Dim w As Char
Dim a As Integer, b As Integer, c As Integer
Console.Write("Introduce una suma: ")
a = Console.ReadLine()
w = Console.ReadLine()
b = Console.ReadLine()
c = a + b
Console.Write("Resultado: " & a & " + " & b & " = " & c)
Console.ReadLine()
End Sub
End Module
Si hago esto, no me da error, pero el resultado no es nada buenoModule Module1
Sub Main()
Dim w As Char
Dim a As Integer, b As Integer, c As Integer
Console.Write("Introduce una suma: ")
a = Console.Read()
w = Console.ReadLine()
b = Console.Read()
c = a + b
Console.Write("Resultado: " & a & " + " & b & " = " & c)
Console.ReadLine()
Console.ReadLine()
End Sub
End ModuleIntroduce una suma: 5+3
Resultado: 53 + 13 = 66
Si no es para aprender y necesitas implementarlo para alguna app, busca por string expression evaluator. Pero ahí ya te saldrías de lo que ofrece el lenguaje por defecto con añadidos/material de terceros. De cualquier forma es simple de hacer desde cero con lo que te he comentado, como te he comentado o de otras maneras... hay varias formas de hacerlo.
Un programa pedirá una entrada por parte del usuario en el formato "<número> + <número>".
El programa mostrará un resultado con el siguiente formato: "<número> + <número> = <resultat>".
Por ejemplo, si el usuario escribe "312 +21", la salida del programa debe ser "312 + 21 = 333"
Module Module1
Sub Main()
Dim ok As Boolean
Dim a As Integer, b As Integer, i As Integer
Dim op As String, uno As String, dos As String
Console.Write("Introduce una suma: ")
op = Console.ReadLine()
ok = True
For i = 0 To Len(op) - 1
If op(i) = "+" Then
ok = False
End If
If ok = True And op(i) <> "+" Then
uno = uno & op(i)
ElseIf op(i) <> "+" Then
dos = dos & op(i)
End If
Next
a = Integer.Parse(uno)
b = Integer.Parse(dos)
Console.Write("Resultado: " & a & " + " & b & " = " & a + b)
Console.ReadLine()
End Sub
End Module
Un programa pedirá una entrada por parte del usuario en el formato "<número> + <número>".
El programa mostrará un resultado con el siguiente formato: "<número> + <número> = <resultat>".
Por ejemplo, si el usuario escribe "312 +21", la salida del programa debe ser "312 + 21 = 333"
RC9 escribió:¿Y con eval no funcionaría? Es decir dejas que introduzca por teclado lo que sea "56+89" y esa cadena la pasas a la función eval() y te debería devolver el resultado.
Te hablo sin saber demasiado de Visual Basic eh. A todo esto, habría que controlar posibles errores introducidos en la cadena claro.