Buscar

Trajetória Parabólica da Bola de Futebol

Prévia do material em texto

INF100 - Introduc¸a˜o a` Programac¸a˜o I
Lista de Exerc´ıcios Especial - I
Problema da Trajeto´ria Parabo´lica da Bola de
Futebol
Prof. Marcos Henrique Fonseca Ribeiro
Abril de 2012
Introduc¸a˜o
Nesta lista, iremos desenvolver uma se´rie de exerc´ıcios envolvendo a primeira
parte dos conceitos vistos durante a disciplina, com diferentes n´ıveis de complex-
idade. Os conteu´dos abordados compreendera˜o: varia´veis e tipos de varia´veis,
expresso˜es e func¸o˜es matema´ticas, testes lo´gicos e estruturas de controle de fluxo
(selec¸a˜o e repetic¸a˜o). Os assuntos mais avanc¸ados sera˜o contemplados em outra
lista desta natureza.
Os exerc´ıcios todos se desenvolvera˜o a partir de variantes de um mesmo
problema f´ısico e teˆm a intenc¸a˜o de exercitar o processo completo de desen-
volvimento de um programa, partindo da especificac¸a˜o de um problema. Esta
lista tambe´m tem, como motivac¸a˜o, trabalhar com os conceitos vistos na mate´ria
sob um ponto de vista aplicado.
A lista se apresenta sob a seguinte dinaˆmica. A cada exerc´ıcio, o problema
do exerc´ıcio anterior vai sendo modificado e o desenvolvimento de um novo
programa e´ discutido a partir do problema novo. Em alguns casos, o problema
sera´ levemente adaptado e a discussa˜o da soluc¸a˜o tambe´m sera´ apenas adaptado.
Em outros casos, a discussa˜o do novo problema e a elaborac¸a˜o do novo programa
sera˜o desenvolvidos desde o in´ıcio.
Por fim, todos os problemas se desenvolvera˜o a partir de um problema ba´sico,
onde uma bola de futebol, em repouso sobre o solo, e´ chutada por um jogador,
que imprime sobre a mesma uma velocidade inicial V0, formando um aˆngulo θ
com uma linha imagina´ria, paralela ao solo, conforme ilustrado na Figura 1.
Preaˆmbulo: considerac¸o˜es iniciais
Em todos exerc´ıcios, sera˜o utilizados os valores e as convenc¸o˜es apresentadas
nesta Sec¸a˜o. Primeiramente, e´ importante ressaltar que, quando o efeito do
vento for considerado, este sera´ sempre horizontal, isto e´, sempre paralelo ao
solo. Ale´m disso, quaisquer efeitos ou influeˆncias externas na˜o explicitamente
citadas nos enunciados dos exerc´ıcios devem ser desconsiderados. Por exemplo,
se um exerc´ıcio na˜o menciona atrito do ar ou velocidade do vento, estes fatores
podem ser desprezados durante a resoluc¸a˜o do exerc´ıcio.
1
Figura 1: Velocidade inicial imposta a` bola em repouso sobre o solo
As demais convenc¸o˜es sa˜o apresentadas nas tabelas a seguir.
Constantes relacionadas ao ambiente
Podem ser encontradas na Tabela 1
Constante S´ımbolo Valor Unidade
Mo´dulo da acelerac¸a˜o da gravidade g 9, 80665 m/s2
Densidade do ar ρar 1, 225 Kg/m
3
Tabela 1: Valores das constantes f´ısicas relacionadas ao ambiente
Convenc¸o˜es para as propriedades da bola de futebol
Podem ser encontradas na Tabela 2
Grandeza S´ımbolo Valor Unidade
Raio da bola rb 0, 7 m
Massa da bola mb 0, 43 Kg
Tabela 2: Valores para as propriedades f´ısicas da bola de futebol
Converso˜es de unidade
Podem ser encontradas na Tabela 3
Unidade Equivaleˆncia
3, 6Km/h 1m/s
1grau 0, 0174532925rad
Tabela 3: Converso˜es de unidade empregadas
2
Exerc´ıcio 1
Fac¸a um programa em C++ onde o usua´rio informa o valor do mo´dulo da
velocidade inicial (V0), em m/s, gerada pelo chute do jogador na bola e tambe´m
o aˆngulo θ, em radianos, que a mesma faria com o solo, conforme a Figura 1.
A partir destes valores, o programa deve calcular a que distaˆncia a bola tocara´
o solo novamente (aqui referida como alcance) e qual a altura ma´xima atingida
pela bola na trajeto´ria que descrevera´.
Discussa˜o do problema f´ısico
Quando chuta uma bola em repouso sobre o solo, um jogador de futebol imprime
a` mesma uma velocidade inicial, que gerara´ movimento parabo´lico, devido a`
combinac¸a˜o de Movimento Retil´ıneo Uniforme (MRU), na componente horizon-
tal da velocidade, e um Movimento Retil´ıneo Uniformemente Variada (MRUV),
devido a` influeˆncia da acelerac¸a˜o da gravidade, na componente vertical da ve-
locidade. Assim, o primeiro passo para a modelagem da soluc¸a˜o do problema
consiste em decompor V0 em suas componentes horizontal Vx e vertical Vy (ver
Figura 2), para que se analise cada movimento em separado.
Figura 2: Decomposic¸a˜o de V0 em suas componentes horizontal e vertical
Utilizando as relac¸o˜es trigonome´tricas do triaˆngulo retaˆngulo, os mo´dulos
das componentes horizontal e vertical da velocidade inicial podem ser calculados
pelas equac¸o˜es:
Vx = V0cos(θ), (1)
Vy = V0sen(θ). (2)
O alcance da trajeto´ria e´ determinado pelo deslocamento horizontal da bola.
Como se trata de um MRU, pode-se empregar a equac¸a˜o abaixo para se calcular
esse deslocamento:
S = S0 + V t
S − S0 = V t
∆S = V t, (3)
3
onde ∆S equivale ao alcance desejado, representado daqui por diante por
A, e a velocidade em questa˜o e´ Vx. Substituindo-se a Equac¸a˜o 1 na Equac¸a˜o 3,
temos:
A = V0 · cos(θ) · t. (4)
No entanto, o resultado da Equac¸a˜o 4 obtida, ainda depende do valor de
t, que representa o tempo decorrido ate´ que a bola toque novamente o solo.
Devemos enta˜o agora calcular este tempo, que e´ determinado pela trajeto´ria
vertical. Neste caso, t e´ o tempo gasto pela bola para atingir a altura ma´xima
e retornar ao solo. O tempo que um corpo demora para atingir o a´pice da
trajeto´ria vertical e´ o mesmo que demora para retornar ao solo. Assim, t =
2 · tsubida. Na trajeto´ria de subida, a velocidade inicial e´ Vy e a velocidade final
e´ zero, no auge do movimento. A acelerac¸a˜o que atua e´ a da gravidade, em
sentido contra´rio ao do movimento, portanto com sinal negativo. Sendo assim,
pode-se utilizar a equac¸a˜o do MRUV, para se calcular o tempo total t, com base
no tempo de subida, conforme abaixo:
V = V0 + atsubida
0 = Vy − g · tsubida
Vy = g · tsubida
V0 · sen(θ) = g · tsubida
tsubida =
V0 · sen(θ)
g
2tsubida = 2
V0 · sen(θ)
g
t =
2 · V0 · sen(θ)
g
. (5)
Agora, tem-se uma expressa˜o para o tempo total para a bola retornar ao
solo que depende apenas de constantes e dos valores de entrada e esta pode ser
aplicada na Equac¸a˜o 4 para que se elimine a dependeˆncia do tempo:
A = (V0 · cos(θ)) · 2 · V0 · sen(θ)
g
A =
2 · V0 · sen(θ) · V0 · cos(θ)
g
A =
V 20 · 2 · sen(θ) · cos(θ)
g
.
Mas, da trigonometria, tem-se que 2 · sen(θ) · cos(θ) = sen(2θ), logo:
A =
V 20 · sen(2θ)
g
. (6)
Portanto, chegamos em uma fo´rmula para o ca´lculo do alcance que depende
apenas dos dados de entrada ou de constantes pre´-estabelecidas. Assim, temos
condic¸o˜es de atender a um dos valores pedidos no enunciado do exerc´ıcio. O
4
outro, a altura ma´xima atingida, que aqui chamaremos de h, pode ser obtido
diretamente:
V 2 = V 20 + 2a ·∆S
0 = V 2y − 2g · h
h =
V 2y
2g
h =
V 20 · sen2(θ)
2g
, (7)
que tambe´m e´ uma expressa˜o que depende apenas dos dados de entrada
ou constante. Deta maneira, encontramos fo´rmulas que podem ser diretamente
calculadas a partir dos dados de entrada do programa e que resultam nos valores
pedidos no exerc´ıcio. Sendo assim, podemos avanc¸ar em direc¸a˜o a` elaborac¸a˜o
de um algoritmo, passando primeiro por uma versa˜o em alto n´ıvel do mesmo.
Algoritmo em alto n´ıvel
Representado no Algoritmo 1.
Algoritmo 1: Algoritmo em alto n´ıvel para o Exerc´ıcio 1
1 Obtenha do usua´rio o valor de V0;
2 Obtenha do usua´rio o valor de θ;
3 g ← 9, 80665;
4 Calcule o alcance, usando a fo´rmula correspondente;
5 Calcule a altura ma´xima, usando a fo´rmula correspondente;
6 Exiba em tela os valores calculados;
Algoritmo detalhado
Representado no Algoritmo 2.
Programa em C++
Cabera´ ao aluno desenvolver o programa correspondente.
Exerc´ıcio 2
Este exerc´ıcio e´ uma extensa˜o do primeiro. E´ ideˆntico em todos os aspectos,
exceto que o valor de V0 deve ser informado em Km/h e o valor de θ deve ser
informadoem graus.
OBSERVAC¸A˜O: deste ponto em diante, todos os exerc´ıcios tera˜o suas
entradas em Km/h e graus, isto e´, sempre sera´ necessa´ria a conversa˜o da entrada
para m/s e radianos.
5
Algoritmo 2: Algoritmo detalhado para o Exerc´ıcio 1
varia´vel: V0: real
varia´vel: θ: real
varia´vel: g: real
varia´vel: A: real
varia´vel: h: real
// Entrada de dados
1 Imprima: “Informe a velocidade inicial:”;
2 Leia: V0;
3 Imprima: “Informe o angulo:”;
4 Leia: θ;
// Ca´lculos
5 g ← 9, 80665;
6 A← (V 20 · sen(2θ))/g;
7 h← (V 20 · sen2(θ))/2g;
// Exibic¸~ao dos resultados em tela
8 Imprima: “A bola cai a ”, A, “ metros de onde partiu”;
9 Imprima: “A bola atinge uma altura ma´xima de ”, h, “ metros”;
Discussa˜o do problema f´ısico
Do ponto de vista da discussa˜o f´ısica, a u´nica alterac¸a˜o, com relac¸a˜o ao problema
anterior, e´ que os valores de entrada de V0 e θ devem ser convertidos para m/s
e radianos, antes que sejam aplicados nas fo´rmulas. A tabela de conversa˜o da
Sec¸a˜o do Preaˆmbulo deve ser utilizada para isso.
O desenvolvimento dos algoritmos em alto n´ıvel e detalhado, bem como o
programa em C++, ficam a cargo do aluno.
Exerc´ıcio 3
Considere agora o mesmo problema do exerc´ıcio anterior. Nesta versa˜o, no
entanto, sera´ considerado que a bola se encontrava a 40 metros do gol (linha de
fundo) no momento do chute. O programa, ale´m de calcular o alcance e a altura
ma´xima, devera´ informar ao usua´rio se o chute foi suficiente para alcanc¸ar ou
ultrapassar a linha de fundo.
Discussa˜o do problema
A resoluc¸a˜o sera´ basicamente a mesma do exerc´ıcio anterior. Pore´m, apo´s cal-
cular o alcance, deve-se verificar se este e´ pelo menos igual a` distaˆncia da bola
ao gol. Sendo, o programa informa que o chute e´ suficiente para alcanc¸ar a linha
de fundo. Caso contra´rio, deve informar que o chute foi fraco para este objetivo.
Desta vez, sera´ apresentado diretamente o algoritmo detalhado, na Sec¸a˜o
seguinte.
6
Algoritmo detalhado
Representado no Algoritmo 3.
Algoritmo 3: Algoritmo detalhado para o Exerc´ıcio 3
varia´vel: V0: real
varia´vel: θ: real
varia´vel: g: real
varia´vel: A: real
varia´vel: h: real
// Entrada de dados
1 Imprima: “Informe a velocidade inicial:”;
2 Leia: V0;
3 Imprima: “Informe o angulo:”;
4 Leia: θ;
// Convers~ao dos valores de entrada
5 V0 ← V0/3.6;
6 θ ← θ · 0.0174532925;
// Ca´lculos
7 g ← 9.80665;
8 A← (V 20 · sen(2θ))/g;
9 h← (V 20 · sen2(θ))/2g;
// Exibic¸~ao dos resultados em tela
10 Imprima: “A bola cai a ”, A, “ metros de onde partiu”;
11 Imprima: “A bola atinge uma altura ma´xima de ”, h, “ metros”;
// Verificac¸~ao da forc¸a do chute
12 se A ≥ 40.0 enta˜o
13 Imprima: “A bola foi capaz de alcanc¸ar a linha de fundo.”;
14 sena˜o
15 Imprima: “O chute na˜o foi suficiente para a bola alcanc¸ar a linha de
fundo”;
Exerc´ıcio 4
Considere a sua soluc¸a˜o para o problema do exerc´ıcio anterior. Nesta versa˜o,
pore´m, ao inve´s da bola se encontrar a uma distaˆncia fixa do gola, o usua´rio
informara´ o valor da distaˆncia d com que a bola se encontrava do gol (em metros)
no momento do chute. Novamente como no caso anterior, o programa, ale´m de
calcular o alcance e a altura ma´xima, devera´ informar ao usua´rio se o chute foi
suficiente para alcanc¸ar a linha do gol (linha de fundo).
O desenvolvimento dos algoritmos e do programa em C++ ficam a cargo do
aluno.
7
Exerc´ıcio 5
Para refletir uma situac¸a˜o real, na˜o e´ qualquer valor que e´ permitido para os da-
dos de entrada. Para o caso do aˆngulo θ, so´ fazem sentido aˆngulos que atendam
ao intervalo 0◦ ≤ θ < 90◦, uma vez que aˆngulos acima de 180◦ representariam
vetores de velocidade “entrando” no solo, enquanto valores entre 90◦ e 180◦ rep-
resentariam chutes “para tra´s”. Tambe´m podemos limitar a distaˆncia da bola
ao gol para os limites va´lidos de um campo de futebol, isto e´, 0 ≤ d ≤ 110, assu-
mindo a dimensa˜o ma´xima de comprimento do campo, pelas regras do esporte.
Por fim, podemos tambe´m limitar a velocidade inicial, ja´ que velocidades negati-
vas na˜o fazem sentido e um jogador convencional na˜o conseguiria imprimir uma
velocidade excessivamente alta. Neste caso, vamos arbitrar um valor ma´ximo
para 160Km/h. Sendo assim, o intervalo va´lido para este dado de entrada fica
0 < V0 ≤ 180.
Discussa˜o do problema
O problema f´ısico deste exerc´ıcio e´ o mesmo do anterior. O exerc´ıcio ser resume
a promover melhorias no programa, a fim de que o mesmo evite fazer ca´lculos
que gerem resultados invia´veis fisicamente. Assim, o Exerc´ıcio 5 consiste, enta˜o,
em acrescentar um tratamento aos valores de entrada fornecidos pelo usua´rio,
fazendo com que o programa fac¸a o usua´rio repetir os dados ate´ que os valores
estejam de acordo com as restric¸o˜es aqui descritas.
Algoritmo em alto n´ıvel
Representado no Algoritmo 4.
Algoritmo 4: Algoritmo em alto n´ıvel para o Exerc´ıcio 5
// Adaptac¸~ao da entrada de dados
1 Obtenha do usua´rio o valor de V0;
2 enquanto V0 /∈ (0, 180] fac¸a
3 Informe ao usua´rio que o valor e´ inva´lido;
4 Obtenha do usua´rio o valor de V0;
5 Obtenha do usua´rio o valor de θ;
6 enquanto θ /∈ [0, 90] fac¸a
7 Informe ao usua´rio que o valor e´ inva´lido;
8 Obtenha do usua´rio o valor de θ;
9 Obtenha do usua´rio o valor de d;
10 enquanto d /∈ [0, 110] fac¸a
11 Informe ao usua´rio que o valor e´ inva´lido;
12 Obtenha do usua´rio o valor de d;
13 Restante da soluc¸a˜o e´ o mesmo do Exerc´ıcio 4;
Cabe ao aluno desenvolver o algoritmo detalhado, bem como o programa em
C++.
8
Exerc´ıcio 6
Adapte o programa do exerc´ıcio anterior para que, ao inve´s de utilizar a estru-
tura de repetic¸a˜o enquanto (ou while, no C++), utilize a estrutura de repetic¸a˜o
fac¸a...enquanto (ou do...while, no C++), mantendo o resultado da execuc¸a˜o
rigorosamente o mesmo da versa˜o anterior.
Exerc´ıcio 7
Neste exerc´ıcio, na˜o se trabalhara´ com o alcance ou a altura ma´xima atingida
pela trajeto´ria. Mas com valores intermedia´rios de altura e distaˆncia atingidas
pela bola. Para a distaˆncia, utilizaremos a varia´vel x, enquanto para a altura, a
varia´vel y. Deseja-se saber, enta˜o, para um dado instante de tempo t, quantos
metros a bola se afastou na horizontal do ponto em que estava e em que altura
a mesma se encontra. Para tal, o usua´rio devera´ informar V0, θ e o instante t
em que deseja obter a posic¸a˜o da bola.
Mais uma vez, o tratamento dos valores va´lidos de entrada deve ser observado
na construc¸a˜o do programa relativo ao exerc´ıcio. Pore´m, ha´ um tratamento
adicional agora, para o paraˆmetro t que, por representar um instante de tempo,
na˜o podera´ ser negativo. Em princ´ıpio, na˜o haveria necessidade de impor uma
restric¸a˜o ma´xima para t, mas sabe-se que, por mais forte que um chute seja,
a bola na˜o ficaria no ar por muito mais que poucos segundos. Desta forma,
podemos impor tambe´m um limite superior para este paraˆmetro, como fizemos
para a velocidade inicial. Assim, tem-se a restric¸a˜o 0 < t ≤ 10.
Por fim, vale lembrar de novo que a conversa˜o das unidades da velocidade
inicial e do aˆngulo θ devem ser contempladas tambe´m neste exerc´ıcio/programa.
Discussa˜o do problema f´ısico
Novamente, faremos a ana´lise dos movimentos horizontal e vertical de forma
independente. Na horizontal, o deslocamento pode ser obtido pela Equac¸a˜o 3,
relativa ao MRU:
∆S = V t
x = Vx · t
x = V0 · cos(θ) · t. (8)
Ja´ para o movimento vertical, o deslocamento pode ser obtido pela equac¸a˜o
do MRUV:
S = S0 + Vit+
a
2
t2
S − S0 = Vit+ a
2
t2
∆S = Vit+
a
2
t2,
onde ∆S representa o deslocamento vertical, Vi e´ a velocidade inicial do
movimento vertical, isto e´, Vy, e a acelerac¸a˜o e´ a da gravidade. Da´ı, vem:
9
y = Vy · t− g
2
t2
y = V0 · sen(θ) · t− g
2
t2. (9)
Desta maneira, as Equac¸o˜es 8 e9 sa˜o capazes de fornecer, respectivamente, a
posic¸a˜o horizontal e vertical da bola em um dado instante de tempo t. Antes de
se avanc¸ar no estudo dos algoritmos e do programa, e´ importante, no entanto,
observar algo sobre a interpretac¸a˜o f´ısica dos resultados.
Imaginemos que o usua´rio fornec¸a um valor para t que seja superior ao tempo
que a bola demoraria para alcanc¸ar o solo, de acordo com a velocidade inicial e
o aˆngulo por ele informados. Na˜o haveria problemas com o valor calculado para
x, uma vez que o movimento horizontal gerara´ valores sempre crescentes. Com
relac¸a˜o ao valor de y, haveria um pequeno problema de interpretac¸a˜o.
Por exemplo, suponha que o usua´rio forneca os seguintes valores de entrada:
V0 = 90Km/h, θ = 45
◦ e t = 4s. Fazendo-se a conversa˜o de unidades e
aplicando-se os valores obtidos na Equac¸a˜o 5, obte´m-se que a bola demoraria
cerca de 3, 6s para atingir o solo novamente. Ou seja, neste caso o valor de t
informado pelo usua´rio e´ superior ao valor que de fato a bola demora para atingir
o solo. Quando este tipo de situac¸a˜o acontecer, ao se aplicar t = 4s na Equac¸a˜o
9, obteria-se o valor y = −7, 74m. Resumindo, quando o tempo informado pelo
usua´rio e´ mais que suficiente para atingir o solo, obte´m-se y < 0. Desta forma,
o programa devera´ informar o valor zero para y, pois a bola estaria sobre o solo,
e do alcance, para x, uma vez que o movimento teria encerrado.
Importante: estamos desconsiderando aqui o “quique” da bola. Isto e´,
assumimos que ao tocar o solo ela permanecera´ no ponto de contato.
Algoritmo em alto n´ıvel
Representado no Algoritmo 5.
Algoritmo 5: Algoritmo em alto n´ıvel para o Exerc´ıcio 7
1 Obtenha do usua´rio o valor de V0;
2 Valide o valor de V0, de acordo com as restric¸o˜es do problema;
3 Obtenha do usua´rio o valor de θ;
4 Valide o valor de θ, de acordo com as restric¸o˜es do problema;
5 Obtenha do usua´rio o valor de t;
6 Valide o valor de t, de acordo com as restric¸o˜es do problema;
7 Converta as unidades de V0 e θ;
8 Calcule o valor de x de acordo com a Equac¸a˜o 8;
9 Calcule o valor de y de acordo com a Equac¸a˜o 9;
10 se y < 0 enta˜o
11 y ← 0;
12 Calcule o alcance, utilizando a Equac¸a˜o 6;
13 x← alcance;
14 Exiba os valores de x e y ao usua´rio;
10
Cabe ao aluno desenvolver o algoritmo detalhado, bem como o programa
C++.
Exerc´ıcio 8
Utilizando o exerc´ıcio anterior como base, desenvolva um programa de com-
putador que seja capaz de reproduzir os exemplos de tela a seguir. Vale notar
que, obviamente, ale´m de reproduzir os resultados aqui ilustrados, o programa
deve ser capaz de fornecer a resposta correta para qualquer conjunto de dados
de entrada. As validac¸o˜es das restric¸o˜es dos valores de entrada e conversa˜o de
unidades, como sempre, devem ser observadas.
Obs.: Os valores dos resultados mostrados nos exemplos foram obtidos com
um computador espec´ıfico, de 64 bits. Os valores obtidos em outros computa-
dores podem variar ligeiramente, por conta da precisa˜o de cada ma´quina. Desta
maneira, se os valores encontrados pelo aluno diferirem daqueles aqui apresenta-
dos por conta simplesmente de arredondamentos, pode-se considerar os valores
como corretos.
Exemplo 1:
Informe a velocidade do chute: 70
Informe o angulo: 20
Instante final da simulacao: 2
==================================
t = 0
x = 0
y = 0
==================================
t = 0.25
x = 4.56795
y = 1.35614
==================================
t = 0.5
x = 9.1359
y = 2.09936
==================================
t = 0.75
x = 13.7039
y = 2.22967
==================================
t = 1
x = 18.2718
y = 1.74707
==================================
t = 1.25
x = 22.8398
y = 0.651544
==================================
t = 1.5
x = 27.4077
y = -1.05689
==================================
t = 1.75
x = 31.9757
y = -3.37825
==================================
t = 2
x = 36.5436
y = -6.31252
Exemplo 2:
Informe a velocidade do chute: 95
Informe o angulo: 30
Instante final da simulacao: 3
==================================
t = 0
x = 0
y = 0
==================================
t = 0.25
x = 5.71336
y = 2.99215
==================================
t = 0.5
x = 11.4267
y = 5.37139
11
==================================
t = 0.75
x = 17.1401
y = 7.13771
==================================
t = 1
x = 22.8534
y = 8.29112
==================================
t = 1.25
x = 28.5668
y = 8.83161
==================================
t = 1.5
x = 34.2802
y = 8.75919
==================================
t = 1.75
x = 39.9935
y = 8.07384
==================================
t = 2
x = 45.7069
y = 6.77559
==================================
t = 2.25
x = 51.4203
y = 4.86442
==================================
t = 2.5
x = 57.1336
y = 2.34033
==================================
t = 2.75
x = 62.847
y = -0.796673
==================================
t = 3
x = 68.5603
y = -4.54659
Exerc´ıcio 9
Adapte o programa anterior para que a listagem de valores seja interrompida
assim que o primeiro valor de y negativo seja encontrado. A entrada da listagem
correspondente ao valor negativo na˜o deve ser mostrada. No lugar dela, deve
ser exibida uma mensagem de “solo encontrado”.
Exerc´ıcio 10
A partir deste problema, a ac¸a˜o do vento sobre a bola passara´ a ser considerada.
Retomaremos o problema do Exerc´ıcio 7. Recapitulando, deseja-se saber, para
um dado instante de tempo t, quantos metros a bola se afastou na horizontal
do ponto em que estava e em que altura a mesma se encontra. Para tal, o
usua´rio deve informar V0, θ, o instante t em que deseja obter a posic¸a˜o da bola
e, neste novo exerc´ıcio, informara´ tambe´m o valor da velocidade Vv, do vento.
Por convenc¸a˜o, um valor negativo da velocidade indica que o vento esta´ contra
o movimento, enquanto um valor positivo indica que o vento esta´ a favor do
movimento da bola. Deve ser lembrado que, conforme indicado na Sec¸a˜o do
Preaˆmbulo, Vv sera´ sempre considerada como horizontal, i.e., paralela ao solo.
Como sa˜o permitidos valores negativos para o vento, vamos apenas impor
limites ao mo´dulo desta velocidade. Como a ac¸a˜o do vento e´ bastante com-
plicada de se quantificar, pois depende de muitas variac¸o˜es de aˆngulos de in-
cideˆncia, intensidade e outros fatores, ale´m do fato de normalmente ter-se bas-
tante obsta´culos para o vento ao redor e dentro de um campo de futebol, esta-
beleceremos, para a validac¸a˜o da entrada de dados da velocidade do vento, um
valor pequeno para o seu mo´dulo. Adotaremos, portanto, o ma´ximo de 7Km/h.
12
Ou seja, −7 ≤ Vv ≤ 7. Naturalmente, o valor de Vv, assim como acontece com
V0, deve ser convertido para m/s antes de ser utilizado nos ca´lculos. As demais
checagem de validade dos valores e converso˜es de unidades continuam sendo
necessa´rias.
Discussa˜o do problema f´ısico
Assim como em todos casos anteriores, os movimentos horizontal e vertical sera˜o
considerados separadamente. Nada se modifica, com relac¸a˜o ao Exemplo 7, no
que diz respeito ao movimento vertical. Assim, y continua sendo calculado
pela Equac¸a˜o 9. O que muda neste Exemplo e´ que o movimento horizontal
agora passa a ser um MRUV, devido a` ac¸a˜o cont´ınua do vento sobre a bola,
imprimindo a` mesma uma acelerac¸a˜o constante.
Para que se calcule a equac¸a˜o que determina x e´ necessa´rio, antes, que se
obtenha o valor da acelerac¸a˜o imposta pelo vento a` bola. Pode-se partir da
Equac¸a˜o 10, que determina a forc¸a do vento a partir da sua velocidade:
Fv =
{
ρar ·Ab · V 2v se Fv a favor do movimento
−ρar ·Ab · V 2v se Fv contra o movimento (10)
onde Ab e´ a a´rea de contato da superf´ıcie da bola com o vento eρar e´ a
densidade do ar, cujo valor esta´ especificado na Sec¸a˜o do Preaˆmbulo. A a´rea Ab
pode ser vista como metade da a´rea da esfera (Aesf ), assumindo-se que o vento
horizontal tem contato com um hemisfe´rio completo da bola. Sendo assim:
Ab =
Aesf
2
Ab =
4 · pi · r2
2
Ab = 2 · pi · r2b , (11)
onde rb e´ o raio da bola, conforme especificado na Sec¸a˜o do Preaˆmbulo.
Substituindo-se o resultado da Equac¸a˜o 11 na Equac¸a˜o 10, tem-se (descon-
siderando o sinal):
Fv = 2 · ρar · pi · r2b · V 2v , (12)
que ainda depende do valor da forc¸a exercida pelo vento. Considerando-se a
Segunda Lei de Newton, aplicada a` bola:
F = m · a
Fv = mb · ab (13)
e igualando as Equac¸o˜es 12 e 13, chega-se a:
mb · ab = 2 · ρar · pi · r2b · V 2v
ab =
2 · ρar · pi · r2b · V 2v
mb
, (14)
13
que so´ depende dos valores de entrada e de constantes pre´-definidas. Vale
lembrar que o sinal da acelerac¸a˜o ab depende desta ser a favor ou contra o movi-
mento da bola. Por razo˜es de simplicidade das equac¸o˜es e expresso˜es geradas
no restante desta ana´lise, na˜o substituiremos o resultado da Equac¸a˜o 14 nos
resultados posteriores. Mas e´ importante ter-se em mente que este valor de ab
pode ser prontamente calculado para que seja aplicado nos resultados seguintes.
Tendo a acelerac¸a˜o em ma˜os, pode-se utilizar equac¸o˜es do MRUV para se
determinar agora o deslocamento horizontal da bola, em func¸a˜o do tempo t:
∆S = Vit+
a
2
t2,
x = Vx · t+ ab
2
t2
x = V0 · cos(θ) · t+ ab
2
t2, (15)
que, por sua vez so´ depende dos valores de entrada e do valor da acelerac¸a˜o
ab, que pode ser prontamente calculada. Vale destacar novamente que estamos
desconsiderando o quique da bola apo´s tocar o solo.
Ainda, e´ u´til ainda estabelecer uma maneira de se calcular o alcance para
o caso do vento na˜o desprez´ıvel. Da Equac¸a˜o 5, tem-se o tempo que a bola
demora para atingir o solo novamente, obtido da ana´lise da trajeto´ria vertical.
Aplicando-se este resultado na Equac¸a˜o 15, fazendo x = A e efetuando-se as
manipulac¸o˜es alge´bricas/trigonome´tricas, chega-se a:
A = V0 · cos(θ) · 2 · V0 · sen(θ)
g
+
ab
2
(
2 · V0 · sen(θ)
g
)2
A =
V 20 · sen(2θ)
g
+
2ab · V 20 · sen2(θ)
g2
(16)
Por fim, pode ser u´til tambe´m que se calcule em que instante de tempo a
bola atinge uma certa distaˆncia horizontal. Faremos aqui a ana´lise somente da
distaˆncia horizontal, uma vez que o racioc´ınio para a distaˆncia vertical (altura)
e´ similar. Para que se calcule o instante de tempo desejado, consideremos as
seguintes equac¸o˜es do MRUV:
V = V0 + a · t,
e
V 2 = V 20 + 2 · a ·∆S.
Isolando-se o valor positivo de V na segunda equac¸a˜o e ja´ substituindo-se os
valores espec´ıficos do problema, chega-se a:
V = V0 · cos(θ) + ab · t,
e
V =
√
V 20 · cos2(θ) + 2 · ab · x.
14
Igualando-se as duas equac¸o˜es, ja´ que ambas fornecem V , e em seguida
fazendo-se as devidas manipulac¸o˜es alge´bricas para isolar o valor de t, resultamos
em:
t =
√
V 20 · cos2(θ) + 2 · ab · x− V0 · cos(θ)
ab
(17)
que determina em que instante de tempo (t) uma distaˆncia horizontal ar-
bitra´ria (x) foi atingida.
Algoritmo em alto n´ıvel
Representado no Algoritmo 6.
Algoritmo 6: Algoritmo em alto n´ıvel para o Exerc´ıcio 10
1 Obtenha do usua´rio o valor de V0;
2 Valide o valor de V0, de acordo com as restric¸o˜es do problema;
3 Obtenha do usua´rio o valor de θ;
4 Valide o valor de θ, de acordo com as restric¸o˜es do problema;
5 Obtenha do usua´rio o valor de t;
6 Valide o valor de t, de acordo com as restric¸o˜es do problema;
7 Obtenha do usua´rio o valor de Vv;
8 Valide o valor de Vv, de acordo com as restric¸o˜es do problema;
9 Converta as unidades de V0, Vv e θ;
10 Calcule o valor de ab de acordo com a Equac¸a˜o 14;
11 se Vv < 0 enta˜o
12 ab ← −ab;
13 Calcule o valor de x de acordo com a Equac¸a˜o 15, usando o valor
calculado de ab;
14 Calcule o valor de y de acordo com a Equac¸a˜o 9;
15 se y < 0 enta˜o
16 y ← 0;
17 Calcule o alcance, utilizando a Equac¸a˜o 16;
18 x← alcance;
19 Exiba os valores de x e y ao usua´rio;
Cabe ao aluno desenvolver o algoritmo detalhado, bem como o programa
C++.
Exerc´ıcio 11
Para este exerc´ıcio final, sera´ apenas dado o enunciado, nenhuma outra ana´lise
sera´ feita. Qualquer um dos resultados dos 10 exerc´ıcios anteriores pode ser
utilizado na soluc¸a˜o deste. Neste problema, o usua´rio deve informar os valores
de V0, Vv, θ e d (distaˆncia para o gol). Sera˜o observadas as mesmas converso˜es
de unidade ja´ feitas para os exerc´ıcios anteriores. No entanto, novas restric¸o˜es
15
dos valores para o tratamento de entradas sera˜o impostas, para que tais valores
sejam similares aos da realidade. Admitamos que a cobranc¸a de falta pode se
dar entre o limite da grande a´rea e o meio de campo (embora dificilmente uma
falta ta˜o longe assim seja cobrada diretamente ao gol, em uma situac¸a˜o real).
Portanto, restringiremos 17m ≤ d ≤ 55m. Para a velocidade inicial da bola,
espera-se um chute minimamente forte, portanto, limitaremos inferiormente a
velocidade inicial. Para o limite superior, adotaremos um valor de refereˆncia de
uma cobranc¸a de falta “padra˜o” de um jogador de n´ıvel internacional. Assim,
60Km/h ≤ V0 ≤ 105Km/h. Para o aˆngulo, evitaremos inclinac¸o˜es que gerem
cobranc¸as demasiadamente rente ao cha˜o e tambe´m que fac¸am com que a bola
saia da grama de maneira “muito vertical”. Portanto, 15◦ ≤ θ ≤ 45◦. Por
fim, manteremos as restric¸o˜es sobre a velocidade do vento: −7Km/h ≤ Vv ≤
7Km/h.
Deve-se, a partir dos dados de entrada do usua´rio, simular cobranc¸as de falta.
A barreira fica sempre posicionada a 9, 15m de distaˆncia da bola, na direc¸a˜o do
gol e pode ser posicionada, no ma´ximo, sobre a linha de gol. Para simplifcac¸o˜es,
considera-se que a barreira tem altura fixa de 1, 85m. O gol possui uma altura
de 2, 44m.
Um excelente goleiro e consegue, em um bom dia, ter um tempo de reac¸a˜o de
0, 12s ate´ perceber a trajeto´ria da bola e tomar a decisa˜o de como realizar uma
defesa. Apo´s tomada a decisa˜o, demora, cerca de 0, 87s para sair de sua posic¸a˜o
no gol ate´ alcanc¸ar a trave mais distante. Em resumo, bolas que demoram menos
de 0, 99s entre o pe´ do atacante e a linha de gol sa˜o fisicamente indefensa´veis,
mesmo para goleiros de n´ıvel internacional. Abaixo, a Figura 3 apresenta uma
representac¸a˜o esquema´tica de uma situac¸a˜o arbitra´ria de cobranc¸a de falta.
Figura 3: Esquema da cobranc¸a de falta
A simulac¸a˜o da cobranc¸a deve resultar na identificac¸a˜o de uma das seguintes
situac¸o˜es:
Situac¸a˜o A. A bola na˜o chega ao gol. Isto e´, caira´ no gramado antes
que possa atingir a linha de gol.
Situac¸a˜o B. A bola e´ desviada pela barreira. Isto e´, a bola toca na
barreira durante sua trajeto´ria, antes de tocar o solo.
Situac¸a˜o C. A bola sai de campo, por cima do gol. Isto e´, a bola
extrapola o limite do campo de jogo antes de tocar o solo e sem tocar na barreira.
Situac¸a˜o D. Bola perigosa. Isto e´, a bola chega a` linha de fundo ate´ no
ma´ximo o momento de tocar o solo, sem que tenha acontecido antes nenhuma
16
das situac¸o˜es anteriores, em um tempo acima de 0, 99s e ate´ 1, 5s. Neste caso,
a bola chega ao gol em um tempo onde um bom goleiro e´ capaz de realizar ou
na˜o a defesa.
Situac¸a˜o E. Gol. As mesmas condic¸o˜es da situac¸a˜o D, pore´m em tempo
inferior ou igual a 0, 99s. Neste caso, a bola chega ao gol em um tempo onde e´
impossivel o goleiro defender.
Situac¸a˜o F. Defesa do goleiro. As mesmas condic¸o˜es da situac¸a˜o D,
pore´m em tempo superior a 1, 5s. Neste caso, a bola chega ao gol lenta demais,
garantindo a defesa do goleiro.
(a) Situac¸a˜o A (b) Situac¸a˜o A
(c) Situac¸a˜o B (d) Situac¸a˜o B
(e) Situac¸a˜o C (f) Situac¸a˜o C
(g) Situac¸a˜o D (h) Situac¸a˜o D
(i) Situac¸a˜oE (j) Situac¸a˜o E
Por fim, ao identificar cada uma das situac¸o˜es de A a F descritas anterior-
mente, o programa deve exibir as mensagens em tela da Tabela 4, para cada
um dos casos.
17
(k) Situac¸a˜o F (l) Situac¸a˜o F
Situac¸a˜o Mensagem
A “Chute fraco ou curto demais para atingir o gol”
B “Chute incapaz de passar pela barreira”
C “Chute alto demais, bola sai de campo”
D “Chance de gol”
E “Gol”
F “Bola defendida pelo goleiro”
Tabela 4: Mensagens para cada situac¸a˜o simulada
Situac¸a˜o V0 Vv θ d
A (chute fraco) 60 -7 15 17
A (chute fraco) 60 -3 45 17
A (chute fraco) 105 -4 45 17
A (chute fraco) 78 -5 29 30
A (chute fraco) 72 1 36 44
A (chute fraco) 72 0 37 44
A (chute fraco) 84 4 17 49
B (toca barreira) 60 0 15 17
B (toca barreira) 80 -3 16 17
B (toca barreira) 72 0 16 30
B (toca barreira) 60 -4 22 40
B (toca barreira) 105 7 15 40
C (sai de campo) 60 7 25 17
C (sai de campo) 60 -2 34 17
C (sai de campo) 105 0 20 17
C (sai de campo) 93 -2 45 32
C (sai de campo) 60 7 27 32
D (bola perigosa) 67 -1 26 22
D (bola perigosa) 71 2 20 22
D (bola perigosa) 105 -5 15 22
D (bola perigosa) 100 0 16 35
D (bola perigosa) 60 -2 22 17
E (gol) 60 3 22 17
E (gol) 67 0 20 17
E (gol) 100 0 15 26
E (gol) 98 -3 15 23
E (gol) 85 7 18 38
E (gol) 60 6 25 22
E (gol) 101 2 15 28
F (defesa do goleiro) 66 -3 38 17
F (defesa do goleiro) 85 -4 24 21
F (defesa do goleiro) 61 0 31 22
F (defesa do goleiro) 60 4 34 36
F (defesa do goleiro) 105 -3 20 40
Tabela 5: Casos para teste
Para testar seu programa, a Tabela 5, a seguir traz exemplos de casos de
teste para os valores de entrada, com os respectivos diagno´sticos de situac¸a˜o
que devem ser identificados:
Bons estudos.
Prof. Marcos
18

Continue navegando