Exercícios Resolvidos de Variáveis locais e variáveis globais

Ver Teoria

Enunciado

Um banhista precisa cruzar uma certa faixa de areia na praia, partindo do ponto A em direção ao acampamento no ponto B. Ele pode fazer isso atravessando perpendicularmente a faixa de areia e andando o restante ao longo de uma trilha ou cruzando-a em um ângulo θ , até um certo ponto, e andando o restante ao longo da trilha:

Considerando-se que o banhista caminha a 3.5   k m / h na areia e a 5   k m / h na trilha, determine o tempo para que ele chegue ao acampamento para diversos valores de θ .

As distâncias do ponto A até a trilha perpendicularmente (w) é 4,5   K m e a distância do inicio da trilha até o ponto B(u) é 14   k m .

Escreva um programa em uma rotina para resolver o problema.

Passo 1

Opa pessoal esse exercício é uma combinação de 2 conteúdos.

Que é o conteúdo de funções para otimizar o nosso procedimento de cálculo, mas também é um conteúdo que envolve testes lógicos pois temos duas condições.

Qual condição aplicar depende de onde o banhista chega, por exemplo se ele for em um ângulo onde seu ponto final é antes do ponto B , ele será obrigado a andar pela trilha modificando assim sua velocidade.

Mas primeiramente vamos equacionar o problema, como o ângulo e w é fixo vamos utilizar a equação da tangente.

t a n t a n   θ   = u w

Logo:

u = t a n t a n   θ   * w

Analisando a figura

Agora podemos calcular o valor de u a partir dos dados do problema e se ele for menor do que os 14 km o nosso banhista precisa andar a diferença na trilha, sacou?

Agora que já equacionamos o problema vamos montar nossa f u n c t i o n .

Passo 2

Para criar a f u n c t i o n precisamos primeiro lembrar da sua sintaxe.

A sintaxe da f u n c t i o n é a seguinte:

Primeiramente vamos anexar ela a alguma variável, pode ser qualquer letra ou nome, desde que não detenha caracteres especiais.

E depois vamos dar um nome para ela, nessa questão eu vou chamar de forma arbitrária a variável de F e dar o nome de b a n h i s t a .

Então minha f u n c t i o n fica:

f u n c t i o n   F = b a n h i s t a

Agora precisamos inserir as variáveis que vai alimentar nossa função, a questão nos dá o ângulo em graus e vou chamar esse valor de X , sendo assim a function é:

f u n c t i o n   F = b a n h i s t a ( X )

Vamos lá, agora que já iniciamos a function vamos criar seus elementos, lembre-se que queremos que a saída dessa função seja apenas o tempo de caminhada.

Primeiramente, vamos inserir a função para converter os graus em radianos junto com nosso valor de w.

Após isso vamos inserir a equação para calcular o valor de u, resultando:

Agora que temos como calcular o u vamos inserir nosso teste lógico, que corresponde ao seguinte:

Se o valor de u for menor que 14 é maior do que 0 temos que o tampo do percurso é a soma do tempo da areia mais o tempo da trilha resultando em:

t = V a r e i a S a r e i a + V t r i l h a S t r i l h a = 3.5 u + 5 14 - u

Caso contrário é apenas:

t = 3.5 s q r t ( 14 2 + 4.5 2 )

Pois todo o trajeto foi pela areia e a menor distância é dada por uma reta que liga os dois pontos, por teorema de Pitágoras a distância é dada por:

s q r t ( 14 2 + 4.5 2 )

Implementado no Matlab temos:

E para finalizar vamos colocar uma saída de dados para imprimir o tempo mais organizado:

A sintaxe da função f p r i n t f é a seguinte:

Onde devemos chamar a função, abrir um parêntese e escrever o texto que desejamos entre aspas simples.

No lugar que queremos imprimir os valores devemos colocar % f pois nossa variável geralmente é flutuante pois nem sempre toda raiz sai um número inteiro.

Após realizar essa operação, antes de fechar os parênteses da função f p r i n t f devemos linkar os % f a cada variável.

No caso vamos linkar o % f   a variável f que é o tempo.

Sendo assim, o código se torna:

Passo 3

Indo no janela de command Windows e executando a seguinte linha de código:

x = 0

b a n h i s t a x

Irá mostrar a seguinte informação:

Mostrando que conseguimos finalizar o problema.

Resposta

Ei, a resposta está no passo a passo :)