Autor
|
Tema: Ayuda números aleatorios (Leído 6,969 veces)
|
Delikatovic
Desconectado
Mensajes: 8
|
No entiendo en qué fallo, para que al elegir Opcion1 me muestre los números aleatorios... Sera por la llamada a la funcion? hago algo mal en Opcion1??? class Program { static void Main(string[] args) { string op = null; int num; Console.WriteLine("Elija una opcion:"); op = Console.ReadKey().ToString();
switch (op) { case "1": Opcion1(); break; case "2": Opcion2();
break; case "3":
break; case "4": break;
} Console.ReadLine(); } static void Opcion1() { Random rdn = new Random(); int a = rdn.Next(10, 30); int b = rdn.Next(10, 30); Console.WriteLine("Números aleatorios: {0} y {1}", a, b); }
static string Opcion2() {
} } }
|
|
|
En línea
|
|
|
|
Slava_TZD
Wiki
Desconectado
Mensajes: 1.466
♪ [8675309] ♪
|
Tu problema es que estás asignando un ConsoleKeyInfo a una string. static void Main(string[] args) { Console.WriteLine("Elija una opcion:"); switch (Console.ReadKey().KeyChar) { case '1': Opcion1(); break; default: break; } Console.ReadLine(); }
|
|
|
En línea
|
The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
|
|
|
okik
Desconectado
Mensajes: 462
|
Usa Console.ReadKey().KeyCharAl pulsar 1 crea los números aleatorios: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { char op = '\0'; // int num = 0; Console.WriteLine("Elija una opcion:"); op = Console.ReadKey().KeyChar; switch (op) { case '1': Opcion1(); break; case '2': Opcion2(); break; case '3': break; case '4': break; } Console.ReadLine(); } public static void Opcion1() { Random rdn = new Random (); int a = rdn.Next(10, 30); int b = rdn.Next(10, 30); Console.WriteLine(Environment.NewLine); Console.WriteLine("Números aleatorios: {0} y {1}", a, b); } public static void Opcion2() { } } }
Usa Console.ReadLine() en lugar de Console.ReadKey(), pero tienes que pulsar Enter para iniciar la función using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int op = 0; // int num = 0; Console.WriteLine("Elija una opcion:"); op = Convert.ToInt32(Console.ReadLine()); switch (op) { case 1: Opcion1(); break; case 2: Opcion2(); break; case 3: break; case 4: break; } Console.ReadLine(); } public static void Opcion1() { Random rdn = new Random (); int a = rdn.Next(10, 30); int b = rdn.Next(10, 30); Console.WriteLine(Environment.NewLine); Console.WriteLine("Números aleatorios: {0} y {1}", a, b); } public static void Opcion2() { } } }
También: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string op = null; // int num = 0; Console.WriteLine("Elija una opcion:"); op = Console.ReadLine(); switch (op) { case "1": Opcion1(); break; case "2": Opcion2(); break; case "3": break; case "4": break; } Console.ReadLine(); } public static void Opcion1() { Random rdn = new Random (); int a = rdn.Next(10, 30); int b = rdn.Next(10, 30); Console.WriteLine(Environment.NewLine); Console.WriteLine("Números aleatorios: {0} y {1}", a, b); } public static void Opcion2() { } } }
|
|
« Última modificación: 25 Noviembre 2016, 00:38 am por okik »
|
En línea
|
|
|
|
Delikatovic
Desconectado
Mensajes: 8
|
muchas gracias!! le he añadido un do...while para que me siga preguntando opciones Mira.. tengo otro problemilla, en la opción 2: Desde el main pedir dos cadenas de caracteres (string).La función deberá convertir las dos cadenas a minúsculas, comparar-las, y devolver, por el tercer parámetro(no con return), la palabra “MENOR” si la 1ª cadena es inferior a la 2ª (alfabéticamente), un “MAYOR”, si es mayor alfabéticamente, y un “IGUAL” si son la misma. No tengo ni idea por donde empezar.. algun enlace de referencia?
|
|
« Última modificación: 25 Noviembre 2016, 19:05 pm por Delikatovic »
|
En línea
|
|
|
|
Slava_TZD
Wiki
Desconectado
Mensajes: 1.466
♪ [8675309] ♪
|
bool? isit_greater(string a, string b) { if (a.Length == b.Length) return null; return a.Length > b.Length ? true : false; }
No es exactamente lo que pides, pero es tu tarea casi resuelta googlea mas la próxima vez.
|
|
|
En línea
|
The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
|
|
|
Delikatovic
Desconectado
Mensajes: 8
|
si supieras cuanto googleo...
Estoy creando el código, ahora lo paso a ver si alguien me ayuda
|
|
|
En línea
|
|
|
|
Delikatovic
Desconectado
Mensajes: 8
|
bool? isit_greater(string a, string b) { if (a.Length == b.Length) return null; return a.Length > b.Length ? true : false; }
No es exactamente lo que pides, pero es tu tarea casi resuelta googlea mas la próxima vez. Lo tengo a media.. cuando elijo la opcion2 ni me pregunta por el texto a escribir, que hago?? Codigo del main case '2': Console.WriteLine("Introduce texto:"); texto1= Console.ReadLine(); Console.WriteLine("Introduce texto:"); texto2= Console.ReadLine(); Opcion2(ref texto1, ref texto2, out compara);
Codigo de la funcion Opcion2 public static void Opcion2( ref string a, ref string b, out int c) { Console.WriteLine(a.ToLower()); Console.WriteLine(b.ToLower()); c = string.Compare(a, b); Console.WriteLine(c); }
me echan un cable?
|
|
|
En línea
|
|
|
|
okik
Desconectado
Mensajes: 462
|
En el case 2 Console.WriteLine(Environment.NewLine); Console.WriteLine("Introduce texto 1:"); string texto1 = Console.ReadLine(); Console.WriteLine("Introduce texto 2:"); string texto2 = Console.ReadLine(); Opcion2(texto1, texto2); break;
la función Option2: public static void Opcion2(string a, string b) { int c = 0; c = string.Compare(a, b); switch (c) { case -1: Console.WriteLine(Environment.NewLine); Console.WriteLine("{0} y {1} --> {2}", a.ToLower(), b.ToLower(), "Son diferentes"); break; case 0: Console.WriteLine(Environment.NewLine); Console.WriteLine("{0} y {1} --> {2}", a.ToLower(), b.ToLower(), "Son iguales"); break; } }
Te comento, no se para que pones el REF y el OUT C en la declaración de la función si es la misma función la que luego muestra el resultado en la consola. "Ref" es para desde la función introducir un valor o nuevo valor a una variable declarada en otra parte del código. Como tras usar la variable en la función no la usas más desde el 'Case' no entiendo para qué le pones el Ref. El uso correcto de ref sería asi..: En case 2 Console.WriteLine(Environment.NewLine); string a= null; string b= null; int c = 0; Opcion2(ref a, ref b, ref c); switch (c) { case -1: Console.WriteLine(Environment.NewLine); Console.WriteLine("{0} y {1} --> {2}", a.ToLower(), b.ToLower(), "Son diferentes"); break; case 0: Console.WriteLine(Environment.NewLine); Console.WriteLine("{0} y {1} --> {2}", a.ToLower(), b.ToLower(), "Son iguales"); break; } break;
La función option 2: public static void Opcion2(ref string a,ref string b, ref int c) { Console.WriteLine(Environment.NewLine); Console.WriteLine("Introduce texto 1:"); a = Console.ReadLine(); Console.WriteLine("Introduce texto 2:"); b = Console.ReadLine(); c = string.Compare(a, b); }
Aunque realmente tampoco sería del todo correcto pues la función en este caso no necesita que a y b tengan ningún valor para trabajar con esas variables. En su lugar usar out: ... Opcion2(out a, out b, out c); ...
public static void Opcion2(out string a, out string b, out int c) { .... }
En resumen Ref es para valores de ida y vuelta, ida para la función y vuelta lo que se establece en la función o subproceso para esa variable. Por ejemplo ( lo he rectificado, estaba mal hecho): namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int a = 5; int b = 8; int c = 0; Multiplicar(ref a, ref b, out c); Console.WriteLine("a + 5 = {0}", a); Console.WriteLine("b + 5 = {0}", b); Console.WriteLine("c= a * b = {0}", c); Console.ReadLine(); } public static void Multiplicar(ref int a, ref int b, out int c) { a+= 5; b+= 5; c = a * b; } } }
En este caso A llega a la función como 5 y B como 8, luego le suma 5 a cada uno y establece el nuevo resultado en A y B, luego los multiplica y asigna el valor a C
|
|
« Última modificación: 26 Noviembre 2016, 16:15 pm por okik »
|
En línea
|
|
|
|
Delikatovic
Desconectado
Mensajes: 8
|
La verdad es que los ref y out no los tengo claro..
|
|
|
En línea
|
|
|
|
okik
Desconectado
Mensajes: 462
|
La verdad es que los ref y out no los tengo claro..
Hombre, pues ya lo he explicado. Es una variable de ida y vuelta. Entra en la función con un valor, y cuando se procesa la función sale con otro valor. Se declara una variable antes de llamar a la función. Pongamos int A= 16; Luego llamas a la función FunciónX(ref int valor) del modo FunciónX(ref A). Entonces la función trabajará con dicho valor A=16. En la funciónX, se establece un nuevo valor para A, pongamos A= A * 2. Ahora después de la declaración de la función tendrá valor 32 funciónX(ref int Valor) { Valor= Valor * 2 }
//A tiene valor 16 int A= 16; //Entra dentro como A=16 y opera como A= 16* 2= 32 y ahora el nuevo valor es 32 FunciónX(ref A); //a partir de aquí el valor de A es 32 //Muestra el valor de A que es 32 console.WriteLine(A);
|
|
« Última modificación: 27 Noviembre 2016, 16:58 pm por okik »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda!! numeros aleatorios con apuntadores
Programación C/C++
|
erikskate1
|
2
|
4,362
|
4 Marzo 2015, 06:27 am
por erikskate1
|
|
|
Números fijo o números aleatorios para las loterías?
« 1 2 »
Foro Libre
|
exploiterstack
|
16
|
14,744
|
15 Mayo 2015, 22:56 pm
por ivancea96
|
|
|
Funcion genera numeros aleatorios de x cifras ayuda
Programación C/C++
|
pacosn1111
|
2
|
2,231
|
24 Abril 2015, 19:00 pm
por pacosn1111
|
|
|
Ayuda para realizar programa en c# con numeros aleatorios
.NET (C#, VB.NET, ASP)
|
Adrian96
|
2
|
3,585
|
9 Diciembre 2016, 19:50 pm
por Eleкtro
|
|
|
Ayuda con numeros aleatorios en C. urgente
Programación C/C++
|
gabrielgjha1
|
0
|
2,329
|
17 Julio 2017, 08:05 am
por gabrielgjha1
|
|