elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Orden de letras de manera alfabetica en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Orden de letras de manera alfabetica en C  (Leído 10,225 veces)
Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: Orden de letras de manera alfabetica en C
« Respuesta #10 en: 9 Octubre 2019, 23:44 pm »

Más sencillo aún:

Código:
int k, num
buleano escape
array de chars arrayChar(0 a 25)  // consideramos solo 26 letras o también la 'ñ'?

Bucle
 num = ((pedir caracter al usuario) - 65).ToInt  // ó 97 si partes desde 'a' hasta 'z', etc... debes adaptarlo a lo que te pidan.
 
 si ((num => 0)  y (num <=25)) 
    Si arrayChar(num) = ""
        arrayChar(num) = (num + 65).ToChar
        k +=1
        si k=26
            escape = TRUE
        fin si
    //Osi num = ???   //cierto carácter podría actuar como escape...(recuerda que restamos 65 al valor, para posicionarlo en su lugar en el array)
    //    escape = true   
    fin si
 fin si
Repetir Mientras (escape = FALSE)  // una condición de salida basado en???

// volcar la salida:
bucle para k desde 0 hasta 25
    Si arrayChar(k) <> ""
       imprimir arrayChar(k)
    fin si
siguiente

 


En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: Orden de letras de manera alfabetica en C
« Respuesta #11 en: 10 Octubre 2019, 07:31 am »

Más sencillo aún:

Código:
int k, num
buleano escape
array de chars arrayChar(0 a 25)  // consideramos solo 26 letras o también la 'ñ'?

Bucle
 num = ((pedir caracter al usuario) - 65).ToInt  // ó 97 si partes desde 'a' hasta 'z', etc... debes adaptarlo a lo que te pidan.
 
 si ((num => 0)  y (num <=25)) 
    Si arrayChar(num) = ""
        arrayChar(num) = (num + 65).ToChar
        k +=1
        si k=26
            escape = TRUE
        fin si
    //Osi num = ???   //cierto carácter podría actuar como escape...(recuerda que restamos 65 al valor, para posicionarlo en su lugar en el array)
    //    escape = true   
    fin si
 fin si
Repetir Mientras (escape = FALSE)  // una condición de salida basado en???

// volcar la salida:
bucle para k desde 0 hasta 25
    Si arrayChar(k) <> ""
       imprimir arrayChar(k)
    fin si
siguiente

 
Si pones "ana" te guarda "an" en vez de "aan" no?




En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

dijsktra

Desconectado Desconectado

Mensajes: 110


Mr Edsger Dijsktra (Tribute to)


Ver Perfil
Re: Orden de letras de manera alfabetica en C
« Respuesta #12 en: 10 Octubre 2019, 08:44 am »

Más sencillo aún:


Pero qué.... :-X :-X :-X

  • CalgaryCorpus ya ha comentado que no es necesario operar con enteros.
  • El programa solo acaba si la palabra tiene las 25 letras al menos una vez cada una! (Asumiendo que k=1 al principio, cosa que no se expresa)
  • Si acaba, el programa da siempre la misma solución ABCDEFG..Z

« Última modificación: 10 Octubre 2019, 08:46 am por dijsktra » En línea

Si la depuración es el proceso de eliminar fallos en el software, entonces programar debe ser el proceso de ponerlos dentro. (Edsger Dijsktra)
Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: Orden de letras de manera alfabetica en C
« Respuesta #13 en: 10 Octubre 2019, 15:29 pm »

Si pones "ana" te guarda "an" en vez de "aan" no?

En efecto... entiendo que quiere guardar las letras sin repetición.
El interesado, no explicita el caso concreto, tampoco creo haber leído en otros mensajes (suyos) que exponga más claramente la cuestión o donde amplíe detalles.

Cita de: dijsktra
     CalgaryCorpus ya ha comentado que no es necesario operar con enteros.
En efecto, no son necesarios... pero cuando explicas a un principiante, la solución más óptima rara vez resulta ser la más útil para él, un pequeño rodeo que pueda seguir, suele serle más útil para entender.

En el mismo sentido, por ejemplo engel-lex le sugiere Bubblesort, a todas luces ineficiente, pero que puede entender perfectamente, por el mismo motivo, no procede indicarle Quicksort (por ejemplo).


Cita de: dijsktra
    El programa solo acaba si la palabra tiene las 25 letras al menos una vez cada una! (Asumiendo que k=1 al principio, cosa que no se expresa)
    Si acaba, el programa da siempre la misma solución ABCDEFG..Z
El interesado no especifica en parte alguna cual es la condición de escape, luego no hay certeza ninguna al respecto... cada cual ha asumido, lo que le ha parecido más razonable.

Yo por ejemplo, asumí en una primera impresión (como lo más razonable) que el usuario introduce una palabra (o frase), y el bucle debiera tomar las letras únicas que contiene dicha introducción y mostrarlas alfabéticamente ordenadas ...
...pero luego viendo que en el código que expone en el bucle introduce la petición con cada ciclo, entonces cambio para asumir que la entrada es carácter a carácter (aunque sea principiante, sería de esperar que como mínimo sepa discernir que si se piden caracteres, solicitar uno en cada ciclo, o si se pide operar con una palabra, solicitarla una sola vez)....
Luego, entiendo ahí que el bucle acaba o bien cuando se completa (cuando se introducen todas las letras y el array queda lleno (de ahí: si k=26;  escape = TRUE), cosa bastante rara, porque uno puede ponerse tonto pulsando letras y no recordar cual queda por introducir y tirarse media hora introduciendo caracteres salvo que al final decida ser exhaustivo e introducirlas todas ordenadas, pero posibilidad que hay que cubrir), o bien que el bucle acaba con alguna indicación especial (por ejemplo al pulsar determinada tecla, o incluso terminar tras la introducción de solo 26-27 caracteres, sean cuales sean).... 
       
Pero vamos, me parece válido cualquier solución que dé salida al bucle bajo otras condiciones. Toda vez que el interesado, no lo especifica, que cada cual resuelva dicha ambigüedad de alguna manera, resulta razonable.

En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
acomodar las letras en orden
Programación C/C++
jesusxdxd 4 5,104 Último mensaje 4 Junio 2012, 09:43 am
por BlackZeroX
Ordenar letras de una palabra en orden alfabetico
Programación C/C++
vivinice 1 10,009 Último mensaje 20 Junio 2016, 17:16 pm
por AlbertoBSD
Orden en que asigna Windows las letras de unidades a las particiones « 1 2 »
Windows
cixert 14 5,722 Último mensaje 5 Noviembre 2018, 18:20 pm
por cixert
ordenar por orden alfabetica archivo txt en C
Programación C/C++
luch21 0 4,371 Último mensaje 13 Noviembre 2018, 00:16 am
por luch21
Este es el motivo por el que las letras del teclado tienen ese orden
Noticias
El_Andaluz 0 1,396 Último mensaje 18 Mayo 2020, 03:53 am
por El_Andaluz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines