operadoresebrito.com.br/profa-elaine/c2.pdfoperadores aritméticos •os operadores aritméticos...

34
Operadores A linguagem C é muito rica em operadores internos. Ela define quatro classes de operadores: Aritmético: -, +, *, /, %, --, ++ Relacionais: >, <, >=, <=, ==, != Lógicos: &&, ||, ! Além disso, C tem alguns operadores especiais para tarefas particulares.

Upload: vungoc

Post on 01-Jan-2019

250 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Operadores

• A linguagem C é muito rica em operadores internos.

• Ela define quatro classes de operadores: – Aritmético: -, +, *, /, %, --, ++

– Relacionais: >, <, >=, <=, ==, !=

– Lógicos: &&, ||, !

• Além disso, C tem alguns operadores especiais para tarefas particulares.

Page 2: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Operadores Aritméticos

Page 3: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Operadores Aritméticos • Os operadores aritméticos são usados para calcular

expressões matemáticas.

• São classificados em duas categorias: os binários ou unários.

• Operadores binários (descrição):

= Atribuição

+ Adição

- Subtração

/ Divisão

* Multiplicação

• Operadores unários (ação):

+ Sinal positivo

- Sinal negativo

• Os operadores unários atuam na inversão de valores.

Page 4: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Operadores de incremento e decremento

• O operador de incremento (++) soma 1 ao seu operando enquanto que o de decremento (--) subtrai um.

• Eles podem ser pré-fixados ou pós-fixados Operador Instrução Pós-fixado Pré-fixado

++ var=var+1; var=var++; var=++var;

ou var++; ou ++var; -- var=var-1; var=var--; var=--var; ou var--; ou --var;

Page 5: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Operadores de incremento e decremento

• Exemplos: a++; (equivale a a = a + 1;)

• Considerando a = 2: –Pós-fixado:

b = a++;

resulta em b = 2 e a = 3 (primeiro atribui, depois incrementa)

–Pré-fixado:

b = ++a;

teremos b = 3 e a = 3 (primeiro incrementa, depois atribui)

Page 6: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Operadores - precedência

• A precedência dos operadores aritméticos é a seguinte:

• Operadores do mesmo nível de precedência são

avaliados pelo compilador da esquerda para a direita;

• Parênteses podem ser usados para alterar a ordem de avaliação.

Page 7: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Operadores - precedência

• Observe o exemplo a seguir

Page 8: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exercícios

int n1, n2, n3; n1 n2 n3

n2=n3=0; - 0 0

n1=2; 2 0 0

n1 += n1 * 10;

n2 = n1 / 5;

n3 = n2 % 5 * 7 ;

n2 *= n3-- % 4;

Page 9: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exercícios

int n1, n2, n3; n1 n2 n3

n2=n3=0; - 0 0

n1=2; 2 0 0

n1 += n1 * 10; 22 0 0

n2 = n1 / 5;

n3 = n2 % 5 * 7 ;

n2 *= n3-- % 4;

Page 10: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exercícios

int n1, n2, n3; n1 n2 n3

n2=n3=0; - 0 0

n1=2; 2 0 0

n1 += n1 * 10; 22 0 0

n2 = n1 / 5; 22 4 0

n3 = n2 % 5 * 7 ;

n2 *= n3-- % 4;

Page 11: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exercícios

int n1, n2, n3; n1 n2 n3

n2=n3=0; - 0 0

n1=2; 2 0 0

n1 += n1 * 10; 22 0 0

n2 = n1 / 5; 22 4 0

n3 = n2 % 5 * 7 ; 22 4 28

n2 *= n3-- % 4;

Page 12: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exercícios

int n1, n2, n3; n1 n2 n3

n2=n3=0; - 0 0

n1=2; 2 0 0

n1 += n1 * 10; 22 0 0

n2 = n1 / 5; 22 4 0

n3 = n2 % 5 * 7 ; 22 4 28

n2 *= n3-- % 4; 22 0 27

Page 13: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Operadores Relacionais e Lógicos

Page 14: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Operadores relacionais

• Os operadores relacionais do C realizam comparações entre variáveis. São eles:

Page 15: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

• Os operadores relacionais retornam verdadeiro (1) ou falso (0).

• Em C, verdadeiro é qualquer valor diferente de zero.

• Os operadores relacionais tem precedência menor do que os operadores aritméticos, veja:

int a = 10, b = 1, c = 12;

a > b + c; • O resultado da expressão acima é: Falso

Operadores relacionais

Page 16: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Operadores Lógicos

• Os operadores lógicos definidos por C são os seguintes:

• A tabela da verdade dos operadores lógicos são mostrados a seguir, usando 1s e 0s:

Page 17: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

• Uma expressão lógica é uma comparação que sempre retorna valor verdadeiro ou falso.

• Podemos atribuir o resultado de uma expressão lógica à uma variável

resposta ← a = b se a possui valor 1 e b possui valor 1, então

resposta deve receber true(verdadeiro)

se a possui valor 1 e b possui valor 2, então

resposta deve receber false(falso)

• O tipo da variável resposta que armazena os resultados das expressões lógicas é o booleano.

• Em Pascal temos o tipo boolean que pode receber como valores true (verdadeiro) ou false (falso) enquanto que em C não existe o tipo booleano. O resultado de uma expressão lógica em C pode ser 0 (falso) ou qualquer outro valor inteiro (verdadeiro). Para armazenar um valor booleano em C podemos usar uma variável inteira ou char.

Operadores Lógicos

Page 18: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Estrutura condicional

Em Pascal

if (condição) then

begin

comandos

end

else

begin

comandos

end

Em C

if (condição)

{

comandos

}

else

{

comandos

}

Page 19: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exemplo - IF

• Um esporte só pode ser praticado por maiores de 18 anos e a divisão é feita por peso:

– até 80kg é considerado peso-leve,

– acima de 80kg até 130kg, peso-pesado,

– acima disso não é permitido praticar este esporte.

Page 20: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Pascal C OBS: quando temos vários scanf seguidos, para limpar o buffer e descartar os enters, usamos o formatador %*c

Page 21: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Pascal C OBS: quando temos vários scanf seguidos, para limpar o buffer e descartar os enters, usamos o formatador %*c

Page 22: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exemplo

#include <stdio.h>

int main (void)

{

int a;

printf("Insira um numero inteiro:");

scanf("%d",&a);

if (a%2 == 0)

printf("Voce inseriu um numero par!\n");

return 0;

}

Page 23: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exemplo

#include <stdio.h>

int main (void)

{

int a;

printf("Insira um numero inteiro:");

scanf("%d",&a);

if (a%2 == 0)

{

printf("Voce digitou o numero %d\n",a);

printf("Voce inseriu um numero par!\n");

}

return 0;

}

Page 24: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exemplo #include <stdio.h>

int main (void)

{

int a;

printf("Insira um numero inteiro:");

scanf("%d",&a);

if (a%2 == 0)

printf("Voce inseriu um numero par!\n");

else

printf("Voce inseriu um numero impar!\n");

return 0;

}

Page 25: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

if aninhado

#include <stdio.h>

int main (void)

{

int a, b;

printf("Insira dois numeros inteiros:");

scanf("%d%d",&a,&b);

if (a%2 == 0)

if (b%2 == 0)

printf("Voce inseriu dois numeros pares!\n");

return 0;

}

Page 26: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

if com operador lógico

int main (void) { int a, b; printf("Digite dois numeros inteiros:"); scanf("%d%d",&a,&b); if ((a%2 == 0) && (b%2 == 0)) printf ( "Voce digitou dois numeros pares!\n"); return 0; }

Page 27: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Operador condicional C possui também um

chamado operador condicional.

Trata-se de um operador que substitui construções do tipo:

...

if ( a > b )

maximo = a;

else

maximo = b;

...

• Sua forma geral é:

condição ? expressão1 : expressão2;

se a condição for verdadeira, a expressão1 é considerada;

caso contrário, considera-se a expressão2.

• O comando:

maximo = a > b ? a : b ;

substitui a construção com if-else mostrada acima.

Page 28: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exercício Dados três números naturais, verificar se eles

formam os lados de um triângulo e ainda dizer se é um triângulo retângulo.

Testar com lados 3, 4 e 5.

Lembre-se que para ser triângulo:

a<(b+c)

b<(a+c)

c<(a+b)

Para ser triângulo retângulo:

hipotenusa2=cateto2+cateto2

Lembre-se que a hipotenusa é o maior lado!

Page 29: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Correção #include <stdio.h> int main() { int a, b, c; printf("Digite tres numeros naturais: "); scanf("%d%d%d", &a,&b,&c); /*verifica se forma triangulo*/ if ((a<(b+c))&&(b<(a+c))&&(c<(a+b))) { if ((a*a == b * b + c * c)||(b*b == a * a + c * c)||(c*c == a * a + b * b)) printf("O triangulo é retangulo\n"); else printf("O triangulo não é retangulo\n"); } else printf("Os valores digitados não formam um triangulo \n"); return 0; }

Page 30: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exemplo – SWITCH/CASE

• A mãe pergunta ao filho sobre o que ele gostaria de comer entre bolo, salgado, pipoca ou sorvete. Dependendo da resposta, ela compra os ingredientes corretos para o preparo da opção escolhida. Se ele disser outra coisa qualquer, ela nega.

Page 31: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Pascal C

Notem que no Pascal temos else e em C temos default

Page 32: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exemplo #include <stdio.h>

int main (void)

{

int n;

printf("Digite um numero\n");

scanf ("%d", &n);

switch (n)

{

case 1:

printf(" domingo\n");

break;

case 2:

printf(" segunda-feira\n");

break;

case 3:

printf(" terça-feira\n");

break;

case 4:

printf(" quarta-feira\n");

break;

case 5:

printf(" quinta-feira\n");

break;

case 6:

printf(" sexta-feira\n");

break;

case 7:

printf(" sábado\n");

break;

default:

printf(" inválido\n");

break;

}

return 0;

}

Page 33: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exercício

Faça uma calculadora de quatro operações usando a estrutura switch

printf("Digite: numero op numero\n");

scanf ("%f %c %f", &num1, &op, &num2);

Page 34: Operadoresebrito.com.br/profa-elaine/C2.pdfOperadores Aritméticos •Os operadores aritméticos são usados para calcular expressões matemáticas. •São classificados em duas categorias:

Exercício /* calculadora de quatro operações */

#include <stdio.h>

int main (void)

{

float num1, num2;

char op;

printf("Digite: numero op numero\n");

scanf ("%f %c %f", &num1, &op, &num2);

switch (op)

{

case '+':

printf(" = %f\n", num1+num2);

break;

case '-':

printf(" = %f\n", num1-num2);

break;

case '*':

printf(" = %f\n", num1*num2);

break;

case '/':

{

if(num2!=0)

printf(" = %f\n", num1/num2);

else

printf(" não existe divisão por 0\n");

}

default:

printf("Operador invalido!\n");

break;

}

return 0;

}