6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

16
Apresentação 6 Manipulação de caracteres Relação entre os tipos char e int Tipos de valor vs. tipos de referência

description

Fundamentos da Programação 6: • Manipulação de caracteres • Relação entre os tipos char e int • Tipos de valor vs. tipos de referência Apresentação 6 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.

Transcript of 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Page 1: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Apresentação 6

Manipulação de caracteresRelação entre os tipos char e intTipos de valor vs. tipos de referência

Page 2: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Fundamentos de Programação 2

Da apresentação anterior…

Atribuições especiais

Arrays em Java

Instruções de iteração: while e do-while for e foreach

Classes-pacote2013/2014

Page 3: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Fundamentos de Programação 3

Tipo primitivo char

Cada variável char guarda um caractere

Valores literais entre plicas

Exemplo char letter = 'k';

2013/2014

‘k’

letter

‘k’

letter : char ou

Page 4: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Fundamentos de Programação 4

Caracteres: códigos

Cada caractere tem código único

Códigos de letras latinas Consecutivos Ordem alfabética Minúsculas e

maiúsculas separadas

Caractere Código

… …

A 65

… …

Z 90

… …

a 97

… …

z 122

… …

2013/2014

Sem marcas

diacríticas!

Page 5: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Fundamentos de Programação 5

Conversão entre char e int

Caracteres convertíveis para códigos

Códigos convertíveis para caracteres

Exemplo char original = 'b'; int code = (int) original; char recovered = (char) code;

2013/2014

‘b’

original

98

code

‘b’

recovered

Page 6: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Fundamentos de Programação 6

Caracteres: operadores aritméticos

char letter1 = 'c';letter1++;

char letter2 = 'b';letter2--;

final int difference = letter1 - letter2;

2013/2014

100 - 97

‘c’

letter1

‘b’

letter2

3

difference

‘d’

letter1

‘a’

letter2

Page 7: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Fundamentos de Programação 7

Caracteres: operadores relacionais

Comparam códigos!

Exemplos c > 'a' – Caractere em c tem código

superior ao de ‘a’ c1 <= c2 – Caractere em c1 tem código

não superior ao caractere em c2

2013/2014

Page 8: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Fundamentos de Programação 8

Exemplo: array com minúsculas por ordem alfabética

final int numberOfLetters = 'z' - 'a' + 1; // 26

final char[] letters = new char[numberOfLetters];

for(int i = 0; i != letters.length; i++)

letters[i] = (char) ('a' + i);

2013/2014

Page 9: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Fundamentos de Programação 9

Problema: Cifra de César

2013/2014

Saiba mais na Wikipédia.

Cifra com deslocação

de 2.

a b c x y z…

a b c d e z…

a t a c a r

c v c e c t

cifra

Page 10: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Fundamentos de Programação 10

Variáveis que guardam

referências.

Atribuição: valor vs. referênciaTipos de valor (int, boolean, etc.)int a = 7;int b = a;int c;

Tipos de referência (arrays, classes)int[] a = {1, 2, 3};int[] b = a;int[] c;

2013/2014

7

a

7

b

0

c

Excepto no caso de

variáveis locais.

Variáveis locais têm sempre de

ser inicializadas

explicitamente.

a

b

null

c

Excepto no caso de

variáveis locais.

Variáveis locais têm sempre de

ser inicializadas

explicitamente.

1 2 3

0 1 2

Variáveis que guardam valores.

Valor especial significando

«não referencia

nada».

Page 11: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Invocação: passagem por valorpublic static void increment(int value) { value++;}

… main(…) { int number = 3;

increment(number);

out.println(number);}

2013/2014 Fundamentos de Programação 11

Que aparece?

Pois! Este procedimento está errado!

Page 12: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Invocação: passagem por valorpublic static void increment(int value) { value++;}

… main(…) { int number = 3;

increment(number);

out.println(number);}

2013/2014 Fundamentos de Programação 12

value = number

3

number

3

value

4

value

Aparece 3!

Page 13: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Invocação: passagem por valor de uma referência

public static void incrementFirstOf(final int[] values) { values[0]++;}

… main(…) { final int[] numbers = {3, 2, 1, 0};

incrementFirstOf(numbers);

out.println(numbers[0]);}

2013/2014 Fundamentos de Programação 13

Que aparece?

Page 14: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Invocação: passagem por valor de uma referência

public static void incrementFirstOf(final int[] values) { values[0]++;}

… main(…) { int[] numbers = {3, 2, 1, 0};

incrementFirstOf(numbers);

out.println(numbers[0]);}

2013/2014 Fundamentos de Programação 14

values = numbers

numbers

values

Aparece 4!

2 1 0

0 1 2 3

43

Page 15: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Fundamentos de Programação 15

A reter

Manipulação de caracteres

Relação entre os tipos char e int

Tipos de valor vs. tipos de referência

2013/2014

Page 16: 6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

Fundamentos de Programação 16

Sumário

Manipulação de caracteres

Relação entre os tipos char e int

Tipos de valor vs. tipos de referência

2013/2014