-
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
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.
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.