dicas show delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais
sombra
Artigos Show Delphi

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais
sombra
iniciantes show delphi

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais
sombra
downloads show delphi

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
sombra
voltar

PARA QUEM GOSTA DE DELPHI

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.

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.

Outras linguagens? Envie a sua sugestão para [email protected]

  • InfusTec
  • 0 comentários
  • 10 de março de 2016

Deixe um comentário


Posts Relacionados


Continue Aprendendo

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados