paradigmas de linguagens expressÕes e instruÇÕes de atribuiÇÃo prof. thiago pereira rique...

21
PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique [email protected] http://thiagorique.wordpress.com/

Upload: olivia-sabrosa-valente

Post on 07-Apr-2016

223 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

PARADIGMAS DE LINGUAGENS

EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO

Prof. Thiago Pereira [email protected]://thiagorique.wordpress.com/

Page 2: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

AGENDA Introdução Expressões aritméticas Conversões de tipo Expressões relacionais e booleanas Instruções de atribuição

Page 3: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

INTRODUÇÃO Expressões

Especificar computações Avaliação de expressões

Instruções de atribuição Mudar o valor de uma variável.

Page 4: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXPRESSÕES ARITMÉTICAS Apresentam convenções herdadas da

Matemática.

Consistem em: Operadores Operandos Parênteses Chamadas a função

Operadores Unários Binários Operador ternário (C, C++, Java)

Page 5: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXPRESSÕES ARITMÉTICAS Ordem de avaliação de operadores

Precedência: baseia-se nas regras da Matemática. Exponenciação Multiplicação e divisão Adição e subtração

Associatividade: determina que operador será avaliado primeiro (operadores com mesma precedência). Associatividade à esquerda Associatividade à direita

Page 6: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXPRESSÕES ARITMÉTICAS Ordem de avaliação de operadores

Exemplo de expressão Java:

Page 7: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXPRESSÕES ARITMÉTICAS Ordem de avaliação de operadores

Parênteses: alterar as regras de precedência e de associatividade. Ex: (A + B)*C

Expressões condicionais:às vezes, instruções if-then-else são usadas para atribuição de expressão condicional. Ex: if (cont == 0)

then media = 0;else media = soma/cont;

Page 8: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXPRESSÕES ARITMÉTICAS Ordem de avaliação de operadores

Expressões condicionais: C, C++ e Java: expressão_1 ? expressão_2 :

expressão_3 Ex: media = (cont == 0) ? 0 : soma/cont; ? Operador ternário.

Page 9: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CONVERSÕES DE TIPO As conversões de tipo podem ser de

estreitamento ou de alargamento.

Estreitamento: double para float em C.

Alargamento: int para float em C.

Page 10: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CONVERSÕES DE TIPO Coerção:

Conversão implícita feita pelo compilador. Ex:int a;float b, c;...b = a * c;

Page 11: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CONVERSÕES DE TIPO Conversão explícita: realizada explicitamente

pelo programador (cast). Ex:int a, b, c;float d;...d = b / c;a = (int) d;

Page 12: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXPRESSÕES RELACIONAIS E BOOLEANAS Expressões relacionais

Operador relacional: compara os valores de seus dois operandos.

Expressão relacional: dois operandos e um operador relacional.

O valor da expressão relacional é booleano (se oferecido pela linguagem).

Page 13: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXPRESSÕES RELACIONAIS E BOOLEANAS Sintaxe dos operadores relacionais em

algumas linguagens:

Operação Ada Java FORTRAN 90

Igual = == .EQ. ou ==Diferente /= != .NE. ou <>Maior que > > .GT. ou > Menor que < < .LT. ou < Maior que ou igual

>= >= .GE. ou >=

Menor que ou igual

<= <= .LE. ou <=

Page 14: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXPRESSÕES RELACIONAIS E BOOLEANAS Expressões relacionais

Os operadores relacionais sempre têm precedência menor do que os ariméticos. a + 1 > 2 * b

Page 15: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXPRESSÕES RELACIONAIS E BOOLEANAS Expressões booleanas:

Consistem em variáveis, constantes, expressões relacionais e operadores booleanos (AND, OR e NOT, por exemplo).

Produzem valores booleanos.

Page 16: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXPRESSÕES RELACIONAIS E BOOLEANAS Expressões booleanas:

Exemplo Ada:

Operadores booleanos da Ada (exceto not) possuem mesmo nível de precedência, porém não são associativos.

A > B and A < C or K = 0 (ilegal na Ada)

(A > B and A < C) or K = 0

A > B and (A < C or k = 0)

Page 17: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXPRESSÕES RELACIONAIS E BOOLEANAS Expressões booleanas:

O C não tem nenhum tipo booleano.

Valores numéricos e constantes são usados: zero (falso) e diferente de zero (verdadeiro).

Resultado de avaliação: 0 (falso) e 1 (verdadeiro).

A expressão a > b > c é válida em C.

Page 18: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

INSTRUÇÕES DE ATRIBUIÇÃO Permitem modificar dinamicamente as

vinculações de valores a variáveis.

Atribuições simples: <variável_alvo><operador_de_atribuição><expr

essão> FORTRAN, BASIC, PL/I, C, C++ e Java usam =

como símbolo de atribuição, o que pode gerar confusão em alguns casos: A = B = C (PL/I) A instrução acima define A para o valor booleano da

expressão relacional B = C.

Page 19: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

INSTRUÇÕES DE ATRIBUIÇÃO Operadores de atribuição compostos: método

abreviado de especificar uma atribuição.

Ex:soma += valor; equivale asoma = soma + valor;

Page 20: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

INSTRUÇÕES DE ATRIBUIÇÃO Operadores de atribuição unários: combinam

operações de incremento e decremento que podem ser prefixadas ou pós-fixadas.

Ex: soma = ++cont; equivale a cont = cont + 1;

soma = cont;

Ex: soma = cont++; equivale a soma = cont;

cont = cont + 1;

Page 21: PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique thiagorique2011@gmail.com

REFERÊNCIA SEBESTA, Robert W. Conceitos de Linguagens

de Programação. 5a. Edição. São Paulo: Bookman, 2003.