estruturas condicionais no c - facom | faculdade de...
TRANSCRIPT
Aula 6 – Oficina de Programação Estruturas Condicionais no C
Profa. Elaine Faria UFU - 2017
Estrutura Condicional Simples
Algoritmo
se (<condição>) entao instrução fimse
A instrução só será executada se condição for verdadeira
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;
Operadores Relacionais
Algoritmo Linguagem C< <> >
<= <=>= >== ==
<> !=
Comando ifExemplo: #include <stdio.h>
int main(){ int num; printf(“Digite um numero: ”); scanf(“%d”, &num); if(num == 2) { printf(“\nNumero dois.”); }
return 0;}
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
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.
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;}
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
Estrutura Condicional CompostaLinguagem C
if (<condição>) { instrução1; ou } else { instrução2; }
if (<condição>) instrução1; else instrução2;
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;}
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.
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;}
#include <stdio.h>
int main(){ int num; printf(“Digite um numero: ”); scanf(“%d”,&num); if(num == 2); { printf(“\nNumero dois.”); }
return 0;}
Erros comuns
Erros comuns#include <stdio.h>
int main(){ int num; printf(“Digite um numero”); scanf(“%d”, &num); if(num = 2) { printf(“Numero dois.”); }
return 0;}
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;}
Estrutura Condicional
Quando usar chaves no comando if-else?
Na dúvida, sempre use as chaves.
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.
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;}
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
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
Operadores Lógicos
int main(){ int num; printf(“Digite um numero: ”); scanf(“%d”, &num); if(!num) { printf(“\nVoce digitou o numero 0”); }}
• Exemplo:• !exp1
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
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
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
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.
int main(){
int diaDaSemana;
printf(“\nEscolha um número entre 1 e 7: ”);
scanf(“%d”, &diaDaSemana);
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!”); }}
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
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”);
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.
Comando switch
Comando switchFormato:
switch (expressão constante){
case constante1: instruções;
break;case constante2:
instruções; break;
default:instruções;
}
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
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”);}
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 (:)
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”);
}
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
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
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
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
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
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.
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
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
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.
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.
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
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.