Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
VariáveisCompostas
Auladehoje• Veremososdiferentes<posdevariáveiscompostas(arrays)– Comumadimensão(vetores)– Comduasoumaisdimensões(matrizes)
Leonardo Murta Variáveis Compostas 2
ExemploMo<vacional• Programaparaauxiliaraescrever“Parabéns!”nasmelhoresprovasdeumadisciplinacom3alunos– Lerosnomeseasnotasde3alunos– Calcularamédiadaturma– Listarosalunos<veramnotaacimadamédia
Leonardo Murta Variáveis Compostas 3
ExemploMo<vacional
Leonardo Murta Variáveis Compostas 4
import java.util.Scanner; public class Notas { public static void main(String[] args) { Scanner teclado = new Scanner(System.in); String nome1, nome2, nome3; float nota1, nota2, nota3, media; System.out.print("Informe o nome do aluno 1: "); nome1 = teclado.nextLine(); System.out.print("Informe o nome do aluno 2: "); nome2 = teclado.nextLine(); System.out.print("Informe o nome do aluno 3: "); nome3 = teclado.nextLine();
ExemploMo<vacional
Leonardo Murta Variáveis Compostas 5
System.out.print("Informe a nota de " + nome1 + ": "); nota1 = teclado.nextFloat(); System.out.print("Informe a nota de " + nome2 + ": "); nota2 = teclado.nextFloat(); System.out.print("Informe a nota de " + nome3 + ": "); nota3 = teclado.nextFloat(); media = (nota1 + nota2 + nota3)/3; if (nota1 > media) System.out.println("Parabéns " + nome1); if (nota2 > media) System.out.println("Parabéns " + nome2); if (nota3 > media) System.out.println("Parabéns " + nome3); } }
Esefossem40alunos?• Épossíveldefinirvariáveisqueguardammaisdeumvalordeummesmo<po
• Essasvariáveissãoconhecidascomovariáveiscompostas,variáveissubscritas,variáveisindexáveisouarranjos(array)
• Existemdois<posprincipaisdevariáveiscompostas:– Vetores– Matrizes
Leonardo Murta Variáveis Compostas 6
Vetores• Variávelcompostaunidimensional
– Contémespaçoparaarmazenardiversosvaloresdeummesmo<po
– Éacessadaviaumíndice• Aideiadevetorécomumnamatemá<ca,comonomedevariávelsubscrita– Exemplo:x1,x2,...,xn
• Oquevimosatéagorasãovariáveiscomsomenteumvalor– Exemplo:x=123
• Nocasodevetores,umamesmavariávelguardaaomesmotempomúl<plosvalores– Exemplo:x1=123,x2=456,...
Leonardo Murta Variáveis Compostas 7
Recapitulando:variáveisquecontêm<posprimi<vos
• Atéagora,variáveisquecontêm<posprimi<vos(byte,short,int,long,float,double,char,boolean)sempreocupamdiretamenteumaposiçãonamemória
Leonardo Murta Variáveis Compostas 8
6.0
‘A’
7.1
8.2
true
nota2
flaTheBest
nota1
nota3
bloco
Retomando:Vetores
Leonardo Murta Variáveis Compostas 9
“João”
‘B’
“Pedro”
8.2
trueflaTheBest
bloco
6.0
7.1
0
1
2
0
1
notas
nomes
Declaraçãodevetores• Formageral
• Exemplos
Leonardo Murta Variáveis Compostas 10
TIPO[] NOME = new TIPO[TAMANHO]; ou
TIPO[] NOME; ...
NOME = new TIPO[TAMANHO];
String[] nomes = new String[40]; float[] notas = new float[40];
boolean[] presenca;
presenca = new boolean[5];
Declaraçãodevetores• Épossívelsaberotamanhodeumvetoracessandoapropriedadelength– Exemplo:notas.lengthà40
• NoJava,todovetorinicianaposição0(zero)eterminanaposiçãolength–1– Exemplo:float[]notas=newfloat[3];
Leonardo Murta Variáveis Compostas 11
notas
0
1
2
U<lizaçãodevetores• Paraacessar(lerouescrever)umaposiçãodovetor,bastainformaraposiçãoentrecolchetes
Leonardo Murta Variáveis Compostas 12
notas[0] = 8; notas[1] = 5.5f;
notas[2] = 1.5f;
media = (notas[0] + notas[1] + notas[2]) / 3;
8.0
notas 5.5
1.5
0
1
2
5.0media
U<lizaçãodevetores• Tambémépossíveliniciarosvaloresdevetoresdiretamentenocódigo,colocando-osentrechaves({}),separadosporvírgula
• Outrapossibilidadeédeiterarportodososseusvalores
Leonardo Murta Variáveis Compostas 13
notas = { 8, 5.5f, 1.5f}; media = (notas[0] + notas[1] + notas[2]) / 3;
for (int i = 0; i < notas.length; i++) { System.out.print(notas[i]);
}
Retomando:Esefossem40alunos?
• Criaríamosdoisvetores(nomesenotas)de40posições• VincularíamosaposiçãoNdovetordenomesàposiçãoNdovetordenotas
Leonardo Murta Variáveis Compostas 14
nomes
0
1
2
40
notas
0
1
2
40
Retomando:Esefossem40alunos?
Leonardo Murta Variáveis Compostas 15
import java.util.Scanner; public class Notas { public static void main(String[] args) { final int NUMERO_ALUNOS = 40; Scanner teclado = new Scanner(System.in); String[] nomes = new String[NUMERO_ALUNOS]; float[] notas = new float[NUMERO_ALUNOS]; float media = 0; for (int i = 0; i < NUMERO_ALUNOS; i++) { System.out.print("Informe o nome do aluno "+(i+1)+": "); nomes[i] = teclado.nextLine(); }
Retomando:Esefossem40alunos?
Leonardo Murta Variáveis Compostas 16
for (int i = 0; i < NUMERO_ALUNOS; i++) { System.out.print("Informe a nota de " + nomes[i] + ": "); notas[i] = teclado.nextFloat(); media += notas[i]; } media /= NUMERO_ALUNOS; for (int i = 0; i < NUMERO_ALUNOS; i++) { if (notas[i] > media) System.out.println("Parabéns " + nomes[i]); } } }
Matrizes• Variávelcompostamul3dimensional
– Éequivalenteaumvetor,contudopermiteau<lizaçãodediversasdimensõesacessadasviadiferentesíndices
– Podeserpensadacomoumvetorcujo<poéoutrovetor,recursivamente
– Emdiversassituaçõesmatrizessãonecessáriasparacorrelacionarinformações
Leonardo Murta Variáveis Compostas 17
Exemplomo<vacional• Assumindoqueumalunoéavaliadocomtrêsnotas,serianecessárioumvetordetrêsposiçõesparaguardarasnotasdeumaluno...
Leonardo Murta Variáveis Compostas 18
4.5
notas 6.5
7.0
0
1
2
Exemplomo<vacional• Contudo,assumindoqueumaturmatemcincoalunos,serianecessáriaumamatrizbidimensionalparaguardarasnotasdetodososalunosdeumaturma...
Leonardo Murta Variáveis Compostas 19
notas
0
1
2
4.5
6.5
7.0
alunos
0 1 2 3 4
float[][] notas = new float[5][3]; // Declaração System.out.println(notas[1][0]);
Exemplomo<vacional• Namemória,podemosimaginarqueseriaalgoassim...
Leonardo Murta Variáveis Compostas 20
notas
0
1
2 0
4.5
6.5
0
1
2 1
0
1
2 4
7.0
...
Exemplomo<vacional• Ainda,assumindoqueumcursotemduasturmas,serianecessáriaumamatriztridimensionalparaguardarasnotasdetodososalunosdetodasasturmasdocurso...
Leonardo Murta Variáveis Compostas 21
float[][][] notas = new float[2][5][3]; System.out.println(notas[0][1][0]);
Exercício• Leiaonomeeaidadede10pessoaselisteaspessoas– Emordemalfabé<ca– emordemcrescentedeidade
Leonardo Murta Variáveis Compostas 22
VariáveisCompostas