• Jueves 2 de Mayo de 2024, 23:12

Autor Tema:  elevar variables al cuadrado  (Leído 3186 veces)

ermiguel1979

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
elevar variables al cuadrado
« en: Jueves 5 de Noviembre de 2009, 13:36 »
0
Buenas tardes a todos; tengo un problemilla con una práctica que no se por donde coger. El ejercicio en cuestión dice así:

Diseñar un algoritmo que lea las longitudes de los tres lados de un triángulo (L1,L2,L3) y determine qué tipo de triángulo es, de acuerdo a los siguientes casos. Suponiendo que A determina el mayor de los tres lados y B y C corresponden con los otros dos, entonces:

Si A>=B+C                 No se trata de un triángulo.
Si A2 = B2+C2           Es un triángulo rectángulo.
Si A2>B2+C2             Es un triángulo obtusángulo.
Si A2<B2+C2             Es un triángulo acutángulo.


Supongo que esos DOSES que van con las letras serán CUADRADOS, y no se como ponerlos en mi código. Lo que llevo realizado hasta ahora es lo siguiente: ¡Por cierto, uso Dev-C++ y C-Free!

#include <cstdlib>
#include <iostream>
#include <cstdio>
#include<cstdlib>

#define CUADRADO(x) (x*x) /*Definicion de macros*/

/*DETERMINADOR DE TRIANGULOS*/

using namespace std;

int main(int argc, char *argv[])
{
    /*Declaracion Variables*/
    float a;
    float b;
    float c;
    float mayor; // el lado más grande
    float ladoB; // otro de los lados
    float ladoC; // otro de los lados
   
    /*Leer Variables*/
    printf("Introduzca medida primer lado L1: ");
    fflush(stdin);
    scanf("%f", &a);
    printf("Introduzca medida segundo lado L2: ");
    scanf("%f", &b);
    printf("Introduzca medida tercer lado L3: ");
    scanf("%f", &c);
   
    /*Seleccion lado MAYOR*/
    if(a > b && a > c){
         mayor = a;
         ladoB = b;
         ladoC = c;
    }else{
          if(b > a && b > c){
               mayor = b;
               ladoB = a;
               ladoC = c;
          }else{
                mayor = c;
                ladoB = a;
                ladoC = b;
          }
    }
   
    /*Indicar lado MAYOR y lados secundarios*/
    printf("nEl lado MAYOR es %f y los secundarios son %f y %fnn", mayor, ladoB, ladoC);
   
    /*Mostrar tipos de triangulos*/
    if(mayor >= ladoB+ladoC){
             printf("No se trata de ningun triangulonn");
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}


La macro del CUADRADO la vi por ahí en Internet, pero no consigo hace que funcione cuando pongo las otras condiciones con los "if"
Otra cosilla es que, dado mi nivel, solo puedo usar "if" y "switch" para hacerlo.

Gracias a todos y un saludo!

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: elevar variables al cuadrado
« Respuesta #1 en: Jueves 5 de Noviembre de 2009, 15:43 »
0
bueno, realmente puedes usar la funcion Pow(valor, indice) que te devuelve indice elevado a valor.

ahora bien...

en ningun momento se te ha ocurrido que el cuadrado de valor es valor*valor?????
Código: C++
  1.  
  2. valor= valor*valor;
  3.  
  4.  


piensa un poco y te saldran soluciones simples.