Título: Orden de letras de manera alfabetica en C Publicado por: EmmanuelTR9 en 8 Octubre 2019, 05:28 am Hola ante todo he estado intentando lograr ordenar las letras con su orden respectivo pero no logro hacerlo, y publico aca si me podrian ayudar. Al ingresar una letra la debe de empezar a acomodar pero no se muy bien como hacer ello. Código: #include <stdio.h> Título: Re: Orden de letras de manera alfabetica en C Publicado por: engel lex en 8 Octubre 2019, 05:39 am si son char, en el scanf no capturas con %d capturas con %c
te recomiendo buscar el algoritmo de ordenamiento de burbuja, es el mas simple de los algoritmos de organizacion Título: Re: Orden de letras de manera alfabetica en C Publicado por: EmmanuelTR9 en 8 Octubre 2019, 06:13 am si son char, en el scanf no capturas con %d capturas con %c te recomiendo buscar el algoritmo de ordenamiento de burbuja, es el mas simple de los algoritmos de organizacion Si he intentado con ese metodo pero no logro poderlo adaptar ya que tengo que usar do while Título: Re: Orden de letras de manera alfabetica en C Publicado por: engel lex en 8 Octubre 2019, 06:30 am un for es un do while compacto
en resumen Código
con este conocimiento puedes adaptar los codigos comunes, intentalo, muestra que lograste y si tines dudas, realizalas aqui sobre el ordenamiento de burbuja en detalle https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Algoritmos_y_Estructuras_de_Datos (https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Algoritmos_y_Estructuras_de_Datos) Título: Re: Orden de letras de manera alfabetica en C Publicado por: EmmanuelTR9 en 8 Octubre 2019, 16:09 pm un for es un do while compacto en resumen Código
con este conocimiento puedes adaptar los codigos comunes, intentalo, muestra que lograste y si tines dudas, realizalas aqui sobre el ordenamiento de burbuja en detalle https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Algoritmos_y_Estructuras_de_Datos (https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Algoritmos_y_Estructuras_de_Datos) Ya intente pero no logro ingresar de manera manual cada una de la letra Código: #include <stdio.h> Título: Re: Orden de letras de manera alfabetica en C Publicado por: dijsktra en 8 Octubre 2019, 18:41 pm si son char, en el scanf no capturas con %d capturas con %c te recomiendo buscar el algoritmo de ordenamiento de burbuja, es el mas simple de los algoritmos de organizacion A ver, según entiendo yo, si dice "según se lee la letra se acomoda", no se trata de ordenar, sino de insertar en un vector ordenado una letra. Pero el mayor problema, veo yo, tiene que ver con el hecho de capturar caracteres de la entrada estandard. Eso es otro problema, porque la entrada buferada exige que le des al intro, y a la vez el intro es un caracter (que a t'i no te vale para tu proposito). Propuesta: Código
Ejemplp: Código: gcc char.cc -o char && ./char Título: Re: Orden de letras de manera alfabetica en C Publicado por: EmmanuelTR9 en 9 Octubre 2019, 04:00 am A ver, según entiendo yo, si dice "según se lee la letra se acomoda", no se trata de ordenar, sino de insertar en un vector ordenado una letra. Pero el mayor problema, veo yo, tiene que ver con el hecho de capturar caracteres de la entrada estandard. Eso es otro problema, porque la entrada buferada exige que le des al intro, y a la vez el intro es un caracter (que a t'i no te vale para tu proposito). Propuesta: Código
Ejemplp: Código: gcc char.cc -o char && ./char Intente realizar como el mencionado pero no pude me puedes orientar un poco mas porfavor Título: Re: Orden de letras de manera alfabetica en C Publicado por: dijsktra en 9 Octubre 2019, 11:20 am Intente realizar como el mencionado pero no pude me puedes orientar un poco mas porfavor Copia el programa, estúdialo y dale curso en tu computador...Te sale ? Que parte te confunde? Sobre todo, distingue lo esencial (el algoritmo) de lo accesorio (la entrada/salida de datos). Título: Re: Orden de letras de manera alfabetica en C Publicado por: @XSStringManolo en 9 Octubre 2019, 13:20 pm Los char no dejan de ser números internamente. La letra A es el número 65, la B el 66...
Para ordenar yo buscaría si coincide el resultado con el esperado: Código Por si no queda claro, esto es lo mismo ue hacer: HOLA Código
Básicamente vas mirando por orden alfabético cada letra del diccionario si está o no en todas las letras de la palabra. Si encuentras la letra, esta se añade a un array resultado, que será el que contenga las letras ordenadas. Tanto la lógica como la implementación es sencilla. https://elcodigoascii.com.ar/ https://www.tutorialspoint.com/cprogramming/c_type_casting.htm Título: Re: Orden de letras de manera alfabetica en C Publicado por: CalgaryCorpus en 9 Octubre 2019, 15:47 pm Es innecesario poner los codigos ASCII, o saberselos o tener una tabla.
Siempre que se quiere tener el codigo de la letra 'a' se puede usar 'a' Código puede reemplazarse por Código
los caracteres literales son SIEMPRE vistos como la representacion numerica de ellos, asi que tambien seria posible expresiones como 'z'-'a' si es que se necesita saber la distancia entre el ultimo caracter a utilizar y el primero (eventualmente hay que sumarle 1 a esto, si se hace necesario). Lo mismo con las mayusculas. Título: Re: Orden de letras de manera alfabetica en C Publicado por: Serapis en 9 Octubre 2019, 23:44 pm Más sencillo aún:
Código: int k, num Título: Re: Orden de letras de manera alfabetica en C Publicado por: @XSStringManolo en 10 Octubre 2019, 07:31 am Más sencillo aún: Si pones "ana" te guarda "an" en vez de "aan" no?Código: int k, num Título: Re: Orden de letras de manera alfabetica en C Publicado por: dijsktra en 10 Octubre 2019, 08:44 am Más sencillo aún: Pero qué.... :-X :-X :-X
Título: Re: Orden de letras de manera alfabetica en C Publicado por: Serapis 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) 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.Si acaba, el programa da siempre la misma solución ABCDEFG..Z 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. |