32
Metodologia e Linguagem de Programação Prof.º Thyago Maia

Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Embed Size (px)

Citation preview

Page 1: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Metodologia e Linguagem de Programação

Prof.º Thyago Maia

Page 2: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Java – Variáveis Compostas Homogêneas (arrays)

Page 3: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Variáveis Compostas Homogêneas

• A declaração de várias variáveis , uma a uma, é suficiente para codificar um programa;

• Porém, tal metodologia não é suficiente para resolver TODOS os problemas computacionais;– Ex.: Faça um programa que leia o nome de 500 pessoas e,

em seguida, escreva o nome de cada uma.– Você iria declarar e utilizar 500 variáveis? Trabalhoso,

não?!• Para resolver problemas similares ao descrito acima,

utilizamos vetores e matrizes (arrays);

Page 4: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Vetores

Page 5: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Vetores

• Vários valores poderão ser armazenados em uma única variável, chamada vetor;

• Vetores possuem índices que, pelos quais, poderemos acessar valores armazenados;

• Vetores funcionam como tabelas de uma linha e várias colunas:– Ex.: Um vetor de inteiros:

0 2 4 1 6

10 1 2 3 4

Page 6: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Vetores

• Exemplo de declaração de um vetor:

– Os colchetes após o identificador da variável indicam a declaração de um vetor;

– É preciso definir o tamanho do vetor ([10]) e alocar memória para o armazenamento dos elementos (new int);

int idades[] = new int[10];

Page 7: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Vetores

• Como atribuir valores a um vetor?– Devemos fornecer um índice que indique a

posição onde um determinado valor será armazenado no vetor. Ex:

String times[] = new String[3];

times[0] = "Sport Recife"; times[1] = "Barcelona"; times[2] = "Real Madrid"; System.out.println("Posição 0 do vetor: " + times[0]); System.out.println("Posição 1 do vetor: " + times[1]); System.out.println("Posição 2 do vetor: " + times[2]);

Page 8: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Vetores

• Preenchendo e mostrando os elementos de um vetor:

– Para preencher um vetor, temos que atribuir valores para cada posição do mesmo;

– Para apresentar todos os valores contidos em um vetor, temos que percorrer todas as posições do vetor e obter cada valor correspondente;

Page 9: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Vetores

• Como fazer tudo isso de uma maneira mais eficiente?– Deve-se implementar um mecanismo que controle

o valor do índice;– Percebe-se que, para percorrer um vetor, a

estrutura de repetição for se apresenta como um bom recurso;

– A estrutura FOR permite contar um valor inicial até um valor final, coincidentemente com os índices de um vetor;

Page 10: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

import java.util.Scanner;public class tarefa {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in); int idades[] = new int[3];

int i;

for(i=0; i<3; i++) { System.out.println("Digite sua idade: "); idades[i] = entrada.nextInt(); } for(i=0; i<3; i++) { System.out.println("Idade na posição " + i + ": " + idades[i]); }

}}

Page 11: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Exemplo

• Faça um programa em Java que lê 20 números inteiros em um vetor. Em seguida, o programa deverá escrever cada número e sua posição no vetor;

Page 12: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

import java.util.Scanner;

public class tarefa {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in); int numeros[] = new int[20];

for(int i=0; i<20; i++) { System.out.println("Digite um número: "); numeros[i] = entrada.nextInt(); } for(int i=0; i<20; i++) { System.out.println(“Numero na posição " + i + ": " + numeros[i]); }

}}

Page 13: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Exemplo

• Escreva um programa em Java que lê 10 números inteiros em um vetor, calcula e exibe a quantidade de números maiores que 5;

Page 14: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

import java.util.Scanner;

public class tarefa {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in); int numeros[] = new int[10]; int cont=0; for(int i=0; i<10; i++) {

System.out.println("Digite um número: "); numeros[i] = entrada.nextInt(); if(numeros[i] > 5) { cont++; }

} System.out.println("Quant. de números maiores que 5: " + cont); }}

Page 15: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Exercícios

Page 16: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Exercícios

• Faça um programa que leia 10 números inteiros e os armazena em um vetor de 10 posições. O programa deverá escrever na tela apenas os valores positivos do vetor;

Page 17: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Exercícios

• Faça um programa que leia 10 números inteiros e os armazena em um vetor de 10 posições. O programa deverá trocar todos os valores negativos do vetor por 0. Após a substituição, o programa deverá escrever todo o conteúdo do vetor na tela;

Page 18: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Exercícios

• Faça um programa que receba 5 números reais e os armazena em um vetor X de 5 posições. O programa deverá armazenar o valor/2 de cada posição do vetor X em um vetor Y, também de 5 posições. No final, o programa deverá escrever todo o conteúdo dos vetores X e Y na tela;

Page 19: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Matrizes

Page 20: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Matrizes• O que é uma Matriz?

– É um conjunto de variáveis–multidimensionais, de um mesmo tipo, que

possuem o mesmo identificador (nome) e são alocadas sequencialmente na memória.

– Também conhecida como variável homogênea multidimensional.

–Uma variável do tipo matriz precisa de um índice para cada uma de suas dimensões.

Page 21: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Matrizes• Exemplo de uma Matriz:

12 1 90 56 37 10 23 2 60

15 36 89 34 6

Números

1 2 3 4 5

Colunas

Linhas

Legenda:

• Números: é o nome da matriz bidimensional, onde o tamanho a 1ª dimensão (linha) é 3 e o tamanho da 2ª dimensão (coluna) é 5 .

• Vermelho: são os elementos da matriz.

• Preto: são os índices, ou seja, a posição dos elementos na matriz (linha, coluna).

1

2

3

Numeros [1] [1] Numeros [3] [4]

Page 22: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Matrizes

• Exemplo de declaração de uma matriz:

– Os dois conjuntos de colchetes após o identificador da variável indicam a declaração de uma matriz;

– É preciso definir o tamanho da matriz ([5][5]) e alocar memória para o armazenamento dos elementos (new int);

int matriz[][] = new int[5][5];

Page 23: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Matrizes

• Como atribuir valores a uma matriz?– Devemos fornecer um índice que indique a posição que

um determinado valor será armazenado no vetor. Ex:

int tabela[][] = new int[2][2];

tabela[0][0] = 1; tabela[0][1] = 5; tabela[1][0] = 7; tabela[1][1] = 2; System.out.println(“Linha 0, Coluna 0: " + tabela[0][0]); System.out.println("Linha 1, Coluna 0: " + tabela[1][0]); System.out.println("Linha 1, Coluna 1: " + tabela[1][1]);

Page 24: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Matrizes

• Como atribuir e escrever valores de uma maneira mais eficiente?– Deve-se implementar um mecanismo que controle

o valor dos índices;– Percebe-se que, para percorrer uma matriz, a

estrutura de repetição for se apresenta como um bom recurso;

– A estrutura FOR permite contar um valor inicial até um valor final, coincidentemente com os índices de uma matrizes;

Page 25: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Exemplo

• Faça um programa em Java que lê 9 números inteiros em um matriz 3x3. Em seguida, o programa deverá escrever cada número e sua posição na matriz;

Page 26: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

import java.util.Scanner;

public class tarefa {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in); int num[][] = new int[3][3];

for(int linha=0; linha<3; linha++) {

for(int coluna=0; coluna<3; coluna++) {

System.out.println("Digite um número: "); num[linha][coluna] = entrada.nextInt();

} } for(int linha=0; linha<3; linha++) {

for(int coluna=0; coluna<3; coluna++) {

System.out.println(linha + “-” + coluna + “: ” + num[linha][coluna]);

} }

}}

Page 27: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Exemplo

• Faça um programa em Java que possua uma matriz 4x4 que receberá em cada posição uma letra. Fazer com que o programa leia cada caractere e, após as leituras, escreva a palavra ou frase formada por cada letra da matriz.

Page 28: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

import java.util.Scanner;public class tarefa {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in); String texto[][] = new String[4][4]; for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { System.out.println("Digite uma letra:"); texto[i][j] = entrada.next(); } } for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { System.out.print(texto[i][j]); } } }

}

Page 29: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Exercícios

Page 30: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Exercício

• Faça um programa em Java que irá possuir 2 matrizes 3x3. As mesmas irão receber valores inteiros digitados pelo usuário. O programa deverá calcular e exibir a soma entre os valores das duas matrizes;

Page 31: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Exercício

• Faça um programa que armazena valores inteiros em uma matriz (2,3). A seguir, calcula e exibe a média dos valores positivos contidos na matriz.

Page 32: Metodologia e Linguagem de Programação - 2016.2 - Aula 8

Exercício

• Faça um programa que lê valores inteiros em uma matriz (2,2). O programa deverá encontrar o maior valor contido na matriz e sua posição.