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

corregir programa if else, triangulos...

Estas en el tema de corregir programa if else, triangulos... en el foro de C/C++ en Foros del Web. hola , estoy practicando , este programa que calcula triagulos segun sus lados , si es equilatero , escaleno , isosceles, sé que tambien se ...
  #1 (permalink)  
Antiguo 07/06/2010, 17:31
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
corregir programa if else, triangulos...

hola , estoy practicando , este programa que calcula triagulos segun sus lados , si es equilatero , escaleno , isosceles,

sé que tambien se puede hacer con AND y OR.

pero ahora es esto , y bue , diganme donde podria estar el error ...
saludos ....


/*declaracion de funciones de libreria*/

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

main()
{
/*declaracion de variables*/
int ladoa, ladob,ladoc;

/*empieza el programa , se ingresan datos*/

cout <<"-bienvenido al programa para calcular triangulos-\n";
cout <<"ingrese el primer lado : \n";
scanf ("%d",&ladoa);
cout <<"ingrese el segundo lado: \n";
scanf ("%d",&ladob);
cout <<"ingrese el tercer lado: \n";
scanf("%d",&ladob);

/*empiezan los condicionales*/

if (ladoa == ladob)
{
if (ladob == ladoc)
{
cout<<"\el triangulo es equilatero\n";
}
else
{
cout<<"el triangulo es isosceles\n";
}
}
else
{
if (ladob == ladoc)
{
cout <<"el triangulo es isosceles";
}
else
{
if (ladoa==ladoc)
{
cout<<"el triangulo es isosceles";
}
else
{
cout <<"el triangulo es escaleno";
}
}
}
}
getch ();
}
  #2 (permalink)  
Antiguo 07/06/2010, 17:41
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 3 meses
Puntos: 2
Respuesta: corregir programa if else, triangulos...

el getch (); esta fuera de la funcion main()

y sobra la ultima llave.

quedaria así
Código:
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#include<math.h>

main()
{
/*declaracion de variables*/
int ladoa, ladob,ladoc;

/*empieza el programa , se ingresan datos*/

cout <<"-bienvenido al programa para calcular triangulos-\n";
cout <<"ingrese el primer lado : \n";
scanf ("%d",&ladoa);
cout <<"ingrese el segundo lado: \n";
scanf ("%d",&ladob);
cout <<"ingrese el tercer lado: \n";
scanf("%d",&ladob);

/*empiezan los condicionales*/

if (ladoa == ladob)
{
if (ladob == ladoc)
{
cout<<"\el triangulo es equilatero\n";
}
else
{
cout<<"el triangulo es isosceles\n";
}
}
else
{
if (ladob == ladoc)
{
cout <<"el triangulo es isosceles";
}
else
{
if (ladoa==ladoc)
{
cout<<"el triangulo es isosceles";
}
else
{
cout <<"el triangulo es escaleno";
}
}
}
getch ();
}
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #3 (permalink)  
Antiguo 07/06/2010, 21:52
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: corregir programa if else, triangulos...

ahh mira ,, no te lo puedo creer,,, jja
pero una mas ...

cuando lo pruebo , y los tres lados son iguales , me tiene que decir ...
que es equilatero ...
pero me aparece isosceles...
yo me fije bien , y no le encuentro donde puede estar el error ....


gracias ,"
  #4 (permalink)  
Antiguo 08/06/2010, 00:56
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 5 meses
Puntos: 606
Respuesta: corregir programa if else, triangulos...

Cita:
Iniciado por juan_bon Ver Mensaje
ahh mira ,, no te lo puedo creer,,, jja
pero una mas ...

cuando lo pruebo , y los tres lados son iguales , me tiene que decir ...
que es equilatero ...
pero me aparece isosceles...
yo me fije bien , y no le encuentro donde puede estar el error ....


gracias ,"
Solo te voy a dar pistas para que lo resuelvas tú.

Este ejercicio es muy corto y tiene básicamente dos partes:
- introducción y captura de datos
- lógica del algoritmo

Has de comprobar las dos partes y ver que obtienes los valores de los 3 lados de forma correcta (por ejemplo poniendo un cout con sus valores) y luego hacer pruebas con diferentes valores de lados para ver que calcula el tipo de triangulo correctamente ;)

Cuando veas el fallo descubrirás una de las técnicas que más dolores de cabeza dan al programar. Y de paso verás que el error es una tonteria, pero antes que decirtelo prefiero que aprendas como buscarlos :)
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 08/06/2010, 04:42
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 3 meses
Puntos: 2
Respuesta: corregir programa if else, triangulos...

Cita:
Iniciado por Malenko Ver Mensaje
Solo te voy a dar pistas para que lo resuelvas tú.

Este ejercicio es muy corto y tiene básicamente dos partes:
- introducción y captura de datos
- lógica del algoritmo

Has de comprobar las dos partes y ver que obtienes los valores de los 3 lados de forma correcta (por ejemplo poniendo un cout con sus valores) y luego hacer pruebas con diferentes valores de lados para ver que calcula el tipo de triangulo correctamente ;)

Cuando veas el fallo descubrirás una de las técnicas que más dolores de cabeza dan al programar. Y de paso verás que el error es una tonteria, pero antes que decirtelo prefiero que aprendas como buscarlos :)
Malenko tiene mucha razón debes entrenar mas sobre lógica.

primero debes poner la condición de los dos lados y despues la de los 3. de lo contrario seria un error lógico. uno de los errores desde mi punto de vista que te pueden hacer perder horas de trabajo y no detectarlo ya que los compiladores no lo detectan.

espero que entiendas porque seria un error lógico.
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #6 (permalink)  
Antiguo 08/06/2010, 15:34
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: corregir programa if else, triangulos...

no entiendo....

ustdes me dicen . que lo corrija, pero manteniendo los IF de "un lado con un lado "

o que use AND (&&) , OR (||)
  #7 (permalink)  
Antiguo 08/06/2010, 16:38
 
Fecha de Ingreso: agosto-2008
Mensajes: 606
Antigüedad: 15 años, 11 meses
Puntos: 11
Respuesta: corregir programa if else, triangulos...

Uno de los errores creo que es que donde lees el segundo dato usas una variable que es la misma que para el terder dato es decir tu has echo esto:
Cita:
cout <<"ingrese el segundo lado: \n";
scanf ("%d",&ladob);
cout <<"ingrese el tercer lado: \n";
scanf("%d",&ladob);
donde ceo debes poner algo como esto:

Cita:
cout <<"ingrese el segundo lado: \n";
scanf ("%d",&ladob);
cout <<"ingrese el tercer lado: \n";
scanf("%d",&ladoc);



Ademas aqui creo que hay un error logico. Porque estas diciendo que cuando todos los lados sean iguales sea equilatero y cuando no sea
isoceles. Es decir que si algun lado o dos lados o tres lados son distintos entoces es isoceles. cosa que no se corresponde con la realidad de la geometria


Cita:
if (ladoa == ladob)
{
if (ladob == ladoc)
{
cout<<"\el triangulo es equilatero\n";
}
else
{
cout<<"el triangulo es isosceles\n";/*error con esto dices que si algun lado es distinto, o dos lados son distintos o tres lados son distintos entonces es isoceles.*/
}

Última edición por trevol; 08/06/2010 a las 16:55

Etiquetas: corregir, 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 00:21.