Ameliara Freire [email protected]. Toda linguagem de programação, existem operadores que nos...
Transcript of Ameliara Freire [email protected]. Toda linguagem de programação, existem operadores que nos...
Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados no computador.
Veremos três tipos de operadores: ◦ Aritméticos, Relacionais e Lógicos.
Operadores Básico
Usamos os operadores aritméticos quando precisamos executar operações aritméticas (matemáticas) sobre os nossos dados (variáveis).
Operadores Aritméticos
Operador Descrição
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Retorna o resto da divisãointeira de a por b
( ) Parênteses
Vamos dar uma atenção especial aos operadores da divisão(/) e resto(%).
O resultado de uma divisão, em C, depende dos tipos dos dados que estão sendo divididos.
A tabela abaixo apresenta o resultado da operação de divisão, de acordo com os tipos de dados do numerador e do denominador.
Operadores Aritméticos
numerador / denominador
Resultado
inteiro / inteiro inteiro
inteiro/ real real
real / inteiro real
real/real real
Quando dois números inteiros são divididos, o resultado é a parte inteira do quociente da divisão.
Quando pelo menos um dos elementos (numerador e/ou denominador) é real, o resultado é um número real.
Operadores Aritméticos
O operador do resto (%) só pode ser usado quando as variáveis envolvidas são
do tipo inteiro. Não poderemos usar tal operador para obter resto de divisão de
números reais. Outracoisa: o operador % não tem nada haver
com percentagem,certo?
Prioridade dos Operadores◦ A prioridade que o operador aritmético tem sob o outro é que vai determinar
como a expressão será resolvida.◦ Na matemática, quando montamos uma expressão, usamos parênteses,
colchetes e chaves. Nas linguagens de programação, nós só temos os parênteses.
◦ Os parênteses têm um papel importante nas expressões e possibilitam que a ordem das operações seja alterada.
Expressões entre parênteses são calculadas primeiro, portanto eles fornecem o maior grau de prioridade às expressões que envolvem. Os parênteses têm um papel importante nas expressões e
possibilitam que a ordem das operações seja alterada. Expressões
entre parênteses são calculadas primeiro, portanto eles fornecem
o maior grau de prioridade às expressões que envolvem
Operadores Aritméticos
Prioridade dos Operadores
Operadores Aritméticos
Prioridade Operador
1º Operações embutidas em parênteses “mais internos”
2º % (resto) e/ou * (multiplicação) e/ou / (divisão)
3º + (adição) e/ou – (subtração)
Prioridade de Operadores int X, Y, Z, W, A, B, C, D;X = 19;Y = 3;Z = 4;W = 2;A = X + Y * Z;B = (X + Y) * Z;C = X – Y * Z / W;D = (X-Y) * (Z/W);
Operadores Aritméticos
São utilizados para comparar valores de variáveis ou expressões aritméticas.
Uma expressão aritmética tem como resultado um valor numérico.
No caso de uma expressão relacional, o resultado será sempre um valor lógico: “Verdade” ou “Falso”.
Operadores Relacionais
Operador Descrição
== Igualdade
!= Diferença (≠)
< Menor
> Maior
<= Menor ou Igual (≤)
>= Maior ou Igual (≥)
Operadores Relacionais
Sintaxe
Variavel operador ValorVariável1 operador variável2
Variavel operador Expressão AritméticaExpressão Aritmética operador Expressão Aritmética
Operadores Relacionais
Expressões relacionais
X == 10X > Y
X < Y + ZX * Y > Z / W
Servem para interligar duas ou mais expressões relacionais.
Uma expressão lógica representa a união de expressões relacionais, permitindo que os resultados de várias expressões relacionais sejam transformados em um único resultado lógico (verdade ou falso).
Os operadores lógicos são: ◦ E◦ OU ◦ NÃO
Operadores Lógicos
Operador Lógico Operador Lógico em C
E &&
OU ||
NÃO !
Operadores Lógicos
Exemplos
(X > 10) && (Y < 30) || (Z == 1)(A == 2) || (B <> C) && (D < 1) || (E > 10)!(A == 1) || (B <= C + B)(X + Y < Z + W) && (A < 3 + D) || (F < 5)
Operadores Lógicos
Prioridade Operador
1º Operações embutidas em parênteses “mais internos”;
2º Resto e/ou multiplicação e/ou divisão;
3º Adição e/ou Subtração;
4º Operadores Relacionais;
5º Operadores Lógicos.
Prioridade de operadores
A linguagem C oferece um conjunto de operadores que é uma combinação de operador de atribuição e operador aritmético, são os operadores aritméticos de atribuição.
Eles são utilizados para representar de maneira reduzida uma operação aritmética, seguida de uma atribuição.
Operadores Aritméticos de Atribuição
Operador Exemplos de Uso Descrição
+= X += 4; Equivale a X = X + 4;
-= Y -= X; Equivale a Y = Y – X;
*= Z *= W; Equivale a Z = Z * W;
/= K /= 7; Equivale a K = K / 7;
%= L %= M; Equivale a L = L % M
Os operadores ++ e -- são utilizados após o nome de uma variável e servem para incrementar (++) ou decrementar (--) uma unidade da variável, ou seja, somar 1 ou subtrair 1 do valor da variável.
Operadores ++ e --
Operador Exemplos de Uso Descrição
++ X++; Equivale a X = X + 1;
-- Y--; Equivale a Y = Y -- 1;
Quando usamos operadores aritméticos, temos que lembrar que o resultado da expressão depende do tipo das variáveis envolvidas.
É que alguns operadores só podem ser usados por um tipo de dado.
É usada em uma expressão aritmética e é feita da seguinte forma: ◦ Antes da variável, colocamos entre parênteses, o tipo que
queremos que a variável seja nesta expressão aritmética.◦ É importante salientar que a conversão de tipo é feita com o
dado armazenado em uma variável, mas a variável continua tendo o seu tipo original.
Conversão de tipo
int A,B,C;float X,Y;
A=3;B=5;X=6.5;
C = (int)X % B;Y = (float)A/B;
Conversão de tipo - Exemplo
Nas linhas 1 e 2, temos as declarações de cinco variáveis. Nas linhas 3, 4, e 5 foram atribuídos valores as variáveis A, B e
X. Na linha 6, precisamos executar uma operação para obter o
resto da divisão entre a variável X (que é do tipo float) e a variável B (que é do tipo int). Esta operação não seria possível, já que o operador do resto não aceita números reais na expressão.
No entanto, esta operação se torna possível, se fizermos a conversão de tipo da variável X. Queremos que, nesta expressão, o conteúdo de X seja um inteiro.
Para isso, colocamos (int) na frente da variável X, como mostra a linha 6 do exemplo. Como a variável X tem 6.5 armazenado, nesta conta, a parte fracionária será desprezada e a conta será feita considerando que X é 6. Assim, 6 % 5 = 1. Então, 1 é o valor que será atribuído a variável C.
Conversão de tipo - Exemplo
A linguagem de programação C possui uma biblioteca que agrupa um conjunto de funções matemáticas. É a biblioteca math.h.
Nesta seção, vamos ver quatro funções matemáticas, da biblioteca math.h, que utilizaremos com mais frequência nos nossos programas.
São as funções para encontrar a raiz quadrada de um número, potência (elevar um número a uma potência) e duas funções de arredondamento.
Esta biblioteca possui outras funções, mas estas são as mais utilizadas nos nossos programas.
As funções matemáticas precisam receber um ou vários parâmetros e nos retornam um resultado.
Funções Matemáticas (biblioteca math.h)
Função Descrição Exemplos de uso
sqrt Função para encontrar a raiz quadrada de um número. A função sqrt precisa receber como parâmetro, o número que desejamos encontrar a sua raiz quadrada. O resultado desta função é um número real. Como uma função retorna um resultado, devemos atribuí-lo a uma variável.
R = sqrt(16);
R = sqrt(A);
pow Função para encontrar a potência de um número, ou seja, eleva um número a um expoente: AB. Assim, se A = 4 e B = 3, 4 elevado a 3 é 64. A função pow irá receber dois parâmetros. O primeiro é a base (neste exemplo é o A) e o segundo é o expoente (neste caso é o B). Esta função retorna um número real como resultado.
P = pow(3,4);
P = pow(A, 3);
Funções Matemáticas (biblioteca math.h)
Função Descrição Exemplos de uso
ceil A função ceil serve para arredondar um número real. Esta função arredonda o número para cima. Assim, ela retornará como resultado: o primeiro número inteiro maior que o número que desejamos arredondar. Por exemplo: se x = 1.34, e desejamos arredondar com a função ceil, o resultado será 2.0. Ou seja, o primeiro número inteiro acima de 1.34. Apesar do arredondamento, esta função retorna um número real como resultado.
Z = ceil(1.67);
Z = ceil(Z);
floor A função floor serve para arredondar um número real. Esta função arredonda o número para baixo. Assim, ela retornará como resultado: o primeiro número inteiro menor que o número que desejamos arredondar. Por exemplo: se x = 1.34, e desejamos arredondar com a função floor, o resultado será 1.0. Ou seja, o primeiro número inteiro abaixo de 1.34. Apesar do arredondamento, esta função retorna um número real como resultado.
Z = floor(1.67);Z = floor(Z);
Funções Matemáticas (biblioteca math.h)
Exemplo: Ler o nome e duas notasdo usuário e imprimir a média.
#include <stdio.h>//ler o nome e as duas
notas do aluno e imprimir a media
main(){char nome[20];float nota1, nota2, media;printf(“Calcular a media do
aluno\n\n”);
printf(“Seu nome: “);fflush(stdin);gets(nome);printf(“Nota 1: “);scanf(“%f”, ¬a1);printf(“Nota 2: “);scanf(“%f”, ¬a2);media = (nota1 +
nota2)/2;printf(“\n\n%s, sua media
= %.2f”, nome,media);getche();}
Linha 1: Como iremos ler o nome do aluno, precisamos incluir a biblioteca stdio.h onde estão os comandos fflush e gets.
Linha 2: Comentário informando o que o programa faz. Linha 3: início do programa principal, que é definido pelo: “main()”. Linha 4: um abre chaves, que irá delimitar o corpo do
programa principal. Linhas 5 e 6: declarações das quatro variáveis do programa:
nome, nota1, nota2 e media. Linha 7: um printf que serve para colocar, no início da tela, o
título do que o programa faz. Linha 8: printf para que o usuário saiba que precisa fornecer
seu nome.
Exemplo: Comentários sobre cada linha
Linha 9: comando fflush, que DEVE sempre vir antes do comando gets. Utilizado para limpar o buffer de entrada de dados.
Linha 10: gets que efetuará a leitura do nome do usuário. Linha 11: printf para que o usuário saiba que precisa fornecer a
primeira nota. Linha 12: scanf que lê a primeira nota e armazena na variável nota1. Linha 13: printf para que o usuário saiba que precisa fornecer a
segunda nota. Linha 14: scanf que lê a segunda nota e armazena na variável nota2. Linha 15: cálculo da média do aluno. Notem que a soma das nota1 e
nota2 aparece entre parênteses. Devemos lembrar que o operador da divisão tem prioridade maior que o operador da soma. Assim, para que a soma das notas seja feita primeiro, ela deve vir entre parênteses. Não esqueçam deste detalhe!
Exemplo: Comentários sobre cada linha
Linha 16: printf que apresenta a média do aluno. Notem que na mensagem, também será escrito o nome do aluno. A média do aluno será apresentada com duas casas decimais (%.2f)
Linha 17: comando getche que faz com que a tela de execução do programa fique aberta, e assim podemos ver o resultado do programa. Nesta linha também poderíamos usar o system(“pause”).
Linha 18: fecha chaves, indicando o final do programa principal.
Exemplo: Comentários sobre cada linha
Pesquisem na Internet outra funções matemáticas disponíveis na biblioteca math.h. Comecem a pesquisa pelo site:
http://visualcplus.blogspot.com/2006/03/mathh.html
Conheça mais