Baixe o app para aproveitar ainda mais
Prévia do material em texto
23/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/9 Constantes e Operadores em C APRESENTAR OS SEGUINTES CONCEITOS DA LINGUAGEM C: CONSTANTES, OPERADORES DE INCREMENTO E DECREMENTO, OPERADORES ARITMÉTICOS DE ATRIBUIÇÃO E OPERADOR TERNÁRIO DE DECISÃO. AUTOR(A): PROF. DANIEL TREVISAN BRAVO Constantes Constantes são dados que não sofrem nenhuma variação no decorrer do programa, assim como é o mesmo para execuções diferentes no tempo. Podemos usar dados constantes, por exemplo, em uma fórmula: area = 3.1415 * (raio * raio); Em linguagem C ao invés de usarmos o valor constante diretamente, podemos associar um nome (identificador) a esse valor e no lugar do valor usar o nome associado. Isso é conhecido como constante simbólica. O uso de um nome a um valor constante aumenta a legibilidade do código-fonte e facilita a sua manutenção. Para criarmos constantes simbólicas utilizamos a diretiva #define. Ela associa um identificador a um texto da seguinte forma: #define identificador texto Quando o compilador da linguagem C encontra uma ocorrência do identificador especificado ele substitui pelo texto associado. As constantes simbólicas sempre devem ser especificadas no início do programa, antes da função main(). Podemos especificar quantas constantes simbólicas quisermos, sendo uma em cada linha, sem o ponto-e- vírgula no final. O programa a seguir apresenta um exemplo de uso de constante simbólica. Ele lê o valor do raio de uma circunferência, calcula e apresenta a área desta circunferência. A fórmula é: Sendo o valor de equivalente a 3,1415. 01 / 08 Conteúdo carregado! 23/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/9 No programa, utilizamos uma constante simbólica (PI) para representar o valor de ao invés de colocarmos o valor diretamente na fórmula, como feito na fórmula apresentada no início desse texto. Embora não seja obrigatório, mas por estilo de codificação, os identificadores de constantes simbólicas são definidos usando letras maiúsculas. Com isso, podemos facilmente diferenciá-las das variáreis que por convenção são definidas em letras minúsculas. Operadores Aritméticos de Atribuição Quando codificamos programa, frequentemente temos a necessidade de escrevermos expressões na forma variável = variável operador expressao. Para facilitar, a linguagem C oferece um grupo de operadores que permite escrever essas expressões de forma mais compacta. Os operadores aritméticos de atribuição combinam, num único operador, uma operação aritmética e uma atribuição. A forma geral é: variavel op= expressao; Que equivale a: variavel = variável op (expressao); 1. #include <stdio.h> 2. #include <stdlib.h> 3. // especificação da constante simbolica para o valor de Pi 4. #define PI 3.1415 5. main () { 6. // le o raio da circunferencia 7. float raio; 8. printf ("Raio: "); 9. scanf ("%f", &raio); 10. // calcula a area. Aqui usamos a constante simbolica especificada 11. float area = PI * (raio * raio); 12. // apresenta o valor da area 13. printf ("Area = %.2f\n\n", area); 14. system ("PAUSE"); 15. } 02 / 08 23/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/9 Exemplos: i += 2; equivale a i = i + 2; x *= y + 1; equivale a x = x * (y + 1); a %= b – c; equivale a a = a % (b – c); A tabela abaixo apresenta expressões aritméticas e a sua forma compacta, utilizando os operadores aritméticos de atribuição. Operadores Aritméticos de Atribuição Expressão Forma Compacta x = x + y x += y x = x - y x -= y x = x * y x *= y x = x / y x /= y x = x % y x %= y Se uma expressão incrementa ou decrementa em 1 o valor de uma variável, podemos então escrevê-la de uma forma ainda mais compacta. Para incrementar usamos o operador ++ e para decrementar usamos o operador --. Esses operadores são unários, isto é, atuam sobre uma única variável, e podemos usá-los de duas formas: Forma prefixa: ++variavel, --variavel Forma posfxa: variavel++, variavel-- O trecho de código a seguir apresenta um exemplo de utilização dos operadores de incremento e decremento. A saída produzida pelo trecho de código será x = 6 y = 4. 03 / 08 23/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/9 A diferença entre usar o operador na forma prefixa ou posfixa aparece somente quando ele é utilizado em uma expressão. Na forma prefixa, a variável é alterada e, depois, o seu valor é usado. Na forma posfixa, o valor da variável é usado e, depois, ela é alterada. Para verificarmos a diferença, analise o trecho de código a seguir. A saída produzida pelo trecho de código será: m = 6 x = 5 n = 6 y = 6 Os operadores de incremento e decremento não podem ser usados com valores constantes, já que a instrução x++ equivale, de certa forma, a x = x + 1. Embora o operador ternário de decisão e o comando if-else sejam semelhantes, eles não são iguais. O comando if-else indica quais as instruções se deve executar, enquanto o operador ternário de decisão devolve sempre um resultado. Uma vantagem do uso desse operador é que podemos utilizá-lo em qualquer contexto em que uma expressão é permitida. 1. .... 2. int x = 5, y = 5; 3. ++x; 4. --y; 5. printf ("x = %d y = %d", x, y); 6. .... 1. if (num > 0) { 2. abs = num; 3. } 4. else { 5. abs = -num; 6. } 04 / 08 23/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/9 O programa a seguir apresenta um exemplo de utilização do operador ternário de decisão. Ele lê um salário e calcula o seu reajuste. Se o salário for menor que R$ 1.000,00 reajusta o salário em 15%. Caso contrário, reajusta o salário em 7%. O valor do novo salário é apresentado na tela. Exemplo 1 O programa a seguir faz a leitura do preço bruto de um produto e calcula o valor do ICMS a ser pago (sabendo que o ICMS equivale a 18% do preço do produto). Neste exemplo, foi utlizada uma constante simbólica para representar o percentual do ICMS. 1. #include <stdio.h> 2. #include <stdlib.h> 3. main () { 4. float salario; 5. // le o salário 6. printf ("Salario: "); 7. scanf ("%f", &salario); 8. // calcula o novo salario usando o operador ternario de decisao 9. salario = salario < 1000 ? salario * 1.15 : salario * 1.07; 10. // apresenta o novo salario 11. printf ("Novo Salario = %.2f\n\n", salario); 12. system ("PAUSE"); 13. } 05 / 08 23/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 6/9 Exemplo 2 Neste exemplo, é feita a leitura de dois números inteiros e, em seguida, o maior valor é apresentado na tela. Para tanto, foi utilizado o operador ternário de decisão. 1. #include <stdio.h> 2. #include <stdlib.h> 3. 4. // define uma constante simbolica para o valor do ICMS 5. #define ICMS 0.18 6. 7. main () { 8. float preco; 9. // le o preco do produto 10. printf ("Preco: "); 11. scanf ("%f", &preco); 12. // calcula o valor do icms 13. float valorICMS = preco * ICMS; 14. // apresenta o valor calculado 15. printf ("ICMS = R$ %.2f\n\n", valorICMS); 16. system ("PAUSE"); 17. } 06 / 08 23/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 7/9 Agora que você já estudou essa aula acesse a plataforma AVA, resolva os exercícios e verifique o seu conhecimento. Caso fique alguma dúvida, leve a questão ao Fórum e divida com seus colegas e professor. ATIVIDADE FINAL 1. #include <stdio.h> 2. #include <stdlib.h> 3. main () { 4. int num1, num2, maior;5. // le os dois numeros 6. printf ("Primeiro Numero: "); 7. scanf ("%d", &num1); 8. printf ("Segundo Numero: "); 9. scanf ("%d", &num2); 10. 11. // verifica qual o maior numero e atribui a variavel maior 12. // para isso é usado o operador ternario de decisao 13. maior = num1 > num2 ? num1 : num2; 14. 15. // apresenta o maior numero 16. printf ("Maior = %d\n\n", maior); 17. system ("PAUSE"); 18. } 07 / 08 23/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 8/9 Analise o programa abaixo e responda qual o valor de x, y e z. #include <stdio.h> #include <stdlib.h> main() { int x=8, y=-5, z=6; x++; y+=9; y=2; y=10/y; z/=2; y=z--; x=z++; system("pause"); } A. x=9, y=4 e z=3. B. x=2, y=3 e z=3. C. x=8, y=5 e z=2. D. x=9, y=4 e z=2. REFERÊNCIA MIZRAHI, V. V. Treinamento em linguagem C, São Paulo: Pearson, 2008. SCHILDT, H. C — Completo e Total. São Paulo: Pearson, 2006. 08 / 08 23/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 9/9
Compartilhar