Estruturas Condicionais (if-ELSE)

30

description

muito bom

Transcript of Estruturas Condicionais (if-ELSE)

  • Estruturas de Decises

    Fabio Takeshi Matsunaga

    Universidade Estadual de Londrina UEL

    8 de julho de 2015

  • Reviso . . .

    Variveis;

    Funo printf e scanf;

    Operadores;

  • Variveis

    Um nome associado a um valor que pode ser acessado ou

    alterado pelo programa;

    Composto por nome, tipo e valor;

    Deve ser formado por combinaes de letras, dgitos e

    sublinhado;

    No deve comear com nmeros, conter acentuaes, smbolos

    especiais e no podem ser palavras-chaves da linguagem;

    1 int a = 2; // a passa a valer 2

    2 int b = 3; // b passa a valer 3

    3 int c = a+b; // c passa a valer 5

    4 a = a*c; // a passa a valer 10

  • Funo printf

    Usado para escrever resultados do programa;

    Usado para escrever uma cadeia (string) de caracteres passado

    como argumento entre aspas duplas;

    Essa cadeia de caracteres podem ser cadeias formatadoras,

    para formatar valores a serem escritos na sada;

    Estrutura: printf("cadeia formatadora", var1, var2, var3, . . . );

    1 printf("Dois numeros: %.2f e %d\n", 1.5, 2);

    2

    3 int a = 1;

    4 float b = 2;

    5 printf("Valor de a = %d e b = %f\n", a, b);

  • Funo scanf

    Usado para o programa interagir com o mundo externo,

    fazendo a entrada de dados pelo teclado;

    Utiliza strings de formatao para associar o formato do valor

    lido varivel (deve ser sempre compatvel);

    Estrutura: scanf("string de formatao", &var1);

    1

    2 int x;

    3 float y;

    4 char z;

    5

    6 scanf("%d" ,&x); // Le inteiro e armazena em x

    7 scanf("%f" ,&y); // Le real e armazena em y

    8 scanf("%c" ,&z); // Le caracter e armazena em z

  • Funo printf e scanf . . .

    String de formato Tipo de dado a ser impresso

    %d ou %i Inteiro (int)%f Real (oat)%lf Real de dupla preciso (double)%c Caractere (char)%s String

  • Operadores aritmticos

    Unrios operam sobre um nico operando

    Menos unrio (R = -x): utilizado para trocar o sinal algbricode um valor (positivo para negativo ou vice-e-versa) ou paramultiplicar um valor por -1;

    Binrios operam sobre dois operandos

    Soma (R = x+y): Soma dois valores;Subtrao (R = x-y): Subtrai dois valores (diferente domenos unrio, apesar de usarem o mesmo smbolo);Multiplicao (R = x*y): Produto de dois valores;Diviso (R = x/y): Diviso de dois valores;Mdulo (R = x%y): Resto da diviso de x com y;

  • Operadores relacionais

    Relacionais efetua comparao entre variveis, retornando 1se a expresso for verdadeira ou 0 se for falsa

    Maior que (R = x>y): Verica se x maior que y;Menor que (R = x=y): Verica se x maior ou igualque y;Menor ou igual a (R = x

  • Operadores lgicos

    Lgicos utilizado em expresses que retornam valoresverdadeiro ou falso de acordo com a lgica booleana(considera-se que os dois operandos x e y sejam do tipo boolou provenientes de expresses relacionais ou lgicas)

    AND (R = x&&y): resulta um valor VERDADEIRO (1) se osdois valores das variveis forem VERDADEIROS (1) e FALSO(0) caso contrrio;OR (R = x||y): resulta um valor VERDADEIRO (1) se pelomenos um dos valores forem VERDADEIROS (1) e FALSO (0)caso contrrio;NOT (R = !x): operador lgico unrio que inverte os valores,isto , se for VERDADEIRO (1) retorna FALSO (0), evice-e-versa;

  • Operadores lgicos

    Precedncia Operadores

    Maior precedncia (), [], ->

    - unrio, ++, , !, & (endereo), * (ponteiro)

    *, /, %

    +, - (binrios)

    , (operadores bit a bit)

    , = (relacionais)

    ==, != (igualdade)

    & (operador AND bit a bit)

    (operador XOR bit a bit)

    | (operador OR bit a bit)&& (AND lgico)

    || (OR lgico)?: (operador condicional ternrio)

    = (atribuio)

    Menor precedncia , (vrgula)

  • Operadores de incremento

    1 #include

    2

    3 int main() {

    4 int x = 0;

    5

    6 x = x+1; // Aumenta x em 1

    7

    8 x = x+3; // Aumenta x em 3

    9

    10 x = x-1; // Diminui x em 1

    11

    12 x = x*4; // Multiplica o x por 4

    13

    14 x = x/2; // Divide x pela metade

    15

    16 x = x%2; // Atribui o resto da divisao por 2

    17 }

  • Operadores de incremento (simplicao)

    1 #include

    2

    3 int main() {

    4 int x = 0;

    5

    6 x+=1; // Aumenta x em 1

    7

    8 x+=3; // Aumenta x em 3

    9

    10 x-=1; // Diminui x em 1

    11

    12 x*=4; // Multiplica o x por 4

    13

    14 x/=2; // Divide x pela metade

    15

    16 x%=2; // Atribui o resto da divisao por 2

    17 }

  • Comandos de deciso

    Observao importante: sempre inicialize a varivel que forincrementar ou decrementar com algum valor (veja a linha4), pois se voc no inicializar a varivel no comeo, causarum erro interno no seu programa ou gerar resultadosindesejveis. Imagine a situao:

    1 #include

    2

    3 int main() {

    4 int x; // x n o foi inicializado

    5

    6 x = x+1; // Aumenta x em 1

    7 printf("x = %d\n", x); // I m p r i m i r um valor

    invalido (lixo)

    8

    9 getchar ();

    10 }

  • Operadores de incremento

    Incremento/Decremento operadores que incrementam oudecrementam valores de uma varivel

    Incremento (x++ ou ++x): incrementa o valor de x em 1.

    Equivale a x = x+1;

    Decremento (x ou x): decrementa o valor de x em 1.Equivale a x = x-1;

  • Operadores de incremento pr-xado

    1 #include

    2

    3 int main() {

    4 int x,y;

    5

    6 x = 10;

    7 y = ++x; // Incremento pre -fixado

    8 printf("x = %d, y = %d\n",x,y);

    9 }

    O programa acima imprimir x = 11, y = 11

  • Operadores de incremento

    1 #include

    2

    3 int main() {

    4 int x,y;

    5

    6 x = 10;

    7 y = x++; // Incremento pos -fixado

    8 printf("x = %d, y = %d\n",x,y);

    9 }

    O programa acima imprimir x = 11, y = 10

  • Comandos if

    Estrutura de um comando if:if (condio)

    Instruo;

    Ou:

    if (condio) {

    Instruo 1

    Instruo 2

    }

  • Exemplo 1

    1 #include

    2 #include

    3

    4 int main() {

    5 int a;

    6

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

    8

    9 if (a

  • Exemplo 2

    1 #include

    2 #include

    3

    4 int main() {

    5 int a, b;

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

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

    8

    9 if (a>b) {

    10 printf("a eh maior do que b\n");

    11 }

    12 if (a

  • Comando if-else

    Lembrando que o comando if s executa a(s) instruo(oes)caso a condio de teste seja verdadeira. Caso no seja, a

    instruo no ser executada.

    O comando else existe para executar um outro conjunto deinstrues caso a condio ou expresso do if for falsa.

  • Comandos if-else

    Estrutura de um comando if-else:if (condio) {

    Instrues;

    } else {

    Outro conjunto de Instrues;

    }

  • Exemplo 2

    1 #include

    2 #include

    3

    4 int main() {

    5 int a, b;

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

    7

    8 if (a>0) {

    9 printf("Voce digitou um numero positivo\n");

    10 }

    11 else {

    12 printf("Voce digitou um numero negativo\n");

    13 }

    14

    15 system("pause");

    16 }

  • Exemplo 2

    1 #include

    2 #include

    3

    4 int main() {

    5 int a, b;

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

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

    8

    9 if (a>b) {

    10 printf("a eh maior do que b\n");

    11 }

    12 else {

    13 printf("b eh maior do que a\n");

    14 }

    15

    16 system("pause");

    17 }

  • Comandos if-else aninhados

    Estrutura de um comando if-else:if (condio 1) {

    Instrues;

    }

    else if (condio 2) {

    Outro conjunto de Instrues;

    }

    else if (condio 3) {

    Outro conjunto de Instrues;

    }

    else if (condio 4) {

    Outro conjunto de Instrues;

    }

  • Comandos if-else aninhados

    Estrutura de um comando if-else:if (condio 1) {

    Instrues;

    }

    else if (condio 2) {

    Outro conjunto de Instrues;

    }

    else if (condio 3) {

    Outro conjunto de Instrues;

    }

    else if (condio 4) {

    Outro conjunto de Instrues;

    }

  • Exemplo 1

    1 int main() {

    2 int a, b;

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

    4

    5 if (a>0) { // Se a>0, positivo

    6 printf("Voce digitou um numero positivo\n");

    7 }

    8 else if (a

  • Exemplo 2

    1 int main(){

    2 int a, b, c;

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

    4

    5 if (a>=b && a>=c)

    6 printf("%d eh o maior\n", a);

    7 else {

    8 if(b>=a && b>=c)

    9 printf("%d eh o maior\n", b);

    10 else

    11 printf("%d eh o maior\n", c);

    12 }

    13 }

  • Exerccios

    Faa um programa que leia quatro notas de um aluno e calcule a

    mdia de notas. Em seguida, verique se o aluno foi aprovado ou

    reprovado, considerando a mdia 7.0.

  • Exerccios

    Faa um programa que leia quatro notas de um aluno e calcule a

    mdia de notas. Em seguida, verique se o aluno foi aprovado ou

    reprovado, considerando a mdia 7.0. Entretanto, se a mdia for

    menor do que 7.0 (a princpio reprovao), se a nota for maior do

    que 5.0, o aluno car de EXAME. Considere o exame tambm na

    lista de condies no seu programa.

  • Exerccios

    Faa um programa que leia um valor e verque se ele par, mpar

    ou zero. No esquea de imprimir o resultado na tela.