Sunteți pe pagina 1din 9

UFG Instituto de Informtica

Curso de Engenharia de Software


Disciplina de Introduo Programao
03/06/2011
Dojo de reviso do gabarito da lista de exerccios 26.1 Vetores
Equipes:
Questo 1 Lder: Rodolfo. Membros: Pedro, Felipe Alves, Filipe Houri, Wallace, Vinicius
Maboni, Alexandre Morais, Ariane, Dumon
Questo 2 Lder: Iago. Membros: Eurismar, Manoel, Valquer, Laerte, Murilo, Douglas,
Kleudson, Mauro.
Questo 3 Lder: Jos Srgio. Membros: Julliano, Igor, Lucas de Oliveira, Eric, Vitor Andr,
Phelipe, Hermes, Caion
Questo 4 Lder: Ademar. Membros: Felipe Akitaya, Guilherme Moreno, Amauri, Gustavo
Amorim, Leonardo, Jean Carlos, Vincius Machado
Questo 5 Lder: Luiz Henrique. Membros: Dinata, Mrio, Gustavo Lein, Iasmin, Edmar,
Nelson, Felipe Rezende, Kelves
Questo 6 Lder: Aline. Membros: Jober, Fernando, Victor Tarelho, Geovanne Alves, Adryan,
Alexandre Costa, Jean Lucas, Vincius Machado
Regras:
Para cada questo h uma equipe com um lder, caso o lder no esteja presente, a equipe
poder nomear um substituto;
Nos 10 minutos iniciais, o lder dever explicar o gabarito da questo para seus membros;
Os gabaritos so recolhidos e cada equipe ter 2 minutos revezados por membro (exceto o
lder) para montar a soluo no computador, sem consultas, com apoio do lder, no estilo
dojo. Tempo mximo para cada equipe: 20 minutos, ou seja, 10 revezamentos;
Cada equipe dever escolher internamente a ordem de revezamento entre seus membros;
Sero disponveis 2 computadores com 1 projetor cada um para que as duas equipes
realizem suas tarefas. Comentrios sero feitos pelo professor para que as demais equipes
acompanhem a soluo sendo realizada.
1. Elabore um programa que, dados dois vetores inteiros de 5 posies, efetue as respectivas
operaes indicadas por outro vetor de 5 posies de caracteres tambm fornecido pelo usurio,
contendo as quatro operaes aritmticas em qualquer combinao e armazenando e apresentando
os resultados em um terceiro vetor (Fonte: Forbelone)
Exemplo de entrada e sada:
Entrada: [1, 2, -1, 7, 0]; [2, 3, 8, -10, 2]; [+, -, *, /, -];
Sada: [3, -1, -8, -0.7, -2]
2. Desenvolva um programa que leia um vetor de 10 posies inteiras e coloque em ordem
crescente, utilizando a seguinte estratgia de ordenao (Fonte: Forbelone):
Selecione o elemento do vetor de 10 posies que apresenta o menor valor;
troque esse elemento pelo primeiro;
repita estas operaes, envolvendo agora apenas os 9 elementos restantes (trocando o de menor
valor com a segunda posio), depois os 8 elementos restantes (trocando o de menor valor com a
terceira posio), depois os 7 ltimos restantes; os 6 e assim por diante, at restar um nico
elemento, o maior deles.
Exemplo de entrada e sada:
Entrada: [22, 3, 9, -1, 4, 6, 11, 3, 8, 1]
Sada: [-1, 1, 3, 3, 4, 6, 8, 9, 11, 22]

3. Faa um programa que leia um vetor de valores numricos de 10 posies e que retorne:
a) a mdia dos valores do vetor;
b) o valor mais prximo da mdia;
c) o valor mais distante da mdia;
Exemplo de entrada e sada:
Entrada: [5; -1; 2.5; 3; 8; 2; 9; 4; 2; 5]
Sada: mdia: 3.95; valor mais prximo: 4; valor mais distante: 9;
4. Crie um programa que leia um vetor de 10 nmeros e gere um segundo vetor cujas posies pares
so o dobro do vetor original e as mpares o triplo. Considere a primeira posio do vetor como
sendo 0 (fonte: Forbelone)
Exemplo de entrada e sada:
Entrada: [5; -1; 2.5; 3; 8; 2; 9; 4; 2; 5]
Sada: [10, -3; 5; 9; 16; 6; 18; 12; 4; 15]
5. Desenvolva um programa que permita a leitura de um vetor de 10 nmeros inteiros, e gere e
apresente um segundo vetor com os mesmos dados, s que de maneira invertida, ou seja, o primeiro
elemento ficar na ltima posio, o segundo na penltima posio e assim por diante.
Exemplo de entrada e sada:
Entrada: [5; -1; 2.5; 3; 8; 2; 9; 4; 2; 13]
Sada: [13; 2; 4; 9; 2; 8; 3; 2.5; -1; 5]
6. Elabore um programa que leia uma sria de 10 notas de avaliaes de alunos, e calcule quantas
esto abaixo de 90% da mdia e quantas esto acima de 110% da mdia (fonte: Forbelone)
Exemplo de entrada e sada:
Entrada: [4,3; 3,1; 1,7; 9,8; 10; 2,9; 5,8; 7,4; 5,6; 1,9]
Sada: mdia: 5,25; 5 notas esto abaixo de 10% mdia (4,73); 4 notas esto acima de 110% da
mdia (5,78);
7. Construa um programa que permita informar dados para 2 vetores inteiros de 10 posies e
apresente a interseco dos vetores. Lembrando que interseco so os elementos repetidos em
ambos os vetores, mas sem repetio (cada nmero pode aparecer uma nica vez no resultado).
(fonte: Forbelone)
Exemplo de entrada e sada:
Entrada: [4; 2; 20; 9; 10; 2; 5; 7; 5; 4] e [3; 1; 7; 8; 10; 9; 8; 4; 6; 9]
Sada: [4; 9; 10; 7]
8. Construa um programa que permita informar dados para 2 vetores inteiros de 10 posies e
apresente o conjunto unio dos vetores. Lembrando que conjunto unio so todos os elementos que
existem em ambos os vetores, mas sem repetio (cada nmero pode aparecer uma nica vez no
resultado). (fonte: Forbelone)
Exemplo de entrada e sada:
Entrada: [4; 2; 20; 9; 10; 2; 5; 7; 5; 4] e [3; 1; 7; 8; 10; 9; 8; 4; 6; 9]
Sada: [4; 2; 20; 9; 10; 5; 7; 3; 1; 8; 6]

1. Elabore um programa que, dados dois vetores inteiros de 5 posies, efetue as respectivas
operaes indicadas por outro vetor de 5 posies de caracteres tambm fornecido pelo usurio,
contendo as quatro operaes aritmticas em qualquer combinao e armazenando e apresentando
os resultados em um terceiro vetor (Fonte: Forbelone)
Exemplo de entrada e sada:
Entrada: [1, 2, -1, 7, 0]; [2, 3, 8, -10, 2]; [+, -, *, /, -];
Sada: [3, -1, -8, -0.7, -2]
Resposta do Rodolfo:
importjava.util.Scanner;
publicclassTurmaAB_Exer1{
publicstaticvoidmain(String[]args){
Scannerleia=newScanner(System.in);
int[]x=newint[5];
int[]y=newint[5];
double[]r=newdouble[5];
String[]o=newString[5];

System.out.println("Leiturado1vetordenmerosinteiros");
for(inti=0;i<5;i++){
System.out.println("Informeo"+(i+1)+"nmero:");
x[i]=leia.nextInt();
}

System.out.println("Leiturado2vetordenmerosinteiros");
for(inti=0;i<5;i++){
System.out.println("Informeo"+(i+1)+"nmero:");
y[i]=leia.nextInt();
}

System.out.println("Leiturade5operaes");
for(inti=0;i<5;i++){
System.out.println("Informeo"+(i+1)+"operaodesejada");
o[i]=leia.next();
}

for(inti=0;i<5;i++){
if(o[i].equals("+"))
r[i]=(double)x[i]+y[i];
elseif(o[i].equals(""))
r[i]=(double)x[i]y[i];
elseif(o[i].equals("*"))
r[i]=(double)x[i]*y[i];
elseif(o[i].equals("/"))
r[i]=(double)x[i]/y[i];
}

for(inti=0;i<5;i++){
System.out.print(r[i]+"");
}

}
}

2. Desenvolva um programa que leia um vetor de 10 posies inteiras e coloque em ordem


crescente, utilizando a seguinte estratgia de ordenao (Fonte: Forbelone):
Selecione o elemento do vetor de 10 posies que apresenta o menor valor;
troque esse elemento pelo primeiro;
repita estas operaes, envolvendo agora apenas os 9 elementos restantes (trocando o de menor
valor com a segunda posio), depois os 8 elementos restantes (trocando o de menor valor com a
terceira posio), depois os 7 ltimos restantes; os 6 e assim por diante, at restar um nico
elemento, o maior deles.
Exemplo de entrada e sada:
Entrada: [22, 3, 9, -1, 4, 6, 11, 3, 8, 1]
Sada: [-1, 1, 3, 3, 4, 6, 8, 9, 11, 22]
RespostadoIago,parcialmentecorreta,corrigidapeloprofessor:
importjava.util.Scanner;
publicclassTurmaAB_questao2{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("Digite10nmeros");
int[]num=newint[10];

for(inti=0;i<num.length;i++){
num[i]=sc.nextInt();
}

//apesardoresultadocorreto,
//noestemconformidadecomoenunciado.
/*
for(inti=num.length;i>=1;i){
for(intj=1;j<i;j++){
if(num[j1]>num[j]){
intaux=num[j];
num[j]=num[j1];
num[j1]=aux;
}
}
}
*/
//Segueimplementaoconformeenunciado:
intmenor,aux;
for(inti=0;i<9;i++){
//inicialmenteomenorvaloroelementoi
menor=i;
//procuramenornmeroentreiat10
for(intj=i+1;j<10;j++)
if(num[j]<num[menor])
menor=j;//armazenaposiodomenorvalor
//intercambianum[i]enum[menor]
aux=num[i];
num[i]=num[menor];
num[menor]=aux;
}

for(inti=0;i<num.length;i++){
System.out.println(num[i]);
}
}
}

3. Faa um programa que leia um vetor de valores numricos de 10 posies e que retorne:
a) a mdia dos valores do vetor;
b) o valor mais prximo da mdia;
c) o valor mais distante da mdia;
Exemplo de entrada e sada:
Entrada: [5; -1; 2.5; 3; 8; 2; 9; 4; 2; 5]
Sada: mdia: 3.95; valor mais prximo: 4; valor mais distante: 9;
RespostadeJosSrgio:
importjava.util.Scanner;
publicclassTurmaC_Ex3{
publicstaticvoidmain(String[]args){
double[]num=newdouble[10];
doublemedia,dist_menor=0,dist_maior=0,soma=0;
intpos_prox=0,pos_dist=0;
Scannersc=newScanner(System.in);
for(inti=0;i<10;i++){
System.out.println("Digiteonmero:"+(i+1));
num[i]=sc.nextDouble();
soma+=num[i];
}

media=soma/10;
doubledist;
for(inti=0;i<10;i++){
dist=Math.abs(num[i]media);
if(i==0){
pos_dist=pos_prox=i;
dist_maior=dist_menor=dist;
}
else{
if(dist>dist_maior){
dist_maior=dist;
pos_dist=i;
}
if(dist<dist_menor){
dist_menor=dist;
pos_prox=i;
}
}
}

System.out.println("Mdia:"+media);
System.out.println("Valormaisprximo"+num[pos_prox]);
System.out.println("Valormaisdistante"+num[pos_dist]);
}
}

4. Crie um programa que leia um vetor de 10 nmeros e gere um segundo vetor cujas posies pares
so o dobro do vetor original e as mpares o triplo. Considere a primeira posio do vetor como
sendo 0 (fonte: Forbelone)
Exemplo de entrada e sada:
Entrada: [5; -1; 2.5; 3; 8; 2; 9; 4; 2; 5]
Sada: [10, -3; 5; 9; 16; 6; 18; 12; 4; 15]
RespostadoAdemar:
importjava.util.Scanner;
publicclassTurmaAB_Ex4{
publicstaticvoidmain(String[]args){
Scanners=newScanner(System.in);
double[]v1=newdouble[10];
double[]v2=newdouble[10];

for(inti=0;i<10;i++){
System.out.println("Insiraovalordovetornaposio"+i);
v1[i]=s.nextDouble();
if(i%2==0){
v2[i]=v1[i]*2;
}
else{
v2[i]=v1[i]*3;
}
}
for(inti=0;i<10;i++){
System.out.println(v2[i]);
}
}
}

5. Desenvolva um programa que permita a leitura de um vetor de 10 nmeros inteiros, e gere e


apresente um segundo vetor com os mesmos dados, s que de maneira invertida, ou seja, o primeiro
elemento ficar na ltima posio, o segundo na penltima posio e assim por diante.
Exemplo de entrada e sada:
Entrada: [5; -1; 2.5; 3; 8; 2; 9; 4; 2; 13]
Sada: [13; 2; 4; 9; 2; 8; 3; 2.5; -1; 5]
RespostadoLuizHenrique:
importjava.util.Scanner;
publicclassExercicio5{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
doublevetor1[]=newdouble[10];
doublevetor2[]=newdouble[10];
for(inti=0;i<10;i++){
System.out.println("Digiteovalor"+(i+1));
vetor1[i]=sc.nextDouble();
}

for(inti2=9;i2>=0;i2){
vetor2[i2]=vetor1[i2];
System.out.println(vetor2[i2]);
}
}
}

6. Elabore um programa que leia uma sria de 10 notas de avaliaes de alunos, e calcule quantas
esto abaixo de 90% da mdia e quantas esto acima de 110% da mdia (fonte: Forbelone)
Exemplo de entrada e sada:
Entrada: [4,3; 3,1; 1,7; 9,8; 10; 2,9; 5,8; 7,4; 5,6; 1,9]
Sada: mdia: 5,25; 5 notas esto abaixo de 10% mdia (4,73); 4 notas esto acima de 110% da
mdia (5,78);
Resposta da Aline:
importjava.util.Scanner;
publicclassTurmaAB_Ex6{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);

double[]notas=newdouble[10];
intalunos_abaixo=0;
intalunos_acima=0;
doublesoma=0,media=0;

for(inti=0;i<10;i++){
System.out.println("Forneaanotadoaluno"+(i+1));
notas[i]=sc.nextDouble();
soma+=notas[i];
}
media=soma/10;

for(inti=0;i<10;i++){
if(notas[i]<media*0.90){
alunos_abaixo++;
}
}

for(inti=0;i<10;i++){
if(notas[i]>media*1.10){
alunos_acima++;
}
}

System.out.println(alunos_abaixo+"alunosabaixodamedia");
System.out.println(alunos_acima+"alunosacimadamedia");
}
}

7. Construa um programa que permita informar dados para 2 vetores inteiros de 10 posies e
apresente a interseco dos vetores. Lembrando que interseco so os elementos repetidos em
ambos os vetores, mas sem repetio (cada nmero pode aparecer uma nica vez no resultado).
(fonte: Forbelone)
Exemplo de entrada e sada:
Entrada: [4; 2; 20; 9; 10; 2; 5; 7; 5; 4] e [3; 1; 7; 8; 10; 9; 8; 4; 6; 9]
Sada: [4; 9; 10; 7]
RespostadoPedro,quepossuiumbugparaelementosrepetidoscomvalor0.
Corrigidapeloprofessor:
importjava.util.Scanner;
publicclassEx7{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
double[]x=newdouble[10];

System.out.println("Vetor1");
for(inti=0;i<10;i++){
System.out.println("Digiteonmero"+(i+1));
x[i]=sc.nextDouble();
}
/*atribuirvalor'0'aosrepetidosfalha
quandohelementoscomvalor'0'
for(inti=0;i<10;i++){
for(intj=i+1;j<10;j++){
if(x[i]==x[j])
x[j]=0;
}
}
*/
double[]y=newdouble[10];
System.out.println("Vetor2");
for(inti=0;i<10;i++){
System.out.println("Digiteonmero"+(i+1));
y[i]=sc.nextDouble();
}
//ovetorzreceberelementoscomunsentre
//osvetorezxez
double[]z=newdouble[10];
intk=1;
for(inti=0;i<10;i++){
for(intj=0;j<10;j++){
if(x[i]==y[j]){
k++;//incrementak
z[k]=x[i];//incluiemz[k]
break;
}
}
}
/*nofuncionaemtodososcasos
for(inti=0;i<10;i++){
for(intj=0;j<10;j++){
if(x[i]==y[j]){
System.out.println(x[i]);
break;
}
}
}
*/
System.out.println("Interseco:");
booleanrepetido=false;
for(inti=0;i<k;i++){
for(intj=i1;j>=0;j)//verificasez[i]ocorreuanteriormente
if(z[i]==z[j]){
repetido=true;
break;
}
if(repetido)
repetido=false;//retornaachaveparaovalororiginal
else
System.out.println(z[i]);//primeiraocorrenciadez[i]
}
}
}

S-ar putea să vă placă și