Here there are some examples of how something simple can be made in several ways. Namely we want to know Area, Perimeter and Centroid (refered to the bottom-left corner) of a rectangle, given his base and height.
requires following values:
b: base of rectangle
h: height of rectangle
result:
a system containing: centroid, perimeter, area
Passo 1
O enunciado pede uma rotina que, dados a base e a altura de um retângulo, retorne três valores: a área , o perímetro e o centróide (referido ao canto inferior esquerdo). O conteúdo principal é aplicação de fórmulas básicas de geometria e checagem de pré-condição e .
Passo 2
Verificamos primeiro a condição de validade das entradas: se ou , não faz sentido calcular propriedades geométricas. Nesse caso, marcamos as saídas como indefinidas (ou lançamos erro).
Para a área usamos a fórmula clássica de retângulo:
Passo 3
Para o perímetro aplicamos somando todos os lados.
O centróide de um retângulo localizado com um vértice na origem e lados paralelos aos eixos está exatamente no ponto médio de suas diagonais. Logo, sei:
Passo 4
Finalmente, retornamos o triplo C, P, A conforme a especificação.
Resposta
Procedure RectangleProperties_1(b,h)
if (b>0) and (h>0) then
A := b cdot h
P := 2 cdot (b + h)
C :=
[ tfracb2 tfrach2
]
else
A := – // indefinido
P := – // indefinido
C := – // indefinido
end if
return C, P, A
End Procedure