Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - howaboutno

#31
Programación C/C++ / Re: ejercicio en C
29 Octubre 2012, 22:44 PM
Cita de: leosansan en 29 Octubre 2012, 21:53 PM
Tienes que pasar a la función menú la variable opción por referencia, para luego usar el valor adecuado en la función main.
Por otro lado en los for puedes poner la condición terminar de leer frase al llegar al carácter nulo='\0'. Más o menos te quedaría así:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <string.h>
    int menu(int *opcion);
    void mayus(char*);
    void minus(char*);
    int main()
    {       char frase[80];
            int opcion=0,op;
            printf("Introduce una frase \n");
            gets(frase);
            op=menu(&opcion);
            if (op==1)
                mayus(frase);
            if (op==2)
                minus(frase);
            return 0;
    }

    int menu(int *opcion)
    {
            printf("1.Pasar a mayusculas\n");
            printf("2.Pasar a minusculas\n");
            do
            {
            printf("Introduce opcion: \n");
                        scanf("%d",&opcion);
            }while(opcion<1 || opcion>2);
            return opcion;
    }

    void mayus(char *frase)
    {
           int t;
            for(t=0;frase[t]!='\0';t++)
                    frase[t]=toupper(frase[t]);
            printf("%s",frase);
    }

    void minus(char *frase)
    {
            int t;
            for(t=0;frase[t]!='\0';t++)
                    frase[t]=tolower(frase[t]);
            printf("%s",frase);
        }

Saludos!.

muchas gracias!! ya he visto mis fallos que son bastantes, aun me queda por aprender, pero dicen que de los fallos se aprende :P
#32
Programación C/C++ / Re: ejercicio en C
29 Octubre 2012, 22:43 PM
Cita de: Caster en 29 Octubre 2012, 21:38 PM
Ya se, tambien hay algunos fallos en los bucles para transformar la cadena, tu primero leete el post que te deje mas arriba, editalo con los consejos que se dan, y vuelve a postear el codigo y yo te ayudo. Para que se ejecute una funcion segun lo que elijas se neceita una estructura condicional, como puede ser un if - else, o un switch por ejemplo.

Saludos

muchas gracias, ya lo he leído pero es que la profesora que me da el curso de programación nos obliga a poner el gets, el fflush...
#33
Programación C/C++ / Re: ejercicio en C
29 Octubre 2012, 21:05 PM
Cita de: Caster en 29 Octubre 2012, 20:35 PM
Buenas!

Bueno supongo que en el codigo que quieres compilar incluiras las librerias, aunque aqui no las muestras, sin ellas no pretendas que te compile el codigo:

#include <stdio.h>
#include <string.h>


Depues, en la funcion mayus(), utilizas la variable t, pero la tienes como un comentario, aasi que realmente no esta declarada:

//int t;

Y despues otros consejos:

-Evita el uso de gets()
-Evita el uso de fflush(stdin)

Mirate este post y lo veras con mas detalle:

http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Otro fallo, elijas la opcion que elijas siempre se ejecutara primero la funcion mayus() y despues minus() porque si que haces al ususario escoger la opcion, pero despues no esta programador para que se ejecute segun el susuario elija, no se si me explico bien.

Saludos

PD: Edita tu post y pon tu codigo entre etiquetas geshi, para que sea mas facil de leer

ya, lo del int t; ha sido fallo mio pero no por eso no funciona, entre tantos cambios que he hecho lo habré liado mas de la cuenta. Si, en eso pensaba yo, en lo del menú que se ejecutan aparte, pero como lo hago para que se ejecute en funcion de la opcion elegida?
#34
Programación C/C++ / ejercicio en C
29 Octubre 2012, 19:18 PM
hola!
para el siguiente problema: llevo dandole vueltas y me he ido liando...lo que tengo es esto pero no me funciona, ya no se que hacer... alguien me puede sacar del lio que tengo?
Leer una cadena  de hasta 80 caracteres y pasarla en función de una variable
de opción (menu) a mayúsculas ó a minúsculas e imprimir la cadena resultante



#include <stdio.h>
#include <string.h>
#include <ctype.h>
    int menu(void);
   void mayus(char*);
   void minus(char*);
   int main()
   {       char frase[80];
   
           printf("Introduce una frase \n");
           fflush(stdout);
           fflush(stdin);
           gets(frase);
   
           menu();
           mayus(frase);
           minus(frase);
           return 0;
   } //fin del main
   
   int menu(void)
   {
           int opcion;
           printf("1.Pasar a mayusculas\n");
           fflush(stdout);
           printf("2.Pasar a minúsculas\n");
           fflush(stdout);
           do
           {
           printf("Introduce opción: \n");
           fflush(stdout);
           scanf("%d",&opcion);
           }while(opcion<1 || opcion>2);
           return opcion;
   
       
   } //fin del menu
   
   void mayus(char *frase)
   {
           int t;
           char *p;
           p=frase;
         
           for(t=0;frase[t];t++)
                   {
                   frase[t]=toupper(frase[t]);
                   p++;
                   }
           printf("%s",p);
           fflush(stdout);
   } //fin de funcion mayusculas
   
   void minus(char *frase)
   {
           int t;
           for(t=0;t<strlen(frase);t++)
                   {
                   frase[t]=tolower(frase[t]);
           printf("%s",frase);
           fflush(stdout);
                   }
   } //fin de funcion minusculas
 
#35
Programación C/C++ / Re: ayuda en C
28 Octubre 2012, 17:39 PM
ah, claro!! gracias =)
#36
Programación C/C++ / ayuda en C
28 Octubre 2012, 14:20 PM
Hola, tengo el siguiente enunciado:
Construir una función que dada una frase y una palabra nos diga la posición de dicha palabra el la frase y sino devuelva un cero .

Lo que he hecho es el siguiente código pero no me funciona y no veo el fallo. me podeis ayudar? gracias

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int posicion(char*, char *);
int main(void)
{   char frase[80];
   char palabra[8];

   printf("Introduce una frase \n");
   fflush(stdout);
   fflush(stdin);
   gets(frase);
   printf("Introduce una palabra \n");
   fflush(stdout);
   fflush(stdin);
   gets(frase);

   printf("La posición es: %d",posicion(frase,palabra));
   fflush(stdout);
   return 0;
}
int posicion(char *frase, char *palabra)
{
   int valor=0;
   char *p;

   p=strstr(frase,palabra);

   if(p !=NULL)
   {
      valor=p-frase+1;
      return valor;
   }
   else
   {
      return 0;
   }

}
#37
Programación C/C++ / Re: ayuda en C
21 Octubre 2012, 14:30 PM
Muchas gracias por vuestra ayuda!!
al saber que estaba todo bien he creado un proyecto nuevo, he copiado y pegado el codigo y ahora si que funciona...a saber porque
ahora solo me falta hacerlo mediante funcion :D
#38
Programación C/C++ / ayuda en C
21 Octubre 2012, 13:33 PM
hola! tengo un problema, a ver si me podeis ayudar.
tengo que hacer esto:
1.Escribir una función a la que se le dé como parámetro un valor r que representa el radio de un figura una  opción y un dato entero que será 1/2/3. La funciona debe devolver :
•   En el caso opcion1 la longitud del circulo de radio r dada por la expresión 2*pi*r
•   En el caso opción  2 la superficie del circulo dada por la expresión pi*r2
•   En el caso opcion 3 el volumen de una esfera de radio r dada por la expresión 4/3*pi*r3
NOTA:pi debe defnirse como una constante;

he empezado a hacerla sin funcion por ahora, luego la pasaré a una función, cuando lo tenga mas claro.

tengo lo siguiente:
Al ejecutarlo, introduzco la opcion 1 y me calcula la longitud del circulo, pero al introducir la opción 2 o 3 no aparece nada mas. Donde podria estar el fallo? LLevo tiempo mirandolo y no lo veo....He de decir que soy principiante en C, asi que disculpad si haya hecho alguna tonteria xD


#include <stdio.h>
#include <stdlib.h>
#define PI  3.141592
int main()
{
   int opcion,longitud=0,superficie=0,volumen=0;
   int r;

   printf("1.Longitud del círculo \n");
   fflush(stdout);
   printf("2.Superficie del círculo \n");
   fflush(stdout);
   printf("3.Volumen esfera \n");
   fflush(stdout);

   do
   {
   printf("Introduce una opción \n");
   fflush(stdout);
   scanf("%d",&opcion);
   }while(opcion<1||opcion>3);

   if(opcion==1)
   {
      printf("Introduce la longitud del circulo \n");
      fflush(stdout);
      scanf("%d",&r);

      longitud=2*PI*r;
      printf("resultado %d",longitud);
      fflush(stdout);
   }
   else
      if(opcion==2)
         {
         printf("Introduce la superficie del circulo \n");
         fflush(stdout);
         scanf("%d",&r);

         superficie=PI*r;
         printf("resultado %d",superficie);
         fflush(stdout);
         }
      else
      {
      printf("\n Introduce el voumen del circulo \n");
      fflush(stdout);
      scanf("%d",&r);


      volumen=4/3*PI*r;
      printf("resultado %d",volumen);
      fflush(stdout);
      }
   return 0;
}