Você está na página 1de 19

Estruturas Condicionais

Prof. Msc Sandro M Malta


Comando if
▪ O comando if representa uma tomada de decisão do tipo "SE isto ENTÃO
execute"
▪ A sua forma geral é: if (condição) declaração;
▪ A condição do comando if é uma expressão que será avaliada. Se a condição for
verdadeira a declaração a seguir será executada, caso contrário ele será pulado, e
o programa continuará a ser executado normalmente.
▪ A declaração pode ser um bloco de código ou apenas um comando.
▪ No caso da declaração ser um bloco de código, temos que colocar o conjunto de
instruções entre chaves naturalmente:

if(condição)
{
<Comando_em _C>;
.......................
<Comando_em _C>;

}
Estrutura if else
▪ Em alguns casos, se a condição não for verdadeira é necessário
executar um bloco de código específico. Isto é, esse novo bloco
só é executado se a condição for falsa.
▪ Para esses casos existe a estrutura if_else, apresentada a seguir:
Exemplo 1
#include<stdlib.h>
#include<stdio.h>
int main ()
{
char idade;
char nome [50];

printf ("Digite seu nome\n");


gets(nome);
printf ("Digite sua idade\n");
scanf ("%d",&idade);

if(idade>=0)
printf ("Seu nome e`%s e tem %d anos ",nome,idade);
else
printf ("Seu nome e`%s mas nao existe idade negativa. Reinicie o
programa.\n\n ",nome);

system("pause");
return 0;
}
Estrutura if-else if- else
▪ Existem situações em que é necessário analisar várias
situações excludentes entre si. A primeira solução é a
estrutura if_else_if, cuja sintaxe é apresentada a seguir:

if (condição_1) declaração_1;
else if (condição_2) declaração_2;
else if (condição_3) declaração_3;
.
.
.
else if (condição_n) declaração_n;
else declaração_default;.
Exemplo 2
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
int main ()
{
char vogal;
printf ("Digite uma vogal\n\n");
vogal = getch();

if(vogal =='a'||vogal =='A' )


printf("Voce digitou a primeira vogal\n\n");
else if(vogal =='e'||vogal =='E' )
printf("Voce digitou a segunda vogal\n\n");
else if(vogal =='i'||vogal =='I' )
printf("Voce digitou a terceira vogal\n\n");
else if(vogal =='o'||vogal =='O' )
printf("Voce digitou a quarta vogal\n\n");
else if(vogal =='u'||vogal =='U' )
printf("Voce digitou a quinta vogal\n\n");
else
printf("ERRO !!!! Voce nao digitou uma vogal\n\n");
system("pause");
return(0);
}
Exemplo 3
#include<stdlib.h>
#include<stdio.h>

int main ()
{

int num;
printf ("Digite um numero positivo menor ou igual 200:\n\n ");
scanf ("%d",&num);

if(num>=0 && num<=200 )


printf("Parabéns! %d está na faixa desejada\n\n",num);
else if (num>200)
printf("Erro!!! %d é positivo mas é maior do que 200\n\n",num);
else
printf("Erro!!! %d é negativo\n\n",num);

system("pause");
return(0);
}
Exemplo 3 com a função
setlocale
#include<stdlib.h>
#include<stdio.h>
#include <locale.h>

int main ()
{
setlocale(LC_ALL, "Portuguese");
int num;
printf ("Digite um numero positivo menor ou igual 200:\n\n ");
scanf ("%d",&num);

if(num>=0 && num<=200 )


printf("Parabéns! %d está na faixa desejada\n\n",num);
else if (num>200)
printf("Erro!!! %d é positivo mas é maior do que200\n\n",num);
else
printf("Erro!!! %d é negativo\n\n",num);

system("pause");
return(0);
}
Comando switch
▪ A segunda solução para várias condições de teste é o switch.

▪ O switch testa se uma determinada variável corresponde a uma das


constantes especificadas no case e executa a respectiva declaração.

▪ A declaração default é opcional e será executada apenas se a


variável, que está sendo testada, não for igual a nenhuma das
constantes.

▪ O comando break, faz com que o switch seja interrompido assim que
uma das declarações seja executada. Mas ele não é essencial ao
comando switch.

▪ Se após a execução da declaração não houver um break, o programa


continuará a ser executado seqüencialmente.
Comando switch
Exemplo 4
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>

int main()
{
char vogal;
printf("\nDigite uma vogal com letra minuscula: \n\n");
vogal= getch();
switch(vogal)
{
case 'a':
printf("\tVoce digitou a letra a.\n\n");
break;
case 'e':
printf("\tVoce digitou a letra e.");
break;
case 'i':
printf("\tVoce digitou a letra i.");
break;
case 'o':
printf("\tVoce digitou a letra o.");
break;
case 'u':
printf("\tVoce digitou a letra u.");
break;
default:
printf("Voce nao seguiu a instrucao anterior.");
}
printf("\n\n");
system("pause");
return 0;
}
Exemplo 5
#include<stdlib.h>
#include<stdio.h>

int main()
{
int num;
printf("\nDigite um numero inteiro menor ou igual a 4: \n\n");
scanf("%d",&num);

switch(num)
{
case 1:
printf("\tVoce digitou 1");
break;
case 2:
printf("\tVoce digitou 2");
break;
case 3:
printf("\tVoce digitou 3");
break;
case 4:
printf("\tVoce digitou 4");
break;
default:
printf("Voce nao seguiu a instrucao anterior.");
}
printf("\n\n");
system("pause");
return 0;
}
Exercícios
1) Explique o que está errado ao fazer: if(num = 10). O que irá ocorrer?
2) Elabore um programa em C que determine as raízes da equação do
segundo grau 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0. Caso o delta seja negativo, o
programa deve enviar a mensagem: A equação fornecida não possui
raízes reais. O valores de a, b e c devem ser fornecidos pelo usuário
através do teclado.
3) Faça um programa em C que verifique se três números
correspondem aos lados de um triângulo. Caso sejam, o programa
deve classificar o triângulo em: equilátero, isósceles ou escaleno. Se
não forem, o programa deve imprimir a seguinte mensagem: “Os
números não correspondem aos lados de um triângulo”. Os três
números devem ser introduzidos pelo usuário através do teclado.

• Dica:Três dimensões formam os lados de um triângulo se cada uma


delas for menor que a soma das outros duas.
Exercícios
4) Elabore um programa em C de uma calculadora que possa somar, subtrair,
multiplicar e dividir, através dos seguintes passos:

1. Insira um pequeno texto na tela dizendo o que o programa faz; exemplo:


Calculadora
2. Solicite ao usuário que ele digite o primeiro operando;
3. Solicite ao usuário que ele digite o segundo operando;
4. Apresente um menu na tela, exemplo:
Escolha uma das opções:
a - para somar
b - para subtrair
c - para multiplicar
d - para dividir

5. Imprima na tela a letra selecionada;


6. Imprima o resultado da operação, exemplo:
Op1 * Op2 = Resp
Exercícios
5) Elabore um programa que verifique se um número inteiro (inserido
pelo usuário através do teclado) é par ou ímpar.
6) Faça um programa em C que solicite ao usuário digitar um número
entre 1 e 7 e retorne o dia da semana relativo ao número digitado (
Exemplo: 1 = domingo, 2 segunda feira e assim por diante). Faça
uma versão do programa utilizando o comando switch e outra
versão utilizando a estrutura if else if.
7) Elabore um programa em C que solicite ao usuário um número
inteiro e verifique se o número é positivo ou negativo.
8) Faça um programa em C que solicite ao usuário um letra do alfabeto
e verifique se a letra digitada é uma vogal ou consoante. Faça uma
versão do programa utilizando o comando switch e outra versão
utilizando a estrutura if else if.
9) Escreva um programa em C que leia dois números inteiros e
determine qual é o menor.
Exercícios
10) O cardápio de uma lanchonete é o seguinte:

Implemente um programa que leia o código do item pedido, a


quantidade e calcule o valor a ser pago por aquele lanche.
Considere que a cada execução somente será calculado um
item. Use o comando switch.
Exercícios
11) Tendo como dados de entrada a altura e o sexo de uma
pessoa, construa um algoritmo que calcule seu peso ideal,
utilizando as seguintes fórmulas:
● para homens: (72.7 * h) – 58;
● para mulheres: (62.1 * h) – 44.7.

12) Uma loja fornece 10% de desconto para funcionários e 5%


de desconto para clientes vips. Faça um programa que
calcule o valor total a ser pago por uma pessoa. O programa
deverá ler o valor total da compra efetuada e um código que
identifique se o comprador é um cliente comum (a),
funcionário (b) ou vip (c). Faça o código utilizando o
comando switch.
Exercícios
13) Faça um programa em C que receba um número complexo
na forma retangular (Z = a + jb) e o converta para a forma
polar ( Z = Z ).
14) Desenvolva um programa e C que receba do usuário,
o nome de dois times de futebol e o placar de um jogo
entre eles. Ao final o programa deve informar se o
resultado foi empate ou a vitória de um dos times.
Referências

SILVA, Rosângela F. Apostila Introdução ao C. CEFET-MG,


Belo Horizonte

SOUZA, John K S. Apostila Introdução à programação.


CEFET-MG, Belo Horizonte.

http://pt.wikipedia.org/wiki/ASCII. Acessado em 29/05/14

Você também pode gostar