Você está aqui: Portugol ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular a apótema de um polígono regular de N lados em Portugol

Quantidade de visualizações: 363 vezes
Uma das formas mais comuns de se obter a área de um polígono regular é usando a seguinte fórmula:

\[\text{A} = \frac{1}{2} \cdot \text{p} \cdot \text{a} \]

Onde:

p: Perímetro, ou seja, a soma dos comprimentos de todos os lados.
a: Apótema, isto é, uma parte que une o centro do polígono ao meio de qualquer lado que esteja perpendicular.

Agora que já estamos alinhados, saiba que calcular a apótema de um polígono regular "na mão" é fácil, já que só precisamos medir a distância de dois lados opostos e dividir por dois ou traçar linhas cruzadas e medir a distância de um dos lados até a interseção dessas linhas. No entanto, em programação a coisa já é um pouco mais complicada.

Nesta dica mostrarei como podemos realizar esta tarefa em Portugol Studio. Para isso usaremos alguns truques de trigonometria. Comece analisando a seguinte imagem:



Note que temos um pentágono com cada lado medindo 4 metros. Recorde que um pentágono é um polígono regular de 5 lados. Para deixar a dica mais didática eu coloquei também uma linha azul representando a apótema do polígono e as linhas cruzadas.

Veja agora o código Portugol Web Studio que recebe a quantidade de lados do polígono, o comprimento dos lados e retorna a apótema:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// Apótema de um polígono regular de N lados em Portugol
programa {
  // vamos importar a biblioteca Matematica 
  inclua biblioteca Matematica --> m
  
  funcao inicio() {
    // variáveis usadas na resolução do problema
    inteiro lados, comprimento
    real apotema

    // vamos ler a quantidade de lados
    escreva("Informe a quantidade de lados: ")
    leia(lados)

    // vamos ler o comprimento dos lados
    escreva("Informe o comprimento dos lados: ")
    leia(comprimento)

    // e agora calculamos a apótema dos polígono
    apotema = calcular_apotema(lados, comprimento)

    // e mostramos o resultado
    escreva("A apótema do polígono é: ", apotema)
  }

  // função que calcula e retorna a apótema de um
  // polítono regular
  funcao calcular_apotema(inteiro lados, inteiro comprimento) {
    // a quantidade de lados e o comprimento deles
    // não podem ser negativos
    se ((lados < 0) ou (comprimento < 0)) {
      retorne -1
    }

    // calculamos a apótema
    retorne (comprimento / (2 * m.tangente((180.0 / lados) *
      m.PI / 180.0)))
  }
}

Ao executar este código Portugol nós teremos o seguinte resultado:

Informe a quantidade de lados: 5
Informe o comprimento dos lados: 4
A apótema do polígono é: 2.7527638409423476

Link para compartilhar na Internet ou com seus amigos:

Portugol ::: Dicas & Truques ::: Matemática e Estatística

Como resolver uma equação do segundo grau em Portugol - Como calcular Bhaskara em Portugol

Quantidade de visualizações: 2208 vezes
Como resolver uma equação do 2º grau usando Portugol

Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando um algoritmo escrito na ferramenta Portugol Studio, uma das preferidas para o aprendizado de algoritmos e lógica de programação.

Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a &#8800; 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita.

Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0.

Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente.

Como resolver uma equação do 2º grau

Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns:

a) Fórmula de Bhaskara;
b) Soma e produto.

O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa.

Como resolver uma equação do 2º grau usando Bhaskara

Como nosso algoritmo Portugol vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja:

\[\Delta =b^2-4ac\]

Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades:

a) Se determinante > 0, então a equação possui duas soluções reais.
b) Se determinante = 0, então a equação possui uma única solução real.
c) Se determinante < 0, então a equação não possui solução real.

Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara:

\[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\]

Vamos agora ao código Portugol (escrevi e testei no Portugol Webstudio). Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// "Como resolver uma equação do 2º grau usando Portugol
programa {
  // inclui a biblioteca Matematica
  inclua biblioteca Matematica --> mat

  // função principal do programa
  funcao inicio() {
    // variáveis usadas na resolução do problema
    // os coeficientes
    real a, b, c
    // as duas raizes, a imaginaria e o discriminante
    real raiz1, raiz2, imaginaria, discriminante

    // vamos pedir para o usuário informar os valores dos coeficientes
    escreva("Valor do coeficiente a: ")
    leia(a)
    escreva("Valor do coeficiente b: ")
    leia(b)
    escreva("Valor do coeficiente c: ")
    leia(c)

    // vamos calcular o discriminante
    discriminante = (b * b) - (4 * a * c)

    // a equação possui duas soluções reais?
    se (discriminante > 0) {
      raiz1 = ((b * -1) + mat.raiz(discriminante, 2.0)) / (2 * a)
      raiz2 = ((b * -1) - mat.raiz(discriminante, 2.0)) / (2 * a)
      escreva("Duas raizes: x1 = ", raiz1, " e x2 = ", raiz2)
    }
    // a equação possui uma única solução real?
    senao se (discriminante == 0){
      raiz1 = (b * -1) / (2 * a)
      raiz2 = (b * -1) / (2 * a)
      escreva("Duas raizes iguais: x1 = ", raiz1, " e x2 = ", raiz2)
    }
    // a equação não possui solução real?
    senao{
      raiz1 = (b * -1) / (2 * a)
      raiz2 = (b * -1) / (2 * a)
      imaginaria = mat.raiz((discriminante * -1), 2.0) / (2 * a)
      escreva("Existem duas raízes complexas: ")
      escreva("x1 = ", raiz1, " + " ,imaginaria, " e x2 = ", raiz2, " - ", imaginaria)
    }
  }
}

Ao executar este código Portugol nós teremos o seguinte resultado:

Valor do coeficiente a: 1
Valor do coeficiente b: 2
Valor do coeficiente c: -3
Existem duas raizes: x1 = 1.0 e x2 = -3.0


Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Laços

Exercícios Resolvidos de Portugol - A concessionária de veículos "CARANGO VELHO" está vendendo os seus veículos com descontos. Faça um algoritmo Portugol

Quantidade de visualizações: 676 vezes
Pergunta/Tarefa:

A concessionária de veículos "CARANGO VELHO" está vendendo os seus veículos com descontos. Faça um algoritmo Portugol que calcule e exiba o valor do desconto e o valor a ser pago pelo cliente de vários carros. O desconto deverá ser calculado de acordo com o ano do veículo.

Até o ano 2000 o desconto é 12%, e acima de 2000 o desconto é de 7%. Seu código deverá solicitar o valor do carro e o seu ano e aplicar o desconto correspondente. Além disso o sistema deverá perguntar se deseja continuar calculando descontos até que a resposta seja: "(N) Não". Informar o total de carros com ano até 2000 e o total geral a ser pago pelo cliente.

Sua saída deve ser parecida com:

Informe o valor do carro sem desconto: 25000
Informe o ano do carro: 2010
Desconto concedido: 1750
Valor do carro com desconto: 23250
Deseja adicionar mais carros? [S, N]: S

Informe o valor do carro sem desconto: 30500
Informe o ano do carro: 1985
Desconto concedido: 3660
Valor do carro com desconto: 26840
Deseja adicionar mais carros? [S, N]: S

Informe o valor do carro sem desconto: 16800
Informe o ano do carro: 1990
Desconto concedido: 2016
Valor do carro com desconto: 14784
Deseja adicionar mais carros? [S, N]: N

Total de carros com ano até 2000: 2
Total geral a pagar: 64874
Resposta/Solução:

Veja a resolução comentada deste exercício usando Portugol Webstudio:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

programa {
  funcao inicio() {
    // variáveis usadas na resolução do problema
    real valor_carro, valor_desconto, valor_carro_desconto
    real total_geral
    inteiro ano
    inteiro total_carros_ano_2000
    caracter resposta
    
    // vamos inicializar os valores de algumas variáveis
    total_geral = 0
    total_carros_ano_2000 = 0

    // repete até que o usuário informe o valor "N"
    faca {
      // vamos ler o valor do carro sem desconto
      escreva("\nInforme o valor do carro sem desconto: ")
      leia(valor_carro)
      
      // vamos ler o ano do carro
      escreva("Informe o ano do carro: ")
      leia(ano)

      // o ano é menor ou igual a 2000
      se (ano <= 2000) {
        valor_desconto = valor_carro * (12.0 / 100.0)
        // vamos somar mais este carro
        total_carros_ano_2000 = total_carros_ano_2000 + 1
      }
      senao {
        valor_desconto = valor_carro * (7.0 / 100.0)
      }

      // calculamos o valor do carro com o desconto
      valor_carro_desconto = valor_carro - valor_desconto
      escreva("Desconto concedido: ", valor_desconto)
      escreva("\nValor do carro com desconto: ", valor_carro_desconto)

      // somamos mais este valor ao total geral
      total_geral = total_geral + valor_carro_desconto

      // perguntamos se o usuário deseja adicionar mais carros
      escreva("\nDeseja adicionar mais carros? [S, N]: ")
      leia(resposta)
    } enquanto((resposta != 'N') e (resposta != 'n'))  

    // mostramos os resultados
    escreva("\nTotal de carros com ano até 2000: ", total_carros_ano_2000)
    escreva("\nTotal geral a pagar: ", total_geral)
  }
}



Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Portugol Básico

Exercícios Resolvidos de Portugol - Como calcular salário líquido em Portugol - Calculando o salário líquido de um professor

Quantidade de visualizações: 1145 vezes
Pergunta/Tarefa:

Escreva um algoritmo Portugol ou VisuAlg que calcule o salário líquido de um professor. Seu programa deverá solicitar que o usuário informe o valor da hora aula (como real), o número de horas trabalhadas no mês (como inteiro) e o percentual de desconto do INSS (como real). Em seguida mostre o salário líquido.

Sua saída deverá ser parecida com:

Informe o valor da hora aula: 28
Informe o número de horas trabalhadas no mês: 12
Informe o percentual de desconto do INSS: 8
Salário Bruto: R$ 336,00
Total de Descontos: R$ 26,88
Salário Líquido: R$ 309,12
Resposta/Solução:

Veja a resolução comentada deste exercício usando Portugol (na versão Portugol Webstudio):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// Cálculo de Salário Bruto e Líquido em Portugol
programa {
  funcao inicio() {
    // variáveis usadas para resolver o problema
    real valor_hora_aula
    inteiro horas_trabalhadas
    real percentual_desconto_inss
    real salario_bruto
    real salario_liquido
    real total_desconto

    // vamos ler o valor do hora aula
    escreva("Informe o valor da hora aula: ")
    leia(valor_hora_aula)

    // vamos ler o número de horas trabalhadas no mês
    escreva("Informe o número de horas trabalhadas no mês: ")
    leia(horas_trabalhadas)

    // vamos ler o percentual de desconto do INSS
    escreva("Informe o percentual de desconto do INSS: ")
    leia(percentual_desconto_inss)

    // vamos calcular o salário bruto
    salario_bruto = valor_hora_aula * horas_trabalhadas

    // agora calculamos o total do desconto
    total_desconto = (percentual_desconto_inss / 100) * salario_bruto

    // finalmente calculamos o salário líquido
    salario_liquido = salario_bruto - total_desconto

    // mostramos o resultado
    escreva("\nSalário Bruto: R$ ", salario_bruto)
    escreva("\nTotal de Descontos: R$ ", total_desconto)
    escreva("\nSalário Líquido: R$ ", salario_liquido)
  }
}



Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

O projeto de instalação hidrossanitária

As fossas sépticas consistem em alternativas para o tratamento primário, em soluções individuais de esgotamento sanitário. A ABNT NBR 7229:1993 (Projeto, construção e operação de sistemas de tanques sépticos) define alguns cuidados necessários em relação ao tamanho e ao dimensionamento necessário.

Considere as seguintes sentenças:

I - O tanque séptico consiste em uma unidade cilíndrica ou prismática retangular de fluxo horizontal para tratamento de esgotos por processos de sedimentação, flotação e digestão, o qual deve respeitar uma distância mínima de 1,50m de construções.

II - O sumidouro é definido como um poço seco escavado no chão, sendo impermeabilizado.

III - O lodo e a escuma removidos dos tanques sépticos podem ser lançados em corpos de água ou galerias de águas pluviais, desde que atendam aos limites de lançamento definidos em lei.

Assinale a alternativa correta:

A) Apenas a sentença II está correta.

B) As sentenças I e II estão corretas.

C) Apenas a sentença I está correta.

D) Apenas a sentença III está correta.

E) Apenas as sentenças II e III estão corretas.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Perda de carga

Perda de carga é a energia dissipada em forma de calor devido ao atrito e à viscosidade em uma canalização.

Nesse sentido, a perda de carga unitária em um tubo de 50mm de diâmetro, coeficiente de atrito de 0,031 e comprimento de 100m, sendo que a água escoa com vazão de 0,01 m3/s, é de:

A) 0,47m/m.

B) 0,52m/m.

C) 0,74m/m.

D) 0,82m/m.

E) 0,94m/m.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

O projeto de instalação hidrossanitária

Em relação ao histograma, considere as seguintes sentenças:

I - Histograma consiste em um gráfico que apresenta a distribuição de frequências de uma variável por meio de retângulos justapostos, feitos sobre as classes dessa variável, sendo que a área de cada retângulo é proporcional à frequência observada da correspondente classe.

II - Histogramas são obrigatórios em todos os projetos civis, sendo, inclusive, exigidos pelos órgãos para liberação do habite-se;

III - Histogramas são recomendáveis apenas em projetos muito grandes ou de grande complexidade.

Assinale a alternativa correta:

A) Apenas as sentenças I e II estão corretas.

B) Apenas as sentenças II e III estão corretas.

C) Apenas a sentença I está correta.

D) Apenas a sentença III está correta.

E) Todas as sentenças estão corretas.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Ações em estruturas: apresentação dos principais carregamentos na análise de estruturas convencionais

As variações de temperatura causam ações nas estruturas. Tanto isso é verdade que é recomendado, em lajes com área grande, as tão conhecidas juntas de dilatação para evitar que ocorram fissuras no concreto devido às deformações causadas pelo carregamento térmico. A ação devido às variações de temperatura é classificada como?

A) Ação acidental direta.

B) Ação permanente indireta.

C) Ação permanente direta.

D) Ação acidental indireta.

E) Ação excepcional.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

soma = 0
for i in range(0, 10):
  soma = soma + 3
  if i > 4:
    break
  
print("A soma é: {0}".format(soma))

A) A soma é: 9

B) A soma é: 19

C) A soma é: 24

D) A soma é: 18

E) A soma é: 28
Verificar Resposta Estudar Cards Todas as Questões

Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Portugol

Veja mais Dicas e truques de Portugol

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 26 usuários muito felizes estudando em nosso site.