ameliara freire [email protected]. toda linguagem de programação, existem operadores que nos...

28
Aula 5 - Operadores, Expressões e Funções Matemáticas Ameliara Freire [email protected]

Upload: internet

Post on 18-Apr-2015

109 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

Aula 5 - Operadores, Expressões e Funções

MatemáticasAmeliara Freire

[email protected]

Page 2: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 3: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 4: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 5: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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?

Page 6: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 7: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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)

Page 8: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 9: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 10: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

Operador Descrição

== Igualdade

!= Diferença (≠)

< Menor

> Maior

<= Menor ou Igual (≤)

>= Maior ou Igual (≥)

Operadores Relacionais

Page 11: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 12: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 13: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

Operador Lógico Operador Lógico em C

E &&

OU ||

NÃO !

Operadores Lógicos

Page 14: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 15: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 16: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 17: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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;

Page 18: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 19: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 20: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 21: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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)

Page 22: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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)

Page 23: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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)

Page 24: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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”, &nota1);printf(“Nota 2: “);scanf(“%f”, &nota2);media = (nota1 +

nota2)/2;printf(“\n\n%s, sua media

= %.2f”, nome,media);getche();}

Page 25: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 26: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 27: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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

Page 28: Ameliara Freire ameliara.fjn@gmail.com. Toda linguagem de programação, existem operadores que nos permitem armazenar, modificar, comparar e avaliar dados

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