PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO Prof. Thiago Pereira Rique...

Preview:

Citation preview

PARADIGMAS DE LINGUAGENS

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

Prof. Thiago Pereira Riquethiagorique2011@gmail.comhttp://thiagorique.wordpress.com/

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

INTRODUÇÃO Expressões

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

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

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)

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

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

Exemplo de expressão Java:

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;

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.

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.

CONVERSÕES DE TIPO Coerção:

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

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;

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).

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 <=

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

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.

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)

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.

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.

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;

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;

REFERÊNCIA SEBESTA, Robert W. Conceitos de Linguagens

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