| Ver tema anterior :: Ver siguiente tema |
| Autor |
Mensaje |
Namy Nuevo Miembro

Registrado: 29 Oct 2008
Mensajes: 4
|
Publicado: Mie Oct 29, 2008 11:36 pm Título del mensaje: Pseudocódigos |
|
|
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 |
|
 |
esvom Ganador DPS


Registrado: 27 Oct 2005
Mensajes: 1412
Ubicación: Guate.
|
Publicado: Jue Oct 30, 2008 2:23 am Título del mensaje: |
|
|
con secuencias infintas te referis a usar recursion??? _________________
Compra la verdad y no la vendas |
|
| Volver arriba |
|
 |
Namy Nuevo Miembro

Registrado: 29 Oct 2008
Mensajes: 4
|
Publicado: Jue Oct 30, 2008 11:33 am Título del mensaje: |
|
|
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 |
|
 |
JoHnRiPeR Conociendo Foroz

Registrado: 15 Ago 2008
Mensajes: 13
|
Publicado: Jue Oct 30, 2008 8:52 pm Título del mensaje: |
|
|
| Si pones el pseudocódigo que tienes hecho sera mas fácil ayudarte. |
|
| Volver arriba |
|
 |
Namy Nuevo Miembro

Registrado: 29 Oct 2008
Mensajes: 4
|
Publicado: Vie Oct 31, 2008 5:35 pm Título del mensaje: |
|
|
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 |
|
 |
Masher Conociendo Foroz


Registrado: 26 Ago 2008
Mensajes: 37
Ubicación: Murcia
|
Publicado: Mar Nov 04, 2008 2:03 pm Título del mensaje: |
|
|
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 |
|
 |
Namy Nuevo Miembro

Registrado: 29 Oct 2008
Mensajes: 4
|
Publicado: Mar Nov 04, 2008 5:51 pm Título del mensaje: |
|
|
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 |
|
 |
Masher Conociendo Foroz


Registrado: 26 Ago 2008
Mensajes: 37
Ubicación: Murcia
|
Publicado: Mar Nov 04, 2008 6:23 pm Título del mensaje: |
|
|
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 |
|
 |
JoHnRiPeR Conociendo Foroz

Registrado: 15 Ago 2008
Mensajes: 13
|
Publicado: Mar Nov 04, 2008 9:32 pm Título del mensaje: |
|
|
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 |
|
 |
Masher Conociendo Foroz


Registrado: 26 Ago 2008
Mensajes: 37
Ubicación: Murcia
|
Publicado: Mie Nov 05, 2008 5:23 pm Título del mensaje: |
|
|
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 |
|
 |
|
|
|