Você está na página 1de 31

Programação II

Arrays –Vectores e Matrizes


Aula 3
O Problema !
Int idade1;
Int idade1;
Int idade3;
Int idade4;
Int idade5;
Int idade6;
O Problema !
E se fosse necessario guardar 100, 500 ou 1000 idades!
Usar 1000 variaveis?!
Nao e pratico em programacao, um programa com 1000
variaveis?!

O problema fica resolvido com arrays.


Usa-se uma unica variavel que ira guardar todas as idades.
Definição de Arrays
Em programação de computadores, um array, também
conhecido como vector (para arrays uni-dimensionais)
ou matriz (para arrays bi-dimensionais),
Estruturas de dados;
Conjunto de elementos do mesmo tamanho e tipo;
Elementos que podem ser acedidos de forma rápida;
Estrutura que armazena em uma única variável, vários dados
do mesmo tipo.
Declaração de Arrays
Declarar uma variável equivale a reservar um espaço na
memória para armazenar temporariamente os dados
manipulados durante a execução do programa.

Na declaração de arrays deve-se especificar o tipo de dado e o


tamanho ou dimensão.
Declaração de Arrays
Como um array pode guardar vários valores tem que se definir quantos
valores ele deve guardar para que seja reservado o espaço necessário
em memória ou seja, deve-se definir o tamanho do array.
1. Para declarar um array deve-se especificar o tipo de dado que será
armazenado.
2. Dar um nome a esse array.
3. Indicar que é um array, abrindo e fechando parenteses recto e a
dimensao ( [5 ] ).
Declaração de Array
Para declarar um array deve-se especificar o tipo e
acrescentar parenteses recto[] depois da variavel.
float []notas;
float = new float[100]; Declara array de nome notas, do tipo
float , vai guardar/receber 100 elementos, ou é de dimensao
ou tamanho 100
float x[] = new float[27]; Declara array de nome x, do tipo
float, vai guardar/receber 27 elementos, ou é de dimensao ou
tamanho 27.
Declaração com Inicialização
A declaracao com inicialização é atribuir inicialmente valores
ao array.
Java permite a criação e inicialização de um array usando a
forma
byte diasMes[] = {31,28,31,30,31,30,31,31,30,31,30,31};
String[] nome ={"JOSE", "JORGE", "JANEIRO"};
Visualizar os Elementos de Arrays
Os valores armazenados em um array são chamados elementos do
array. Para acessar ou visualizar um elemento deve-se especificar o
nome do array e a posição desse elemento. O programa a seguir,
inicializa um array notas e depois exibe os elementos nas posições
especificas:
public static void main (String args [])throws IOException {
int notas []={12,7,18,11,9};
System.out.println("visualizar o array" );
System.out.println(notas[0] );
System.out.println(notas[2] );
System.out.println(notas[4] ); }
Visualizar os Elementos de Arrays
Outra forma de visualizar os elementos do array seria usando os laços
for, sabendo que o tamanho do array é n, ou seja vai conter n-1
elementos a sintaxe será:
for (int i=0; i<n; i++) vai percorrer começando do primeiro elemento do
array até ao ultimo elemento, ou pode ser também
for (int i=0; i<=n-1; i++)
Visualizar os Elementos de Arrays
int diasMes[] = {1,2,3,30,34,36,38,37,39,40,41,11};
System.out.println(" os números são" );
for(int i=1; i<6; i++){
System.out.println( diasMes[i] ); }
O código acima não ira visualizar todos elementos do array, para tal
será necessário alterar no ciclo for o valor final do contador:
for(int i=0; i<12; i++)
Porque o array é de dimensão 12.
Criação de Arrays com Tamanho
Variavel
Arrays com tamanho fixo ou defenido os elementos não variam,
entretanto por vezes há necessidade de o utilizador definir o tamanho
do array, quando a quantidade de elementos que o array vai conter
varia.
Pode ser declarado
int q = Integer.parseInt(br.readLine());
int val[] = new int [q];
Criação de Arrays com Tamanho
Variavel
Scanner xx = new Scanner(System.in);
System.out.println ("Quantos valores pretende introduzir: ");
int q = Integer.parseInt(br.readLine());
int val[] = new int [q];
System.out.println ("intr. "+q+" valores inteiros: ");
for (int i=0; i < q; i++)
{ System.out.println((i+1)+"-o valor: ");
val[i] = xx.nextInt(); }
Arrays
//visualiza o conteudo do array
for (int j=0; j < val.length; j++)
System.out.print(val[j]+" " );
}}
Array bi-Dimensional-Matrizes
Matrizes são arrays bi-dimensionais, enquanto um vector tem apenas
uma linha com vários valores, uma matriz pode ter varias linhas e
colunas.
Um array unidimensional pode armazenar elementos de tipos simples e
também elementos que são objectos. Um caso particular quando cada
elemento de array é um array, criando-se assim um array bi-
dimensional, ou matriz, com linhas e colunas.
Array bi-Dimensional
. Array bi-Dimensional
precos

[0] [1]

[0] precos[0][0] precos[0][1]

[1] precos[1][0] precos[1][1]

[2] precos[2][0] precos[2][1]

17
Declaração de Array bi-
Dimensional
Para declarar um array bi-dimensional ( matriz), procede-se da mesma
forma que um vector, porém com mais um dimensionador.

float precos[][] = new float [3][2]; ou

float precos[][]; precos = new float [3][2];

declara um array com 3 linhas e 2 colunas


Declaração com Inicialização
float [][] precos={{120.54,100.34},{100.12,98.34},{157.89,180.12}};
int [] [] idade= {{ 12, 30}, { 3, 7}, {70, 26}};
Os arrays acima, podem ser representados segundo a figura abaixo com
3 linhas e 2 colunas.
12 30

3 7

70 26
Declaração com Inicialização
Cada elemento do array bi-dimensional pode ser acedido através de
dois índices, um que indica a linha e outro a coluna.

Ex: O elemento precos[2][1], ou a variável precos na posição [2][1],


possui o valor 180.12.
Visualizar ou Percorrer o Array
Para aceder aos elementos do array bi-dimensional deve-se
utilizar dois ciclos for, um dentro do outro. O primeiro serve
para fazer variar linhas e o segundo para fazer variar colunas.
Pode-se usar também
o número de linhas dum array através de instrução:
int numLinhas = precos.length;
e o número de colunas dum array através de instrução:
int numColunas = precos[0].length;
Exemplo
O exercício a seguir recebe dados para preenchimento do array,
visualiza os dados em forma de tabela e pela escolha do utilizador, faz o
somatório dos valores da coluna escolhida, validando o numero de
coluna.
Exemplo1
Scanner xx = new Scanner(System.in);
int t[][] = new int [3][2];
int soma = 0;
System.out.println("Introduza os valores a prencher o Array ");
for (byte i=0; i < t.length; i++)
for (byte j=0; j<t[0].length; j++)
t[i][j] = xx.nextInt();
Exemplo1
System.out.println("Dados visualizados em forma de tabela ");
for (byte i=0; i<t.length; i++)
{ for (byte j=0; j<t[0].length; j++)
System.out.print(t[i][j]+" "); System.out.println(); }
//valida o número da coluna cujos valores pretende-se somar
int nc=0; do
{ System.out.print("Soma de que coluna pretende(1-2)? ");
nc = xx.nextInt();
System.out.println(nc);
Exemplo1
//valida o número da coluna cujos valores pretende-se somar
int nc=0;
do
{ System.out.print("Soma de que coluna pretende(1-2)? ");
nc = Integer.parseInt(br.readLine());
System.out.println(nc);
if (nc <= 0 || nc > t[0].length)
System.out.println("Num. de coluna invalida, deve ser entre 1 e
"+t[0].length);
} while (nc <= 0 || nc > t[0].length);
Exemplo2
Scanner xx = new Scanner(System.in);
int Matriz[][] = new int[2][2]; // declara matriz com 2 linhas e 2 colunas

System.out.print("receber dados da Matriz"+ " " );

for (int i=0; i < 2; i++){ // ciclo que recebe dados da linha
for (int j=0; j < 2; j++){ // ciclo que recebe dados da coluna
Matriz[i][j] = xx.nextInt();
}}
Exemplo2
System.out.print("visualizar dados da Matriz"+ " " );
for (int i=0; i < 2; i++){ // ciclo que visualiza dados da linha
for (int j=0; j < 2; j++){ // ciclo que visualiza dados da coluna
System.out.print(val[i][j]+" ," ); } }
System.out.print("visualizar valores impares do array"+ " " );
for (int i=0; i < 2; i++){
for (int j=0; j < 2; j++){
if(val[i][j]%2!=0) System.out.print(val[i][j]+" ," ); }}
Exercicios
1. Faça um programa que le 10 nomes por teclado, e depois imprima
esses nomes na ordem inversa em que foram digitados pelo
usuário.
2. Faça um programa que declara 2 vectores de dimensão variável. O
programa deve visualizar a soma e subtracção dos elementos dos
vectores e a soma entre os elementos do 2 vectores.
3. Suponha um vetor N com 10 elementos e outro vetor M com 10
elementos. Faça um programa que calcule a soma destes.
Exercicios
4. Faça um programa que leia um vetor de inteiros positivos de 50
posições no intervalo de 20 a 200. O programa deve imprimir a
quantidade de números pares e múltiplos de 5.
5. Faça um programa para receber e imprimir valores por teclado de 2
vectores de tamanho variavel.
6. Faça um programa para receber notas de n estudantes. Deve
visualizar as notas, calcular a media das notas e informar os
estudantes dispensados.
Exercicios
7. Faça um programa para ler notas de 2 testes de cinco estudantes.
Devera imprimir a media de cada estudante.
8. Faça um programa para visualizar matriz de dimensao 2x3, e
visualizer os valores impares da matriz.
9. Escreva um algoritmo que leia e mostre um vetor de 20 elementos
inteiros e mostre quantos valores pares existem no vetor.
10. Faça um programa que recebe o nome de 10 produtos e o preço, na
saida deve visualizar o produto correspondente ao preço.
FIM

Você também pode gostar