28
MC-102 — Aula 05 Revis˜ ao e detalhes sobre express˜oes matem´ aticas Instituto de Computa¸ ao – Unicamp Primeiro Semestre de 2011

MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

MC-102 — Aula 05Revisao e detalhes sobre expressoes matematicas

Instituto de Computacao – Unicamp

Primeiro Semestre de 2011

Page 2: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

roteiro

1 organizacao do computador

2 algoritmo

3 memoria

4 entrada e saıda

5 operacoes matematicas

6 conversao de tipos

7 expressoes logicas

MC-102 — Aula 04

Page 3: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

computador

um computador e uma maquina que, a partir de uma entrada(dispositivo de entrada), realiza calculos matematicos e/oulogicos (processador e memoria), gerando uma saıda(dispositivo de saıda).

MC-102 — Aula 04

Page 4: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

programando computadores

sequencia de passos, precisos e ’bem definidos’, para arealizacao de uma tarefa.

programar: transcrever um determinado algoritmo para umalinguagem de programacao.

existem varias linguagens, porem, neste curso, estamosinteressados em C.

fluxograma

ideia ⇒ algoritmo ⇒ codigo fonte ⇒ Compilador ⇒ programa emcodigo de maquina.

MC-102 — Aula 04

Page 5: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

variaveis

tipo nome;

exemplos

int inteiro;

float real;

char letra;

o nome deve ser descritivo e ’fazer sentido’ e nao ser umapalavra reservada (if, return etc).

MC-102 — Aula 04

Page 6: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

entrada

instrucao scanf.

sintaxe

#include <stdio.h>

...

int inteiro;

float real;

char letra;

scanf("%d %f %c", &inteiro, &real, &letra);

...

operador & - endereco de memoria de uma variavel.

MC-102 — Aula 04

Page 7: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

saıda

instrucao printf.

sintaxe

#include <stdio.h>

...

printf("Hello world!");

printf("%d %f %c", inteiro, real, letra);

printf("%s", string);

...

MC-102 — Aula 04

Page 8: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

atribuicao

atribuir um valor de uma expressao a uma variavel significacalcular o valor daquela expressao e copiar aquele valor parauma determinada variavel.

o operador de atribuicao e o sinal de igual (=) - le-se ’recebe’.

a esquerda do operadorde atribuicao deve existirsomente o nome de umavariavel.

=

a direita, deve haver umaexpressao cujo valor seracalculado e armazenadona variavel

MC-102 — Aula 04

Page 9: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

expressao

ja vimos que constantes, variaveis e enderecos de variaveis saoexpressoes.

uma expressao tambem pode ser um conjunto de operacoesaritmeticas, logicas ou relacionais utilizadas para fazer“calculos” sobre os valores das variaveis.

Exemplo

a + b

calcula a soma de a e b

MC-102 — Aula 04

Page 10: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

Expressoes

< expressao > + < expressao >: Calcula a soma de duasexpressoes.ex: a = a + b;

< expressao > - < expressao >: Calcula a subtracao de duasexpressoes.ex: a = a - b;

< expressao > * < expressao >: Calcula o produto de duasexpressoes.ex: a = a * b;

MC-102 — Aula 04

Page 11: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

expressoes

< expressao > / < expressao >: calcula o quociente de duasexpressoes.ex: a = a / b;

< expressao > % < expressao >: calcula o resto da divisao(inteira) de duas expressoes.ex: a = a % b;

- < expressao >: inverte o sinal da expressao.ex: a = -b;

MC-102 — Aula 04

Page 12: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

expressoes

as expressoes aritmeticas (e todas as expressoes) operamsobre outras expressoes.

e possıvel compor expressoes complexas como por exemplo:a = b + 2 + c

qual o valor da expressao 5 + 10 % 3?e da expressao 5 * 10 % 3?

MC-102 — Aula 04

Page 13: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

precedencia

precedencia e a ordem na qual os operadores serao calculadosquando o programa for executado. Em C, os operadores saocalculados na seguinte ordem:

* e /, na ordem em que aparecerem na expressao.%+ e -, na ordem em que aparecerem na expressao.

MC-102 — Aula 04

Page 14: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

alterando a precedencia

(< expressao >) tambem e uma expressao, que calcula oresultado da expressao dentro dela para so entao permitir queas outras expressoes executem. Deve ser utilizada quando aordem da precedencia nao atende aos requisitos do programa.Ex: 5 + 10 % 3 retorna 6, enquanto (5 + 10) % 3 retorna 0

voce pode usar quantos parenteses desejar dentro de umaexpressao, contanto que utilize o mesmo numero deparenteses para abrir e fechar expressoes.

MC-102 — Aula 04

Page 15: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

incremento(++) e decremento(−−)

operadores de incremento e decremento tem duas funcoes:servem como uma expressao e incrementam ou decrementamo valor da variavel ao qual estao associados em uma unidade.ex: c++ — incrementa o valor da variavel c em uma unidade

dependendo da posicao do operador de incremento edecremento, uma funcao e executada antes da outra.

MC-102 — Aula 04

Page 16: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

incremento(++) e decremento(−−)

operador a esquerda da variavel: primeiro a variavel eincrementada, depois a expressao retorna o valor daexpressao. Ex:

#include <stdio.h>

main () {

int a = 10;

printf ("%d", ++a);

}

Imprime 11

MC-102 — Aula 04

Page 17: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

incremento(++) e decremento(−−)

operador a direita da variavel: primeiro a expressao retorna ovalor da variavel, e depois a variavel e incrementada. Ex:

#include <stdio.h>

int main (void) {

int a = 10;

printf ("%d", a++);

}

imprime 10

MC-102 — Aula 04

Page 18: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

incremento(++) e decremento(−−)

em uma expressao, os operadores de incremento e decrementosao sempre calculados primeiro (tem maior precedencia)

#include <stdio.h>

int main (void) {

int a = 10;

printf ("%d", a * ++a);

}

Imprime 121

MC-102 — Aula 04

Page 19: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

Atribuicoes simplificadas

Uma expressao da forma

a = a + b

onde ocorre uma atribuicao a uma das variaveis da expressao podeser simplificada como

a += b

MC-102 — Aula 04

Page 20: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

atribuicoes simplificadas

comando Exemplo Corresponde a:

+= a += b a = a + b;

-= a -= b a = a - b;

∗= a *= b; a = a * b;

/= a /= b; a = a / b;

%= a %= b; a = a % b;

MC-102 — Aula 04

Page 21: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

conversao de tipos

e possıvel converter alguns tipos entre si.

existem duas formas de faze-lo: implıcita e explıcita:

implıcita

capacidade (tamanho) do destino deve ser maior que a origemex.: int a; short b; a = b;

operacoes entre int e float sempre convertem para float

explıcita:

Aplicavel a variaveis e expressoesex. a = (int)( (float)b / (float)c );

nao modifica o tipo “real” da variavel, so o valor de umaexpressao.ex. int a; (float)a=1.0; ← Errado

MC-102 — Aula 04

Page 22: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

um uso da conversao de tipos

a operacao de divisao (/) possui dois modos de operacao deacordo com os seus argumentos: inteira ou de ponto flutuante.

Se os dois argumentos forem inteiros, acontece a divisaointeira. A expressao 10 / 3 tem como valor 3.

Se um dos dois argumentos for de ponto flutuante, acontece adivisao de ponto flutuante. A expressao 1.5 / 3 tem comovalor 0.5.

quando se deseja obter o valor de ponto flutuante de uma divisao(nao-exata) de dois inteiros, basta converter um deles para pontoflutuante:

Exemplo

a expressao 10 / (float) 3 tem como valor 3.33333333

MC-102 — Aula 04

Page 23: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

exemplo sobre tipos

#include <stdio.h>

int main () {

int numerador = 3, denominador = 2;

float fracao_1 = numerador/denominador;

float fracao_2 = numerador/(float) denominador;

float fracao_3 = numerador/(denominador+0.0);

printf ("O resultado da divisao eh: %d\n", numerador/denominador);

printf ("O resultado da divisao eh: %f\n", fracao_1);

printf ("O resultado da divisao eh: %f\n", fracao_2);

printf ("O resultado da divisao eh: %f\n", fracao_3);

return 0;

}

MC-102 — Aula 04

Page 24: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

expressoes relacionais

expressoes relacionais sao aquelas que realizam uma comparacaoentre duas expressoes e retornam

1 zero (0), se o resultado e falso

2 um (1), ou qualquer outro numero diferente de zero, se oresultado e verdadeiro.

MC-102 — Aula 04

Page 25: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

expressoes relacionais

comando Corresponde a:

== igual

<= menor ou igual

>= maior ou igual

< menor

> maior

!= diferente

MC-102 — Aula 04

Page 26: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

expressoes logicas

uma ou mais expressoes relacionais, agrupadas com:

1 && - ’e’ logico (diferente de zero se todas as expressoesenvolvidas sao)

2 || - ’ou’ logico (diferente de zero se pelo menos uma dasexpressoes e diferente de zero)

3 ! - negacao (e diferente de zero se a expressao e zero)

MC-102 — Aula 04

Page 27: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

comandos condicionais

comando if/else, cuja sintaxe e:if (express~ao logica) {

comandos executados se a expressao e verdadeira

} else {comandos executados se a expressao e falsa

}

MC-102 — Aula 04

Page 28: MC-102 — Aula 05 Revis˜ao e detalhes sobre express˜oes ...ra089067/mc102/mc102-aula05.pdf · 6 convers˜ao de tipos 7 expresso˜es l´ogicas MC-102 — Aula 04. organizac¸˜ao

organizacao do computadoralgoritmomemoria

entrada e saıdaoperacoes matematicas

conversao de tiposexpressoes logicas

resolucao de exercıcios

comparacao de tres numeros (aula anterior).

teste de mesa.

outros (comparacao de horarios, letras maiusculas eminusculas, calculadora).

duvidas.

MC-102 — Aula 04