Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouDaniela Gesser Lopes Alterado mais de 7 anos atrás
1
Linguagens de Programação Conceitos e Técnicas Expressões Prof. Isabel Cafezeiro isabel@dcc.ic.uff.br
2
Linguagens de Programação Expressões Expressão: Uma expressão é uma frase do programa que, ao ser avaliada, produz como resultado um valor. Elementos da expressão: Operadores Operandos Resultado 1“aa”1+4f(1,g(x))
3
Linguagens de Programação Expressões Classificação Simples – sem operador Compostas Notação Prefixada: Infixada: Posfixada: Outros: b++ a + b ! b x > y? x:y
4
Linguagens de Programação Expressões Aridade dos operadores unários, binários, ternários, etc eneários: aridade variável Em C e C++, o programador pode construir funções com número de parâmetros variável Em Lisp: (+ 1) (+ 1 2) (+ 1 2 4) (+ 3 4 1 2)...
5
Linguagens de Programação Valores & tipos de dados Origem dos operadores Pré-existentes Definidos pelo Programador Composição de operadores Em Java: boolean positivo (int n) { return n > 0; } Em ML: val par = fn (n: int) => (n mod 2 = 0) val negação = fn (t:bool) => if t then false else true val impar = negação o par
6
Linguagens de Programação Tipos de expressões: Literais, constantes e variáveis de Agregação (estática, dinâmica) Constroem valores compostos Aritméticas, Relacionais, Booleanas Binárias Operam nos bits Condicionais O valor computado depende de uma condição Chamadas de Função Referenciamento/Derreferenciamento Categóricas Operam sobre tipos Interativas Expressões
7
Linguagens de Programação Tipos de expressões: Literais Resultam no valor explícito do texto do programa de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões 2,72 99 0143 ‘c’...
8
Linguagens de Programação Tipos de expressões: constantes gera o valor da constante de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões
9
Linguagens de Programação Tipos de expressões: variáveis gera o valor corrente da variável de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões
10
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Constroem valores compostos Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Em C: int c[ ] = {1, 2, 3}; operador operandos
11
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Constroem valores compostos Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Em C: void f(int i) { int a[] = {3 + 5, 2, 16/4}; int b[] = {3*i, 4*i, 5*i}; int c[] = {i + 2, 3 + 4, 2*i}; }
12
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Constroem valores compostos Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Em C: void f(int i) { int a[] = {3 + 5, 2, 16/4}; int b[] = {3*i, 4*i, 5*i}; int c[] = {i + 2, 3 + 4, 2*i}; }
13
13 Construtores ● Exemplo: Data d = new Data(); Data d = new; declaração de referência para a classe Data associação da referência à instância invocação do construtor Data() criação da instância C:\>javac demodata1.java demodata1.java:5: expected Data hoje = new; ^ 1 error Erro de compilação!!! Criação da instância sem a chamada do construtor
14
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Operam nos bits Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Em C: void main() { int j = 10; char c = 2; printf(“%d\n”, ~c);/* imprime –3 */ printf(“%d\n”, j & c); /* imprime 2 */ printf(“%d\n”, j | c);/* imprime 10 */ printf(“%d\n”, j ^ c);/* imprime 8 */ printf(“%d\n”, j << c);/* imprime 40 */ printf(“%d\n”, j >> c);/* imprime 2 */ }
15
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais O valor computado depende de uma condição Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Em JAVA: max = x > y ? x : y; par = z % 2 == 0 ? true : false
16
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Função é uma abstração de expressão: o usuário informa os argumentos e recebe o resultado sem se importar na forma de implementação Busca( 3,vet ); operador operandos
17
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões F( x,...,w ); Um identificador ou uma expressão que gere uma função Em HASKELL: (if... then sin else cos) (x)
18
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões F( x,...,w ); Uma n-upla, ou n valores Em C: typedef struct s { int a,b,c; } params; int f(x) params x;{ return x.a+x.b+x.c; } int main() { int y; params k; k.a = 1; k.b = 2; k.c = 3; y = f(k); y = f(1,2,3); }
19
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Funções operações Em C++, Ada, HASKELL: E 1 op E 2 op E 1 E 2 Operadores podem ser definidos... assim como funções!
20
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Resulta no endereço de variáveis ou constantes x := x+1 Endereço da variável: referenciamento implícito !!! Valor da variável
21
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Resulta no endereço de variáveis ou constantes int x = 10; int *p; p = &x; Operador de referenciamento
22
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Resulta no conteúdo de um endereço int *p; *p = 12; Derreferenciamento explícito para compensar o referenciamento implícito
23
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Operam sobre tipos Interativas Expressões float * p = (float *) malloc (10 * sizeof (float)) float f; int num = 9, den = 5; f = (float)num/den; Profissao p = new Engenheiro ( ); if (p instanceof Medico)
24
Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Operam sobre tipos Interativas Expressões Em HASKELL: [y | y <- ys, y 'mod' 100 = 0] Semelhança com a notação matemática: { y | y mod 100 = 0} Lista de valores
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.