Foros del Web » Programación para mayores de 30 ;) » C/C++ »

c++ borland

Estas en el tema de c++ borland en el foro de C/C++ en Foros del Web. Hola Es un ejercicio en el que tengo que confeccionar un programa que ingrese las coordenadadasde x e y de 10 puntos del plano a) ...
  #1 (permalink)  
Antiguo 10/09/2012, 10:16
Avatar de eliz73  
Fecha de Ingreso: septiembre-2012
Ubicación: en Bs As
Mensajes: 12
Antigüedad: 11 años, 7 meses
Puntos: 0
c++ borland

Hola Es un ejercicio en el que tengo que confeccionar un programa que ingrese las coordenadadasde x e y de 10 puntos del plano a) determine e informe para cada punto las coordenadas y el cuadrante donde se halla ubicado b)determinar e informar en cual o cuales de los cuadrantes no se encontraron puntos

El problema que tengo es que el for no corta y no se porque gracias



Código C++:
Ver original
  1. #include<stdio.h>
  2. #include<conio.h>
  3. void main()
  4. {
  5. float x,y;
  6. int cont=0,cu1=0,cu2=0,cu3=0,cu4=0;
  7. for(cont=0;cont<10;cont++){
  8. do{printf("\nIngresar los valores de x e y separados por comas: ");
  9. scanf("%f,%f",&x,&y);}
  10. while(x!=0||y!=0);
  11. if(x>0&&y>0)
  12. {cu1++;printf("\n(%7.2f,%7.2f)=cuadrante 1",x,y);}
  13. else if(x<0&&y>0)
  14. {cu2++;printf("\n(%7.2f,%7.2f)=cuadrante 2",x,y);}
  15. else if(x<0&&y<0)
  16. {cu3++;printf("\n(%7.2f,%7.2f)=cuadrante 3",x,y);}
  17. else if(x<0&&y>0)
  18. {cu4++;printf("\n(%7.2f,%7.2f)=cuadrante 4",x,y);}
  19. }
  20. if(cu1==0)
  21. printf("\nNo se hallaron puntos en el cuadrante 1\n");
  22. if(cu2==0)
  23. printf("\nNo se hallaron puntos en el cuadrante 2\n");
  24. if(cu3==0)
  25. printf("\nNo se hallaron puntos en el cuadrante 3\n");
  26. else if(cu4==0)
  27. printf("\nNo se hallaron puntos en el cuadrante 4\n");
  #2 (permalink)  
Antiguo 11/09/2012, 02:01
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 10 meses
Puntos: 73
Respuesta: c++ borland

En el bucle do..while en el que ingresas los datos, la condición de salida que has puesto es

while(x!=0||y!=0);

1. Ambas comparaciones deben ir entre paréntesis:

while ( (x != 0) || (y != 0) );

y lo mismo ocurre con los ifs que vienen después.

2. Este bucle se ejecutará mientras x, ó y, o ambos, sean distintos de cero, es decir, mientras introduzcas cualquier punto distinto de (0,0). Deberías haber puesto

while ( (x == 0) || (y == 0) );

(aunque esto impedirá que utilices el origen de coordenadas como uno de los puntos a comprobar).

Una sugerencia: Cuando utilices constantes de tipo float o double, conviene poner el punto decimal, si no puedes encontrarte con que ciertas expresiones se evalúan como enteras (aunque el resultado final no vaya a serlo), pudiendo aparecer errores difíciles de descubrir (la lógica del programa es correcta). En tu caso, pondría

while ( (x == 0.0 ) || (y == 0.0) )

y del mismo modo para los ifs que vienen a continuación.

Lo que te he indicado de las constantes de tipo float o double no sería problemático en este caso concreto, pero conviene tenerlo en cuenta.

Saludos,
  #3 (permalink)  
Antiguo 12/09/2012, 11:03
Avatar de eliz73  
Fecha de Ingreso: septiembre-2012
Ubicación: en Bs As
Mensajes: 12
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: c++ borland

Muchas gracias por tomarte el tiempo para ayudarme FW 190 Lo pego terminado asi lo ves y por si a alguien le sirve

Código C++:
Ver original
  1. #include<stdio.h>
  2. #include<conio.h>
  3. void main()
  4. {
  5. float x,y;
  6. int i,cu1,cu2,cu3,cu4;
  7. clrscr();
  8. i=0;cu1=0;cu2=0;cu3=0;cu4=0;
  9. clrscr();
  10. printf("\nEjercicio 2.10: Localizar puntos en el plano cartesiano\n");
  11. for(i=0;i<10;i++)
  12. {
  13.  do{printf("\n\nIngresar valores distintos a 0 para x e y separados por comas: ");
  14.     scanf("%f,%f",&x,&y);}
  15.  while((x==0.0)||(y==0.0));
  16.  if((x>0.0)&&(y>0.0))
  17.    {cu1++;printf("\n\n(%7.2f,%7.2f )= cuadrante 1\n",x,y);}
  18.  else if((x<0.0)&&(y>0.0))
  19.        {cu2++;printf("\n\n(%7.2f,%7.2f )= cuadrante 2\n",x,y);}
  20.       else if((x<0.0)&&(y<0.0))
  21.             {cu3++;printf("\n\n(%7.2f,%7.2f )= cuadrante 3\n",x,y);}
  22.           else
  23.             {cu4++;printf("\n\n(%7.2f,%7.2f )= cuadrante 4\n",x,y);}
  24. }
  25. if(cu1==0)
  26. printf("\n\n No se hallaron puntos en el cuadrante 1\n");
  27. if(cu2==0)
  28. printf("\n\n No se hallaron puntos en el cuadrante 2\n");
  29. if(cu3==0)
  30. printf("\n\n No se hallaron puntos en el cuadrante 3\n");
  31. if(cu4==0)
  32. printf("\n\n No se hallaron puntos en el cuadrante 4\n");
  33. if ((cu1>0)&&(cu2>0)&&(cu3>0)&&(cu4>0))
  34. printf("\n\n Hay puntos en todos los cuadrantes \n");
  35. }

Etiquetas: borland, int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:59.