Baixe o app para aproveitar ainda mais
Prévia do material em texto
Laboratório de Programação I Universidade Federal da Grande Dourados Faculdade de Ciências Exatas e Tecnologia Curso de Bacharelado em Sistemas de Informação Curso de Bacharelado em Engenharia de Computação Expressões Profª Janne Oeiras Lachi 1 Operador de Atribuição � A atribuição é uma das operações mais realizadas em programação � Armazena determinado valor em uma variável � Exemplos: � X=25; 2 � float pi=3.14; Operador de Atribuição � Na linguagem C o comando de atribuição utiliza o símbolo = � Sintaxe: � <identificador> = <expressão>; � identificador é o nome da variável ou constante à qual está sendo atribuída a expressão; 3 atribuída a expressão; � = é o símbolo de atribuição � expressão pode ser uma expressão aritmética, lógica ou literal, cujo valor (obtido após avaliação) e atribuído à variável NÃO ESQUEÇA O ; NO FINAL Atribuição: exemplos X = 2000; X = Y + 5; MEDIA = SOMA/N; � Observe os exemplos abaixo: 4 � Y = X = 3; � Y = (X = 3); � Existe diferença entre eles? � Não, são atribuições equivalentes. � Em ambas, primeiro X recebe o valor 3 e depois o valor de X é atribuído a Y. A atribuição é executada da direita para a esquerda. Expressões Aritméticas � São as expressões cujos operadores são aritméticos e cujos operandos são constantes e/ou variáveis do tipo numérico Adição Multiplicação Potenciação Subtração Divisão Radiciação � Exemplos: � X + Y X-Y � 2 x nota total/n � AxB+C soma2 � √P √F1 + G2 - H 5 Operadores: símbolos usados Operador binário Operação Tipo - Menos unário Unário = Atribuição Binário + Adição Binário - Subtração Binário * Multiplicação Binário / Divisão Binário % Módulo (resto da divisão inteira) Binário 6 Operador menos unário: - � O operador menos unário (-) é usado somente para indicar a troca de sinal algébrico do valor associado. � Exemplo: � 8� x = 8; � x = -x; � O valor de x será -8 depois das duas instruções 7 Operador de módulo: % � O operador % opera somente com operandos inteiros � O resultado desse operador % é o resto da divisão do inteiro à esquerda pelo inteiro à sua direita. � Exemplos:� Exemplos: � X=17%5; (a variável X receberá o valor 2, pois a divisão de 17 por 5 tem resto 2) � Y= 3%2; (a variável Y receberá o valor 1, pois a divisão de 3 por 2 tem resto 1) � Z= 20.6%5; (Dará erro de compilação, pois o valor 20.6 é um número real, só pode inteiros) 8 Operador de divisão: / � O operador / faz a divisão entre números inteiros ou reais � Exemplos: � 5 / 2 // resulta em 2 � 5.0 / 2 // resulta em 2.5 � 5 / 2.0 // resulta em 2.5 9 Operadores em C: precedência � Os operadores *, / e % têm precedência sobre os operadores + e – � Exemplo: 5 + 17 * 2 resulta em 39 � Exemplo: 15 - 5 * 3 % 2 resulta em 14 � Os operadores *, / e % têm a mesma precedência e associatividade da esquerda para a direitaassociatividade da esquerda para a direita � Exemplo: 17 / 5 * 2 % 2 resulta em 0 � Exemplo: 17 / 5 * 3 % 2 resulta em 1 � Os operadores + e - têm a mesma precedência e associatividade da esquerda para a direita � Exemplo: 20 + 5 - 2 resulta em 23 � Exemplo: 20 - 5 + 2 resulta em 17 10 Operadores aritméticos de atribuição � Combinam operações aritméticas com o operador de atribuição. � Sintaxe: � <variável> op = <expressão>; � variável é o nome da variável à qual está sendo atribuída a expressão;expressão; � op é um operador aritmético � = é o símbolo de atribuição � expressão pode ser uma expressão aritmética, lógica ou literal, cujo valor (obtido após avaliação) e atribuído à variável � Equivale a <variável> = <variável> op (<expressão>) 11 Operadores aritméticos de atribuição � Exemplos: � i += 2; equivale a i = i + 2; � x *= y+1; equivale a x = x * (y+1); � t /=2.5; equivale a t = t / 2.5; � p %= 5; equivale a p = p % 5; � d -= 3; equivale a d = d – 3; 12 Operadores de incremento e decremento � Podem ser pré-fixados ou pós-fixados � Pré-fixado: adição ou subtração ocorre antes da atribuição � Pós-fixado: adição ou subtração ocorre depois da atribuição Operador Exemplo Comentário ++ x++ Equivale a x = x + 1 ++ y = ++x Equivale a x = x + 1 e depois y = x ++ y = x++ Equivale a y = x e depois x = x + 1 -- x-- Equivale a x = x – 1 -- y = --x Equivale a x = x - 1 e depois y = x -- y = x-- Equivale a y = x e depois x = x - 1 Exercício 1 � Abra o seu IDE e crie dois arquivos, um para cada código abaixo. Digite, salve, compile e execute. Veja na janela de prompt o resultado para cada valor de x impresso. #include <stdio.h> int main () #include <stdio.h> int main ()int main () { int x=10; ++x; printf("x=%d\n", x); return 0; } int main () { int x=10; x++; printf("x=%d\n", x); return 0; } Exercício 2 � Abra o seu IDE e crie dois arquivos, um para cada código abaixo. Digite, salve, compile e execute. Veja na janela de prompt o resultado para cada valor de x impresso. #include <stdio.h> int main () #include <stdio.h> int main ()int main () { int y, x=10; y=++x; printf("x=%d\n", x); printf("y=%d\n", y); return 0; } int main () { int y, x=10; y=x++; printf("x=%d\n", x); printf("y=%d\n", y); return 0; } Precedência em Operadores de incremento e decremento � x = a * b++; � b é multiplicado por a, o valor atribuído a x e depois b é incrementado � x = a * ++b; � b é incrementado, depois é multiplicado por a, e o valor é atribuído a x. Exercício 3 � Complete o programa abaixo para declarar as variáveis da expressão x = a * b++; , ler os valores de a e b e fazer essa atribuição. #include <stdio.h> int main ()int main () { int x; printf("x=%d\n", x); return 0; } Exercício 4 � Complete o programa abaixo para declarar as variáveis da expressão x = a * ++b; , ler os valores de a e b e fazer essa atribuição. #include <stdio.h> int main ()int main () { int x; printf("x=%d\n", x); return 0; } Funções matemáticas Função Exemplo Significado ceil ceil(x) Arredonda um número real para cima. Por exemplo, ceil(3.2) é 4. floor floor(x) Arredonda o número para baixo. Por exemplo, � Para usá-las você deve incluir o módulo <math.h> no início do seu arquivo floor floor(x) Arredonda o número para baixo. Por exemplo, floor(3.2) é 3. abs abs(x) Obtém o valor absoluto de x. sqrt sqrt(x) Calcula a raiz quadrada de x. pow pow(x,y) Calcula a potência de x elevado a y. modf z = modf(x, &y) Decompõe o número real armazenado em x em duas partes: y recebe a parte fracionária e z, a parte inteira do número. 19 Funções matemáticas Função Exemplo Significado cos cos(x) Calcula o coseno de x (deve ser apresentado em radianos). � Veja abaixo mais algumas funções existentes no módulo <math.h>. sin sin(x) Calcula o seno de x (deve ser apresentado em radianos). tan tan(x) Calcula a tangente de x (deve ser apresentado em radianos). log log(x) Obtém o logaritmo natural de x. log10 log10(x) Obtém o logaritmo de base 10 de x. exp exp(x) Obtém o logaritmo natural e elevado à potência x. Exemplo: função sqrt() � Veja no código abaixo o uso da função sqrt() que calcula a raiz quadrada do número 9. #include <stdio.h> #include <math.h> int main () { float x; x = sqrt(9); printf("x=%f\n", x); return 0; } Exercício 5 � Modifique o código abaixo para declarar e ler uma variável y e passá-la no lugar do número 9 para calcular a raiz quadrada de y. #include <stdio.h> #include <math.h> int main () { float x; x = sqrt(9); printf("x=%f\n", x); return 0; } Operadores relacionais � Uma expressão relacional (relação) é uma comparação realizada entre dois valores do mesmo tipo � O resultado obtido de uma relação é sempre um valor lógico (verdadeiro ou falso) Operador Operação 23 Operador Operação == Igual a != Diferente de > Maior que <Menor que >= Maior ou igual a <= Menor ou igual a Exercício 6 � Qual a saída produzida pelo programa abaixo? Abra o seu IDE e digite o código abaixo. Salve, compile e execute para ver. #include <stdio.h> int main () { int verdade, mentira; 24 verdade = (15 < 20); mentira = (15 == 20); printf("1o. Resultado: %d\n", verdade); printf("2o. Resultado: %d\n", mentira); return 0; } 1o. Resultado: 1 2o. Resultado: 0 Após ser avaliada, uma expressão retorna o valor lógico 1 para verdadeiro e 0 para falso. Precedência: operadores aritméticos x operadores relacionais � Operadores relacionais têm precedência menor que os aritméticos. Faça o código abaixo no seu IDE. Salve, compile e execute para ver o resultado. #include <stdio.h> int main () { 25 { printf("O valor da expressão 4 + 1 < 3 é %d\n", 4+1<3); printf("O valor da expressão 2 < 1 + 3 é %d\n", 2<1+3); return 0; } O valor da expressão 4 + 1 < 3 é 0 O valor da expressão 2 < 1 + 3 é 1 Operadores Lógicos � Também fazem comparações � A diferença das comparações lógicas e relacionais está na forma como os operadores avaliam seus operandos � Operandos de operadores lógicos são avaliados como lógicos (0 ou 1) 26 Operador Operação && Lógico E || Lógico OU ! Lógico NÃO Tabela de precedência Símbolo Operador - Menos unário ++ Incremento pré-fixado ou pós-fixado -- Decremento pré-fixado ou pós-fixado ! Lógico NÃO * Multiplicação aritmética Operadores no mesmo bloco têm a mesma precedência maior 27 / Divisão aritmética % Módulo aritmético + Mais aritmético - Menos aritmético < Menor relacional <= Menor ou igual relacional > Maior relacional >= Maior ou igual relacional Tabela de precedência (cont.) Símbolo Operador == Igual relacional != Diferente relacional && E lógico || OU lógico = Atribuição maior 28 *= Aritmético de atribuição (multiplicação) /= Aritmético de atribuição (divisão) %= Aritmético de atribuição (módulo) += Aritmético de atribuição (adição) -= Aritmético de atribuição (subtração) Operadores: avaliação lógica ou numérica � Os operandos são avaliados como quantidades numéricas ou como lógicos � O resultado de uma operação pode ser numérico ou lógico Operadores Operandos Resultado 29 Aritméticos Numéricos Numérico Relacionais Numéricos Lógico Lógicos Lógicos Lógico Exercícios 1. Para cada expressão abaixo, crie um programa em C que receba do usuário os valores das variáveis e imprima na tela o resultado da expressão. 30 Referências � ALGORITMOS. MANZANO – Lógica para desenvolvimento de programação de computadores. José Augusto N. G. Manzano, Jayr Figueiredo de Oliveira. São Paulo: Érica, 2006. � VictorineViviane Mizrahi. Treinamento em linguagem C. São Paulo: Pearson Prentice Hall, 2008. � Backes, André. Linguagem C: completa e descomplicada. Rio de � Backes, André. Linguagem C: completa e descomplicada. Rio de Janeiro: Elsevier, 2013. 400 p. 31
Compartilhar