Autor
|
Tema: Ayuda en C# (Nivel Principiante) (Leído 13,191 veces)
|
TwisteD420
Desconectado
Mensajes: 22
|
Como estan? Veran tengo un par de dudas, actualmente estoy tratando de agregar la opcion que muestre los alumnos inscritos (nombres y nº de carnet)... traté de elaborar un case asi: case "3": Console.WriteLine("Nº carnet // Nombre alumno"); for (i=0; i < c; i++) { Console.Write(carnet[i], name[i]); } Console.ReadLine(); break;
Pero solo me muestra los Nº de carnet, y no los nombres.. acaso no se puede hacer esto: Console.Write(carnet[i], name[i]);
???? PD: por cierto, una pregunta bastante tonta.. que quiere decir el {0} en el siguiente codigo? Console.WriteLine("Telefono: {0}", phone[j]);
Yo siempre lo coloco antes de imprimir un array o variable. Pero nunca supe el significado de ese "0", puede ser 1, 2, 3... etc?
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Pero nunca supe el significado de ese "0", puede ser 1, 2, 3... etc? Esto es el mismo motivo por el cual solo te imprime los carnet pero no los nombres El {0} puede ser 0 o 1, 2, 3 o lo que sea, y es sustituído por los parámetros que pasas en segunda intancia. string a = "Texto_1"; string b = "Texto_2"; Console.WriteLine("Primero reemplazamos el cero por {0}, y luego el uno por {1}",a,b)
Primero reemplazamos el cero por Texto_1, y luego el uno por Texto_2
Cuando intentas imprimir carnet y nombre, el primer parametro, el carnet[ i] te lo toma como string, pero el segundo lo toma como un objeto, entonces busca el {0} para sustituír por name[ i], pero como no hay simplemente no hace nada. Saludos
|
|
« Última modificación: 25 Mayo 2011, 01:04 am por Novlucker »
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
TwisteD420
Desconectado
Mensajes: 22
|
Listo, ya lo pude hacer como quería ^^ me quedó algo asi: case "3": Console.Clear(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Nº carnet // Nombre de alumno"); Console.ForegroundColor = ConsoleColor.White; for (i=0; i < c; i++) { Console.WriteLine("{0} {1}", carnet[i], name[i]); Console.WriteLine(""); } Console.ReadLine(); break;
Muchisimas gracias por tu ayuda! Ahorita creo que le agregaré la función de modificar datos, investigaré un poco sobre el tema porque no tengo muy claro como lo hare. Saludos!
|
|
|
En línea
|
|
|
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
Es decir aca quedaria asi: case "3": Console.WriteLine("Nº carnet // Nombre alumno"); for (i=0; i < c; i++) { Console.Write("El carnet numero {0} pertenece a {1}",carnet[i], name[i]); } Console.ReadLine(); break;
Y si hubieras querido poner otra variable mas usarias el numero que sigue, es decir el {2}. Pero tambien puedes hacer: case "3": Console.WriteLine("Nº carnet // Nombre alumno"); for (i=0; i < c; i++) { Console.Write("El carnet numero " + carnet[i].ToString() + " pertenece a " + name[i]); } Console.ReadLine(); break;
Suponiendo que carnet es un numero entonces hay que convertirlo, y que name es un string entonces no se necesita convertir.
Ahora el consejo: Esta bueno el programa, segui leyendo ese tutorial de creo.. 260 paginas xD y cuando aprendas lo de Enum te digo para que lo recuerdes al leer, intenta usarlo y mezclarlo con un array xD, eso piensalo vs xD
|
|
|
En línea
|
|
|
|
Krähne
Desconectado
Mensajes: 51
It can't rain all the time...
|
Hola @TwisteD420, respondiendo a tu cita: Actualmente estoy comenzando a leer "El lenguaje de programación C#" para irme familiarizando con todo.
De nuevo, muchisimas gracias por su ayuda, a todos... En cuanto tenga tiempo libre, seguro me meto a fondo con C#, quiero aprender bastante bien ya que es el primer lenguaje de programación que uso... Después ire probando con java, pero me han dicho que necesito unas buenas bases de C# para que se me haga mas facil.
Saludos!
1) No te recomiendo que leas aquel .pdf de José Antonio González Seco, tiene MUCHOS errores, te confundirá más de lo que te ayudará; Te vendría bien un LIBRO de programación. 2) Tranquilo, estamos todos para ayudar, un gusto que te estés iniciando en programación por cuenta propia. Bien por otro lado, luego de pensarlo bien he modificado tu código, haciéndolo mucho más compacto, entendible y sin tantos errores. Pero ahora no sé si dejarte el código ya que, te dejé el pasado y creo que no lo leíste si quiera, de todos modos aquí te dejo el compilado (.exe) para que revises como ha quedado luego de la modificación que le he hecho. Ojo, si dudas de algún tipo de infección puedes analizarlo bien sea con tu antivirus, o online en virustotal.com. Si luego de ver como ha quedado la aplicación (A mi parecer con un margen de error bastante bajo y una estética en comparación al que tienes hecho bastante alta) te gusta, o quisieras saber cómo he hecho alguna que otra cosa, avísame por aquí mismo y te dejo el código con comentarios en cada línea para que vayas entendiendo alguna que otra función que de seguro te servirá. Una previa de como luce la aplicación: Gruß. ________________________________
Edito: Por si desconfías, prefiero dejarte el código sin comentarlo por si quieres analizarlo tu mismo, cualquier cosa ya sabes, puedes publicar tus dudas en el foro. Puedes ver el código online aquí. Te pido reconsideres si vas a ignorar mi respuesta, venga que invertí unas dos horas para ayudarte, no sería muy cortés que digamos el hecho de no prestar atención a las 501 líneas que (Con gusto claro...) he modificado para tu provecho.
|
|
« Última modificación: 25 Mayo 2011, 11:44 am por Krähne »
|
En línea
|
Yo soy más sabio que este hombre; es posible que ninguno de los dos sepamos cosa que valga la pena, pero él cree que sabe algo, pese a no saberlo, mientras que yo, así como no sé nada, tampoco creo saberlo. Yo no tengo conciencia de saber nada.
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Y ahora mi crítica No le hagas caso Krähne en cuanto a las etiquetas y los goto, esos son de otra epoca y vaya a saber el motivo por el cual siguen estando en C# Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
Yo pense lo mismo, pero que otra forma mas facil de hacer lo de verificar cada dato que ingresa que con un goto?
|
|
|
En línea
|
|
|
|
Krähne
Desconectado
Mensajes: 51
It can't rain all the time...
|
Y ahora mi crítica No le hagas caso Krähne en cuanto a las etiquetas y los goto, esos son de otra epoca y vaya a saber el motivo por el cual siguen estando en C# Saludos Ya interesante, se pueden usar los do-while, o los if... pero, con un goto sería más práctico, si bien... fue solo mi ejemplo, pueden modificarlo a sus necesidades/gustos como he dicho.
|
|
|
En línea
|
Yo soy más sabio que este hombre; es posible que ninguno de los dos sepamos cosa que valga la pena, pero él cree que sabe algo, pese a no saberlo, mientras que yo, así como no sé nada, tampoco creo saberlo. Yo no tengo conciencia de saber nada.
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
En el Console.Write, en vez de usar espacios para el padding.. puedes usar la posición del cursor.. Es más práctico y fácil
|
|
|
En línea
|
|
|
|
TwisteD420
Desconectado
Mensajes: 22
|
Como estan! Como siempre agradeciendo a todos por su ayuda, me ha sido MUY util, les vengo a dejar la ultima adición que le hice a mi "programita", este le brinda al usuario la posibilidad de modificar los datos a la hora de buscarlos, aqui les dejo el código: Este es la opción 2 del menú general. Console.WriteLine("*Ingrese 2 para buscar alumno"); case "2": Console.ForegroundColor = ConsoleColor.White; Console.Clear(); Console.WriteLine("Escriba el Nº de carnet"); search = Console.ReadLine(); Console.Clear(); int j = 0; bool find = false; while (j < carnet.Length && find == false) { if (search == carnet[j]) find = true ; else j++; } if (find == false) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("El numero de Carnet ingresado no existe"); Console.ReadLine(); Console.Clear(); } else { Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("Nº de carnet: {0}", carnet[j]); Console.WriteLine("Nombre: {0}", name[j]); Console.WriteLine("Fecha de nacimiento: {0}", date[j]); Console.WriteLine("Telefono: {0}", phone[j]); Console.WriteLine(""); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("¿Desea realizar un cambio?"); Console.WriteLine ("<S/N>"); string modans = Console.ReadLine(); while (modans == "s") { Console.Clear(); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Ingrese el Nº del campo que desea modificar"); Console.WriteLine(""); Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine("1* Nº Carnet"); Console.WriteLine("2* Nombre"); Console.WriteLine("3* Fecha de Nacimiento"); Console.WriteLine("4* Telefono"); string modopt = Console.ReadLine(); switch (modopt) { case "1": Console.Clear(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Ingrese el nuevo Nº de Carnet"); Console.ForegroundColor = ConsoleColor.White; string newcarnet = Console.ReadLine(); carnet[j] = newcarnet; break; case "2": Console.Clear(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Ingrese el nuevo Nombre"); Console.ForegroundColor = ConsoleColor.White; string newname = Console.ReadLine(); name[j] = newname; break; case "3": Console.Clear(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Ingrese la fecha de nacimiento correcta"); Console.ForegroundColor = ConsoleColor.White; string newdate = Console.ReadLine(); date[j] = newdate; break; case "4": Console.Clear(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Ingrese el nuevo Nº de Telefono"); Console.ForegroundColor = ConsoleColor.White; string newphone = Console.ReadLine(); phone[j] = newphone; break; } Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine(""); Console.WriteLine("¿Desea realizar otra modificación?"); Console.WriteLine("<S/N>"); modans = Console.ReadLine(); } } break;
En el Console.Write, en vez de usar espacios para el padding.. puedes usar la posición del cursor.. Es más práctico y fácil No estoy muy seguro de como hacer eso, si podrias explicarte un poco mas de forma resumida te lo agradecería mucho. Krähne: Fíjate que no logre ejecutar el codigo que me pasaste. Me sale un error de unicode, tengo Visual Studio 2005, no se si eso será el motivo. Saludos!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
hook a nivel aplicaciòn no a nivel sistema AYUDA
Programación Visual Basic
|
irra_b
|
1
|
3,245
|
9 Julio 2006, 01:54 am
por NYlOn
|
|
|
Ayuda soy principiante!
« 1 2 3 »
Programación Visual Basic
|
xDie
|
28
|
8,938
|
18 Enero 2007, 20:39 pm
por xDie
|
|
|
ayuda soy principiante
Ingeniería Inversa
|
nsoffia
|
4
|
5,281
|
21 Junio 2008, 23:28 pm
por apuromafo CLS
|
|
|
Ejercicios Python! [Nivel:Principiante]
Ejercicios
|
kyps
|
6
|
21,264
|
8 Abril 2010, 19:46 pm
por xyz0k
|
|
|
Crackme fácil nivel 1 principiante + Packer
Ingeniería Inversa
|
FlyNDSkyGMFnD
|
5
|
3,120
|
7 Enero 2019, 23:09 pm
por karmany
|
|