23
Variáveis Compostas Leonardo Gresta Paulino Murta [email protected]ff.br

Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

VariáveisCompostas

[email protected]

Page 2: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

Auladehoje•  Veremososdiferentes<posdevariáveiscompostas(arrays)– Comumadimensão(vetores)– Comduasoumaisdimensões(matrizes)

Leonardo Murta Variáveis Compostas 2

Page 3: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

ExemploMo<vacional•  Programaparaauxiliaraescrever“Parabéns!”nasmelhoresprovasdeumadisciplinacom3alunos– Lerosnomeseasnotasde3alunos– Calcularamédiadaturma– Listarosalunos<veramnotaacimadamédia

Leonardo Murta Variáveis Compostas 3

Page 4: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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();

Page 5: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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); } }

Page 6: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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

Page 7: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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

Page 8: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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

Page 9: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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

Page 10: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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];

Page 11: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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

Page 12: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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

Page 13: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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]);

}

Page 14: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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

Page 15: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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(); }

Page 16: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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]); } } }

Page 17: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

Matrizes•  Variávelcompostamul3dimensional

– Éequivalenteaumvetor,contudopermiteau<lizaçãodediversasdimensõesacessadasviadiferentesíndices

– Podeserpensadacomoumvetorcujo<poéoutrovetor,recursivamente

– Emdiversassituaçõesmatrizessãonecessáriasparacorrelacionarinformações

Leonardo Murta Variáveis Compostas 17

Page 18: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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

Page 19: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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]);

Page 20: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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

...

Page 21: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

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]);

Page 22: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

Exercício•  Leiaonomeeaidadede10pessoaselisteaspessoas– Emordemalfabé<ca– emordemcrescentedeidade

Leonardo Murta Variáveis Compostas 22

Page 23: Variáveis Compostasleomurta/courses/2016.1/poo/aula5.pdfAula de hoje • Veremos os diferentes

VariáveisCompostas

[email protected]