Escrever um algoritmo e um programa que leia três valores A, B e C e verifica se eles formam ou não um triângulo. Supor que os valores lidos são inteiros e positivos. Caso os valores formem um triângulo, calcular e escrever a área deste triângulo. Se não formam um triângulo, escrever esta mensagem: Não formam um triângulo.
Lembrando que a formula para calcular a área de um triangulo é
Área = √{s (s – a)(s – b)(s – c)}
Onde s = semi perímetro
a, b, c = lados do triangulo.
O semi perímetro é calculado da seguinte formula
s = (a + b + c) / 2
Sugestão de resposta em linguagem algorítmica
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
| programa Exercicio28;
var
a, b, c: Inteiro;
semiPerimetro, area: Real;
vTriangulo: Bool;
inicio
Escreva('Informe o valor de A: ');
Leia(a);
Escreva('Informe o valor de B: ');
Leia(b);
Escreva('Informe o valor de C: ');
Leia(c);
vTriangulo := True;
se (a < b) entao
inicio
se (b < c) entao
inicio
Escreva(a);
Escreva(b);
Escreva(c);
vTriangulo := not (a + b < c);
fim
senao
inicio
se (a < c) entao
inicio
Escreva(a);
Escreva(c);
Escreva(b);
vTriangulo := not (a + c < b);
fim
senao
inicio
Escreva(c);
Escreva(a);
Escreva(b);
vTriangulo := not (c + a < b);
fim;
fim;
fim
senao
inicio
se (b < c) entao
inicio
se (a < c) entao
inicio
Escreva(b);
Escreva(a);
Escreva(c);
vTriangulo := not (b + a < c);
fim
senao
inicio
Escreva(b);
Escreva(c);
Escreva(a);
vTriangulo := not (b + c < a);
fim;
fim
senao
inicio
Escreva(c);
Escreva(b);
Escreva(a);
vTriangulo := not (c + b < a);
fim;
fim;
se (vTriangulo) entao
inicio
{ Calculando a area do triangulo }
semiPerimetro := (a + b + c) / 2;
area := sqrt(semiPerimetro * ((semiPerimetro - a) + (semiPerimetro - b) +
(semiPerimetro - c)));
Escreva('A area do triangulo e: ', area: 0: 2);
fim
senao
inicio
Escreva('Os valores informados nao formam um triangulo.');
fim;
fim. |
programa Exercicio28;
var
a, b, c: Inteiro;
semiPerimetro, area: Real;
vTriangulo: Bool;
inicio
Escreva('Informe o valor de A: ');
Leia(a);
Escreva('Informe o valor de B: ');
Leia(b);
Escreva('Informe o valor de C: ');
Leia(c);
vTriangulo := True;
se (a < b) entao
inicio
se (b < c) entao
inicio
Escreva(a);
Escreva(b);
Escreva(c);
vTriangulo := not (a + b < c);
fim
senao
inicio
se (a < c) entao
inicio
Escreva(a);
Escreva(c);
Escreva(b);
vTriangulo := not (a + c < b);
fim
senao
inicio
Escreva(c);
Escreva(a);
Escreva(b);
vTriangulo := not (c + a < b);
fim;
fim;
fim
senao
inicio
se (b < c) entao
inicio
se (a < c) entao
inicio
Escreva(b);
Escreva(a);
Escreva(c);
vTriangulo := not (b + a < c);
fim
senao
inicio
Escreva(b);
Escreva(c);
Escreva(a);
vTriangulo := not (b + c < a);
fim;
fim
senao
inicio
Escreva(c);
Escreva(b);
Escreva(a);
vTriangulo := not (c + b < a);
fim;
fim;
se (vTriangulo) entao
inicio
{ Calculando a area do triangulo }
semiPerimetro := (a + b + c) / 2;
area := sqrt(semiPerimetro * ((semiPerimetro - a) + (semiPerimetro - b) +
(semiPerimetro - c)));
Escreva('A area do triangulo e: ', area: 0: 2);
fim
senao
inicio
Escreva('Os valores informados nao formam um triangulo.');
fim;
fim.
Sugestão de resposta em Pascal, Lazarus, Delphi
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
| program Exercicio28;
uses
Classes,
SysUtils;
var
a, b, c: cardinal;
semiPerimetro, area: Real;
vTriangulo: boolean;
begin
try
Write('Informe o valor de A: ');
Readln(a);
Write('Informe o valor de B: ');
Readln(b);
Write('Informe o valor de C: ');
Readln(c);
{ Para os valores lidos formarem um triangulo,
a soma dos dois lados menores deverá ser superior
a medida do lado maior.
x + y > z }
vTriangulo := True;
if (a < b) then
begin
if (b < c) then
begin
Writeln(a);
Writeln(b);
Writeln(c);
vTriangulo := not (a + b < c);
end
else
begin
if (a < c) then
begin
Writeln(a);
Writeln(c);
Writeln(b);
vTriangulo := not (a + c < b);
end
else
begin
Writeln(c);
Writeln(a);
Writeln(b);
vTriangulo := not (c + a < b);
end;
end;
end
else
begin
if (b < c) then
begin
if (a < c) then
begin
Writeln(b);
Writeln(a);
Writeln(c);
vTriangulo := not (b + a < c);
end
else
begin
Writeln(b);
Writeln(c);
Writeln(a);
vTriangulo := not (b + c < a);
end;
end
else
begin
Writeln(c);
Writeln(b);
Writeln(a);
vTriangulo := not (c + b < a);
end;
end;
if (vTriangulo) then
begin
{ Calculando a area do triangulo }
// s = (a + b + c) / 2
// Área = √{s (s - a)(s - b)(s - c)}
semiPerimetro := (a + b + c) / 2;
area := sqrt(semiPerimetro * ((semiPerimetro - a) + (semiPerimetro - b) +
(semiPerimetro - c)));
Writeln('A area do triangulo e: ', area :0:2);
end
else
begin
Writeln('Os valores informados nao formam um triangulo.');
end;
Write(#10#13#10#13, 'Tecle "Enter" para sair.');
Readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end. |
program Exercicio28;
uses
Classes,
SysUtils;
var
a, b, c: cardinal;
semiPerimetro, area: Real;
vTriangulo: boolean;
begin
try
Write('Informe o valor de A: ');
Readln(a);
Write('Informe o valor de B: ');
Readln(b);
Write('Informe o valor de C: ');
Readln(c);
{ Para os valores lidos formarem um triangulo,
a soma dos dois lados menores deverá ser superior
a medida do lado maior.
x + y > z }
vTriangulo := True;
if (a < b) then
begin
if (b < c) then
begin
Writeln(a);
Writeln(b);
Writeln(c);
vTriangulo := not (a + b < c);
end
else
begin
if (a < c) then
begin
Writeln(a);
Writeln(c);
Writeln(b);
vTriangulo := not (a + c < b);
end
else
begin
Writeln(c);
Writeln(a);
Writeln(b);
vTriangulo := not (c + a < b);
end;
end;
end
else
begin
if (b < c) then
begin
if (a < c) then
begin
Writeln(b);
Writeln(a);
Writeln(c);
vTriangulo := not (b + a < c);
end
else
begin
Writeln(b);
Writeln(c);
Writeln(a);
vTriangulo := not (b + c < a);
end;
end
else
begin
Writeln(c);
Writeln(b);
Writeln(a);
vTriangulo := not (c + b < a);
end;
end;
if (vTriangulo) then
begin
{ Calculando a area do triangulo }
// s = (a + b + c) / 2
// Área = √{s (s - a)(s - b)(s - c)}
semiPerimetro := (a + b + c) / 2;
area := sqrt(semiPerimetro * ((semiPerimetro - a) + (semiPerimetro - b) +
(semiPerimetro - c)));
Writeln('A area do triangulo e: ', area :0:2);
end
else
begin
Writeln('Os valores informados nao formam um triangulo.');
end;
Write(#10#13#10#13, 'Tecle "Enter" para sair.');
Readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
Outras linguagens? Envie a sua sugestão para showdelphi@showdelphi.com.br
-
InfusTec
-
9.815 views
- 0 comentários
- 10 de março de 2016
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo