Linguagem C Disciplina: AAM Profa. Ana Watanabe 2013-1 vol.3 Linguagem C • “O Senhor é meu Pastor, nada me faltará.” Salmos 23:1 Linguagem C • Objetivo da aula: • VARIÁVEIS, CONSTANTES, OPERADORES E EXPRESSÕES • Operadores: => Aritmético => Relacional => Lógico => Bit a bit Linguagem C OPERADORES ARITMÉTICOS: Os operadores aritméticos são usados para desenvolver operações matemáticas. Linguagem C • Operadores quando aplicado a variáveis inteiras, fornece o resultado em inteira; • Quando aplicado a variáveis em ponto flutuante fornece o resultado em "real". • Operadores quando aplicado a variável inteiro e real, o inteiro é alterado para real e o resultado em tipo real; Linguagem C • Pode-se forçar o compilador a efetuar determinada conversão utilizando-se um type cast que tem a seguinte forma: (tipo) expressão Ex.: float a; int b,c; a = (float )b + (float)c ; • O operador % fornece o resto da divisão de dois inteiros. Linguagem C • Exercício: int a = 17, b = 3; int x, y; float z = 17. , z1, z2; x = a / b; y = a % b; z1 = z / b; z2 = a/b; z2 = (float)a/(float)b; Linguagem C • Exemplos: int a = 17, b = 3; int x, y; float z = 17. , z1, z2; x = a / b; // x =5 y = a % b; // y = 2 z1 = z / b; // z1 = 5.666666 (float/int) z2 = a/b; // z2 = 5.0 (int/int) z2 = (float)a/(float)b = 5.6666 //(cast) Linguagem C Operadores de incremento e decremento são unários que alteram a variável sobre a qual estão aplicados. O que eles fazem é incrementar ou decrementar, a variável sobre a qual estão aplicados, de 1. Exemplos: x++; // x = x + 1 x--; // x = x - 1 Linguagem C Exercícios: x=23; y=x++; teremos, no final, y= Em: x=23; y=++x; teremos, no final, y= x= x= Linguagem C Exercícios: x=23; y=x++; teremos, no final, y=23 e x=24. Em x=23; y=++x; teremos, no final, y=24 e x=24 Linguagem C Diga o resultado das variáveis x, y e z depois da seguinte sequência de operações: int x,y,z; x=y=10; z=++x; x=-x; y++; x=x+y-(z--); Linguagem C Diga o resultado das variáveis x, y e z depois da seguinte seqüência de operações: int x,y,z; x=y=10; z=++x; // z = 11 e x = 11 x=-x; // x = -11 y++; // y = 11 x=x+y-(z--); // x = -11 e z = 10 pós incremento! Linguagem C OPERADORES RELACIONAIS: Os operadores relacionais realizam comparações entre variáveis. Note que o resultado dos operadores relacionais é sempre igual 0 (falso) ou 1 (verdadeiro). Linguagem C Operações Lógicos: Para fazer operações com valores lógicos (verdadeiro e falso) temos os operadores lógicos: Exemplo: No trecho de programa abaixo a operação j++ será executada? int i = 5, j =7; if ( (i > 3) && ( j <= 7) && ( i != j) ) j++; Linguagem C Operações Lógicos : Para fazer operações com valores lógicos (verdadeiro e falso) temos os operadores lógicos: Exemplo: No trecho de programa abaixo a operação j++ será executada, pois o resultado da expressão lógica é verdadeiro: int i = 5, j =7; if ( (i > 3) && ( j <= 7) && ( i != j) ) j++; V AND V AND V = V Linguagem C • Em C não existe nenhum tipo específico de dados para armazenar valores lógicos. • O valor lógico FALSO é representado por 0(zero). • O valor lógico VERDADEIRO é representado por qualquer número diferente de 0(zero). O valor 1 é apenas um dos valores possíveis para representar VERDADE. • Note que o resultado dos operadores relacionais é sempre igual 0 (falso) ou 1 (verdadeiro). Linguagem C main () { int x; if (x) // é a mesma coisa que x!=0 ...; else ...; } • Quando o valor de x é diferente de zero, devolve o valor VERDADE e; •Para o valor de x igual a zero => if(!x) Linguagem C Operações BIT a BIT: O C permite que se faça operações lógicas "bit-a- bit" em números. O número é representado por sua forma binária e as operações são feitas em cada bit dele. As operações lógicas bit a bit só podem ser usadas nos tipos char, int e long int. Linguagem C Qual o valor armazenado nas variáveis y e z? int x; char y,z; x= 0x1234; y = x; z = x>>2; Linguagem C Qual o valor armazenado nas variáveis? int x; char y,z; x= 0x1234; y = x; // y = 0x34 z = x>>2; // z = 0x8D Linguagem C • VARIÁVEIS, CONSTANTES, OPERADORES E EXPRESSÕES • EXPRESSÕES:Quando o C avalia expressões onde temos variáveis de tipos diferentes o compilador verifica se as conversões são possíveis. Linguagem C • Se não são, ele não compilará o programa, dando uma mensagem de erro. • Se as conversões forem possíveis ele as faz, seguindo as regras abaixo: 1. Todos os chars e short ints são convertidos para ints. Todos os floats são convertidos para doubles. 2. Para pares de operandos de tipos diferentes: se um deles é long double o outro é convertido para long double; se um deles é double o outro é convertido para double; se um é long o outro é convertido para long; se um é unsigned o outro é convertido para unsigned. Linguagem C • Expressões que Podem ser Abreviadas • O C admite as seguintes equivalências, que podem ser usadas para simplificar expressões ou para facilitar o entendimento de um programa: Linguagem C • Expressões que Podem ser Abreviadas ou Simplificadas TABELAS DE PRECEDÊNCIA DE C Linguagem C • DICAS IMPORTANTES: Não precisa saber toda a tabela de precedências de cor. É útil conhecer as principais relações, mas é aconselhável que ao escrever o código, tente isolar as expressões com parênteses, para tornar o programa mais legível. Linguagem C • PRÁTICA: • Escrever um programa que conforme as chaves muda a lógica dos 8 leds.