• Lenguaje

    Pascal

  • Descripción

    Dados tres datos enteros positivos, que representen las longitudes de un posible triángulo, determine si los datos corresponden a un triángulo. En caso afirmativo, escriba si el triángulo es equilátero, isósceles o escaleno. Calcule además su área.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
program AreaYTipoDeTriangulo;
uses crt, math;

var area, lado_a, lado_b, lado_c, semiperimetro : real;
begin
    write ('Ingresa el valor de lado a: ');
    readln (lado_a);
    write ('Ingresa el valor de lado b: ');
    readln (lado_b);
    write ('Ingresa el valor de lado c: ');
    readln (lado_c);
    semiperimetro := 0;
    area := 0;
    if (lado_a+lado_b>lado_c) and (lado_b+lado_c>lado_a) and (lado_c+lado_a>lado_b) then
        begin
            writeln ('Los datos corresponden a un tri'#160'ngulo.');
            semiperimetro := (lado_a+lado_b+lado_c)/2;
            area := sqrt(semiperimetro*(semiperimetro-lado_a)*(semiperimetro-lado_b)*(semiperimetro-lado_c));
        end
    else
        begin
            writeln ('Los datos no corresponden a un tri'#160'ngulo.');
        end;
    if (semiperimetro<>0) and (lado_a=lado_b) and (lado_b=lado_c) then
        begin
            writeln ('Tri'#160'ngulo equil'#160'tero.');
        end;
    if (semiperimetro<>0) and (((lado_a=lado_b) and (lado_b<>lado_c)) or ((lado_b=lado_c) and (lado_c<>lado_a)) or ((lado_c=lado_a) and (lado_a<>lado_b))) then
        begin
            writeln ('Tri'#160'ngulo is'#162'sceles.');
        end;
    if (semiperimetro<>0) and (lado_a<>lado_b) and (lado_b<>lado_c) and (lado_c<>lado_a) then
        begin
            writeln ('Tri'#160'ngulo escaleno.');
        end;
    writeln ('Valor de area: ', area:0:6);
    writeln ('Valor de semiperimetro: ', semiperimetro:0:6);
    writeln;
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.