You are on page 1of 12

FACULDADE COTEMIG

BACHARELADO EM SISTEMAS DE INFORMAO

TRABALHO DE ALGORITMOS E ESTRUTURAS DE DADOS

2 Semestre

Belo Horizonte
Setembro/2013

Questo 1:
import java.util.Random;
import java.util.Scanner;

public class Questao1 {


public static void main(String[] args){
int tamanho;
int maior = Integer.MIN_VALUE, menor = Integer.MAX_VALUE;
double media = 0, soma = 0;
int[] vet;
Scanner scan = new Scanner(System.in);
Random rand = new Random();
System.out.print("Digite o tamanho desejado do vetor: ");
tamanho = scan.nextInt();
if(tamanho > 0) {
vet = new int[tamanho];

//Criando o espao de memria com o tamanho digitado pelo usurio

System.out.println("Os valores: \n");


for(int x = 0; x < tamanho; x++) {
vet[x] = rand.nextInt(100);
posies

//Atribuindo valores aleatrios de 0 a 99 para o vetor de N

soma += vet[x]; //Concatenando os valores de vet[x] na varivel soma


if(vet[x] > maior){
maior = vet[x];
}
else if(vet[x] < menor) {
menor = vet[x];
}
System.out.print(vet[x]+"\t");
}
System.out.println(); //Imprimir linha em branco
media = soma/tamanho;
System.out.println("A soma foi: "+soma+";\nA mdia foi: "+media+";\nO maior valor foi:
"+maior+";\nO menor valor foi: "+menor+".");
}
else {
System.out.println("Impossvel realizar a operao com valores menores que 1.");
}
}
}

Questo 2:

import javax.swing.JOptionPane;
import java.util.Arrays;

import java.util.Random;

public class Questao2{


public static void main(String[] args){
int vet[] = new int[10];
int num = 0, i, valor = 0;
Random aleatorio = new Random();
do{
num = Integer.parseInt(JOptionPane.showInputDialog("Digite um nmero: "));
for(i = 0; i < vet.length; i++){
vet[i] = aleatorio.nextInt(20);
if(vet[i] == num){
valor = i;
}
}
System.out.println(Arrays.toString(vet));
if (valor != 0){
System.out.println(valor);
}
else {
System.out.println("Nmero inexistente");
}
} while(valor == 0);
}
}

Questo 3:

import java.util.Random;
import javax.swing.JOptionPane;

public class Questao3 {

public static void main(String[] args) {


int[][] mat = new int[4][4];
int cont = 0;
double soma = 0, media = 0;
Random rand = new Random();
for(int i=0;i<4;i++) {

//Percorrer as linhas

for(int j=0;j<4;j++) {

//Percorrer as colunas

mat[i][j] = rand.nextInt(150); //Preencher a matriz com valores de 0 a 149


System.out.print(mat[i][j]+"\t"); //Imprimir valores
if(j == 3){

soma += mat[i][3]; //Valores da ltima coluna, de [0][3] a [3][3]


cont++;
}
else if(i == 3) {
soma += mat[3][j]; //Valores da ltima linha, de [3][0] a [3][2]
cont++;
}
else if(j == 1 && i == 2){
soma += mat[i][j]; //Valor [2][1]
cont++;
}
else if(j == 2 && i > 0){
soma += mat[i][j]; //Valores [1][2] e [2][2]
cont++;
}
}
System.out.println(); //Linha em branco
}
media = soma/cont;
JOptionPane.showMessageDialog(null,"A soma foi: "+soma+"\nA mdia foi: "+media);
}
}

Questo 4:

import javax.swing.JOptionPane;

public class Questao4 {


public static void main(String[] args){
int idade = 0,somaIdade = 0, contIdade = 0, sexo = 0, masc = 0, femin = 0, estadoCivil = 0, solteiro
= 0, casado = 0, viuvo = 0, divorciado = 0;
int radio = 0, bhfm = 0, noveoitofm = 0, jovempan = 0, itatiaia = 0, cdl = 0, outrosradio = 0,
divorciadasBhfm = 0, preferejovempan = 0;
double porcbhfm = 0.0, porcnoveoitofm = 0.0, porcjovempan = 0.0, porcitatiaia = 0.0, porccdl = 0.0,
porcoutrosradio = 0.0, mediaidade = 0.0, porcmasc = 0.0, porcfemin = 0.0;

do {
idade = Integer.parseInt(JOptionPane.showInputDialog("informe a idade: "));
contIdade ++; //Nmero de pessoas entrevistadas
somaIdade += idade; //somatrio das idades
sexo = Integer.parseInt(JOptionPane.showInputDialog("Informe o sexo, 1 - Masculino | 2 - Feminino:
"));
switch(sexo){

case 1: masc++; //nmero de homens


break;
case 2: femin++; //Nmero de mulheres
break;
}
estadoCivil = Integer.parseInt(JOptionPane.showInputDialog("Informe o estado civil, 1 - Casado | 2 Solteiro | 3 - Viuvo | 4 - Divorciado: "));
switch(estadoCivil){
case 1: casado++; //Nmero de pessoas casadas
break;
case 2: solteiro++; //Nmero de pessoas solteiras
break;
case 3: viuvo++; //Nmero de pessoas viuvas
break;
case 4: divorciado++; //Nmero de pessoas divorciadas
break;
}
radio = Integer.parseInt(JOptionPane.showInputDialog("Informe a radio de preferncia, 1 - BHfm | 2 98fm | 3 - Jovem Pan | 4 - Itatiaia | 5 - CDL: "));
switch(radio){
case 1: bhfm++; //Nmero de ouvintes da BHfm
break;
case 2: noveoitofm++; //Nmero de ouvintes da 98fm
break;
case 3: jovempan++; //Nmero de ouvintes da Jovem pan
break;
case 4: itatiaia++; //Nmero de ouvintes da Itatiaia
break;
case 5: cdl++; //Nmero de ouvintes da CDL
break;
default: outrosradio++; //Nmero de ouvintes de outras rdios
}
}
while(idade != 0);

porcbhfm = bhfm / 100; //Porcentagem de ouvintes da BHfm


porcnoveoitofm = noveoitofm / 100; //Porcentagem de ouvintes da 98fm
porcjovempan = jovempan / 100; //Porcentagem de ouvintes da Jovem Pan
porcitatiaia = itatiaia / 100; //Porcentagem de ouvintes da Itatiaia
porccdl = cdl / 100; //Porcentagem de ouvintes da CDL
porcoutrosradio = outrosradio / 100; //Porcentagem de ouvintes de outras radios
mediaidade = somaIdade / (contIdade-1); // Mdia de idades
porcmasc = masc / 100; //porcentagem de homens entrevistados

porcfemin = femin / 100; //porcentagem de mulheres entrevistadas


if (sexo == 2 && estadoCivil == 4){
divorciadasBhfm++; //Nmero de mulheres divorciadas que preferem a BHfm
}
if (sexo == 1 && radio == 3){
preferejovempan++; //nmero de homens, menores de 18 anos, que peferem a Jovem Pan
}
System.out.println("Porcentagem de ouvintes por rdio: BHfm - " + porcbhfm + " | 98fm - " +
porcnoveoitofm + " | Jovem Pan - " + porcjovempan + " | Itatiaia - " + porcitatiaia + " | CDL - " +
porccdl + " | outras rdios - " + porcoutrosradio); //imprime a porcentagem de ouvintes por rdio
System.out.println(divorciadasBhfm + " So mulheres divorciadas que preferem a BHfm"); //Imprime o
nmero de mulheres divorciadas que preferem a BHfm
System.out.println(preferejovempan + " So homens menores de 18 anos e preferem a jovem Pan");
//Imprime o nmero de homens, menores de 18 anos que preferem a Jovem Pan
System.out.println("A mdia de idade : " + mediaidade); //Imprime a mdia de idades
System.out.println("A porcentagem de homens : " + porcmasc + ". A porcentagem de mulheres : " +
porcfemin); //Imprime a porcentagem de homens e de mulheres entrevistadas
}
}

Questo 5:
a)

Aluno
- dia : int
- mes : int
- ano : int
+ setData(int d, int m, int a)
+ getData() : int
+ imprimir() : String
+ validar() : boolean
b)

import javax.swing.JOptionPane;

public class Data {


private int dia, mes, ano;
public Data() {
dia = 01;
mes = 01;
ano = 1900;
}
public void setDia(int d) {
dia = d;
}
public void setMes(int m) {
mes = m;

}
public void setAno(int a) {
ano = a;
}
public int getDia() {
return dia;
}
public int getMes() {
return mes;
}
public int getAno() {
return ano;
}
public void imprimir() {
String zeroD = "";
String zeroM = "";
if(dia < 10){
zeroD = "0";
}
if(mes < 10){
zeroM = "0";
}
JOptionPane.showMessageDialog(null,zeroD+dia + "/" + zeroM+mes + "/" + ano);
}
public boolean validar() {
int diasmes[]={31,28,31,30,31,30,31,31,30,31,30,31};
if(ano < 1900 || ano > 2099)
return false;
if(mes < 1 || mes > 12)
return false;
if(ano%400==0 || (ano%4==0 && ano%100!=0))
diasmes[1] = 29;
if(dia < 1 || dia > diasmes[mes-1])
return false;
return true;
}
}

c)
import javax.swing.JOptionPane;
public class TestaData {
public static void main(String[] args) {

Data dt = new Data();


int dia = 0, mes = 0, ano = 0;
dia = Integer.parseInt(JOptionPane.showInputDialog("Digite um valor para o dia: "));
mes = Integer.parseInt(JOptionPane.showInputDialog("Digite um valor para o ms: "));
ano = Integer.parseInt(JOptionPane.showInputDialog("Digite um valor para o ano: "));
dt.setDia(dia);
dt.setMes(mes);
dt.setAno(ano);
if(dt.validar()){
dt.imprimir();
}
else {
JOptionPane.showMessageDialog(null,"Data invlida!");
}
}

Questo 6:

public class Aluno {


private int matricula;
private String nome;
private double nota1, nota2, nota3;

public void setAluno(int mat, String nom, double n1, double n2, double n3) {
matricula = mat;
nome = nom;
nota1 = n1;
nota2 = n2;
nota3 = n3;
}
public int getMat() {
return matricula;
}
public String getNome() {
return nome;
}
public double getNotaFinal() {
return (nota1+nota2+nota3) / 3;
}

public String getResultado() {


String msg = "";
double result = getNotaFinal();
if(result < 40) {
msg = "Reprovado";
}
else if(result < 60) {
msg = "Recuperao";
}
else
msg = "Aprovado";
return msg;
}

Questo 7:

import javax.swing.JOptionPane;

public class TestaAluno {

public static void main(String[] args) {


int mat = 0;
String nom;
double n1 = 0, n2 = 0, n3 = 0;
Aluno obj = new Aluno();
Aluno obj2 = new Aluno();
mat = Integer.parseInt(JOptionPane.showInputDialog("Digite a matrcula do 1 aluno: "));
nom = JOptionPane.showInputDialog("Digite o nome do 1 aluno: ");
n1 = Double.parseDouble(JOptionPane.showInputDialog("Digite a nota 1 do 1 aluno: "));
n2 = Double.parseDouble(JOptionPane.showInputDialog("Digite a nota 2 do 1 aluno: "));
n3 = Double.parseDouble(JOptionPane.showInputDialog("Digite a nota 3 do 1 aluno: "));
obj.setAluno(mat,nom,n1,n2,n3);
mat = Integer.parseInt(JOptionPane.showInputDialog("Digite a matrcula do 2 aluno: "));
nom = JOptionPane.showInputDialog("Digite o nome do 2 aluno: ");
n1 = Double.parseDouble(JOptionPane.showInputDialog("Digite a nota 1 do 2 aluno: "));
n2 = Double.parseDouble(JOptionPane.showInputDialog("Digite a nota 2 do 2 aluno: "));
n3 = Double.parseDouble(JOptionPane.showInputDialog("Digite a nota 3 do 2 aluno: "));
obj2.setAluno(mat,nom,n1,n2,n3);
System.out.println("1 Aluno(a):");

System.out.println("Matrcula:\t"+obj.getMat()+"\nNome:\t"+obj.getNome()+"\nNota
Final:\t"+obj.getNotaFinal()+"\nResultado:\t"+obj.getResultado());
System.out.println("\n2 Aluno(a):");
System.out.println("Matrcula:\t"+obj2.getMat()+"\nNome:\t"+obj2.getNome()+"\nNota
Final:\t"+obj2.getNotaFinal()+"\nResultado:\t"+obj2.getResultado());
}
}

Questo 8:

import javax.swing.JOptionPane;

public class TestaAluno2 {

public static void main(String[] args) {


Aluno vetor[];
int mat = 0, qtd = 0;
String nom;
double n1 = 0, n2 = 0, n3 = 0;
qtd = Integer.parseInt(JOptionPane.showInputDialog("Quantos alunos deseja cadastrar?"));
if(qtd > 0) {
vetor = new Aluno[qtd];
for(int x=0;x<qtd;x++){
mat = Integer.parseInt(JOptionPane.showInputDialog("Digite a matrcula do "+(x+1)+"
aluno: "));
nom = JOptionPane.showInputDialog("Digite o nome do "+(x+1)+" aluno: ");
n1 = Double.parseDouble(JOptionPane.showInputDialog("Digite a nota 1 do "+(x+1)+"
aluno: "));
n2 = Double.parseDouble(JOptionPane.showInputDialog("Digite a nota 2 do "+(x+1)+"
aluno: "));
n3 = Double.parseDouble(JOptionPane.showInputDialog("Digite a nota 3 do "+(x+1)+"
aluno: "));
vetor[x] = new Aluno();
vetor[x].setAluno(mat,nom,n1,n2,n3);
}
for(int x=0;x<qtd;x++){
System.out.println((x+1)+" Aluno(a):");
System.out.println("Matrcula:\t"+vetor[x].getMat()
+"\nNome:\t"+vetor[x].getNome()+"\nNota Final:\t"+vetor[x].getNotaFinal()
+"\nResultado:\t"+vetor[x].getResultado());
System.out.println();
}
}
else {
JOptionPane.showMessageDialog(null,"Programa finalizado.");
}

Questo 9:

- Pilha
- Principal caracterstica: estrutura LIFO
- Operaes bsicas: empilhar, desempilhar, vazia, cheia e pesquisar.
- Exemplo: calculadora cientifica

- Fila
- Principal caracterstica: estrutura FIFO
- Operaes bsicas: enfileirar, desenfileirar, cheia, pesquisar.
- Exemplo: Fila de banco

- Lista Encadeada
- Principal caracterstica: estrutura dinmica
- Operaes bsicas: adicionar, remover e pesquisar.
- Exemplo: lista de amigos nas redes sociais e cadastro de alunos de uma turma.

Questo 10:

a) V
b) F - O mat[3].length igual a 4.
c) F - O smbolo # indica membro protegido.
d) F - O valor de b 6.
e) F - O n o antepenltimo n.
f) F - Pilhas so do tipo LIFO
g) V
h) F - O valor ser 60
i) F - O valor da posio ser 3
j) F - Deve ser: public float get Peso()

Questo 11:

A sada ser "3, 2, 4, 1, 5".

Questo 13:

a) 2

b) 3
c)

You might also like