Baixe o app para aproveitar ainda mais
Prévia do material em texto
Informática Aplicada Aula 3 – Testes e CondiçõesAula 3 – Testes e Condições Profª Náthalee Cavalcanti de Almeida Email: nathalee.almeida@ufersa.edu.br 20/03/2013 • Valores lógicos • Condições lógicas Agenda • Operadores relacionais • Operadores lógicos • if-else, switch, break Valores Lógicos • A linguagem C possui apenas quatro tipos de dados ( int, float, char e double). • Em C não existe nenhum tipo que permita representar valores lógicos (Verdadeiro e Falso). • O valor lógico FALSO é representado por 0 e tudo aquilo que seja diferente de 0 representa o valor lógico VERDADEIRO. . Operadores Relacionais Operador Nome Exemplo Significado do Exemplo == Igualdade a==b a é igual a b? > Maior que a > b a é maior que b?> Maior que a > b a é maior que b? >= Maior ou Igual que a > = b a émaior ou igual a b? < Menor que a < b a é menor que b? <= Menor ou Igual que a <=b a é menor ou igual a b? != Diferente de a ! = b a é diferente de b? Operadores Relacionais Uma expressão que contenha um operador relacional devolve sempre como resultadorelacional devolve sempre como resultado o valor lógico VERDADE (1) ou FALSO (0). Exemplo: Implemente um programa que solicite ao usuário dois inteiros e, em seguida, aplique todos os operadores relacionais de C aos inteiros lidos. #include <stdio.h> main () { int x,y; printf (“Digite 2 inteiros:”); Exemplo: scanf (“%d%d”,&x,&y); printf (“O Resultado de %d ==%d: %d\n”, x, y, x==y); printf (“O Resultado de %d > %d: %d\n”, x, y, x > y); printf (“O Resultado de %d >= %d: %d\n”, x, y, x >= y); printf (“O Resultado de %d < %d: %d\n”, x, y, x < y); printf (“O Resultado de %d <= %d: %d\n”, x, y, x <= y); printf (“O Resultado de %d != %d: %d\n”, x, y, x !=y); Exemplo Digite dois inteiros: 7 5 O Resultado de 7 == 5 : 0 O Resultado de 7 > 5 : 1 O Resultado de 7 >= 5 : 1 O Resultado de 7 < 5 : 0O Resultado de 7 < 5 : 0 O Resultado de 7 <= 5 : 0 O Resultado de 7 != 5 : 1 Operadores Relacionais Atenção!!!!! O operador == verifica se duas expressões são iguais, enquanto o operador = é utilizado para atribuição de valores a variáveis. if-else Sintaxe: if (condição) instrução 1;instrução 1; [else instrução 2;] Exemplo: Implemente um programa que indique se um número é positivo ( >= 0) ou negativo. #include <stdio.h> main ( ) {{ int x; printf (“ Digite um número:”); scanf (“%d”, &x); if (x>=0) printf (“Número Positivo\n”); else printf (“Número Negativo\n”); } Exemplo Implemente um programa que indique se o inteiro lido é zero ou não. Resposta # include <stdio.h> main ( ) { int x; printf (“digite um número”);printf (“digite um número”); scanf (“%d”, &x); if (x!=0) printf (“%d não é zero!!!\n”,x); else printf (“%d é igual a zero!!!\n”,x); } Exercício Implemente um programa que adicione $1.000,00 ao salário de um indíviduo, caso este seja inferior a $100.000,00. Resposta # include <stdio.h> main () { float salario;float salario; printf (“Qual o salário: ”); scanf (“%f”, &salario); if (salario < 100000) salario = salario +1000; printf ( “Salário Final: %.2f\n”, salario); } Bloco de Instruções . Escreva um programa que leia dois números e os apresente por ordem crescente. # include <stdio.h> main ( ) { int x,y, tmp; printf (“Digite dois números:”);printf (“Digite dois números:”); scanf (“%d%d”,&x, &y); if (x > y) { x=y; y=tmp; } printf (“%d %d\n”, x,y); } Instruções if-else Encadeadas . Escreva um programa que solicite um salário Escreva um programa que solicite um salário ao usuário e mostre o imposto a pagar. Resposta . # include <stdio.h> main ( ) { float salario; printf (“Digite o salário:”);printf (“Digite o salário:”); scanf (“%f”, &salario); if (salario <=0) printf (“Salário: Valor Inválido\n”); else if (salario > 1000) printf (“Imposto= %.2f\n”,salario*0.10); else printf (“Imposto=%.2f\n”,salario*0.05); } Operadores Lógicos . Operador Significado Exemplo && AND (E lógico) x >= 1 && x <= 19 || OR (OU lógico) x == 1 || x == 2 ! NOT (Negação lógica ! Continuar Precedência dos Operadores Lógicos e Relacionais . A expressão 2+3*4 devolve o valor 14 e não 20. Tabela de Precedência Operador < <= > >= == != && || . • Quando o compilador tem que decidir qual a ordem pela qual as operações são realizadas executa as operações com maior precedência. Ex: if (x!=10 || y >1 && y < 10) Precedência dos Operadores Lógicos e Relacionais - Maior precedência: > e <, então y > 1 e y < 10 são realizados primeiro. - Em seguida, != , x!= 10 - Falta realizar || e &&, porém em C o && tem maior prioridade que o ||. switch . Sintaxe: switch (expressão) {{ case constante1:instruções1; case constante2:instruções2; ...... case constanten:instruçõesn; [default: instruções;] } Exemplo . Escreva um programa que indique qual o estado civil correspondente a um caractere digitado em maiúsculas.maiúsculas. Resposta . #include <stdio.h> main () { char Est_Civil; printf (“Qual o estado civil:”); scanf (“%c, &Est_Civil); switch (Est_Civil) switch (Est_Civil) { case ‘C’: printf(“Casado\n”); case ‘S’: printf(“Solteiro\n”); case ‘D’: printf(“Divorciado\n”); case ‘V’: printf(“Viúvo\n”); default: printf (“Estado Civil Incorreto\n”); } } break .• Permite parar a execução dentro de um switch, continuando o programa na instrução seguinte ao switch. Programa anterior com o break . #include <stdio.h> main () { char Est_Civil; printf (“Qual o estado civil:”); scanf (“%c, &Est_Civil); switch (Est_Civil) switch (Est_Civil) { case ‘C’: printf(“Casado\n”); break; case ‘S’: printf(“Solteiro\n”); break; case ‘D’: printf(“Divorciado\n”); break; case ‘V’: printf(“Viúvo\n”); break; default: printf (“Estado Civil Incorreto\n”); } }
Compartilhar