Estrutura de Dados
Prof. Marco Antonio
http://marcoreis.net
Lista de Exercícios
1) Informe o valor de cada variável ao final da execução. Use um teste de mesa.
início
inteiro: A, B, C, I;
A ← 1;
B ← 1;
I ← 1;
enquanto I < 10 faça
C ← A + B;
A ← B;
B ← C;
I ← I + 1;
fim enquanto;
fim;
2) Crie classes para solucionar os seguintes problemas:
• Como saber se um número é divisível por outro.
• Calcular a média final de um aluno que realizou 4 avaliações, sabendo que todas têm o
mesmo peso.
• Dados 3 números, verificar qual deles é o menor.
• Calcular o IMC, dado o peso da pessoa.
3) Um professor de uma turma com 10 alunos quer armazenar suas notas em um array e
depois calcular a média geral da turma. Escreva um programa que solucione este problema
usando uma estrutura de array.
4) Escreva um programa que efetue o cálculo de reajuste de salário de um funcionário.
Considere que o aumento será de 15% se o salário for até $500,00, de 10% se for entre
$501,00 e $1.000,00 e de 5% se for maior que R$1.000,00. Imprima na saída um relatório
como o proposto:
Aumento de Salário
Salário Anterior: $501,00
Salário Atual: $551,10
Acréscimo de $50,10
Percentual de Aumento: 10%
5) Escreva um programa que receba as notas referentes a três avaliações realizadas por 10
alunos, e as armazene em um array. Crie outro array . Sabendo que: as duas primeiras
avaliações têm peso de 35 cada uma e a terceira tem peso de 30 pontos. Além disso, para
cada média total deve ser enviada uma mensagem informando se o aluno foi aprovado (>=50)
ou reprovado (<50) e qual foi a porcentagem da turma aprovada.
6) Supondo-se a existência de um array A composto por inteiros, faça um programa que crie
um novo array B de tamanho N, tal que N seja a quantidade de números pares. Em seguida,
copie todos os números pares de A para B, em ordem inversa.
7) Leia um array A e um array B, ambos com N elementos e que intercale estes arrays A e B,
formando um outro array C de tamanha 2N da seguinte forma.
C[1] ← A[1]
C[2] ← B[1]
[email protected]
Agosto/2010
Estrutura de Dados
Prof. Marco Antonio
http://marcoreis.net
C[3] ← A[2]
C[4] ← B[2]
8) Defina a velocidade máxima permitida na passagem de um semáforo de uma avenida. Leia
a velocidade de cada automóvel que passa pelo semáforo e que calcule a multa que este
motorista deverá receber, sabendo que são pagos $ 5,00 por cada quilômetro que o motorista
ultrapassar acima da velocidade permitida, até um limite de $ 190,00. Como resultado, mostre
no console a mensagem:
Avenida XXXXX
Velocidade Maxima Permitida: 120km/h
Velocidade do automovel 2: 121 km/h. Multa: $5,00.
Velocidade do automovel 3: 129 km/h. Multa: $45,00.
Velocidade do automovel 1: 119 km/h.
Velocidade do automovel N: 300 km/h. Multa: $190,00.
9) Desenvolva um programa que, determine se um determinado número N informado é primo
ou não.
10) Escreva um programa que receba um array de N posições. Verifique se há elementos
repetidos. Caso não encontre repetições, escreva “Não há repetições”. Do contrário, informe
quais números estão repetidos.
11) Crie um programa que converta uma temperatura de Celsius para Fahrenheit e vice-versa.
Utilize a fórmula: tempF = 32 + (9 * tempC) / 5.
Desafio) Dado que System.currentTimeMillis() retorna a hora atual do sistema, verifique qual
dos algorítmos de ordenação é mais rápido para 100, 10.000 e 100.000 elementos.
Considere o seguinte código:
package tjdf.visualizador.pdf;
import java.util.*;
public class GeraNumeroAleatorio {
public static void main(String[] args) {
//
Random r = new Random();
int numeroAleatorio = r.nextInt() % 1000;
System.out.printf("Numero Aleatorio: %d", numeroAleatorio);
}
}
[email protected]
Agosto/2010
Download

A, B, C