Linguagem e Técnicas de Programação I
Operadores, expressões e funções
Prof. MSc. Hugo Souza
Material desenvolvido por: Profa. Ameliara Freire
Operadores básicos
• 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;
Lógicos;
Operadores aritméticos
Usamos os operadores aritméticos quando
precisamos
executar
operações
aritméticas
(matemáticas) sobre os nossos dados (variáveis);
Operador
Descrição
+
Adição
-
Subtração
*
Multiplicação
/
Divisão
%
Retorna o resto da divisão
inteira de a por b
()
Parênteses
Operadores aritméticos
• 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;
numerador / denominador
Resultado
inteiro / inteiro
inteiro
inteiro/ real
real
real / inteiro
real
real/real
real
Operadores aritméticos
• 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;
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. Outra
coisa: o operador % não tem nada haver com
percentagem,
certo?
Operadores aritméticos
• 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:
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)
Operadores aritméticos
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 relacionais
• 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”;
Operador
Descrição
==
Igualdade
!=
Diferença (≠)
<
Menor
>
Maior
<=
Menor ou Igual (≤)
>=
Maior ou Igual (≥)
Operadores relacionais
Sintaxe
Variavel operador Valor
Variável1 operador variável2
Variavel operador Expressão Aritmética
Expressão Aritmética operador Expressão Aritmética
Expressões relacionais
X == 10
X>Y
X<Y+Z
X*Y>Z/W
Operadores lógicos
• 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
!
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 dos operadores:
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.
Operadores aritméticos
• Operadores de atribuição:
• 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;
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
Operadores aritméticos
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;
Operador
Exemplos de Uso
Descrição
++
X++;
Equivale a X = X + 1;
--
Y--;
Equivale a Y = Y -- 1;
Conversão do tipo
• 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 do tipo - exemplo
int A,B,C;
float X,Y;
A=3;
B=5;
X=6.5;
C = (int)X % B;
Y = (float)A/B;
Conversão do 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;
Funções matemáticas – math.h
• 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);
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);
pow
R = sqrt(A);
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);
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);
floor
Z = ceil(Z);
Exemplo
• Ler o nome e duas notas do usuário e imprimir a
média na tela;
#include <stdio.h
<stdio.h>
stdio.h>
//ler o nome e as duas notas
do aluno e imprimir a media
main()
main()
{
char nome[20];
float nota1, nota2, media;
printf(“Calcular
printf(“Calcular a media do
aluno\
aluno\n\n”);
printf(“Seu
printf(“Seu nome: “);
fflush(
fflush(stdin);
stdin);
gets(nome);
gets(nome);
printf(“Nota
printf(“Nota 1: “);
scanf(“%f”,
scanf(“%f”, &nota1);
printf(“Nota
printf(“Nota 2: “);
scanf(“%f”,
scanf(“%f”, &nota2);
media = (nota1 + nota2)/2;
printf(“
printf(“\
(“\n\n%s,
n%s, sua media =
%.2f”, nome,
media);
getche();
getche();
}
Exemplo
• 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;
Exemplo
• Linha 8: printf para que o usuário saiba que precisa
fornecer seu nome;
• 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;
Exemplo
• 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!
• 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);
Exemplo
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;
Conheça mais
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
Operadores, expressões e funções
•O material para os estudos já está disponível no site
da disciplina em: http://hugovlsouza.com
•Dúvidas entre em contato com o professor por email: [email protected]
•Ou pelo http://facebook.com/hugovlsouza1
•Nas próximas aulas continuaremos com a lógica de
programação com na linguagem C estudando as
estruturas de controle;
Download

(06 - Operadores, Expressões e Funções [Modo de