Domingo 22 de Diciembre de 2024, 09:03
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
C#
(Moderador:
ProfesorX
) »
Colas
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Colas (Leído 1487 veces)
badyalberto
Miembro activo
Mensajes: 77
Colas
«
en:
Martes 8 de Diciembre de 2009, 16:14 »
0
Código: C#
/* Escriu un programa que demani nom d'alumnes i nota obtinguda en un examen fins entrar una linea buida. Finalment mostra els alumnes suspesos i el aprovats en llistes separades
, amb la seva nota, pero mantenint en cada llista l'ordre d'introducció. */
using
System
;
using
System.Collections.Generic
;
using
System.IO
;
public
class
Dato
{
public
string
nombre
;
public
int
nota
;
}
public
class
Colas
{
static
void
Main
(
)
{
Queue
<
Dato
>
alumne
=
new
Queue
<
Dato
>
(
)
;
Dato alumno
=
new
alumno
(
)
;
string
nombre1
;
int
nota1
;
Console
.
WriteLine
(
"Introdueix el nom de l'alumne:"
)
;
nombre1
=
Console
.
ReadLine
(
)
;
nombre
.
alumne
.
Enqueue
(
nombre1
)
;
Console
.
WriteLine
(
"Introdueix la nota de l'alumne:"
)
;
nota1
=
Console
.
ReadLine
(
)
;
nota1
=
Convert
.
ToInt32
(
nota1
)
;
alumno
.
nota
=
nota1
;
// alumne.nota.Enqueue(alumno.nota);
while
(
alumno
.
nombre
==
null
)
{
//alumne=Console.ReadLine();
}
Console
.
ReadKey
(
)
;
}
}
Tengo un lio con las colas, como puedo hacer para meter el nombre y la nota del alumno q es de tipo dato, dentro de la cola?
Tweet
tannke
Miembro MUY activo
Mensajes: 152
Nacionalidad:
Re: Colas
«
Respuesta #1 en:
Martes 8 de Diciembre de 2009, 17:19 »
0
Ahora mismo ando un poco perdido y mal de tiempo, solo decirte de momento que en la linea 28 puedes tener un problema, deberias ponerlo de la siguiente manera:
nota1 = Int32.Parse(Console.ReadLine()); y eliminar la siguiente linea.
otra manera seira declarar una variable sting de nota y despues transformarla:
string notatemp;
notatemp=Console.ReadLine();
nota1=Convert.ToInt32(notatemp);
ProfesorX
Moderador
Mensajes: 796
Nacionalidad:
Re: Colas
«
Respuesta #2 en:
Martes 8 de Diciembre de 2009, 19:19 »
0
Por lo menos hubieras traducido el ejemplo que bajaste de internet al español
Tienes un error en esta linea:
Código: C#
Dato alumno
=
new
alumno
(
)
;
Deberia ser:
Código: C#
Dato alumno
=
new
Dato
(
)
;
Y luego, una vez que leiste tu datos en la variable alumno, solo tienes que hacer:
Código: C#
alumne
.
Enqueue
(
alumno
)
;
Para "encolar" tus datos de alumno.
Saludos
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
badyalberto
Miembro activo
Mensajes: 77
Re: Colas
«
Respuesta #3 en:
Martes 8 de Diciembre de 2009, 20:48 »
0
Código: C#
/* Escriu un programa que demani nom d'alumnes i nota obtinguda en un examen fins entrar una linea buida. Finalment mostra els alumnes suspesos i el aprovats en llistes separades
, amb la seva nota, pero mantenint en cada llista l'ordre d'introducció. */
using
System
;
using
System.Collections.Generic
;
using
System.IO
;
public
class
Dato
{
public
string
nombre
;
public
int
nota
;
}
public
class
Colas
{
static
void
Main
(
)
{
Queue
<
Dato
>
alumne
=
new
Queue
<
Dato
>
(
)
;
Dato alumno
=
new
Dato
(
)
;
string
nombre1
;
int
nota1
;
do
{
Console
.
WriteLine
(
"Introdueix el nom de l'alumne:"
)
;
nombre1
=
Console
.
ReadLine
(
)
;
alumne
.
Enqueue
(
alumno
)
;
Console
.
WriteLine
(
"Introdueix la nota de l'alumne:"
)
;
nota1
=
Int32
.
Parse
(
Console
.
ReadLine
(
)
)
;
alumne
.
Enqueue
(
alumno
)
;
}
while
(
nombre1
!=
null
)
;
Console
.
WriteLine
(
"Alumnos Suspendidos"
)
;
while
(
alumne
.
Count
>
0
)
//Saber el numero de elementos de la cola.
{
if
(
alumno
.
nota
<
5
)
{
nombre1
=
alumne
.
Dequeue
(
)
;
//Sacar de la cola elementos.
Console
.
Write
(
nombre1
)
;
nota1
=
alumne
.
Dequeue
(
)
;
Console
.
Write
(
nota1
)
;
Console
.
WriteLine
(
)
;
}
}
Console
.
ReadKey
(
)
;
}
}
Y ahora para sacar los valores, y printar los suspendidos intento hacerlo asi, pero me da error.
Me hago un lio al convertir el tipo dato a string o int :S
ProfesorX
Moderador
Mensajes: 796
Nacionalidad:
Re: Colas
«
Respuesta #4 en:
Miércoles 9 de Diciembre de 2009, 01:59 »
0
No necesitas meter (enqueue) cada valor por separado (nombre y nota) ya que forman parte de la misma variable (alumno), con que metas alumno es suficiente. De hecho, lo que haces es meter 2 veces el mismo valor a la cola. Lo que debes hacer es un new Dato() para cada nombre diferente que vayas a meter.
Para sacar los datos de la cola es lo mismo, no necesitas sacar los valores de nombre y nota por separado, con que saques alumno es mas que suficiente.
Normalmente no hago las tareas, solo doy pistas, pero en vista de que parece que estas completamente "encolado", perdon, enredado, te dejo la manera en que lo debes hacer. Analizalo.
Código: C#
using
System
;
using
System.Collections.Generic
;
using
System.IO
;
public
class
Dato
{
public
string
nombre
;
public
int
nota
;
}
public
class
Colas
{
static
void
Main
(
)
{
Queue
<
Dato
>
alumne
=
new
Queue
<
Dato
>
(
)
;
Dato alumno
;
string
nombre1
;
int
nota1
;
do
{
Console
.
WriteLine
(
"Introdueix el nom de l'alumne:"
)
;
nombre1
=
Console
.
ReadLine
(
)
;
Console
.
WriteLine
(
"Introdueix la nota de l'alumne:"
)
;
nota1
=
Int32
.
Parse
(
Console
.
ReadLine
(
)
)
;
// Debes hacer new Dato() por cada dato nuevo que vayas a encolar
alumno
=
new
Dato
(
)
;
alumno
.
nombre
=
nombre1
;
alumno
.
nota
=
nota1
;
alumne
.
Enqueue
(
alumno
)
;
}
while
(
nombre1
!=
""
)
;
Console
.
WriteLine
(
"Alumnos Suspendidos"
)
;
while
(
alumne
.
Count
>
0
)
//Saber el numero de elementos de la cola.
{
// Retiras un elemento de la cola y lo guardas en alumno
alumno
=
alumne
.
Dequeue
(
)
;
if
(
alumno
.
nota
<
5
)
{
Console
.
WriteLine
(
alumno
.
nombre
)
;
Console
.
WriteLine
(
alumno
.
nota
)
;
Console
.
WriteLine
(
)
;
}
}
Console
.
ReadKey
(
)
;
}
}
Saludos
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
badyalberto
Miembro activo
Mensajes: 77
Re: Colas
«
Respuesta #5 en:
Miércoles 9 de Diciembre de 2009, 08:25 »
0
Okis, muchas gracias
Ahora se entiende xDDD
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
C#
(Moderador:
ProfesorX
) »
Colas