|
474
|
Programación / Programación C/C++ / Calcular la intersección de dos segmentos
|
en: 31 Octubre 2011, 01:43 am
|
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.
|
|
|
476
|
Programación / Programación C/C++ / Re: Problema al elevar a 1/2
|
en: 30 Octubre 2011, 14:54 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
|
Programación / Programación C/C++ / Re: Problema al elevar a 1/2
|
en: 30 Octubre 2011, 14:32 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 / Programación C/C++ / Problema al elevar a 1/2
|
en: 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 / Programación C/C++ / Re: Inicio en programación
|
en: 1 Septiembre 2011, 11:10 am
|
Acabo de descargarme Python con un tutorial, y la verdad, es más fácil que C Aprenderé Python lo máximo posible, y después seguiré con C (según me han dicho Python es como C pero en reducido).
|
|
|
|
|
|
|