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 - DickGumshoe

#471
Ah, muchas gracias a ti también.

Todavía no he estudiado los tipos de librerías, así que no conocía la de <iostream>, pero muchas gracias, estoy practicando con este tipo ahora ^^
#472
Ah, muchas gracias a ti también.

Por ahora lo voy a hacer así, porque estoy empezando, supongo que en los manuales vendrá después cómo usar esos conceptos.

De todas formas voy a probar.

Gracias de nuevo.
#473
¡Muchísimas gracias! He estado toda la noche mirando todo el código, y al final era solo poniendo & en vez de ",".

#474
Hola.

Estoy haciendo un programa en c++; el cual debe calcularme la intersección entre dos segmentos.

Tengo planteado todo el problema.  Y además, me calcula bien casi todos los tipos de intersecciones.

Mi código es:



//Este programa calcula la interseccion de dos segmentos

#include<stdio.h>
#include<stdlib.h>

int main (void){
   
    float a,b,c,d;
   
    printf("\n Introduzca el primer numero del primer segmento");
    scanf ("%f",&a);

    printf("\n Introduzca el segundo numero del primer segmento");
    scanf ("%f",&b);
   
    printf("\n Introduzca el primer numero del segundo segmento");
    scanf ("%f",&c);
   
    printf("\n Introduzca el segundo numero del segundo segmento");
    scanf ("%f",&d);
   
   
          if (b<c){
          printf ("La interseccion es vacia");
          }
          else { if (a>d)
          printf ("La interseccion es vacia"); 
         
          else {if (a<c, b>d)
                   printf ("La interseccion es %f,%f", c,d);
                    else
                     {if (a>c, b>d)
                 printf ("La interseccion es %f,%f", a,d);
                 
              else {
          if (a<c, b==d) {
                   printf ("La interseccion es %f,%f", c,b);
                   }
                   else {if (a==c, b==d)
                   printf ("La intersección es %f,%f", a,c);
                   
           
           
     
            else {
          if (b==c){
          printf ("La interseccion es el punto %f",b);
          }
       
   
          else { if (a==d)
          printf ("La interseccion es el punto %f",a);
                   
                   
                   
          else{
          if (a<c, b>d) {
                   printf ("La interseccion es %f,%f", c,d);
                   }
                   
                   
                   }}}}}}}}
           
   system("pause");
}




Bien; ahora planteo el problema... Me coge bien todas las intersecciones, excepto los dos tipos siguientes:

else {if (a<c, b>d)
                   printf ("La interseccion es %f,%f", c,d);
                    else
                   
                  {if (a>c, b>d)
                 printf ("La interseccion es %f,%f", a,d);


Al ir cambiando el código, siempre me sale bien uno de los dos tipos de intersecciones de arriba, pero no soy capaz de que me salgan los dos a la vez. Con eso, completaría el programa que estoy creando.

Muchas gracias.
#475
Cita de: naderST en 30 Octubre 2011, 15:15 PM
En vez de usar 1/2 usa 0.5 y ya o (float)1/2

Ah, muchísimas gracias; ya me sale bien el resultado poniendo (float)1/2 ^^

Bueno, problema resuelto. Gracias a todos.
#476
Cita de: тαптяαпсє en 30 Octubre 2011, 14:49 PM
Es lo mismo. De hecho, creo que es más rápido pow(), aunque no puedo ponerte donde lei eso.
Intenta a hacer esa misma division, justo una línea de ejecución antes, y haciendo la operación con float..

Muchas gracias a todos.

¿Qué tendría que poner para hacer eso? Estoy iniciándome en C++, y no tengo muchos conocimientos...
#477
Cita de: pucheto en 30 Octubre 2011, 14:24 PM
Tal vez haga division entera, entonces 1 / 2 no da 0.5 (en division entera da 0).
La otra posibilidad es que te calcule la division, de 0.5, y pase a entero, pudiendo dar 0 como 1, depende de como este configurado todo.

Cierto, he puesto el ejemplo de poner que ambos catetos son 2, y me ha dado 1, cosa que si lo elevamos a 0, da 1.

Entonces, ¿qué podría hacer para que al elevarlo a 1/2 de lo que debe dar? Aunque al elevarlo a 0.5 ya me de bien el resultado de la hipotenusa, solo es por curiosidad...

Muchas gracias ^^
#478
Programación C/C++ / Problema al elevar a 1/2
30 Octubre 2011, 12:09 PM
Hola.

Estoy haciendo un programa en C++ en el que introduces la longitud de dos catetos y te calcula la hipotenusa. Lo tengo terminado, lo único que, como todos sabemos 1/2 es 0.5. Pues bien, si pongo lo siguiente:

// Dada la longitud de dos catetos calcular la hipotenusa

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

int main (void){
     float c1,c2,h;
     
      printf("Introduzca el valor de un cateto");
      scanf("%f",&c1);
     
     
      printf("Introduzca el valor del otro cateto");
      scanf("%f",&c2);
     
      h= pow (c1*c1+c2*c2,1/2);
     
      printf("El valor de la hipotenusa es %f",h);
     
    system("pause");
}


Ahí me calcula mal la hipotenusa. Sin embargo, si en la fórmula lo elevo a 0.5; sí me la calcula bien, cuando 1/2=0.5

// Dada la longitud de dos catetos calcular la hipotenusa

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

int main (void){
     float c1,c2,h;
     
      printf("Introduzca el valor de un cateto");
      scanf("%f",&c1);
     
     
      printf("Introduzca el valor del otro cateto");
      scanf("%f",&c2);
     
      h= pow (c1*c1+c2*c2,0.5);
     
      printf("El valor de la hipotenusa es %f",h);
     
    system("pause");
}


Muchas gracias.
#479
Programación C/C++ / Re: Inicio en programación
1 Septiembre 2011, 11:10 AM
Acabo de descargarme Python con un tutorial, y la verdad, es más fácil que C  :D

Aprenderé Python lo máximo posible, y después seguiré con C (según me han dicho Python es como C pero en reducido).
#480
¡Muchas gracias! Entonces el tema ya está solucionado.