Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Jack_nuts en 4 Febrero 2017, 14:26 pm



Título: Como declaro una variable como no dfinida o especificada en C
Publicado por: Jack_nuts en 4 Febrero 2017, 14:26 pm
[MOD]: Publica los posts de programación en el subforo correspondiente. Usa las etiquetas GeShi para insertar código.
Bienvenido al foro, pero lee las reglas del foro.



Código
  1. #include<stdio.h>
  2. #include<math.h>
  3.  
  4. int main(){
  5.  
  6. float r, c, PI;
  7. PI = 3.1416;
  8.  
  9. c = 2 * PI * r;
  10. r = c / (2 * PI);
  11.  
  12. printf("\n Defina la variable longitud de la circunferencia si la conoce, si no pulse enter");
  13. scanf("%.2f", &c);
  14.  
  15. if(c==[b]NOT DEFINED[/b]){
  16. printf("\n Defina la variable longitud del radio de la circunferencia si la conoce, si no pulse 0");
  17. scanf("%.2f", &r);
  18. }else{
  19. printf("\n El valor de la longitud del radio es: %.2f",r);
  20. }
  21.  
  22. printf("\n El valor de la longitud de la circunferencia es: %.2f",c);
  23.  
  24. return 0;
  25. }


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: Randomize en 4 Febrero 2017, 14:59 pm
¡Qué alguien mueva ésto a otro sitio!


Ha sido movido  :-*


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: MAFUS en 4 Febrero 2017, 15:26 pm
C no tiene variables indefinidas. Pero puedes hacer otra cosa: por ejemplo tomar una cadena. Si la lees y es un dato numérico transfórmalo como tal y lo introduces en una variable, si es un retorno de carro trata eso como valor no definido.


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: Jack_nuts en 4 Febrero 2017, 15:41 pm

No sé si he entendido bien, llevo poco aprendiendo C.

Me sugieres que use una cadena para definir la variable c (longitud circunferencia)
(lo que quiero es que cuando no se introduzca el valor de la variable c ("longitud circunferencia") salte y pida el dato "radio", supongo que eso es un retorno de carro.
 
Entonces qué debo hacer? Paso 1º, cambiar "float c" por "char c50]", bien.

Pero a qué debo igualar c en mi condición IF para que cuando no se le asigne un valor salte y pida el valor de la siguiente variable (longitud del radio)?

Gracias. Saludos.


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: engel lex en 4 Febrero 2017, 15:45 pm
Citar
lo que quiero es que cuando no se introduzca el valor de la variable c ("longitud circunferencia") salte y pida el dato "radio"

normalmente aquí simplemente colocas un mensaje que diga
Citar
introduzca la longitud del circulo (si no desea introducir la longitud sino el radio coloque 0)

y completas con un "si longitud es 0 has lo otro"

te digo 0, ya que un circulo de longitud 0... bueno, es imposible, no es un circulo


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: Jack_nuts en 4 Febrero 2017, 15:54 pm
Pero si le digo

printf("introduzca la longitud del circulo (si no desea introducir la longitud sino el radio coloque 0!")

La máquina entiende que el valor de c es igual a 0 y ya no me pide el radio porque también le asigna el valor 0. Yo no quiero usar 0, yo quiero usar ENTER (para el salto)

Me gustaría, si puede ser, que cuando no se conozca el dato c (longitud de circunferencia), se presione ENTER y me pida el dato r (longitud del radio).

Entonces, en el cuerpo del programa, debería:

Pedir el valor de c(cicunferencia).
 - se le da un valor - calcula el radio
 - no se le da un valor (Pulsando Enter)
            - entonces -pìde el radio
                                 - se le da un valor - calcula la circunferencia
                                 - no se le da un valor (sale de la función)

Eso sería genial !

Gracias y saludos.


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: Randomize en 4 Febrero 2017, 16:03 pm
¡¡¡ Cómo me gusta que hablen los mayores !!!

Uno se caya y aprende  ;D


Os sigo leyendo  ;)


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: Jack_nuts en 4 Febrero 2017, 16:09 pm
No si yo soy muy mayor pero soy un completo ignorante, hace poco que empece a programar y estaba practicando y me concontre con esta incognita.

Es decir pido un valor y quiero que calcule el otro,
si se da el valor a -> calcule b
caso contrario -> entonces quiero que pida el valor b y calcule a

hm voy a probar una cosa...

gracias, saludos.


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: ivancea96 en 4 Febrero 2017, 16:14 pm
Para lo que buscas:

Utiliza fgets para leer en la cadena. Si el usuario pulsa enter, la cadnea tendrá longitud 1 y su primer caracter será el salto de linea:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main(){
  5. char c[50];
  6. fgets(c, 50, stdin);
  7.  
  8. printf("%i - %i", (int)c[0], strlen(c));
  9. }

Luego, si no es un salto de línea, conviertes la cadena a un int con stoi:
Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main(){
  5. char c[50];
  6. fgets(c, 50, stdin);
  7.  
  8. if(c[0] != '\n'){
  9. int n = atoi(c);
  10. printf("%i", n);
  11. }
  12. }


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: Jack_nuts en 4 Febrero 2017, 16:32 pm
Gracias Ivancea, pero no tengo tanto nivel de programación, necesito practicar con lo que sé de mi nivel, if, else if, while, variables int, float, char, double, etc.

Lo que me has escrito, cosa que te agradezco inmensamente, no lo entiendo,

 ------------ A ver así -------------

Código
  1. #include<stdio.h>
  2. #include<math.h>
  3.  
  4. int main(){
  5.  
  6. float c,r, PI;
  7. PI = 3.1416;
  8.  
  9. printf("\n Defina la variable longitud de la circunferencia si la conoce, si no pulse enter");
  10. scanf("%.2f", &c);
  11.  
  12. c = 2 * PI * r;
  13. r = c / (2 * PI);
  14.  
  15. if(c!=0){
  16. printf("\n El valor de r es igual a: %f",r);
  17. }else if(c==0){
  18. printf("\n La longitud de la circunferencia es 0");
  19. EXIT? // Como hago para salir de la condición "else if"?
  20. }else{
  21. printf("\n Defina la variable longitud del radio: ");
  22. scanf("%.2f", &r);
  23. }
  24. printf("\n El valor de la longitud del radio es: %.2f",r);
  25. printf("\n El valor de la longitud de la circunferencia es: %.2f",c);
  26. }
  27. return 0;
  28. }
----------------------------------------
 (PREGUNTA Como se sale de else if?)


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: ivancea96 en 4 Febrero 2017, 16:40 pm
Los códigos que te puse son cortos. Dime qué partes no entiendes, y las explico.

Citar
Código
  1.   if(c!=0){
  2.      printf("\n El valor de r es igual a: %f",r);
  3.   }else if(c==0){
  4.      printf("\n La longitud de la circunferencia es 0");
  5.      EXIT?                                       // Como hago para salir de la condición "else if"?
  6.   }else{
  7.      printf("\n Defina la variable longitud del radio: ");
  8.      scanf("%.2f", &r);
  9.   }

Si de la segunda condicion quieres pasar directamente al else, pues, directamente, mételo todo junto:

Código
  1.   if(c!=0){
  2.      printf("\n El valor de r es igual a: %f",r);
  3.   }else{
  4.      printf("\n La longitud de la circunferencia es 0");
  5.      printf("\n Defina la variable longitud del radio: ");
  6.      scanf("%.2f", &r);
  7.   }

Además, no necesitas poner la condición "c==0". Si no se cumple "c!=0" significa que siempre se cumplirá "c==0".


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: Jack_nuts en 4 Febrero 2017, 17:16 pm
Cita: Además, no necesitas poner la condición "c==0". Si no se cumple "c!=0" significa que siempre se cumplirá "c==0".

Bueno, bien. Si c es 0 -> a or si no es 0 ->b

Correcto, pero yo quiero que también haya una tercera posibilidad además de "0" y "!=0" yo quiero además el caso en el que no se introduce ningún valor para c (quizás dando Enter?), ya se que me han dicho que no puede haber variables no definidas pero tiene que haber alguna forma de que cuando c (la circunferencia) no se conozca, pues que me pida r, y eso no es ni "0" ni "!=0" es una tercera opción...

¿Quizás con una variable char c[50] por ejemplo?
¿Alguien sabe como sería?

Gracias de antemano y saludos.

____________________

#include<stdio.h>
#include<math.h>

int main(){

   float c,r,PI;
   PI = 3.1416;
   
   printf("\n Defina la variable longitud de la circunferencia si la conoce, si no pulse enter"); // Se puede pedir ENTER? Es correcto?
   scanf("%.2f", &c);
   
   c = 2 * PI * r;
   r = c / (2 * PI);
   
   if(c!=0){
      printf("\n El valor de r es igual a: %.2f",r);
      }else{
      printf("\n La longitud de la circunferencia es 0");
      printf("\n Defina la variable longitud del radio: ");
      scanf("%.2f", &r);
      }
   
   return 0;
}


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: ivancea96 en 4 Febrero 2017, 17:38 pm
Un int guarda números. Tú quieres leer un número O una línea en blanco. No puedes leer una línea en blanco en un int, así que hay que hacerlo al revés: primero, leer la línea que introduce el usuario como una cadena, y luego, si no está vacía, transformarla en int. Eso es lo que hago en el mensaje que puse antes. Si no entiendes algo de esos códigos, dímelo. Pero esa es una manera.


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: Jack_nuts en 4 Febrero 2017, 18:16 pm
Entiendo que debo poner c como una cadena y que debe estar antes que la demanda de un valor para r pero el resto no lo entiendo.

En cualquier caso gracias este programa lo dejo para más adelante, ahora no soy capaz de resolverlo.

Saludos


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: ivancea96 en 4 Febrero 2017, 18:20 pm
Si nunca trabajaste con cadenas de caracteres o si lo vas  ahacer más adelante, entonces lo mejor que puedes hacer es aceptar el 0 (o un valor negativo) como "comando" para pedir el radio.
Citar
Código
  1.       if(c!=0){
  2.          printf("\n El valor de r es igual a: %f",r);
  3.       }else{
  4.          printf("\n La longitud de la circunferencia es 0");
  5.          printf("\n Defina la variable longitud del radio: ");
  6.          scanf("%.2f", &r);
  7.       }


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: Jack_nuts en 4 Febrero 2017, 18:42 pm
Es que no quiero que se tenga que introducir el valor 0 para el retorno de carro, yo quiero que se use enter

Es decir:

Deme un valor para circunferencia -- > Enter (no se conoce)
  Pues deme un valor para el radio --->por ejemplo 5
            Pues entonces la circunferencia es igual a: _____ lo que sea.

Gracias y saludos.


Título: Re: Como declaro una variable como no dfinida o especificada en C
Publicado por: MAFUS en 4 Febrero 2017, 19:18 pm
Pues lo dicho, hasta que no aprendas a usar cadenas no podrás hacerlo como quieres.