INFORMATICA Y OCIO

Foros de informática
  Inicio    Normas    Buscar   Miembros   Clanes   Regístrese   Perfil   Conéctese para revisar sus mensajes   Conectarse 
[informatica] + [videos graciosos] + [ultimos mensajes] + [top usuarios] + [contacto]
Pseudocódigos

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Foroz comunity :: Programación
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
Namy
Nuevo Miembro
Nuevo Miembro


Registrado: 29 Oct 2008
Mensajes: 4

MensajePublicado: Mie Oct 29, 2008 11:36 pm    Título del mensaje: Pseudocódigos Responder citando
Hola a tod@s, soy nueva aquí y necesito ayuda con un ejercicio en el que me piden que diseñe un algoritmo y lo exprese en pseudocódigo (si es que se dice así).

He intentdo hacer el ejercicio (lo enunciaré a continuación) pero solo consigo hacerlo para una cantidad de secuencias finitas, 2, y lo tengo que hacer para secuencias infinitas.

El ejercicio es el siguinte: dada una secuencia de unos y ceros, terminada en un punto, mostrar por pantalla el tamaño de las subcadenas de 1 y decir cual de ellas es la mayor.

Si me ayudáis a resolverlo os estaré eternamente agradecida.

De todas formas gracias.

Si veo que alguien ayuda intentaré colgar lo que tengo hecho, para ver si voy bien y que podamos comparar.

Namy
Volver arriba
Ver perfil del usuario Enviar mensaje privado
esvom
Ganador DPS
Ganador DPS


Registrado: 27 Oct 2005
Mensajes: 1412
Ubicación: Guate.

MensajePublicado: Jue Oct 30, 2008 2:23 am    Título del mensaje: Responder citando
con secuencias infintas te referis a usar recursion???
_________________


Compra la verdad y no la vendas
Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
Namy
Nuevo Miembro
Nuevo Miembro


Registrado: 29 Oct 2008
Mensajes: 4

MensajePublicado: Jue Oct 30, 2008 11:33 am    Título del mensaje: Responder citando
No sé qué es recursion (perdona pero es que soy un poco corta).El ejercicio va de que tengo muchas secuencias (como ya dije, infinitas) acabadas en un punto, de la forma: 1011010. 10001010. 1101010101. y sigue, además no tienen por qué tener el mismo numero de cifras. Tengo que mostrar por pantalla los unos de cada cadena (la subcadena de unos, según tengo entendido el ejercicio) y decir cuál de las cadena es la mayor comparando la cantidad de unos de cada una.

En mi ejemplo hay 3 cadenas, y tal y como tengo hecho el ejercicio sólo puedo aplicarselo a las 2 primeras, no podría decir nada de la tercera.
La solución a mi ejemplo mediante mi ejercicio quedaría así:
>La cadena 1011010. tiene 4 unos
>La cadena 10001010. tiene 3 unos
>La cadena 1011010. es mayor que la cadena 10001010.
Y la tercera cadena ni se leería ni se compararía. Ese es mi fallo. Es por eso que necesito ayuda, espero haberme explicado bien, pero es que estoy empezando ahora, tan solo hace 1 mes que empecé a dar esa asignatura, que es la única de informática en la carrera, y sé lo basico ("diseñar" diagramas de flujo y pasarlo a pseudocódigo).

Gracias por atenderme.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
JoHnRiPeR
Conociendo Foroz
Conociendo Foroz


Registrado: 15 Ago 2008
Mensajes: 13

MensajePublicado: Jue Oct 30, 2008 8:52 pm    Título del mensaje: Responder citando
Si pones el pseudocódigo que tienes hecho sera mas fácil ayudarte.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Namy
Nuevo Miembro
Nuevo Miembro


Registrado: 29 Oct 2008
Mensajes: 4

MensajePublicado: Vie Oct 31, 2008 5:35 pm    Título del mensaje: Responder citando
Ya lo había pensado. No lo voy a poner, por ahora (aun así ya lo entregué, pero si lo resolvéis me será de gran ayuda para futuros ejercicios similares).

No lo puedo poner porque cualquiera que sea de mi clase y que haya buscado en el foro lo puede ver, y si está medio bien (cosa que dudo) lo puede copiar. Parece una tontería siendo tantas personas las que pueden entrar al foro, pero con más de 200 personas en el mismo curso de mi carrera sólo en una ciudad cualquier cosa puede pasar. Como la fecha límite para la entrega es hoy a las 23 horas lo pondré un poco más tarde o mañana (no creo que un viernes a las 11 de la noche esté en casa delante del ordenador).

Así que ya volveré a pasar por aquí más tarde o mañana (que es l más seguro)

Gracias por la ayuda.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Masher
Conociendo Foroz
Conociendo Foroz


Registrado: 26 Ago 2008
Mensajes: 37
Ubicación: Murcia

MensajePublicado: Mar Nov 04, 2008 2:03 pm    Título del mensaje: Responder citando
si la secuencia la puedes meter en solo una cadena del estilo 11011101.110100.0101011... es facil yo haria algo así:

1. Me declaro 5 variables
variable LONGITUD (tipo Entero) = 0
variable CONTADOR (tipo Entero) = 0
variable CADENA (tipo Cadena) = 11011101.110100.0101011... (toda la secuencia)
variable MAYOR (tipo Entero)= 0
variable LAMASLARGA (tipo Entero)=0

2. cuento los elementos que tiene la secuencia CADENA con todas las series y si el caracter es un . (punto), sumo 1 a la variable CONTADOR

LONGITUD = longitud (CADENA) ... numero de caracteres que tiene
for i=1 to LONGITUD
IF CADENA(i) = "." THEN CONTADOR=CONTADOR+1
next i

3. El numero total de series de la longitud que sean es CONTADOR+1 (ya que si hay 5 series en medio solo hay 4 puntos que las separan, por lo que para n series habria n-1 punto, o lo que es lo mismo si hay n puntos, tambien hay n+1 series). OK?

4. Hacemos otro bucle que pase tantas veces como series hay y dentro del bucle contamos los 1 que tiene cada serie, como MAYOR=0 hacemos los siguiente, si al analizar la primera cadena, tiene 6 unos, verificamos que MAYOR<6 en ese caso ponemos MAYOR=6 y LAMASLARGA=1, seguimos con el bucle en la segunda vuelta hacemos lo mismo, ... si Numero de unos es 3, comprobamos, si MAYOR<3 repetimos el proceso, si no, pasamos a la siguiente serie... al final del bucle, la variable LAMASLARGA nos guarda el dato del numero de serie y la variable MAYOR nos guarda el numero maximo de unos...

Te vale la solución? A pseudocodigo lo pasas tu que yo no me acuerdo

Un saludo
_________________
Todos somos unos ignorantes, lo que pasa es que no todos ignoramos las mismas cosas.
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor MSN Messenger
Namy
Nuevo Miembro
Nuevo Miembro


Registrado: 29 Oct 2008
Mensajes: 4

MensajePublicado: Mar Nov 04, 2008 5:51 pm    Título del mensaje: Responder citando
Pues esta genial, jeje, gracias. Lo malo es que ya lo entregue, y no me dio tiempo a comprenderlo antes de entragarlo.

Como dije voy a poner el pseudocodigo que hice, aunque me da corte, porque no esta bien. Pero bueno... lo dije.
Es una imagen, ya comprenderéis por qué. Y lo siento por tardar... pero mas vale tarde que nunca (tengo mis razones por haber tardado: me fui de donde estoy viviendo a casa de mis padres durante unos dias y no he tenido acceso a internet).

http://img261.imageshack.us/my.php?image=pseudoimagenem4.png
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Masher
Conociendo Foroz
Conociendo Foroz


Registrado: 26 Ago 2008
Mensajes: 37
Ubicación: Murcia

MensajePublicado: Mar Nov 04, 2008 6:23 pm    Título del mensaje: Responder citando
Eso que has hecho está bien, solo te falta el punto 1 que he puesto arriba,que es saber cuantas series hay en total y un bucle que pase tantas veces como series +1 hay y guardar los datos de cual es la mas grande y cuantos 1 tiene.

De todas formas, si necesitas ayuda con cualquier otra cosa ya sabes.

Ciao.
_________________
Todos somos unos ignorantes, lo que pasa es que no todos ignoramos las mismas cosas.
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor MSN Messenger
JoHnRiPeR
Conociendo Foroz
Conociendo Foroz


Registrado: 15 Ago 2008
Mensajes: 13

MensajePublicado: Mar Nov 04, 2008 9:32 pm    Título del mensaje: Responder citando
Aprovechando el código de Masher y optimizando un poco que estamos en crisis ;P algo así tendría que funcionar
Código:

LONGITUD2 = longitud (CADENA)
for i=1 to LONGITUD2

IF CADENA(i) = "1" LONGITUD=LONGITUD+1

ELSE IF CADENA(i) = "."
   CONTADOR = CONTADOR+1
   if MAYOR < LONGITUD
      MAYOR=LONGITUD
      LAMASLARGA=CONTADOR
   END IF
   LONGITUD=0
END IF

next i

END FOR
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Masher
Conociendo Foroz
Conociendo Foroz


Registrado: 26 Ago 2008
Mensajes: 37
Ubicación: Murcia

MensajePublicado: Mie Nov 05, 2008 5:23 pm    Título del mensaje: Responder citando
También es cierto, debe funcionar!!!!
jejeje

Gracias!
_________________
Todos somos unos ignorantes, lo que pasa es que no todos ignoramos las mismas cosas.
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor MSN Messenger
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Foroz comunity :: Programación Todas las horas están en GMT + 1 Hora
Página 1 de 1
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
 
 

 
Foroz comunity Tema RSS 




by phpBB  
informatica Videos graciosos webmasters theme by Scott Stubblefield Top foroz