Título: problema con el siguiente codigo [C] Publicado por: SoyelRobert en 3 Enero 2014, 14:56 pm Estoy intentado hacer un programa al cual se le introduce un texto por teclado y que vaya cambiando las vocales por su siguiente vocal:
Si lee una 'a' devuelve una 'e'. Si lee una u devuelve una 'a'. No se tienen en cuenta mayusculas ni vocales acentuadas. Este es el codigo: Código: #include <stdio.h> El problema es que no cambia la vocal: si la entrada es: Citar hola que tal la salida es: Citar hola que tal cuando deberia ser: Código: Hule qui tel Una vez lo consiga hacer con la entrada por teclado y la salida por monitor el siguiente paso seria hacerlo con ficheros. salu2 Título: Re: problema con el siguiente codigo [C] Publicado por: leosansan en 3 Enero 2014, 15:26 pm Estoy intentado hacer un programa al cual se le introduce un texto por teclado y que vaya cambiando las vocales por su siguiente vocal: Si lee una 'a' devuelve una 'e'. Si lee una u devuelve una 'a'. No se tienen en cuenta mayusculas ni vocales acentuadas. ................................................................... Una vez lo consiga hacer con la entrada por teclado y la salida por monitor el siguiente paso seria hacerlo con ficheros. salu2 Antes que nada procura indentar o sangrar el código para que sea más legible y elige las etiquetas de C++, aunque el código sea en C. Salen de esa forma coloreado y es más fácil leerlo. Y en tema pon una breve descripción de lo que buscas, no aclara nada eso de "problema con el siguiente codigo [C]" Te pongo el código con las correciones que me han parecido y que no se aparten de tu código original. Por cierto, ya veras cómo salir del bucle. ;) ;) ;). Código
¡¡¡¡ Saluditos! ..... !!!! :rolleyes: ;) ;) ;) :rolleyes: Título: Re: problema con el siguiente codigo [C] Publicado por: SoyelRobert en 3 Enero 2014, 16:17 pm hola leosansan, no se lo que quiere decir indentar un cogido la verdad...
y respecto a lo que has programado, se sale un poco de lo que en un principio buscaba programar, mira: el asunto era crear un programa en C que al tu introducir un texto cambie todas las vocales que aparezcan por la siguiente vocal que le toque, no se trata de introducir una única vocal para que la modifique sino introducir un texto entero donde aparezcan blancos, saltos de linea, etc (cualquier caracter hasta que se acabe el fichero, EOF) salu2 y gracias Título: Re: problema con el siguiente codigo [C] Publicado por: joanj94 en 3 Enero 2014, 16:28 pm Código: #include <stdio.h> Nose si asi funciona, solo meti los claudators al if, porque vamos, a medida que lee las letras queres que si es una vocal la canvie segun la funcion sigVocal. no? Título: Re: problema con el siguiente codigo [C] Publicado por: SoyelRobert en 3 Enero 2014, 16:32 pm Código: #include <stdio.h> Nose si asi funciona, solo meti los claudators al if, porque vamos, a medida que lee las letras queres que si es una vocal la canvie segun la funcion sigVocal. no? si metes el printf dentro del if solo pintara en caso de que c sea una vocal, por lo tanto, no pintria consonantes. Título: Re: problema con el siguiente codigo [C] Publicado por: joanj94 en 3 Enero 2014, 16:35 pm Código: Código: El printf esta fura del if Título: Re: problema con el siguiente codigo [C] Publicado por: SoyelRobert en 3 Enero 2014, 16:44 pm si perdona me he colado pero nada tampoco sirve , no cambia las vocales la salida es la misma que la entrada al igual que en mi codigo :(
Título: Re: problema con el siguiente codigo [C] Publicado por: joanj94 en 3 Enero 2014, 16:54 pm Por cierto, como termina el supuesto texto? con un . o simplemente termina?
Título: Re: problema con el siguiente codigo [C] Publicado por: SoyelRobert en 3 Enero 2014, 17:08 pm Por cierto, como termina el supuesto texto? con un . o simplemente termina? ?? con un EOF (control Z) Título: Re: problema con el siguiente codigo [C] Publicado por: amchacon en 3 Enero 2014, 17:09 pm Indentar es poner las tabulaciones, vamos poner el código bonito.
Este es tú codigo sin indentar: Código
Este es el código indentado: Código
En cuanto al fallo de tú código, scanf lee hasta un espacio o salto de línea. Para leer letra a letra puedes usar getch() de la librería conio.h, decirte que no es estandar pero cumple su propósito. Otro error que tienes es: Código
No devuelves nada? Título: Re: problema con el siguiente codigo [C] Publicado por: joanj94 en 3 Enero 2014, 17:24 pm Bien he supuesto que el texto termina con un punto y te he codificado esto, y funciona bien
Código
Título: Re: problema con el siguiente codigo [C] Publicado por: SoyelRobert en 3 Enero 2014, 17:31 pm exactamente, justo lo acabo de sacar yo tambien:
Código
;-) gracias EDIT: no se como ponerlo bonito la verdad :( Título: Re: problema con el siguiente codigo [C] Publicado por: joanj94 en 3 Enero 2014, 17:35 pm Bueno yo no se meter los colores, pero lo tabulo jajaja
PD: Un consejo los break, goto, y uso de librerias estilo conio.h evitalos si no son requeridos, lo digo porque si es un ejercicio de universidad o lo que sea, muchas veces te pueden penalizar por eso ;) (ademas de garantizar asi una maxima compatibilidad en todos los OS) Título: Re: problema con el siguiente codigo [C] Publicado por: SoyelRobert en 3 Enero 2014, 17:41 pm Bueno yo no se meter los colores, pero lo tabulo jajaja PD: Un consejo los break, goto, y uso de librerias estilo conio.h evitalos si no son requeridos, lo digo porque si es un ejercicio de universidad o lo que sea, muchas veces te pueden penalizar por eso ;) (ademas de garantizar asi una maxima compatibilidad en todos los OS) exactamente, de hecho todos mis examenes empiezan asi: (http://i42.tinypic.com/2d0xpy0.png) sin embargo por breaks y goto no me penalizan. Título: Re: problema con el siguiente codigo [C] Publicado por: rir3760 en 3 Enero 2014, 17:55 pm exactamente, justo lo acabo de sacar yo tambien Todavía hay un error en el programa, cuando se ejecuta la primera iteracion del bucle:Código El valor inicial de la variable "c" es no definido o basura, para procesar la variable solo después de almacenar en ella un valor se debe cambiar el bucle por uno con la condición al principio de este: Código
PD: Un consejo los break, goto, y uso de librerias estilo conio.h evitalos si no son requeridos En el caso del programa de SoyelRobert las sentencias "break;" en la función "sigVocal" son necesarias para tener el efecto deseado, si se eliminaran la función siempre retornaría 'a' como la siguiente vocal.Un saludo Título: Re: problema con el siguiente codigo [C] Publicado por: joanj94 en 3 Enero 2014, 17:59 pm En el caso del programa de SoyelRobert las sentencias "break;" en la función "sigVocal" son necesarias para tener el efecto deseado, si se eliminaran la función siempre retornaría 'a' como la siguiente vocal. Un saludo Por eso en el que yo le hice, uso el else if Título: Re: problema con el siguiente codigo [C] Publicado por: leosansan en 3 Enero 2014, 18:28 pm ............................................. el asunto era crear un programa en C que al tu introducir un texto cambie todas las vocales que aparezcan por la siguiente vocal que le toque, no se trata de introducir una única vocal para que la modifique sino introducir un texto entero donde aparezcan blancos, saltos de linea, etc (cualquier caracter hasta que se acabe el fichero, EOF) En todo caso hasta que se acabe la cadena o frase, es decir hasta \0. Lo otro sería para ficheros, que no es el caso, supongo. Citar Introduzca frase: leosansan salio una tarde que llovia. leusensen selou ane terdi qai lluvoe. Código
¡¡¡¡ Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Título: Re: problema con el siguiente codigo [C] Publicado por: SoyelRobert en 3 Enero 2014, 18:32 pm En todo caso hasta que se acabe la cadena o frase, es decir hasta \0. Lo otro sería para ficheros, que no es el caso, supongo. sip jaja exactante, queria hacerlo para sentencias para la entrada estandar y para textos en caso de tratarse de ficheros: Código
::) Título: Re: problema con el siguiente codigo [C] Publicado por: rir3760 en 3 Enero 2014, 19:48 pm Por eso en el que yo le hice, uso el else if En este caso se puede utilizar cualquiera de las dos sentencias de selección (if, switch) sin problemas, que la sentencia switch requiera sentencias "break;" para su correcto funcionamiento no la invalida.Un saludo Título: Re: problema con el siguiente codigo [C] Publicado por: amchacon en 3 Enero 2014, 19:55 pm Insisto SoyelRobert:
Código
Deja 4 espacios después de una llave, asi se pueden identificar bloques fácilmente: Código
Eso en un editor de código es seleccionar las líneas y apretar TAB. O bien usar el plugin que indenta el código automaticamente (en el Codeblocks se llama "Source code formatter (AStyle)"). Estás prácticas son prácticamente obligadas para cualquier progamador, de hecho algunos lenguajes (como el python) no tienen llaves y se identifican los bloques con la indentación. Título: Re: problema con el siguiente codigo [C] Publicado por: SoyelRobert en 3 Enero 2014, 20:18 pm Eso en un editor de código es seleccionar las líneas y apretar TAB. O bien usar el plugin que indenta el código automaticamente (en el Codeblocks se llama "Source code formatter (AStyle)"). Estás prácticas son prácticamente obligadas para cualquier progamador, de hecho algunos lenguajes (como el python) no tienen llaves y se identifican los bloques con la indentación. gracias :) Título: Re: problema con el siguiente codigo [C] Publicado por: leosansan en 3 Enero 2014, 21:55 pm sip jaja exactante, queria hacerlo para sentencias para la entrada estandar y para textos en caso de tratarse de ficheros: ........................................... Que sirva de precedente, aclaren bien las preguntas que hagan y así no perdemos el tiempo en buscarte soluciones que no les servirán. Y esto lo digo de forma general, no por tí en particular.¡¡¡ Pero es que resulta frustante !!!, da ganas de dejarlo. ;) ¡¡¡¡ Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) |