Foro SofosAgora

Foro abierto a los intereses de sus usuarios. Debate, aprende y diviértete.
Fecha actual 22 Feb 2019, 16:34

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 1 mensaje ] 
Autor Mensaje
NotaPublicado: 03 Ene 2019, 03:54 
Desconectado
Avatar de Usuario

Registrado: 10 Ago 2011, 20:39
Mensajes: 8857
Quiero un pseudocódigo que muestre en pantalla algo parecido (*) a esto:
0 paréntesis:
C < C && C < C && C < C && C < C
1 paréntesis:
(C < C && C < C) && C < C && C < C
C < C && (C < C && C < C) && C < C
C < C && C < C && (C < C && C < C)
2 paréntesis:
((C < C && C < C) && C < C) && C < C
(C < C && C < C) && (C < C && C < C)
C < C && ((C < C && C < C) && C < C)

(*): Mi falta de especificación es porque hay muchas reglas que deberían cumplirse pero la mayoría estoy abierto a que no se cumplan, de hecho no cumplí todas.

Posiblemente las reglas que más me importan:
- Los abiertos deben estar al inicio de la sentencia o justo después de "&& ".
- Los cerrados deben estar justo antes de " &&" o al final de la sentencia.

Otras:
- Mirando de izquierda a derecha, no puede haber X cerrados si no hubo X o más abiertos.
- La cantidad de cerrados debe ser igual a la cantidad de abiertos.
- El mínimo contenido de unos paréntesis es "C < C && C < C". O sea que por ejemplo "(C < C)" no está permitido.
- Si hay un paréntesis al inicio no debe haber otro al final.
- El orden normal... no sé cual es.

Creo que esas son todas. En realidad los paréntesis no tienen sentido si la sentencia sólo tiene "&&"s, no "or"s (o xor u otras cosas que no aprendí), pero por ahora no me importa eso.

Mi modo de hacer esto sería crear variables así:
PA1 = 0
PC1 = 0
PA2 = 0
PC2 = 0
etc, o sea, marcarían la posición de los paréntesis abiertos, y cerrados. Esos números irían aumentando más o menos como aumenta un nùmero normal, o sea, esos números formarían un número: 0000, e iría aumentando 0001, 0002, etc, teniendo 4 como máximo (en vez de 9) porque sólo hay 4 posiciones posibles para cada tipo de paréntesis. 0 significaría que no hay. De hecho 0001 no tiene sentido, los 1eros números deben ser mayores o iguales a los siguientes.

Bueno, no es tan fácil, menos teniendo en cuanta más reglas, pero lo más difícil para mí es la transformación de eso al modo conque lo quiero. O sea, si tengo 1100

En realidad acabo de pensar (o recordar, quizá me había olvidado) que hay otro modo. En vez de crear variables que indiquen la posición de los paréntesis, que indiquen una posición y cuántos paréntesis hay en ellas. Creo que así es más fácil, veremos...

Dejo el tema por si interesa o alguien quiere intentar dar la solución a pesar de que "me arrepiento" de haberlo planteado.

_________________
Si no puedes hacerlo, intenta primero hacer algo más simple aunque similar.


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 1 mensaje ] 

Todos los horarios son UTC + 1 hora [ DST ]


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
cron
POWERED_BY
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO