24
LIC 2020 © Julio Arakaki Ciência da Computação 1 Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki Ciência da Computação

Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

1

Tipos de dados, Variáveis e Escopo

Prof. Julio Arakaki

Ciência da Computação

Page 2: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

2

Tipos de dados X Linguagem de programação

25/02/2020 11:28

• Uma linguagem de programação é fortemente

tipada se erros de tipos são sempre detectados.

• Isso requer que os tipos de todos os operandos

possam ser determinados em tempo de

compilação ou em tempo de execução.

• A importância da tipagem forte está na habilidade

de detectar usos incorretos de variáveis que

resultam em erros de tipo.

Page 3: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

3

Tipos de dados X Linguagem de programação

25/02/2020 11:28

• C e C++ não são linguagens fortemente tipadas,

porque ambas incluem tipos união que não são

verificados em relação a tipos.

• Java e C#, embora sejam baseadas em C++, são

quase fortemente tipadas. Os tipos podem ser

convertidos explicitamente, resultando em erros de

tipos.

Page 4: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

4

Tipos de dados X Linguagem de programação

25/02/2020 11:28

• Tipos de dados não definidos em termos de outros

tipos, são chamados de tipos de dados primitivos.

• Praticamente todas as linguagens de programação

fornecem um conjunto de tipos de dados

primitivos.

Page 5: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

5

Representação dos dados no computador

25/02/2020 11:28

• Exemplo: tipos primitivos da linguagem java:

Page 6: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

6

Representação dos dados no computador

25/02/2020 11:28

• 1 bit pode ter valores simbólicos: 0 ou 1

• 1 byte equivale a 8 bits, ou seja, combinação de

valores entre: 00000000 a 11111111

Page 7: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

7

Representação dos dados no computador

25/02/2020 11:28

• Tipos primitivos:

– Numéricos: inteiro, ponto flutuante, complexo

(Fortran, Python), decimais.

– Booleanos: em C utiliza-se numérico onde, valores

diferentes de zero são verdadeiros e igual a zero

são falsos. Na linguagem java existe o tipo

boolean,

– Caracteres: utilizam tabela ASCII e mais

recentemente o Unicode (neste caso, os primeiros

128 caracteres são os mesmos do ASCII). Permite

gerar cadeias de caracteres (“string”).

Page 8: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

8

Representação dos dados no computador

25/02/2020 11:28

• Programas não “manipulam” somente números e

textos. Eles podem também utilizar dados

complexos (compostos) como registros, contas

bancárias, formas gráficas, ...

• As linguagens de programação oferecem meios de

representar (ou criar novos tipos) estes dado.

Como estruturas (C, C++) e classes (C++, Java, C#)

Page 9: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

9

Variáveis x Tipos

25/02/2020 11:28

• Uma variável é uma abstração de uma célula de

memória

– Abstração é a ação ou efeito de abstrair, ou seja, de isolar

mentalmente um elemento ou uma propriedade de um todo,

para considerar individualmente. Do latim “abstracione”, que

significa “separação”.

– Abstração é a habilidade de concentrar nos aspectos

essenciais de um contexto qualquer, ignorando características

menos importantes ou acidentais. Em modelagem orientada a

objetos, uma classe é uma abstração de entidades existentes

no domínio do sistema de software. (Wikipedia)

Page 10: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

10

Variáveis x Tipos

25/02/2020 11:28

• Num programa, as variáveis são utilizadas para

armazenar valores na memória do computador.

• As variáveis são caracterizados por atributos:

– um tipo, um nome e um conteúdo. Este conteúdo pode

ser alterado.

Page 11: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

11

Variáveis x Tipos

25/02/2020 11:28

• Utiliza-se variáveis para armazenar dados que

poderão ser utilizados posteriormente (em outro

ponto do programa)

• O programador é responsável pela decisão sobre o

tipo e o nome da variável (identificador). O

conteúdo depende da aplicação.

Page 12: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

12

Variáveis x Tipos (sintaxe)

25/02/2020 11:28

• Cada linguagem de programação possui a sua

própria sintaxe para a criação da variáveis.

Exemplo: em C, C++, Java e C#

<tipo> <nome1>, <nome2>, <nome3>, ...;

• Exemplo:

int x, y, z;

float mediaFinal, porcentagemLucro;

char opcao;

Page 13: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

13

Variáveis x Tipos (sintaxe)

25/02/2020 11:28

• O nome (identificador) de uma variável, pode ter

letras, dígitos, caractere de sublinhado. Não podem

iniciar com dígitos.

• O programador deve decidir o nome de acordo

com o propósito da variável (mnemônico).

• O nome da variável não pode ter caracteres como

?,*,%, espaço e acentuação.

Page 14: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

14

Variáveis x Tipos (sintaxe)

25/02/2020 11:28

• Por convenção, linguagens como java, os nomes

de variáveis sempre iniciam com minúsculas.

• Não pode ser utilizadas palavras reservadas da

linguagem para nomes de variáveis:

• Exemplos de palavras reservadas:

if, while, main, struct, class, print,

for, int, char, ...

Page 15: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

15

Variáveis x Tipos (atribuição)

25/02/2020 11:28

• O operador (=) é utilizada para atribuir (alterar) o

valor da variável (C, C++, Java, C#).

int i = 10;

float areaCampo = 34.67f;

double pi = 3.1415;

...

i = 22; // altera o valor da variável i

• Algumas linguagens utilizam outros caracteres.

Por exemplo: x := 19 (em Pascal)

Page 16: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

16

Variáveis x Tipos (coerção/”typecasting”)

25/02/2020 11:28

• Um tipo compatível ou é válido para o operador, ou

pode, dentro das regras da linguagem, ser

implicitamente convertido pelo código gerado pelo

compilador (ou pelo interpretador) em um tipo

válido.

• Essa conversão automática é chamada de coerção.

• Por exemplo, se uma variável int e uma variável

float são adicionadas em Java, o valor da variável

int sofre uma coerção para float e uma adição de

ponto flutuante é efetuada.

Page 17: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

17

Variáveis x Tipos (coerção/”typecasting”)

25/02/2020 11:28

• Em Java, é válido atribuir um valor do tipo inteiro a

uma variável de ponto flutuante:

int dollars = 100;

double balance = dollars; // OK

double balance = 13.75;

int dollars = balance; // Erro

int dollars = (int) balance;

• Por exemplo, se balance for 13.75, então dollars

receberá o valor 13.

Page 18: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

18

Variáveis x Tipos (vinculação)

25/02/2020 11:28

• Vinculação (“binding”): é a associação entre um

atributo e uma entidade, como entre uma variável e

seu tipo ou valor, ou entre uma operação e um

símbolo.

– O momento no qual uma vinculação ocorre é chamado de

tempo de vinculação.

Page 19: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

19

Variáveis x Tipos (tempo de vinculação)

25/02/2020 11:28

Seja a atribuição: count = count + 5;

• O tipo de count é vinculado em tempo de

compilação.

• O conjunto dos valores possíveis de count é

vinculado em tempo de projeto do compilador.

• O significado do símbolo de operador + é vinculado

em tempo de compilação, quando os tipos dos

operandos tiverem sido determinados.

• O valor de count é vinculado em tempo de

execução dessa sentença.

Page 20: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

20

Variáveis x Tipos (escopo)

25/02/2020 11:28

• O escopo de uma variável é a faixa de sentenças

nas quais ela é visível. Uma variável é visível em

uma sentença se ela pode ser referenciada ou

atribuída nessa sentença.

Page 21: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

21

Variáveis x Tipos (escopo – exemplo java)

25/02/2020 11:28

public class TesteEscopo{

int y = 10;

public void metodo1() {

int y = -9;

System.out.println(y);

}

public void metodo2() {

y = 999;

System.out.println(y);

}

public static void main(String args[]){

TesteEscopo te = new TesteEscopo();

te.metodo1();

te.metodo2();

}

}

Page 22: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

22

Exercícios/discussão

25/02/2020 11:28

• Por que utilizar variáveis na programação?

• Defina uma linguagem fortemente tipada.

• O que são tipos primitivos em uma linguagem de programação?

• Explique:

➢ Coerção;

➢ Vinculação;

➢ Tempo de vinculação e;

➢ Escopo.

Page 23: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

23

Exercícios/discussão

25/02/2020 11:28

• Qual a resposta do código abaixo?...

void testeDouble(){

float x = 3.14f;

double y = 3.14;

if (x == y) {

System.out.printf("%f e %f Sao iguais!!", x, y);

} else {

System.out.printf("%f e %f Nao sao iguais!!", x, y);

}

}

...

Page 24: Tipos de dados, Variáveis e Escopo Prof. Julio Arakaki ...jarakaki/lic/Semana2.pdf · –Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento

LIC 2020

© Julio ArakakiCiência da Computação

24

Referência Bibliográfica

1. Sebesta, Robert. “Conceitos de Linguagem de Programação”, 11a.

Ed. Porto Alegre, Bookman, 2018.

2. Horstmann, Cay, “Conceitos de Computação com Java”. 5a. Ed. –

Dados eletrônicos – Porto Alegre, Bookman, 2009.

25/02/2020 11:28