Introdução à Programação em
Linguagem C
Rodolfo Riyoei Goya
http://rgoya.sites.uol.com.br
rgoya@uol.com.br
Modelo Abstrato de Programação
Elementos Estruturais
Dados de Tipo Simples
Dados em Estruturas Homogêneas
Dados em Estrutu...
Comandos de Expressões
Permitem manipular e alterar valor de variáveis.
Operadores:
Aritméticos
Incremento e Decremento
Re...
Comandos de Expressões
Aritméticos
+ Adição
- Subtração
* Multiplicação
% Resto de Divisão Entre Inteiros
/ Divisão (com t...
Comandos de Expressões –
Aritméticos
A aritmética em ponto flutuante procede de modo
convencional
A aritmética inteira apr...
Comandos de Expressões –
Precedência em Aritmética
Multiplicações, divisões e resto têm precedência (são
executadas primei...
Comandos de Expressões –
Aritméticos
A ordem de cálculo das expressões pode ser alterada
com o uso de parênteses
Expressõe...
Comandos de Expressões –
Incremento e Decremento
Incremento e Decremento
++ Incremento
-- Decremento
++i Pré-incremento
--...
Comandos de Expressões –
Incremento e Decremento
Somente sobre variáveis.
1++ e ( a + b )++ são usos inválidos para este c...
Comandos de Expressões –
Incremento e Decremento
Cuidados: i + 1 é diferente de i++
j = i + 1 não altera o valor de i.
j =...
Comandos de Expressões –
Operadores Relacionais
Relacionais
Resultam em 0 se falso.
Resultam em 1 se verdadeiro.
= = Igual...
Comandos de Expressões –
Operadores Relacionais
A B A == B A != B A > B
5 10 Falso Verdadeiro Falso
10 10 Verdadeiro 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
Linguag...
Comandos de Expressões –
Operações Booleanos
Booleanos
Resultam em 0 se falso.
Resultam em 1 se verdadeiro.
&& AND
|| OR
!...
Comandos de Expressões –
Operadores Booleanos
A B A && B A || B
Falso Falso Falso Falso
Falso Verdadeiro Falso Verdadeiro
...
Comandos de Expressões
Bit a bit
Operam sobre a representação binário do número.
& AND
| OR
~ NOT
^ EXCLUSIVE-OR
>> SHIFT-...
Comandos de Expressões –
Operadores bit a bit
unsigned char x = 60 em binário: 00111100
unsigned char y = 85 em binário: 0...
Comandos de Expressões –
Operadores bit a bit
unsigned char x = 60 em binário: 00111100
unsigned char y = 85 em binário: 0...
Comandos de Atribuição
= Atribuição
+= Soma e Atribuição
-= Subtração e Atribuição
*= Multiplicação e Atribuição
%= Resto ...
Comandos de Atribuição
O lado esquerdo da atribuição é sempre uma variável:
Variável = Constante
i = 10;
Variável = Variáv...
Comandos de Atribuição –
Cuidados
Atribuição é um comando e não tem relação com o uso
do símbolo “=” em equações matemátic...
Comandos de Atribuição
Aritmética
Formas compactas de produzir expressões:
+= -=
i += 10; equivale a: i = i + 10;
i -= 10;...
Precedência de operadores
Operador Associatividade
( ) Esquerda para Direita
++ -- Direita para Esquerda
+(sinal) Direita ...
Próximos SlideShares
Carregando em…5
×

Linguagem C (Parte 3)

249 visualizações

Publicada em

Parte 3

Publicada em: Engenharia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
249
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Linguagem C (Parte 3)

  1. 1. Introdução à Programação em Linguagem C Rodolfo Riyoei Goya http://rgoya.sites.uol.com.br rgoya@uol.com.br
  2. 2. Modelo Abstrato de Programação Elementos Estruturais Dados de Tipo Simples Dados em Estruturas Homogêneas Dados em Estruturas Heterogêneas Elementos Algorítmicos Declaração Comandos de Entrada/Saída Comandos de Expressão Comandos de Decisão Comandos de Iteração 16.02.14 Linguagem C Rodolfo Goya 2
  3. 3. Comandos de Expressões Permitem manipular e alterar valor de variáveis. Operadores: Aritméticos Incremento e Decremento Relacionais Booleanos Bit a bit Atribuição 16.02.14 Linguagem C Rodolfo Goya 3
  4. 4. Comandos de Expressões 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 Goya 4
  5. 5. Comandos de Expressões – Aritméticos A aritmética em ponto flutuante procede de modo convencional A aritmética inteira apresenta algumas diferenças: O resto da divisão tem o mesmo sinal que o primeiro operando: 9 % 5 resulta em 4 -9 % 5 resulta em -4 A divisão de inteiros é com truncamento: 39 / 10 resulta em 3 A divisão de inteiros negativo é consistente com o resto: 9 / 5 resulta em 1 -9 / 5 resulta em -1 16.02.14 Linguagem C Rodolfo Goya 5
  6. 6. Comandos de Expressões – Precedência em Aritmética Multiplicações, divisões e resto têm precedência (são executadas primeiro) sobre adição e subtração. 9 - 3 * 2 resulta em 3 9 - 3 / 3 resulta em 8 Multiplicações, divisões e resto têm mesma precedência e são executadas da esquerda para a direita. 9 / 3 / 3 resulta em 1 Adições e subtrações têm mesma precedência e são executadas da esquerda para a direita. 9 - 3 - 3 resulta em 3 16.02.14 Linguagem C Rodolfo Goya 6
  7. 7. Comandos de Expressões – Aritméticos A ordem de cálculo das expressões pode ser alterada com o uso de parênteses Expressões internas a parênteses são executadas antes da externas. ( 9 - 3 ) * 2 resulta em 12 ( 9 - 3 ) / 3 resulta em 2 Parênteses podem ser aninhados. ( 3 - ( 2 + 5 ) / 7 ) * 4 resulta em 8 Parênteses podem ser usados para maior clareza (sem prejuízo em termos de tamanho de código e desempenho). ( 9 / 3 ) / 3 resulta em 1 16.02.14 Linguagem C Rodolfo Goya 7
  8. 8. Comandos de Expressões – Incremento e Decremento 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 Goya 8
  9. 9. Comandos de Expressões – Incremento e Decremento Somente sobre variáveis. 1++ e ( a + b )++ são usos inválidos para este comando. Pré-incremento: Incrementa a variável antes de dar qualquer outro uso para ela na expressão. a = 2; b = ++a; resulta em a = 3 e b = 3 Pós-incremento: Incrementa a variável após qualquer outro uso para ela na expressão. a = 2; b = a++; resulta em a = 3 e b = 2 16.02.14 Linguagem C Rodolfo Goya 9
  10. 10. Comandos de Expressões – Incremento e Decremento Cuidados: i + 1 é diferente de i++ j = i + 1 não altera o valor de i. j = i++ altera o valor de i.
  11. 11. Comandos de Expressões – Operadores Relacionais Relacionais Resultam em 0 se falso. 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 Goya 11
  12. 12. 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 Goya 12 A B A >= B A <= B A < B 5 10 Falso Verdadeiro Verdadeiro 10 10 Verdadeiro Verdadeiro Falso 15 5 Verdadeiro Falso Falso
  13. 13. 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 Goya 13 A B A >= B A <= B A < B 5 10 0 1 1 10 10 1 1 0 15 5 1 0 0
  14. 14. Comandos de Expressões – Operações Booleanos Booleanos Resultam em 0 se falso. Resultam em 1 se verdadeiro. && AND || OR ! NOT 16.02.14 Linguagem C Rodolfo Goya 14
  15. 15. 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 Goya 15 A !A Falso Verdadeiro Verdadeiro Falso
  16. 16. Comandos de Expressões Bit a bit 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 Goya 16
  17. 17. 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 Goya 17
  18. 18. 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 Goya 18
  19. 19. 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 Goya 19
  20. 20. Comandos de Atribuição O lado esquerdo da atribuição é sempre uma variável: Variável = Constante i = 10; Variável = Variável x = y; Variável = Expressão z = x + y – 1; i = i + 1; 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 Goya 20
  21. 21. Comandos de Atribuição – Cuidados 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) Ordem de avaliação: da direita para a esquerda: a = b = c = d = 1; Atribuição e comparação: a = 20 é diferente de a == 20 No primeiro caso faz com que a passe a valer 20. 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 Goya 21
  22. 22. Comandos de Atribuição Aritmética Formas compactas de produzir expressões: += -= i += 10; equivale a: i = i + 10; i -= 10; equivale a: i = i - 10; *= %= /= i *= 10; equivale a: i = i * 10; i %= 10; equivale a: i = i % 10; i /= 10; equivale a: i = i / 10; 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 Goya 22
  23. 23. 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 Goya 23

×