estruturas condicionais no c - facom | faculdade de...

49
Aula 6 – Oficina de Programação Estruturas Condicionais no C Profa. Elaine Faria UFU - 2017

Upload: others

Post on 06-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Aula 6 – Oficina de Programação Estruturas Condicionais no C

Profa. Elaine Faria UFU - 2017

Page 2: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Estrutura Condicional Simples

Algoritmo

se (<condição>) entao instrução fimse

A instrução só será executada se condição for verdadeira

Page 3: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Estrutura Condicional Simples

Linguagem C if (<condição>)

{ instrução; ou } • O comando if instrui o programa a tomar uma

decisão simples• No caso de uma única instrução, as chaves são

opcionais

if (<condição>) instrução;

Page 4: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Operadores Relacionais

Algoritmo Linguagem C< <> >

<= <=>= >== ==

<> !=

Page 5: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando ifExemplo: #include <stdio.h>

int main(){ int num; printf(“Digite um numero: ”); scanf(“%d”, &num); if(num == 2) { printf(“\nNumero dois.”); }

return 0;}

Page 6: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Estrutura Condicional SimplesAlgoritmo se (<condição>) entao instrução1 instrução2 instrução3 fimse

instrução1, instrução2 e instrução3 só serão executados se condição for verdadeira

Page 7: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Estrutura Condicional SimplesLinguagem C

if (<condição>) { instrução1; instrução2; instrução3; }

Caso várias instruções sejam necessárias no corpo do comando if elas obrigatoriamente devem estar entre chaves.

Page 8: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando ifExemplo:#include <stdio.h>int main(){ int num; printf(“Digite um número: ”); scanf(“%d”, &num); if(num == 2) { printf(“Numero dois.”); printf(“Pressione qualquer tecla para terminar”); } return 0;}

Page 9: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Estrutura Condicional CompostaAlgoritmo se (<condição>) entao instrução1 senao instrução2 fimse

• Caso condição seja VERDADEIRA, então instrução1 será executada• Caso condição seja FALSA, então instrução2 será executada

Page 10: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Estrutura Condicional CompostaLinguagem C

if (<condição>) { instrução1; ou } else { instrução2; }

if (<condição>) instrução1; else instrução2;

Page 11: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando if-elseExemplo:int main(){ int num; printf(“Digite um numero: ”); scanf(“%d”, &num); if(num == 2) { printf(“\nNumero igual a dois.”); } else { printf(“\nNumero diferente de dois”); }

return 0;}

Page 12: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Estrutura Condicional CompostaLinguagem C if (<condição>) { instrução1; instrução2; } else { instrução3; instrução4; }

Caso várias instruções sejam necessárias no corpo do comando if e/ou else elas devem obrigatoriamente estar entre chaves.

Page 13: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando if-elseint main(){ int num; printf(“Digite um número: ”); scanf(“%d”, &num); if(num == 2) { printf(“\nNumero: ”, num);

} else { printf(“\nNumero diferente de dois”); printf(“\nPressione qualquer tecla para terminar”); } return 0;}

Page 14: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

#include <stdio.h>

int main(){ int num; printf(“Digite um numero: ”); scanf(“%d”,&num); if(num == 2); { printf(“\nNumero dois.”); }

return 0;}

Erros comuns

Page 15: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Erros comuns#include <stdio.h>

int main(){ int num; printf(“Digite um numero”); scanf(“%d”, &num); if(num = 2) { printf(“Numero dois.”); }

return 0;}

Page 16: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Erros comuns#include <stdio.h>int main(){ int num; printf(“Digite um número: ”); scanf(“%d”, &num);

if(num == 2) printf(“\nNumero dois.”); printf(“\nPressione uma tecla para sair”);

return 0;}

Page 17: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Estrutura Condicional

Quando usar chaves no comando if-else?

Na dúvida, sempre use as chaves.

Page 18: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Operadores Lógicos• A linguagem C oferece 3 operadores chamados lógicos:

• && lógico E• || lógico OU• ! lógico de negação

• Se exp1 e exp2 são duas expressões simples, então:• exp1 && exp2 é verdadeira se exp1 e exp2 são verdadeiras• exp1 || exp2 é verdadeira se uma das duas exp1 ou exp2 for verdadeira ou as duas exp1 e exp2 forem verdadeiras.• !exp1 é verdadeira se exp1 for falsa e vice-versa.

Page 19: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Operadores Lógicos• Exemplo:

• exp1 && exp2 int main(){ int num; printf(“Digite um numero: ”); scanf(“%d”, &num); if(num > 0 && num < 10) { printf(“\nVoce digitou um numero entre 0 e 10”); }

return0;}

Page 20: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Operadores Lógicos

int main(){ int num; printf(“Digite um numero: ”); scanf(“%d”, &num); if(num > 0 || num < 10) { printf(“\Numero maior que 0 ou menor que 10”); }

return 0;}

• Exemplo:• exp1 || exp2

Page 21: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Operadores Lógicos

int main(){ int num; printf(“Digite um numero: ”); scanf(“%d”, &num); if(num < 0 || num > 10) { printf(“\nVoce não digitou um numero entre 0 e 10”); }

return 0;}

• Exemplo:• exp1 || exp2

Page 22: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Operadores Lógicos

int main(){ int num; printf(“Digite um numero: ”); scanf(“%d”, &num); if(!num) { printf(“\nVoce digitou o numero 0”); }}

• Exemplo:• !exp1

Page 23: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Operador condicional ternário ?:• O operador condicional ternário é equivalente

ao comando if-else

• Ele apresenta uma forma compacta de escrever uma operação simples if-else

• Forma geral do operador ternário: condição ? expressão_1: expressão_2

Page 24: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Operador condicional ternário ?:• A condição equivale a uma expressão lógica

avaliada como true e false.

• Se a condição é verdadeira (não zero) a expressão_1 é executada; se falsa a expressão_2 é executada.

• Exemplo: num = (num1 > num2) ? num1 : num2

Page 25: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

if – else

Operador condicional ternário ?:

if (num ==1) printf(“Numero 1”);else printf(“Numero diferente de 1”);

condição

instrução_1

instrução_2

Page 26: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

ExemploConstrua um programa usando a linguagem C que receba um número de 1 a 7 e informe o dia da semana correspondente, sendo domingo o dia de número 1. Se o número não corresponder a um dia da semana, é mostrada uma mensagem de erro.

Page 27: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

int main(){

int diaDaSemana;

printf(“\nEscolha um número entre 1 e 7: ”);

scanf(“%d”, &diaDaSemana);

Page 28: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

switch (diaDaSemana) { case 1: printf(“\nDomingo”) ; break; case 2: printf(“\nSegunda-feira”); break; case 3: printf(“\nTerça-feira”); break; case 4: printf(“\nQuarta-feira”); break; ... default: printf(“\nDia inválido!”); }}

Page 29: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

AlgoritmoComando “escolha... Caso”

escolha(num) caso 1

escreva(“Numero igual a 1”) caso 2

escreva(“Numero igual a 2”) caso 3

escreva(“Numero igual a 3”) caso 4

escreva(“Numero igual a 4”) caso 5

escreva(“Numero igual a 5”) outrocaso escreva(“Numero maior que 5”)fimescolha

Page 30: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

if - else : várias alternativasif(num == 1)

printf(“Numero igual a 1”);else if (num == 2)

printf(“Numero igual a 2”);else if (num == 3)

printf(“Numero igual a 3”);else if (num == 4)

printf(“Numero igual a 4”);else if (num == 5)

printf(“Numero igual a 5”);else printf(“Numero maior que 5”);

Page 31: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Linguagem C

• Comando “switch”

• útil quando o programa necessita escolher uma entre várias alternativas.

• similar ao comando if-else mas tem maior flexibilidade e formato limpo e claro.

• dependendo do valor de uma variável, uma operação diferente é executada.

Page 32: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando switch

Page 33: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando switchFormato:

switch (expressão constante){

case constante1: instruções;

break;case constante2:

instruções; break;

default:instruções;

}

Page 34: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

ExemploTraduza o algoritmo abaixo para a Linguagem C

escolha(num) caso 1

escreva(“Numero igual a 1”) caso 2

escreva(“Numero igual a 2”) caso 3

escreva(“Numero igual a 3”) caso 4

escreva(“Numero igual a 4”) outrocaso escreva(“Numero maior que 4”)fimescolha

Page 35: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando switchswitch (num){ case 1: printf(“Numero igual a 1”); break; case 2:

printf(“Numero igual a 2”); break;

case 3: printf(“Numero igual a 3”); break; case 4: printf(“Numero igual a 4”); break; default:

printf(“Numero maior que 4”);}

Page 36: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando switch

• O comando switch avalia a expressão entre parênteses, após a palavra switch, e compara seu valor com os rótulos dos cases.

• A expressão entre parêntese deve ser de valor inteiro ou caractere.

• Cada case pode ser seguido por uma constante do tipo inteiro ou caractere. A linha do case deve sempre terminar com dois pontos (:)

Page 37: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando switchExemplo

switch (num){

case 1: printf(“Numero igual a 1”); num = num + 1; break;

case 2: printf(“Numero igual a 2”);break;

default: printf(“Numero diferente de 1 e 2”);

}

Page 38: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

switch (num){

case 1: printf(“Numero igual a 1”); num = num + 1;

break;case 2:

printf(“Numero igual a 2”);break;

default: printf(“Numero diferente de 1 e 2”);

}

Comando switchExemplo Expressão: inteiro ou caractere

Rótulo do case

Rótulo do case

Page 39: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando switch

• Pode haver uma ou mais instruções seguindo cada case. Estas instruções não precisam estar entre chaves.

• O corpo de um switch deve estar envolto por chaves

• Os rótulos dos cases devem ser todos diferentes

Page 40: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando switchExemplo

switch (num){

case 1: printf(“Numero igual a 1”); num = num + 1; break;

case 2: printf(“Numero igual a 2”);break;

default: printf(“Numero diferente de 1 e 2”);

}

Instruções do case 1

Instruções do case 2

Page 41: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando switch• Se um rótulo do case tiver o valor igual ao

da expressão, a execução começa nele.

• Se nenhum case for satisfeito e existir um default: a execução começara nele, senão o programa processará as instruções seguintes ao bloco switch. - A instrução default: é opcional

Page 42: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando switchExemplo

switch (num){

case 1: printf(“Numero igual a 1”); num = num + 1; break;

case 2: printf(“Numero igual a 2”); break;

default: printf(“Numero diferente de 1 e 2”);

}Opcional

Page 43: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando switch

• O comando break causa uma saída imediata do switch.

• Se não existir um comando break seguindo as intruções de um case, o programa segue executando todas as intruções dos cases abaixo.

Page 44: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando switch com breakSuponha que num seja igual a 1

switch (num){

case 1: printf(“Numero igual a 1”); num = num + 1; break;

case 2: printf(“Numero igual a 2”); break;default: printf(“Numero diferente de 1 e 2”);

}

Executa as instruções do case 1

Sai do switch

Page 45: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Comando switch sem breakSuponha que num seja igual a 1

switch (num){

case 1: printf(“Numero igual a 1”); num = num + 1;

case 2: printf(“Numero igual a 2”);

default: printf(“Numero diferente de 1 e 2”);

}

Executa as instruções do case 1

Executa as instruções do case 2

Executa as instruções do default

Page 46: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Exercício1- Elaborar um programa em linguagem C para

somar dois números inteiros e mostrar o valor da soma na tela. Caso a soma dos números seja maior que 10 mostrar uma mensagem informativa na tela.

2- Elaborar um programa em linguagem C que receba dois números e mostre a diferença do maior pelo menor

3- Faça um programa em C que leia um nro inteiro e mostre uma mensagem indicando se este número é par ou ímpar, e se é positivo ou negativo.

Page 47: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Exercício4- Um usuário deseja um ter um programa em que possa escolher que tipo de média deseja calcular a partir de 3 notas. Faça um programa em C que leia as notas, a opção escolhida pelo usuário e calcule a média.

1 -aritmética 2 -ponderada (pesos: 3,3,4)

5- Construa um programa em C para ler a primeira letra do estado civil de uma pessoa e mostrar uma mensagem com a descrição. Considere: ‘c’ para casado, ‘s’ para solteiro, ‘v’ para viúvo, ‘d’ para divorciado e ‘q’ para desquitado.

Page 48: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Exercícios6 - Construa um programa em C que tenha como dados de entrada o preço de um produto e um código de origem. Mostre o preço junto com sua procedência (Ex: 500.00 – Sul). Caso o código não seja nenhum dos especificados, o produto deve ser encarado como importado.

1 Sul 5 Nordeste2 Norte 6 Sudeste3 Leste 7 Centro Oeste4 Oeste 8 Centro Sul

Page 49: Estruturas Condicionais no C - FACOM | Faculdade de ...elaine/disc/OP/Aula6-EstruturasCondiconais-C.pdf · Aula 6 – Oficina de Programação Estruturas Condicionais no C ... Estrutura

Exercícios7- Construa um programa em C que lê um número de 1 a 12 e informe o mês do ano correspondente. Se o número não corresponder a um mês do ano, é mostrada uma mensagem de erro.