Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Quarta Aula Prática - 11 de dezembro de 2015 O objetivo desta aula prática é exercitar comandos de repetição, testes e vetores. Exercício 1: Neste exercício é obrigatório o uso do comando switch. Neste exercício vamos criar um dado eletrônico. Será que o dado é honesto ou tem alguma tendência? Escreva um programa que gere 6.000.000 números aleatórios entre 1 e 6 e calcule a frequência (em percentagem) com que cada um destes números foi gerado. Observe que o gerador de números randômicos gera números entre 0 e um número escolhido e isto pode ser um problema. Como fazer que ele gere números entre 1 e 6? O que você pode dizer sobre o dado? Exercício 2: Escreva um programa para solucionar o problema do exercício anterior sem usar nenhum comando de teste. Exercício 3: Escreva um programa que leia uma frase de até 80 caracteres e imprima quantas vogais existem nesta frase. Para testar seu programa escreva as frases usando letras maiúsculas e minúsculas misturadas. Exercício 4: Vamos usar o gerador de números aleatórios para calcular π. Para isto comece considerando a Figura 1. Escreva um programa que gere N pontos cujas coordenadas devem estar entre (0 ≤ x, y ≤ 1.0). Conte o número de pontos (dentro) que estão dentro do quarto de círculo (Figura 1) de raio 1.0 e centro na origem. (a) Imprima o resultado da seguinte conta: X= 4 × dentro N . (b) Repita o experimento usando valores para N grandes e verifique a precisão de sua resposta. Compare com o valor fornecido por 4 * atan(1.0). y 1.0 1.0 x Figura 1: Figura do problema 4. 1 Exercício 5: Escreva um programa que gere um vetor de 13571113 elementos inteiros (use a função srand() os ordene em ordem crescente usando o algoritmo da bolha. Exercício 6: Aeroportos A crescente utilização do transporte aéreo preocupa os especialistas de Pindorama, que prevêem que o congestionamento em aeroportos poderá se tornar um grande problema no futuro. A empresa estatal InfraPindo tem anunciado planos que irão resolver todos os problemas existentes e os que ainda virão. Há um pequeno problema porém, todas as obras estão atrasadas ou paradas porque descobriram desvios de verba. Os números atuais já são alarmantes: relatorios oficiais demonstram que neste país, em junho de 2013, houve uma média de 7.000 atrasos de vôos por dia. Preocupada com a previsão dos seus especialistas em tráfego aéreo, a Associação de Transporte Aéreo Pindoramiano (ATAPI) está começando um estudo para descobrir quais são os aeroportos onde o tráfego aéreo pode vir a ser mais problemático no futuro. Tarefa Como programador recém contratado pela ATAPI você foi encarregado de escrever um programa para determinar, a partir de uma listagem de aeroportos e vôos, qual aeroporto possui maior probabilidade de congestionamento no futuro. Como medida da probabilidade de congestionamento será utilizado neste estudo o número total de vôos que chegam ou que partem de cada aeroporto. Entrada A entrada é composta de vários conjuntos de teste. A primeira linha de um conjunto de teste contém dois números inteiros A e V , que indicam respectivamente o número de aeroportos e o número de vôos. Os aeroportos são identificados por inteiros de 1 a A. As V linhas seguintes contêm cada uma a informação de um vôo, representada por um par de números inteiros positivos X e Y , indicando que há um vôo do aeroporto X para o aeroporto Y . O final da entrada é indicado quando A = V = 0. Saída Para cada conjunto de teste da entrada seu programa deve produzir três linhas. A primeira linha identifica o conjunto de teste, no formato “Teste n”, onde n é numerado a partir de 1. A segunda linha deve conter o identificador do aeroporto que possui maior tráfego aéreo. Caso mais de um aeroporto possua este valor máximo, você deve listar todos estes aeroportos, em ordem crescente de identificação, e separados por pelo menos um espaço em branco. A terceira linha deve ser deixada em branco. A grafia mostrada no Exemplo de Saída, abaixo, deve ser seguida rigorosamente. Restrições 0 ≤ A ≤ 100 (A = 0 apenas para indicar o fim da entrada) 0 ≤ V ≤ 10000 (V = 0 apenas para indicar o fim da entrada) 1≤X ≤A 1≤Y ≤A X 6= Y Exemplo de entrada e saída 2 Entrada: 5 7 1 3 2 1 3 2 3 4 4 5 3 5 2 5 3 5 1 3 1 2 3 2 1 2 2 1 0 0 Saída para o Exemplo da Entrada Teste 1 3 Teste 2 1 2 3