Linguagem C (Parte 3)

Daniel191B 484 views 23 slides Oct 01, 2015
Slide 1
Slide 1 of 23
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23

About This Presentation

Parte 3


Slide Content

Introdução à Programação em
Linguagem C
Rodolfo Riyoei Goya
http://rgoya.sites.uol.com.br
[email protected]

Modelo Abstrato de Programação
I
Elementos Estruturais
I
Dados de Tipo Simples
I
Dados em Estruturas Homogêneas
I
Dados em Estruturas Heterogêneas
I
Elementos Algorítmicos
I
Declaração
I
Comandos de Entrada/Saída
IComandos de Expressão
I
Comandos de Decisão
I
Comandos de Iteração
16.02.14
Linguagem C
Rodolfo Goya2

Comandos de Expressões
I
Permitem manipular e alterar valor de variáveis.
I
Operadores:
I
Aritméticos
I
Incremento e Decremento
I
Relacionais
I
Booleanos
I
Bit a bit
I
Atribuição
16.02.14
Linguagem C
Rodolfo Goya3

Comandos de Expressões
I
Aritméticos
+ Adição
- Subtração
* Multiplicação
% Resto de Divisão Entre Inteiros
/ Divisão (com truncamento se entre inteiros)
16.02.14
Linguagem C
Rodolfo Goya4

Comandos de Expressões –
Aritméticos
I
A aritmética em ponto flutuante procede de modo
convencional I
A aritmética inteira apresenta algumas diferenças:
I
O resto da divisão tem o mesmo sinal que o primeiro operando:
I
9 % 5 resulta em 4
I
-9 % 5 resulta em -4
I
A divisão de inteiros é com truncamento:
I
39 / 10 resulta em 3
I
A divisão de inteiros negativo é consistente com o resto:
I
9 / 5 resulta em 1
I
-9 / 5 resulta em -1
16.02.14
Linguagem C
Rodolfo Goya5

Comandos de Expressões –
Precedência em Aritmética
I
Multiplicações, divisões e resto têm precedência (s ão
executadas primeiro) sobre adição e subtração.
I
9 - 3 * 2 resulta em 3
I
9 - 3 / 3 resulta em 8
I
Multiplicações, divisões e resto têm mesma precedên cia
e são executadas da esquerda para a direita.
I
9 / 3 / 3 resulta em 1
I
Adições e subtrações têm mesma precedência e são
executadas da esquerda para a direita.
I
9 - 3 - 3 resulta em 3
16.02.14
Linguagem C
Rodolfo Goya6

Comandos de Expressões –
Aritméticos
I
A ordem de cálculo das expressões pode ser alterada
com o uso de parênteses
I
Expressões internas a parênteses são executadas ant es da
externas.
I
( 9 - 3 ) * 2 resulta em 12
I
( 9 - 3 ) / 3 resulta em 2
I
Parênteses podem ser aninhados.
I
( 3 - ( 2 + 5 ) / 7 ) * 4 resulta em 8
I
Parênteses podem ser usados para maior clareza (sem prejuízo
em termos de tamanho de código e desempenho).
I
( 9 / 3 ) / 3 resulta em 1
16.02.14
Linguagem C
Rodolfo Goya7

Comandos de Expressões –
Incremento e Decremento
I
Incremento e Decremento ++ Incremento
-- Decremento
++i Pré-incremento
--i Pré-decremento
i++ Pós-incremento
i-- Pós-decremento
16.02.14
Linguagem C
Rodolfo Goya8

Comandos de Expressões –
Incremento e Decremento
I
Somente sobre variáveis.
I
1++ e ( a + b )++ são usos inválidos para este comando.
I
Pré-incremento: Incrementa a variável antes de dar
qualquer outro uso para ela na expressão.
I
a = 2;
I
b = ++a; resulta em a = 3 e b = 3
I
Pós-incremento: Incrementa a variável após qualquer
outro uso para ela na expressão.
I
a = 2;
I
b = a++; resulta em a = 3 e b = 2
16.02.14
Linguagem C
Rodolfo Goya9

Comandos de Expressões –
Incremento e Decremento
I
Cuidados: i + 1 é diferente de i++
I
j = i + 1 não altera o valor de i.
I
j = i++ altera o valor de i.

Comandos de Expressões –
Operadores Relacionais
I
Relacionais
I
Resultam em 0 se falso.
I
Resultam em 1 se verdadeiro.
= = Igualdade
!= Desigualdade
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
16.02.14
Linguagem C
Rodolfo Goya11

Comandos de Expressões –
Operadores Relacionais
A B A == B A != B A > B
5 10 Falso Verdadeiro Falso
10 10 Verdadeiro Falso Falso
15 5 Falso Verdadeiro Verdadeiro
16.02.14
Linguagem C
Rodolfo Goya12
A B A >= B A <= B A < B
5 10 Falso Verdadeiro Verdadeiro
10 10 Verdadeiro Verdadeiro Falso
15 5 Verdadeiro Falso Falso

Comandos de Expressões –
Operadores Relacionais
A B A == B A != B A > B
5 10 0 1 0
10 10 1 0 0
15 5 0 1 1
16.02.14
Linguagem C
Rodolfo Goya13
A B A >= B A <= B A < B
5 10 0 1 1
10 10 1 1 0
15 5 1 0 0

Comandos de Expressões –
Operações Booleanos
I
Booleanos
I
Resultam em 0 se falso.
I
Resultam em 1 se verdadeiro.
&& AND
|| OR
! NOT
16.02.14
Linguagem C
Rodolfo Goya14

Comandos de Expressões –
Operadores Booleanos
A B A && B A ||B
Falso Falso Falso Falso
Falso Verdadeiro Falso Verdadeiro
Verdadeiro Falso Falso Verdadeiro
Verdadeiro Verdadeiro Verdadeiro Verdadeiro
16.02.14
Linguagem C
Rodolfo Goya15
A !A
Falso Verdadeiro
Verdadeiro Falso

Comandos de Expressões
I
Bit a bit
I
Operam sobre a representação binário do número.
& AND
| OR
~ NOT
^ EXCLUSIVE-OR
>> SHIFT-RIGHT
<< SHIFT-LEFT
16.02.14
Linguagem C
Rodolfo Goya16

Comandos de Expressões –
Operadores bit a bit
unsigned char x = 60 em binário: 00111100
unsigned char y = 85 em binário: 01010101
x & y x | y
00111100 00111100
01010101 & 01010101 |
00010100 (20) 01111101 (125)
x ^ y ~x
00111100 00111100
01010101 ^ 00111100 ~
01101001 (105) 11000011 (195)
16.02.14
Linguagem C
Rodolfo Goya17

Comandos de Expressões –
Operadores bit a bit
unsigned char x = 60 em binário: 00111100
unsigned char y = 85 em binário: 01010101
x >> 2 x << 2
00111100 >> 2 00111100 << 2
00001111 (15) 11110000 (240)
16.02.14
Linguagem C
Rodolfo Goya18

Comandos de Atribuição
= Atribuição
+= Soma e Atribuição
-= Subtração e Atribuição
*= Multiplicação e Atribuição
%= Resto de Divisão e Atribuição
/= Divisão e Atribuição
&= Operação AND e Atribuição
|= Operação OR e Atribuição
^= EXCLUSIVE-OR e Atribuição
<<= Deslocamento para Esquerda e Atribuição
>>= Deslocamento para Direita e Atribuição
16.02.14
Linguagem C
Rodolfo Goya19

Comandos de Atribuição
I
O lado esquerdo da atribuição é sempre uma variável:
I
Variável = Constante i = 10;
I
Variável = Variável x = y;
I
Variável = Expressão z = x + y – 1;
i = i + 1;
I
Uma atribuição é também uma operação com resultado:
a = i = j + 1;
b = x + ( y = c + d ); 16.02.14
Linguagem C
Rodolfo Goya20

Comandos de Atribuição –
Cuidados
I
Atribuição é um comando e não tem relação com o uso do símbolo “=” em equações matemáticas:
a = a + 1; (isso não faria sentido em uma equação)
I
Ordem de avaliação: da direita para a esquerda:
a = b = c = d = 1;
I
Atribuição e comparação:
a = 20
é diferente de
a == 20
I
No primeiro caso faz com que
a
passe a valer 20.
I
No segundo caso, o valor de
a
não é alterado. A expressão
resulta em 0 se
a
for diferente de 20 e resulta em 1 se
a
for 20.
16.02.14
Linguagem C
Rodolfo Goya21

Comandos de Atribuição
Aritmética
I
Formas compactas de produzir expressões:
I
+= -= i += 10; equivale a: i = i + 10;
i -= 10; equivale a: i = i - 10;
I
*= %= /= i *= 10; equivale a: i = i * 10;
i %= 10; equivale a: i = i % 10;
i /= 10; equivale a: i = i / 10; I
Uma atribuição é também uma operação com resultado:
a = i += j + 1;
b = x + ( y *= c + d ); 16.02.14
Linguagem C
Rodolfo Goya22

Precedência de operadores
Operador Associatividade
( ) Esquerda para Direita
++ -- Direita para Esquerda
+(sinal) Direita para Esquerda
-(sinal) Direita para Esquerda
! ~ Direita para Esquerda
* / % Esquerda para Direita
+ - Esquerda para Direita
>> << Esquerda para Direita
= = != Esquerda para Direita
& Esquerda para Direita
^ Esquerda para Direita
| Esquerda para Direita
&& Esquerda para Direita
|| Esquerda para Direita
= += -= *= %= /=&= |= <<= >>= Direita para Esquerda
, (vírgula) Esquerda para Direita
16.02.14
Linguagem C
Rodolfo Goya23
Tags