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. – Show Delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

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

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
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 showdelphi@showdelphi.com.br

Facebook Comments

Posts Relacionados

  • Administrador
  • 1.064 views
  • 0 comentários
  • 10 de março de 2016

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Ir ao topo

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