Lista de exercícios para estudo - 2º semestre de 2015 Linguagem de Programação 1. (8,0) Uma escola quer gerenciar os alunos matriculados. Para isso, escreva um programa em Java para permitir cadastrar cada aluno informando o nome, registro de matrícula e data de nascimento. O programa deve permitir também que o usuário imprima a lista de alunos ordenada alfabeticamente pelo nome. Por fim, o programa deve permitir que o nome de um aluno seja procurado entre os cadastrados (a busca deve ser feita com o método busca binária). 2. (10,0) Escreva um programa em Java para gerar 6 números aleatórios entre 1 e 60 que não sejam repetidos. Por fim, o programa deverá imprimir, em ordem crescente, os 54 números que não foram sorteados. 3. (8,0) Escreva um programa em Java para ler 10 datas digitadas pelo usuário no formato usado no Brasil e imprimir se as datas são válidas ou não. Atenção: o usuário pode digitar os dias e meses com 1 ou 2 dígitos, exemplos: 3/04/1985, 03/04/1985, 3/4/1985. 4. (10,0) Um loja deseja gerenciar os clientes e, para isso, o mínimo a fazer é armazenar os cadastros. Para isso, escreva um programa em Java para permitir o cadastro de cada cliente informando CPF e nome. O CPF deve ser válido, caso contrário o usuário deverá digitar o CPF novamente para informá-lo corretamente. O programa deve permitir a impressão da lista de clientes ordenada alfabeticamente pelo nome. Por fim, o programa deve permitir que o usuário digite parte um nome e imprimir os dados dos clientes cujos nomes iniciam pelo texto digitado. Exemplo: se o usuário digitar "An", devem ser listados clientes como "Anderson", "Ana", "Antonio", etc. 5. (10,0) Escreva um programa em Java para gerar um vetor de 100 números inteiros aleatórios entre 1 e 1000. O programa deverá ordenar o vetor com os métodos Bubble Sort e Insertion Sort e comparar o tempo de execução entre eles. Atenção: o mesmo vetor (com os dados na mesma posição) deve ser usado como entrada para o método Bubble Sort e para o método Insertion Sort, caso contrário a comparação não será válida. O programa deve contar também a quantidade de trocas que cada método executa e imprimir as quantidades no final. 6. (6,0) Escreva um programa em Java para gerar um vetor de 100 números inteiros aleatórios entre 1 e 1000. Em seguida, o programa deverá permitir que o usuário procure um número e imprimir quantas vezes esse número existe no vetor. 7. (8,0) Uma escola aplicou uma avaliação em 5 turmas e deseja registrar as informações para analisá-las posteriormente. Cada turma tem um código e uma quantidade de alunos. Então, escreva um programa em Java para permitir o cadastro da nota de cada aluno da turma. A cada nova turma, o usuário deve digitar o código e a quantidade de alunos, para que o programa saiba quantas notas devem ser lidas naquela turma. Ao final, o programa deve imprimir a média de cada turma com os respectivos códigos de turma e deve imprimir também a média de todas as turmas. 8. (8,0) Escreva um programa em Java para ler 10 nomes digitados pelo usuário e imprimir a quantidade de letras A, B, C, D e E digitadas. 9. (10,0) Escreva um programa em Java para gerar 2 vetores de 100 números inteiros aleatórios. Em seguida, o programa deverá ordenar os 2 vetores e armazenar os valores de forma intercalada em um terceiro vetor de 200 elementos. Exemplo: A posição 0 do terceiro vetor receberá a posição 0 do primeiro vetor; a posição 1 do terceiro vetor receberá a posição 0 do segundo vetor; a posição 2 do terceiro vetor receberá a posição 1 do primeiro vetor; a posição 3 do terceiro vetor receberá a posição 1 do segundo vetor; e assim por diante. 10. (6,0) Escreva um programa em Java para ler 100 números digitados pelo usuário e imprimir o fatorial de cada número e a soma dos números primos. 11. (8,0) Escreva um programa em Java para ler 10 nomes digitados pelo usuário e armazená-los em um vetor. Utilizando o método de busca binária, o programa deve permitir que o usuário procure, entre os nomes digitados, quantos nomes desejar. 12. (8,0) Uma lanchonete estranha acrescenta 10% do valor do pedido a cada pedido que o cliente faz. Ou seja, se o cliente fizer dois pedidos de R$ 10, ele irá pagar R$ 3 reais a mais (R$ 1 do primeiro pedido e R$ 2 da soma dos dois pedidos); se ele fizer 1 pedido de R$ 5 e 1 pedido de R$ 10, ele irá pagar R$ 2 a mais (10% do primeiro pedido + 10% da soma dos dois pedidos). Escreva um programa em Java para permitir que o usuário informe o valor dos pedidos, sendo que podem ser cadastrados vários pedidos. Ao final, imprima o valor total da conta. 13. (8,0) Escreva um programa em Java para gerar 1000 números inteiros aleatórios e armazená-los em um vetor. O programa deverá ordenar o vetor crescentemente; depois deverá ordená-lo decrescentemente; depois o usuário deverá digitar um valor a ser buscado (utilize busca binária). 14. (8,0) Escreva um programa em Java para que o dono de uma padaria cadastre os seus produtos com nome e preço; os valores digitados devem ser armazenados em vetores. Em seguida, o programa deve atender os clientes e imprimir o valor a ser pago. O usuário pode pedir quantos produtos quiser digitando o nome e a quantidade. Se o produto existir (se for cadastrado pelo dono da padaria), então o preço deve ser calculado; se não existir, deve ser emitida uma mensagem ao usuário. Imprima o valor final a ser pago. 15. (6,0) Escreva um programa em Java para gerar 100 números aleatórios e armazená-los em um vetor chamado vetTodos. Em seguida, o programa deverá gerar um novo vetor chamado vetPares somente com os números pares do vetor vetTodos. 16. (6,0) Escreva um programa em Java para ler 100 números inteiros informados pelo usuário e armazená-los em um vetor. Em seguida, o usuário deverá digitar dois números inteiros e o programa deverá informar se o primeiro número digitado está em um posição anterior ou posterior ao segundo número no vetor. 17. (6,0) Escreva um programa em Java para gerar um vetor preenchido com os 100 primeiros termos da sequência de Fibonacci. Ao final, o programa deverá imprimir todos os elementos do vetor. 18. (8,0) Em uma rua, dois amigos fizeram marcas de 1 em 1 metro, iniciando com o número 1 e finalizando com o número 100. Eles combinaram que um irá andar do 1 ao 100 com passos de 1 metro e outro irá andar do 100 ao 1 com passos de 2 metros. Escreva um programa em Java para simular essa situação. O programa deverá ser interrompido quando os amigos cruzarem os caminhos. 19. (8,0) Escreva um programa em Java para ler 20 notas de atividade prática de 100 alunos e imprimir a média de cada aluno. No cálculo da média, deve ser desconsiderada a menor nota de cada aluno. 20. (10,0) O departamento de RH de uma empresa deseja gerenciar os dados dos colaboradores. Para isso, escreva um programa em Java para permitir cadastrar os 10 colaboradores da empresa, informando nome e número de registro (inteiro). O programa deve permitir que o usuário imprima a lista de colaboradores ordenada crescentemente pelo nome. Por fim, o programa deve permitir que o usuário procure o número de registro de um colaborador cadastrado e, caso exista, sejam impressos o número de registro e o nome (a busca deve ser feita com o método busca binária). 21. (6,0) Escreva um programa em Java para ler 10 nomes digitados pelos usuários e armazená-los em um vetor. Em seguida, o usuário poderá informar um nome a ser pesquisado. Caso o nome seja um dos 10 nomes digitados inicialmente, o programa deve imprimir a mensagem "Achou", senão deve imprimir a mensagem "Não existe". Ao final, o programa deverá imprimir quantas vezes o nome foi encontrado, caso haja nomes repetidos digitados pelo usuários. 22. (10,0) Escreva um programa em Java para gerar 20 números aleatórios entre 1 e 100 que não sejam repetidos. Por fim, o programa deverá armazenar em um vetor somente os números que, elevados ao quadrado, resultem em um número maior que 1000. Esses números deverão ser impressos em ordem crescente. 23. (10,0) Escreva um programa em Java para gerar 20 números inteiros aleatórios entre 1 e 100 que não sejam repetidos. Por fim, o programa deverá armazenar em um vetor chamado VETOR1 todos os números pares maiores que 30, e deverá armazenar em um vetor chamado VETOR2 todos os números ímpares menores que 30. Não pode haver espaços em branco entre os elementos dos vetores VETOR1 e VETOR2. Por fim, um terceiro vetor chamado VETORSOMA deverá ser gerado com a soma das posições coincidentes dos vetores VETOR1 e VETOR2. Exemplo: VETOR1 34 42 50 88 64 11 25 29 1 75 117 65 90 84 90 84 VETOR2 13 VETORSOMA 47 53