Baixe o app para aproveitar ainda mais
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
Compartilhar