Instruções - Pré P1 - Schneider
28 pág.

Instruções - Pré P1 - Schneider


DisciplinaProgramação I20.719 materiais240.496 seguidores
Pré-visualização2 páginas
INTERGER
\u25cf C:
\u2013 (int) speed /* speed sendo do tipo float */
Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação
http://www.ybadoo.com.br/
Erros em Expressões
\u25cf Causados por:
\u25cf Limitações inerentes da aritmética:
\u2013 Divisão por zero.
\u25cf Limitações da aritmética computacional:
\u2013 overflow.
\u2013 underflow.
\u25cf Tais erros são muitas vezes ignorados pelo sistema em tempo de 
execução.
Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação
http://www.ybadoo.com.br/
Expressões Relacionais (1/2)
\u25cf Um operador relacional compara os valores de seus dois operandos:
\u25cf Uma expressão relacional tem dois operandos e um operador 
relacional.
\u25cf Operadores relacionais sempre têm menor precedência do que os 
operadores aritméticos.
int c = a + 1 > 2 * b;
Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação
http://www.ybadoo.com.br/
Expressões Relacionais (2/2)
Operação Pascal Ada C Java
igual = = == ==
diferente <> /= .NE. != !=
maior que > > > >
menor que < < < <
maior que ou igual >= >= >= >=
menor que ou igual <= <= <= <=
FORTRAN 77
.EQ.
.GT.
.LT.
.GE.
.LE.
Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação
http://www.ybadoo.com.br/
Expressões Booleanas (1/2)
\u25cf As expressões booleanas consistem em variáveis, em constantes, 
em expressões relacionais e em operadores booleanos, que 
normalmente incluem aquelas para operações AND, OR e NOT, e às 
vezes, para OR EXCLUSIVO e para equivalência:
\u25cf C não possui o tipo booleano \u2013 usa o tipo int com 0 para falso e não 
zero para verdadeiro.
\u25cf Uma característica estranha das expressões em C:
\u2013 a < b > c é uma expressão legal, mas o resultado pode não ser o que se 
esperava.
Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação
http://www.ybadoo.com.br/
Expressões Booleanas (2/2)
ADA C Java
.AND. && &&
.OR. || ||
.NOT. ! !
FORTRAN 77 FORTRAN 90
and and
or or
not not
Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação
http://www.ybadoo.com.br/
Avaliação Curto-circuito (1/2)
\u25cf Uma avaliação curto-circuito de uma expressão tem seu resultado 
determinado sem avaliar todos os operandos e/ou operadores:
\u25cf (13 * A) * (B / 13)
\u2013 Se A for ZERO, não existe a necessidade de avaliar a segunda expressão, 
pois ZERO * X é sempre ZERO.
\u2013 Normalmente os compiladores não detectando isso!
\u25cf (A >= 0) and (B < 10)
\u2013 Se a primeira expressão for FALSE, o compilador não precisa avaliar a 
segunda expressão, pois FALSE and X é sempre FALSE.
Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação
http://www.ybadoo.com.br/
Avaliação Curto-circuito (2/2)
\u25cf Pascal:
\u25cf Não usa avaliação curto-circuito.
\u25cf C, C++ e Java:
\u25cf Usam avaliação curto-circuito para os operadores booleanos usuais (&& 
e ||), mas também possuem operadores booleanos que não são curto-
circuito (& e |).
\u25cf ADA:
\u25cf Pogramador pode especificar qualquer dos dois (curto-circuito é 
especificado com and then e or else);.
\u25cf Avaliação curto-circuito expõe o problema potencial de efeitos 
colaterais nas expressões:
\u25cf (a > b) || (b++ / 3)
Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação
http://www.ybadoo.com.br/
Instruções de Atribuição (1/2)
\u25cf A sintaxe geral da instrução de atribuição simples é:
\u25cf <variável_alvo> <operador_de_atribuição> <expressão>
\u25cf Operadores de atribuição:
\u2013 (=) \u2192 FORTRAN, BASIC, PL/I, C, C++, Java:
\u25cf Pode ser ruim se sobrecarregado para o operador relacional de igualdade:
\u2013 (PL/I) A = B = C;
\u2013 (:=) \u2192 ALGOL, Pascal, Modula-2, ADA.
Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação
http://www.ybadoo.com.br/
Instruções de Atribuição (2/2)
\u25cf Alvos múltiplos:
\u25cf PL/I: A, B = 10;
\u25cf C e C++: A = B = C = 10;
\u25cf Alvos condicionais (C, C++ e Java):
\u25cf (flag) ? count1 : count2 = 0;
\u25cf Operadores de atribuição compostos (C, C++ e Java):
\u25cf sum +=next; 
\u25cf Operadores de atribuição unários (C, C++ e Java):
\u25cf a++; ­a++;sum = ++count;
\u25cf C, C++ e Java tratam = como um operador aritmético binário:
\u25cf a = b * (c = d * 2 + 1) + 1;
Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação
http://www.ybadoo.com.br/
Atribuição como uma Expressão
\u25cf Em C, C++ e Java o comando de atribuição produz um resultado:
\u25cf Logo, eles podem ser usados como operandos em expressões:
\u2013 while ((ch = getchar()) !=EOF) { }
\u25cf Desvantagem:
\u2013 Outra espécie de efeito colateral da expressão.
Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação
http://www.ybadoo.com.br/
Atribuição com Mistura de Modos
\u25cf Em FORTRAN, C e C++ qualquer valor numérico pode ser atribuído 
a qualquer variável escalar numérica:
\u25cf Qualquer conversão necessária é feita.
\u25cf Em Pascal, inteiros podem ser atribuídos a reais, mas reais não 
podem ser atribuídos a inteiros (o programador deve especificar se a 
conversão de real para inteiro é truncada ou arredondada).
\u25cf Em Java apenas coerção de atribuições generalizadas são 
permitidas.
\u25cf Em ADA não há coerção na atribuição.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28