Área de Códigos
Authors
Affiliations
PROFMAT, Universidade Federal do Cariri
PROFMAT, Universidade Federal do Cariri
Nesta seção, você encontrará todos os códigos usados para os desafios e exemplos.
Código 1: Gera os pontos, calcula medidas, perímetro e área¶
using Plots
gr(size=(500, 500)) # Define o backend gráfico e o tamanho da janela
# Declarar fora da função para facilitar o uso depois
global x, y, AB, AC, BC, P, S
function gerar_figura()
global x, y, AB, AC, BC, P, S # Necessário para modificar as variáveis globais
# Geração dos pontos A, B e C
a = rand(0:10)
b = rand(0:10)
x = [a, rand(0:10), rand(0:10), a] # x[1]=Ax, x[2]=Bx, x[3]=Cx, x[4]=Ax
y = [b, rand(0:10), rand(0:10), b] # y[1]=Ay, y[2]=By, y[3]=Cy, y[4]=Ay
# Cálculo das distâncias entre os pontos
AB = hypot(x[1] - x[2], y[1] - y[2])
AC = hypot(x[1] - x[3], y[1] - y[3])
BC = hypot(x[2] - x[3], y[2] - y[3])
# Perímetro
P = round(AB + AC + BC, digits = 1)
# Área (fórmula do determinante)
S = abs((x[1]*y[2] + x[2]*y[3] + x[3]*y[1] -
y[1]*x[2] - y[2]*x[3] - y[3]*x[1])) / 2
return nothing # Para não “vazar” o valor de S como retorno
end
gerar_figura (generic function with 1 method)
Código 2: Plota a figura¶
function plotar_figura(x,y)
plot(x, y,
title = "Triângulo",
lw = 3,
label = false,
xlim = (-1, 11),
ylim = (-1, 11),
xticks = 0:10,
yticks = 0:10,
aspect_ratio = :equal,
fillrange = 0, fillalpha = 0.5, fillcolor = :yellow,
grid = :on, gridalpha = 0.7, gridstyle = :dash)
scatter!(x[1:3], y[1:3],
label = false,
annotations = (x[1:3] .+ 0.3, y[1:3] .+ 0.3, ["A", "B", "C"]))
end
plotar_figura (generic function with 1 method)
Código 3: Teste de existência do triângulo¶
function existência_triângulo(S)
println("A figura é um triângulo?:")
println("\u270D Digite (s/n) para informar sua conclusão:")
d1 = readline()
# Verifica a existência através da área:
if S>0
exist = "s" # Sim, o triângulo existe
else
exist = "n" # Não, o triângulo não existe
end
if exist == d1
println("\u2705 Você acertou!")
else
println("\u274C Você errou!")
println("\U0001F501 Retorne à célula anterior e gere novas coordenadas")
end
end
existência_triângulo (generic function with 1 method)
Código 4. Verifica os vértices do triângulo¶
function verificar_vertices(x, y)
println("Informe as coordenadas x e y do ponto A")
x_1 = parse(Int, readline())
y_1 = parse(Int, readline())
println("Informe as coordenadas x e y do ponto B")
x_2 = parse(Int, readline())
y_2 = parse(Int, readline())
println("Informe as coordenadas x e y do ponto C")
x_3 = parse(Int, readline())
y_3 = parse(Int, readline())
println(repeat("*", 39))
A = [x[1], y[1]]
B = [x[2], y[2]]
C = [x[3], y[3]]
# Verificação das respostas
if A == [x_1, y_1]
println("\u2705 Ponto A!")
else
println("\u274C Ponto A!")
println("\U0001F501 Tente novamente!")
end
if B == [x_2, y_2]
println("\u2705 Ponto B!")
else
println("\u274C Ponto B!")
println("\U0001F501 Tente novamente!")
end
if C == [x_3, y_3]
println("\u2705 Ponto C!")
else
println("\u274C Ponto C!")
println("\U0001F501 Tente novamente!")
end
end
verificar_vertices (generic function with 1 method)
Código 5: Teste das medidas dos lados¶
function verificar_lados(AB,AC,BC)
println("\u270D Informe a medida do lado AB")
AB_1 = parse(Float64, readline())
println("\u270D Informe a medida do lado AC")
AC_1 = parse(Float64, readline())
println("\u270D Informe a medida do lado BC")
BC_1 = parse(Float64, readline())
if round(AB, digits=1) == AB_1
println("O lado AB: \u2705")
else
println("O lado AB: \u274C")
println("\U0001F501 Tente novamente!")
end
if round(AC, digits=1) == AC_1
println("O lado AC: \u2705")
else
println("O lado AC: \u274C")
println("\U0001F501 Tente novamente!")
end
if round(BC, digits=1) == BC_1
println("O lado BC: \u2705")
else
println("O lado BC: \u274C")
println("\U0001F501 Tente novamente!")
end
end
verificar_lados (generic function with 1 method)
Código 6: Teste de classificação do triângulo (lados)¶
function classificacao_lados(AB, AC, BC)
println("\u270D Qual classificação do triângulo ABC?")
println("1\u20E3 Equilátero")
println("2\u20E3 Isósceles")
println("3\u20E3 Escaleno")
d2 = parse(Int, readline())
if AB == AC && AC == BC
class = 1 # Equilátero
elseif AB == AC || AB == BC || AC == BC
class = 2 # Isósceles
else
class = 3 # Escaleno
end
if class == d2
println("\u2705 Você acertou!")
else
println("\u274C Você errou!")
println("\u27F3 Tente novamente!")
end
end
classificacao_lados (generic function with 1 method)
Código 7: Cálculo dos ângulos internos¶
function ângulo_interno(AB,AC,BC,S)
α = round(Int,asind((2 * S) / (AB * AC)))
β = round(Int,asind((2 * S) / (AB * BC)))
println("As medidas de dois dos ângulos internos do triângulo ABC são: $(α)° e $(β)°.")
println("Qual a medida do terceiro ângulo?")
γ = parse(Int, readline())
if γ == 180 - α - β
println("\u2705 Você acertou!")
else
println("\u274C Você errou!")
println("\U0001F501 Refaça seus cálculos e tente novamente")
end
end
ângulo_interno (generic function with 1 method)
Código 8: Teste de classificação do triângulo (ângulos)¶
function classificacao_ângulos(AB, AC, BC)
println("\u270D Qual classificação do triângulo ABC?")
println("1\u20E3 Acutângulo")
println("2\u20E3 Obtusângulo")
println("3\u20E3 Retângulo")
d3 = parse(Int, readline()) # Armazena a resposta do usuário
lados = Float64[AB, AC, BC]
l = sort(lados) # Coloca em ordem crescente
if l[3]^2 < l[1]^2 + l[2]^2
class_a = 1 # Acutângulo
elseif l[3]^2 > l[1]^2 + l[2]^2
class_a = 2 # Obtusângulo
else
class_a = 3 # Retângulo
end
if class_a == d3
println("\u2705 Você acertou!")
else
println("\u274C Você errou!")
println("\U0001F501 Tente novamente!")
end
end
classificacao_ângulos (generic function with 1 method)
Código 9: Cálculo do perímetro¶
function perimetro(P)
println("\u270D Informe a medida do perímetro do triângulo ABC:")
d4 = parse(Float64, readline())
if d4 == P
println("\u2705 Sua resposta está correta!")
println("O perímetro do triângulo ABC mede: $P unidades.")
else
println("\u274C Sua resposta está incorreta.")
println("\u21BA Tente novamente!")
end
end
perimetro (generic function with 1 method)
Código 10: Cálculo da área¶
function area(S)
println("\u270D Informe a medida da área do triângulo ABC:")
d5 = parse(Float64, readline()) #Recebe o valor da área
if d5 == S
println("\u2705 Sua resposta está correta!")
println("A área do triângulo ABC mede: $S unidades².")
println("\u2728 PARABÉNS! \u2728")
println()
println("Se você está lendo esta mensagem, significa que venceu todos os desafios!")
println("Excelente trabalho, continue praticando e desafiando sua mente!")
println("Até os próximo desafios!")
else
println("\u274C Sua resposta está incorreta.")
println("\u21BB Tente novamente!")
end
end
area (generic function with 1 method)