A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Dilermando
1. Objetivos
• Visualizar a aplicação dos conceitos
dos capítulos anteriores.
• Projetar sistemas simples visando
sua implementação computacional.
• Vislumbrar outras aplicações.
2. Para começar...
Vamos relembrar e dar exemplos de
uso:
Expressões lógicas e aritméticas.
Tipos de dados.
Estrutura sequencial.
Estrutura condicional.
Estrutura de repetição.
Vetores.
Strings.
Matrizes.
Procedimentos.
Funções.
Registros.
Ponteiros.
Arquivos.
3. Problema 1
Escreva um programa que calcule o IMC (Índice de Massa
Corporal): IMC = peso / (altura)2
4. Problema 1 - Comentários
É importante imprimir algo do tipo: “Qual a altura do paciente
(em metros)?” e “Qual o peso do paciente (em quilos)?”
O sistema pode realizar o cálculo apenas uma vez e ser
encerrado, ou pode ficar em um loop, lendo alturas e pesos e
informando o IMC.
Seria possível aumentar as funcionalidades do programa. O
sistema poderia ainda perguntar sobre a idade do paciente e dar
dicas nutricionais e de dietas, após consultados especialistas.
5. Problema 2
Escreva um programa que calcule o BAI, que é uma
aproximação da percentagem de gordura corporal.
BAI = [ quadril / (altura * altura1/2 )] - 18
BAI – Body Adiposity Index, ou Índice de Adiposidade
Corporal
6. Problema 2 - Comentários
Os comentários do problema 1 continuam valendo. Além disso:
Você pode pesquisar percentuais de gordura adequados para cada
faixa etária e sexo e também imprimir essas informações ao
usuário.
Nos dois sistemas, experimente digitar altura igual a zero. O que
ocorreu?
Outras formas de tornar o sistema mais robusto seria ler os dados
e avisar o usuário que ele digitou dados inválidos.
7. Problema 3
Implemente um programa que leia uma data
composta por três números inteiros (dia, mês e ano).
O programa deve imprimir a data no seguinte
formato: 12 de março de 2012.
8. Problema 3 - Comentários
Você pensou em realizar testes de consistência de
dados como na aplicação anterior?
No próximo enunciado você vai encontrar algumas
dicas para isso.
10. Problema 4 - Comentários
Observar quais meses possuem 30 ou 31 dias.
Verificar se o ano é bissexto. Todos os anos divisíveis por 400 são
bissextos. Para os demais, se forem divisíveis por 100, não são
bissextos. Além disso, só são bissextos os anos divisíveis por 4.
Você pode inserir novos testes de consistência de dados,
dependendo da aplicação onde a função será usada.
Por exemplo, se a entrada de data se referir à data de nascimento
do usuário, ele não poderia ter nascido no futuro, não é mesmo?
11. Problema 5
Implemente um programa que leia o valor atual do salário
e imprima o valor do salário após o reajuste, que deve
obedecer à seguinte regra:
12. Problema 5 - Comentários
Você já reparou nos dados que compõem um hollerith,
além do valor do salário bruto?
Há descontos como INSS e imposto de renda, além de
acréscimos como salário família, por exemplo.
Pesquise como esses valores são calculados e imprima
um hollerith na tela.
13. Problema 6
Implemente o jogo pedra-papel-tesoura.
O jogo deve imprimir vitória, empate ou derrota,
conforme a opção que o jogador escolher e a opção
sorteada aleatoriamente para o computador.
Observação: pedra ganha de tesoura, que ganha de
papel, que ganha de pedra.
14. Problema 6 - Comentários
Para implementar esse jogo, você vai precisar de uma
função de geração de números pseudoaleatórios
(“randômicos”).
Pesquise como usar esse tipo de função na linguagem de
programação de sua preferência.
Após gerar um número randômico para cada jogada, use a
função do tipo mod 3, que é o resto da divisão por três, para
escolher entre pedra, tesoura ou papel.
15. Problema 7
Faça um programa que leia 10 nomes de pessoas e
suas respectivas alturas. Calcule a média das alturas e
encontre também a maior e menor altura.
Opcional: imprima os nomes das pessoas com altura
acima da média.
16. Problema 7 - Comentários
Você precisa decidir qual estrutura de dados irá utilizar para armazenar
os dados.
É possível ler todos os dados e armazená-los na(s) estrutura(s) de
dados escolhida(s) para depois calcular a média e encontrar a maior e a
menor altura. É possível também obter esses valores enquanto os dados
são lidos, sem precisar passar novamente por todos os dados.
Se você for implementar a funcionalidade opcional, será necessário
passar de novo pelos dados armazenados, pois antes de ler todos os
dados não será possível saber a média das alturas.
17. Problema 8
Suponha o campeonato brasileiro de futebol da série A com 20 times.
Os dois times com menor número de pontos serão rebaixados para a série
B.
Escreva um programa que receba o nome e o número de pontos dos
20 times e verifique quais os dois times com menor número de pontos.
O programa deve imprimir a mensagem: “rebaixados”, com os
nomes dos dois times rebaixados para a série B. Imprima também o nome
do time campeão. Considere que não há times com o mesmo número de
pontos.
18. Problema 8 - Comentários
Você irá precisar de uma estratégia para armazenar os
dois times a serem rebaixados.
Você pode armazenar outros dados sobre cada time,
como número de jogos, número de vitórias, gols a favor
e contra, etc. Assim, poderá implementar critérios de
desempate.
19. Problema 9
Uma pessoa viajando gostaria de visitar várias cidades. Calcule
quantos quilômetros ela terá que percorrer.
20. Problema 9 - Comentários
Pense em um critério de parada para o programa
No caso de trajeto de carro, as distâncias na matriz poderiam refletir as
estradas. Como nem todas as cidades são ligadas diretamente às outras,
muitas posições da matriz estariam vazias. Para evitar confusão, seria
uma boa prática preencher esses espaços (de estradas inexistentes) com
um valor que sinalizasse isso (ou seja, uma flag) como, por exemplo, o
valor -1.
É possível incrementar esse programa para que encontre o menor
caminho entre duas cidades, como um GPS (Global Positioning
System).
21. Problema 10
Implementar um programa que leia os dados de seus
amigos (como nome, data de nascimento, telefone e e-mail).
O programa deverá imprimir em um arquivo o número de
amigos cadastrados e seus nomes.
Além disso, o programa deverá imprimir, junto aos
nomes, as datas de aniversário somente daqueles nascidos no
mês x, escolhido pelo usuário.
22. Problema 10 - Comentários
Se na linguagem de programação escolhida por você
houver a opção de escrever em arquivos texto, use essa
opção e coloque a extensão “.txt” no arquivo.
Assim você poderá visualizar os dados na maioria dos
programas de edição de textos.
23. Problema 11
Implemente um programa que manipule registros de alunos, onde
cada registro deve conter as seguintes informações: número de matrícula
(RA), nome do aluno, sexo, data de nascimento e as notas das 2 provas
bimestrais. Suponha que a classe tenha 20 alunos. O programa deverá:
ler e armazenar as informações dos 20 alunos da classe;
calcular a média das notas das provas de cada aluno;
mostrar o nome dos alunos aprovados e reprovados (para ser aprovado
o aluno necessita de média igual ou maior que 5.0);
mostrar os nomes dos alunos com a maior e menor média.
24. Problema 11 - Comentários
Para não ter que digitar todos os dados todas as vezes que você
for usar esse programa, crie um arquivo e leia os registros dele
antes de iniciar o programa. Antes de finalizar, atualize as
informações.
Você pode também escrever somente nos registros alterados e
acrescentar os novos registros no final do arquivo. O que fazer
com os registros apagados? Você pode inserir outros registros em
seus lugares, reorganizar todo o arquivo ou somente adicionar
um campo ao registro indicando se ele está ou não ativo.
25. Estudo de Caso
Os sistemas de recomendação usam as
informações de compras anteriores (além de consultas,
navegações ou informações de redes sociais) para sugerir
produtos similares ou das mesmas categorias, que
possam interessar aos clientes.
Sugerem também produtos que outros clientes com o
mesmo perfil costumam se interessar.
26. Estudo de Caso
A Netflix, fundada em 1997, ficou conhecida por enviar os filmes aos clientes
através dos correios. Depois, começou a alugar filmes por streaming de vídeo.
A Netflix propôs-se a pagar um prêmio de 1 milhão de dólares para quem
desenvolvesse um sistema muito eficiente de recomendação de filmes (para isso
propôs uma metodologia para avaliar a eficácia do sistema).
Em setembro de 2009, o prêmio foi entregue e seus resultados têm
influenciado o desenvolvimento de sistemas de recomendação até hoje, usando
informações como algumas das citadas anteriormente.
27. Estudo de Caso
Atualmente, a Netflix possui mais de 10 milhões de
clientes e expandiu-se para vários países, incluindo o Brasil.
A empresa é líder na área de aluguel de filmes via internet
nos Estados Unidos e, segundo pesquisa da empresa
Sandvine de 2011, a Netflix é a maior fonte de tráfego de
internet da América do Norte, correspondendo a quase 25%
do volume total.
28. Existem outras estruturas de dados, como as estruturas de dados
dinâmicas, que podem ser alocadas dinamicamente, isto é, em tempo de
execução..
Construções assim permitirão o desenvolvimento de aplicações mais
complexas e eficientes.
Precisaremos desenvolver técnicas de programação para melhor utilizá-las.
Mas isso tudo fica para uma próxima etapa!