UFG Instituto de Informática Curso de Engenharia de Software Disciplina de Introdução à Programação 03/06/2011

Documentos relacionados
Programação de Computadores I. Aula - Vetores. Professor Ilaim Costa Junior.

Universidade Federal de Goiás Instituto de Informática 1ª Prova de Introdução a Programação 06/04/11

Vetores Unimensionais

Universidade Federal de Goiás Instituto de Informática Simulado da Prova 2 de Introdução a Programação

EXERCICIO DE JAVA PARA FIXAÇÃO DE CONTEÚDO - Introdução a Prática de Programação Docente Pedro F. Carvalho /

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Seleção Múltipla Laços (while, do-while, for) AULA 05

Lógica de Programação e Algoritmos

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

Arrays em Java. Introdução à Programação. Bruno Cartaxo

Vetores Unimensionais

CONTEÚDO 04 VETORES. Disciplina: Algoritmos e POO Professora: Alba Lopes.

Universidade Federal de Goiás Instituto de Informática Introdução à Computação Professor: Julliano Rosa Nascimento

LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz

Comando de Seleção em Java

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

MsC. João Maria MsC. Liviane Melo

Operadores e Estruturas de Decisão. Vanessa Braganholo

Sintaxe Básica do Java. João Paulo Q. dos Santos

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

LÓGICA DE PROGRAMAÇÃO (JAVA) VARIÁVEIS. Professor Carlos Muniz

Manual de conversão de Pseudo-algoritmo para Java

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Operadores e Estruturas de Decisão

Lista de Exercícios I. 01. Desenvolva um programa em Java que receba três valores numéricos inteiros e mostre a soma desses três números.

Lógica de Programação. Lógica de Programação com Java

Vetores Unimensionais

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Programação de Computadores para GI

Algoritmos II Aula 2 Vetores

Operadores e Estruturas de Decisão

Pilha e Fila. Pilha em C. Definir o registro que representará cada elemento da pilha.

Linguagem de Programação JAVA. Tiago Alves de Oliveira

Algoritmia e Programação APROG. Vetores. Algoritmia e Java. Nelson Freire (ISEP DEI-APROG 2012/13) 1/32

Variáveis Compostas. Vanessa Braganholo

1 Faculdade FUCAPI Profº. Sérgio Roberto

Unidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.

public class ExecScanner1 { public static void main(string[] args) { // TODO code application logic here

CONTEÚDO 05 MATRIZES

Lista 2 TP060. Exercícios Vetores

Aula 4. TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 2014 Marcelo Henrique dos Santos -

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL

Variáveis primitivas e Controle de fluxo

Estruturas de Repetição e String

4 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Variáveis Compostas. Leonardo Gresta Paulino Murta.

Aula 7 Modularização. Processamento da Informação. Universidade Federal do ABC

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP

Linguagem de Programação III

Análise de Programação

Introdução a Algoritmos Parte 06

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados

Variáveis Compostas. Leonardo Gresta Paulino Murta.

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença

UNIVERSIDADE DE AVEIRO PROGRAMAÇÃO I EXAME PRÁTICO

Aula 4 Estruturas de Controle

Estruturas de Repetição e String. Vanessa Braganholo

1. [VETOR][SALA] Cálculo da média aritmética de 10 valores armazenados em um vetor.

Java e sua Sintaxe. Estrutura mínima de um programa em Java: public class Exemplo { }

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;

Métodos. Utilizados para dividir o programa em subprogramas

Estrutura de Condição, Escolha e Repetição

Algoritmos I Aula 13 Linguagem de Programação Java

Linguagem de programação Java

Comando Portugol (Visualg) Java

private static Ascii ascii = new Ascii(); static List<Character> asciinumber = ascii.getasciitable(); Scanner input = new Scanner(System.

Arrays e Marizes. João Paulo Q. dos Santos

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

4ª Lista de Exercícios de Programação I

Estruturas de Repe,ção e String

Sintaxe Básica de Java Parte 2

Prof.: Michele Nasu Tomiyama Bucci

Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica

Entrada Processamento Saída

Algoritmos II prof. Daniel Oliveira

PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA II

Aula de PG Novembro de 2013, LT14D e LT11D - Sobre o Tipo String do Java

Exercícios Resolvidos. Java Básico

EXERCÍCIOS: Estrutura Sequencial, IF (SE), ELSE (Senão)

Métodos de ordenação. Bubble sort:

Fundamentos de programação

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

4ª Lista de Exercícios de Programação I

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

Linguagem de Programação II Implementação

Aula 2 POO 1 Prática. Profa. Elaine Faria UFU

(Conceito de Variável Indexada, Funções e Procedimentos)

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Laboratório de Programação A Exercícios sobre vetores e matrizes

Escola Náutica Infante Dom Henrique. Grupo I (7.5 valores)

PHP: <?php echo("hello World");?> Printa Hello World na página do navegador, mais fácil do que no Java.

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Aula teórica 11. Tema 11. Repetição. Ciclo while Ciclo do-while Ciclo for

Linguagem Java. Introdução. Rosemary Silveira Filgueiras Melo

JAVA. Professor: Bruno Toledo

Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Transcrição:

UFG Instituto de Informática Curso de Engenharia de Software Disciplina de Introdução à Programação 03/06/2011 Dojo de revisão do gabarito da lista de exercícios 26.1 Vetores Equipes: Questão 1 Líder: Rodolfo. Membros: Pedro, Felipe Alves, Filipe Houri, Wallace, Vinicius Maboni, Alexandre Morais, Ariane, Dumon Questão 2 Líder: Iago. Membros: Eurismar, Manoel, Valquer, Laerte, Murilo, Douglas, Kleudson, Mauro. Questão 3 Líder: José Sérgio. Membros: Julliano, Igor, Lucas de Oliveira, Eric, Vitor André, Phelipe, Hermes, Caionã Questão 4 Líder: Ademar. Membros: Felipe Akitaya, Guilherme Moreno, Amauri, Gustavo Amorim, Leonardo, Jean Carlos, Vinícius Machado Questão 5 Líder: Luiz Henrique. Membros: Diônata, Mário, Gustavo Lein, Iasmin, Edmar, Nelson, Felipe Rezende, Kelves Questão 6 Líder: Aline. Membros: Jober, Fernando, Victor Tarelho, Geovanne Alves, Adryan, Alexandre Costa, Jean Lucas, Vinícius Machado Regras: Para cada questão há uma equipe com um líder, caso o líder não esteja presente, a equipe poderá nomear um substituto; Nos 10 minutos iniciais, o líder deverá explicar o gabarito da questão para seus membros; Os gabaritos são recolhidos e cada equipe terá 2 minutos revezados por membro (exceto o líder) para montar a solução no computador, sem consultas, com apoio do líder, no estilo dojo. Tempo máximo para cada equipe: 20 minutos, ou seja, 10 revezamentos; Cada equipe deverá escolher internamente a ordem de revezamento entre seus membros; Serão disponíveis 2 computadores com 1 projetor cada um para que as duas equipes realizem suas tarefas. Comentários serão feitos pelo professor para que as demais equipes acompanhem a solução sendo realizada. 1. Elabore um programa que, dados dois vetores inteiros de 5 posições, efetue as respectivas operações indicadas por outro vetor de 5 posições de caracteres também fornecido pelo usuário, contendo as quatro operações aritméticas em qualquer combinação e armazenando e apresentando os resultados em um terceiro vetor (Fonte: Forbelone) Entrada: [1, 2, -1, 7, 0]; [2, 3, 8, -10, 2]; [+, -, *, /, -]; Saída: [3, -1, -8, -0.7, -2] 2. Desenvolva um programa que leia um vetor de 10 posições inteiras e coloque em ordem crescente, utilizando a seguinte estratégia de ordenação (Fonte: Forbelone): Selecione o elemento do vetor de 10 posições que apresenta o menor valor; troque esse elemento pelo primeiro; repita estas operações, envolvendo agora apenas os 9 elementos restantes (trocando o de menor valor com a segunda posição), depois os 8 elementos restantes (trocando o de menor valor com a terceira posição), depois os 7 últimos restantes; os 6 e assim por diante, até restar um único elemento, o maior deles. Entrada: [22, 3, 9, -1, 4, 6, 11, 3, 8, 1] Saída: [-1, 1, 3, 3, 4, 6, 8, 9, 11, 22]

3. Faça um programa que leia um vetor de valores numéricos de 10 posições e que retorne: a) a média dos valores do vetor; b) o valor mais próximo da média; c) o valor mais distante da média; Entrada: [5; -1; 2.5; 3; 8; 2; 9; 4; 2; 5] Saída: média: 3.95; valor mais próximo: 4; valor mais distante: 9; 4. Crie um programa que leia um vetor de 10 números e gere um segundo vetor cujas posições pares são o dobro do vetor original e as ímpares o triplo. Considere a primeira posição do vetor como sendo 0 (fonte: Forbelone) Entrada: [5; -1; 2.5; 3; 8; 2; 9; 4; 2; 5] Saída: [10, -3; 5; 9; 16; 6; 18; 12; 4; 15] 5. Desenvolva um programa que permita a leitura de um vetor de 10 números 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 posição, o segundo na penúltima posição e assim por diante. Entrada: [5; -1; 2.5; 3; 8; 2; 9; 4; 2; 13] Saída: [13; 2; 4; 9; 2; 8; 3; 2.5; -1; 5] 6. Elabore um programa que leia uma séria de 10 notas de avaliações de alunos, e calcule quantas estão abaixo de 90% da média e quantas estão acima de 110% da média (fonte: Forbelone) Entrada: [4,3; 3,1; 1,7; 9,8; 10; 2,9; 5,8; 7,4; 5,6; 1,9] Saída: média: 5,25; 5 notas estão abaixo de 10% média (4,73); 4 notas estão acima de 110% da média (5,78); 7. Construa um programa que permita informar dados para 2 vetores inteiros de 10 posições e apresente a intersecção dos vetores. Lembrando que intersecção são os elementos repetidos em ambos os vetores, mas sem repetição (cada número pode aparecer uma única vez no resultado). (fonte: Forbelone) Entrada: [4; 2; 20; 9; 10; 2; 5; 7; 5; 4] e [3; 1; 7; 8; 10; 9; 8; 4; 6; 9] Saída: [4; 9; 10; 7] 8. Construa um programa que permita informar dados para 2 vetores inteiros de 10 posições e apresente o conjunto união dos vetores. Lembrando que conjunto união são todos os elementos que existem em ambos os vetores, mas sem repetição (cada número pode aparecer uma única vez no resultado). (fonte: Forbelone) Entrada: [4; 2; 20; 9; 10; 2; 5; 7; 5; 4] e [3; 1; 7; 8; 10; 9; 8; 4; 6; 9] Saída: [4; 2; 20; 9; 10; 5; 7; 3; 1; 8; 6]

1. Elabore um programa que, dados dois vetores inteiros de 5 posições, efetue as respectivas operações indicadas por outro vetor de 5 posições de caracteres também fornecido pelo usuário, contendo as quatro operações aritméticas em qualquer combinação e armazenando e apresentando os resultados em um terceiro vetor (Fonte: Forbelone) Entrada: [1, 2, -1, 7, 0]; [2, 3, 8, -10, 2]; [+, -, *, /, -]; Saída: [3, -1, -8, -0.7, -2] Resposta do Rodolfo: public class TurmaAB_Exer1{ public static void main (String [] args){ Scanner leia = new Scanner (System.in); int [] x = new int [5]; int [] y = new int [5]; double [] r = new double [5]; String [] o = new String [5]; System.out.println("Leitura do 1º vetor de números inteiros"); for (int i = 0; i<5; i++){ System.out.println("Informe o "+(i+1)+"º número: "); x[i]=leia.nextint(); System.out.println("Leitura do 2º vetor de números inteiros"); for (int i = 0; i<5; i++){ System.out.println("Informe o "+(i+1)+"º número: "); y[i] = leia.nextint(); System.out.println("Leitura de 5 operações"); for (int i = 0; i<5; i++){ System.out.println("Informe o "+(i+1)+"ª operação desejada"); o[i] = leia.next(); for (int i = 0; i< 5; i++){ if (o[i].equals("+")) r[i] = (double)x[i]+y[i]; else if (o[i].equals(" ")) r[i] = (double)x[i] y[i]; else if (o[i].equals("*")) r[i] = (double)x[i]*y[i]; else if (o[i].equals("/")) r[i] = (double)x[i]/y[i]; for (int i = 0; i<5; i++){ System.out.print(r[i]+" ");

2. Desenvolva um programa que leia um vetor de 10 posições inteiras e coloque em ordem crescente, utilizando a seguinte estratégia de ordenação (Fonte: Forbelone): Selecione o elemento do vetor de 10 posições que apresenta o menor valor; troque esse elemento pelo primeiro; repita estas operações, envolvendo agora apenas os 9 elementos restantes (trocando o de menor valor com a segunda posição), depois os 8 elementos restantes (trocando o de menor valor com a terceira posição), depois os 7 últimos restantes; os 6 e assim por diante, até restar um único elemento, o maior deles. Entrada: [22, 3, 9, -1, 4, 6, 11, 3, 8, 1] Saída: [-1, 1, 3, 3, 4, 6, 8, 9, 11, 22] Resposta do Iago, parcialmente correta, corrigida pelo professor: public class TurmaAB_questao2 { public static void main(string[] args) { Scanner sc = new Scanner(System.in); System.out.println("Digite 10 números"); int[] num = new int[10]; for(int i = 0; i < num.length; i++){ num[i] = sc.nextint(); // apesar do resultado correto, // não está em conformidade com o enunciado. /* for (int i = num.length; i >= 1; i ) { for (int j = 1; j < i; j++) { if (num[j 1] > num[j]) { int aux = num[j]; num[j] = num[j 1]; num[j 1] = aux; */ // Segue implementação conforme enunciado: int menor, aux; for (int i = 0; i < 9; i++) { // inicialmente o menor valor é o elemento i menor = i; // procura menor número entre i até 10 for (int j = i+1; j < 10; j++) if (num[j] < num[menor]) menor = j; // armazena posição do menor valor // intercambia num[i] e num[menor] aux = num[i]; num[i] = num[menor]; num[menor] = aux; for(int i = 0; i< num.length; i++){ System.out.println(num[i]);

3. Faça um programa que leia um vetor de valores numéricos de 10 posições e que retorne: a) a média dos valores do vetor; b) o valor mais próximo da média; c) o valor mais distante da média; Entrada: [5; -1; 2.5; 3; 8; 2; 9; 4; 2; 5] Saída: média: 3.95; valor mais próximo: 4; valor mais distante: 9; Resposta de José Sérgio: public class TurmaC_Ex3 { public static void main(string[] args) { double [] num = new double[10]; double media, dist_menor = 0, dist_maior = 0, soma = 0; int pos_prox = 0, pos_dist = 0; Scanner sc = new Scanner(System.in); for (int i = 0; i<10; i++) { System.out.println("Digite o número:" + (i+1)); num[i] = sc.nextdouble(); soma += num[i]; media = soma/10; double dist; for (int i = 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("Média: "+media); System.out.println("Valor mais próximo "+num[pos_prox]); System.out.println("Valor mais distante "+num[pos_dist]);

4. Crie um programa que leia um vetor de 10 números e gere um segundo vetor cujas posições pares são o dobro do vetor original e as ímpares o triplo. Considere a primeira posição do vetor como sendo 0 (fonte: Forbelone) Entrada: [5; -1; 2.5; 3; 8; 2; 9; 4; 2; 5] Saída: [10, -3; 5; 9; 16; 6; 18; 12; 4; 15] Resposta do Ademar: public class TurmaAB_Ex4 { public static void main(string[] args) { Scanner s = new Scanner(System.in); double[] v1 = new double[10]; double[] v2 = new double[10]; for (int i =0; i<10; i++) { System.out.println("Insira o valor do vetor na posição "+i); v1[i] = s.nextdouble(); if (i %2 == 0) { v2[i] = v1[i]*2; else { v2[i] = v1[i]*3; for (int i =0; i<10; i++) { System.out.println(v2[i]);

5. Desenvolva um programa que permita a leitura de um vetor de 10 números 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 posição, o segundo na penúltima posição e assim por diante. Entrada: [5; -1; 2.5; 3; 8; 2; 9; 4; 2; 13] Saída: [13; 2; 4; 9; 2; 8; 3; 2.5; -1; 5] Resposta do Luiz Henrique: public class Exercicio5{ public static void main (String[] args){ Scanner sc = new Scanner(System.in); double vetor1[] = new double[10]; double vetor2[] = new double[10]; for (int i = 0;i<10;i++){ System.out.println("Digite o valor "+(i+1)); vetor1[i] = sc.nextdouble(); for (int i2 = 9; i2>=0;i2 ){ vetor2[i2] = vetor1[i2]; System.out.println(vetor2[i2]);

6. Elabore um programa que leia uma séria de 10 notas de avaliações de alunos, e calcule quantas estão abaixo de 90% da média e quantas estão acima de 110% da média (fonte: Forbelone) Entrada: [4,3; 3,1; 1,7; 9,8; 10; 2,9; 5,8; 7,4; 5,6; 1,9] Saída: média: 5,25; 5 notas estão abaixo de 10% média (4,73); 4 notas estão acima de 110% da média (5,78); Resposta da Aline: public class TurmaAB_Ex6{ public static void main(string []args){ Scanner sc = new Scanner (System.in); double[] notas = new double[10]; int alunos_abaixo=0; int alunos_acima=0; double soma=0, media=0; for (int i = 0; i<10; i++) { System.out.println("Forneça a nota do aluno" + (i+1)); notas[i] = sc.nextdouble(); soma += notas[i]; media = soma / 10; if(notas[i]<media*0.90){ alunos_abaixo++; if(notas[i]>media*1.10){ alunos_acima++; System.out.println(alunos_abaixo+" alunos abaixo da media"); System.out.println(alunos_acima+" alunos acima da media");

7. Construa um programa que permita informar dados para 2 vetores inteiros de 10 posições e apresente a intersecção dos vetores. Lembrando que intersecção são os elementos repetidos em ambos os vetores, mas sem repetição (cada número pode aparecer uma única vez no resultado). (fonte: Forbelone) Entrada: [4; 2; 20; 9; 10; 2; 5; 7; 5; 4] e [3; 1; 7; 8; 10; 9; 8; 4; 6; 9] Saída: [4; 9; 10; 7] Resposta do Pedro, que possui um bug para elementos repetidos com valor 0. Corrigida pelo professor: public class Ex7{ public static void main (String [] args){ Scanner sc = new Scanner (System.in); double[] x = new double[10]; System.out.println("Vetor 1"); for(int i = 0; i < 10; i++){ System.out.println("Digite o número "+(i+1)); x[i] = sc.nextdouble(); /* atribuir valor '0' aos repetidos falha quando há elementos com valor '0' for (int j = i+1; j<10; j++){ if (x[i]==x[j]) x[j]=0; */ double[] y = new double[10]; System.out.println("Vetor 2"); for(int i = 0; i < 10; i++){ System.out.println("Digite o número "+(i+1)); y[i] = sc.nextdouble(); // o vetor z receberá elementos comuns entre // os vetorez x e z double[] z = new double[10]; int k= 1; for (int j = 0; j<10; j++){ if ( x[i] == y[j] ){ k++; // incrementa k z[k] = x[i]; // inclui em z[k] break; /* não funciona em todos os casos for (int j = 0; j<10; j++){ if ( x[i] == y[j] ){ System.out.println(x[i]); break; */ System.out.println("Intersecção:"); boolean repetido = false; for (int i=0; i<k; i++) { for (int j=i 1; j>=0; j ) // verifica se z[i] ocorreu anteriormente if (z[i]==z[j]) { repetido = true; break; if ( repetido ) repetido = false; // retorna a chave para o valor original else System.out.println(z[i]); // primeira ocorrencia de z[i]