Buscar

Aula 4 - Estrutura Condicional

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Estrutura Condicional
*
Estrutura condicional
Até o momento, estudamos apenas a estrutura sequencial, ou seja, a estrutura na qual as ações são executadas na ordem em que aparecem no programa.
Nem sempre desejamos que todas as instruções sejam executadas. 
Em algumas aplicações podem se fazer necessários alguns testes que condicionam a execução de determinado código.
Para isso utilizaremos estrutura condicional que se utiliza de operadores relacionais e operadores lógicos.
*
Operadores Relacionais
Podemos realizar comparações entre dois valores de mesmo tipo básico.
Os operadores relacionais descrevem a comparação a ser realizada entre os termos.
*
Exemplo
Dadas as variáveis inteiras a, b, c e d, onde:
		a = 5;
		b = 2;
		c = 7;
		d = 5;
 Analisemos as seguintes expressões:
	a >= b	
	b == c
	d != a
	c <= a + b
	d > c - b
 Verdadeiro
 Falso
 Falso
 Verdadeiro
 Falso
*
Exemplo 1
Em C:
0 é falso;
Valor diferente de 0 é verdadeiro.
O resultado de uma comparação em um programa em C é 1 se verdadeiro e 0 se falso.
Veja o programa abaixo:
#include <stdio.h>
main()
{
	printf ("%d\n", 27 > 5);
	 printf ("%d\n", 12 >= 10 + 5 - 3);
	 printf ("%d\n", 10 != 15 - 3 - 2) ; 
}
*
Operadores Lógicos
É possível combinar mais de um teste relacional ou modificar seu resultado, usando-se os operadores lógicos.
E : resulta em valor verdadeiro se ambas expressões forem verdadeiras e falso em caso contrário.
OU: resulta em verdadeiro se qualquer uma das expressões for verdadeira e falso em caso contrário.
NÃO: resulta em verdadeiro se a expressão for falsa e falso se a expressão for verdadeira.
*
Exemplo
Dadas as variáveis inteiras a, b, c e d, onde:
		a = 10;
		b = 4;
		c = 7;
		d = 6;
 Analisemos as seguintes expressões:
	a >= b && c > d	
	b == c || a >= d
	d != a && !(b < d)
	c > a + b || a != b + d 
	!(a - d - b)
 Verdadeiro
 Verdadeiro
 Falso
 Falso
 Verdadeiro
*
Exemplo 2
#include <stdio.h>
main()
{
	int a, b, c, d;
	a = 10;
	b = 4;
	c = 7;
	d = 6;
	 printf ("%d\n", a >= b && c > d);
	 printf ("%d\n", b == c || a >= d);
	 printf ("%d\n", d != a && !(b < d));
	 printf ("%d\n", c > a + b || a != b + d);
	 printf ("%d\n", !(a - d - b));
}
*
Estrutura condicional simples (Se)
Com a estrutura condicional é possível determinar qual ação será executada, com base no resultado de uma expressão condicional.
Forma geral:
	Se (expressão)
	Início
		comando1;
		comando2;
		comando3;
	Fim
Uma expressão pode ser verdadeira ou falsa;
Os comandos 1, 2 e 3 só serão executados se a expressão for verdadeira!
*
Estrutura condicional simples (if)
Em C:
	 if (expressão)
	{	
		comando1;
		comando2;
		comando3;
	}
Os comandos entre chaves só serão executados se a expressão for verdadeira;
Se só tivermos um comando a ser executado se a expressão for verdadeira, o uso de chaves fica opcional:
	 if (expressão)
		comando1;
*
Fluxograma para if
expressão
comandos
V
F
Estrutura condicional simples (if)
*
Exemplo 3
Escreva um programa que avalia se uma pessoa pode tirar carteira de habilitação.
Algoritmo:
//Algoritmos que avalia se uma pessoa pode tirar carteira de habilitação.
Início
	inteiro idade;
	Escreva ("Digite sua idade: ");
	Leia (idade);
	Se (idade >= 18)
	Início
		 Escreva (“Ja pode obter habilitacao.”);
	Fim
Fim
*
Exemplo 3
Escreva um programa que avalia se uma pessoa pode tirar carteira de habilitação.
Programa:
#include <stdio.h>
int main() 
{
int idade;
printf("Digite sua idade: ");
scanf("%d", &idade);
/* Comparação com a idade mínima */
if (idade >= 18) 
{
	 printf("Ja pode obter habilitação!");
}
printf("Ate mais!");
}
*
Estrutura condicional composta (Se/Senão)
Forma geral:
	 Se (expressão)
	Início
		comando1;
		comando2;
	Fim
	Senão
	Início
		comando3;
		comando4;
	Fim
Se a expressão for verdadeira, os comandos 1 e 2 serão executados; caso contrário, a expressão é falsa e os comandos 3 e 4 serão executados.
*
Em C:
	 if (expressão)
{	
	comando1;
	comando2;
}
else
{	
	comando3;
	comando4;
}
Se a expressão for verdadeira, os comandos 1 e 2 serão executados; caso contrário, a expressão é falsa e os comandos 3 e 4 serão executados.
Estrutura condicional composta (if/else)
*
Fluxograma para if..else
condição
comandos1
V
comandos2
F
Estrutura condicional composta (if/else)
*
Exemplo 4 
Escreva um programa que leia um número inteiro e imprima uma mensagem informando se o número é par ou ímpar.
 Algoritmo
Início
	inteiro num;
	Escreva ("Digite um número inteiro: ");
	Leia (num);
	Se (num % 2 == 0)
	Início
	 Escreva ("O número digitado é par!\n");
	Fim
	Se não
	Início
	 Escreva ("O número digitado é ímpar!\n");
	Fim
Fim
*
Exemplo 4
Escreva um programa que leia um número inteiro e imprima uma mensagem informando se o número é par ou ímpar.
 Programa:
#include <stdio.h>
main()
{
	int num;
	printf ("Digite um numero inteiro: ");
	scanf("%d", &num);
	if (num % 2 == 0)
	{
	 printf ("O numero digitado eh par!\n");
	} 
	else
	{
	 printf ("O numero digitado eh impar!\n");
	}
}
*
Estrutura Condicional
Combinando condições
if (numero < 10) 
{
	printf(" Número fora do intervalo.");
}
if (numero > 20) 
{
	 printf("Número fora do intervalo.");
}
if ( (numero < 10) || (numero > 20) ) 
{
	printf("Número fora do intervalo.");
}
*
Estrutura Condicional
Combinando condições
if (numero >= 10) 
{
 if (numero <= 20) 
 {
	 printf(“Número dentro do intervalo.”);
 }
}
if ( (numero >= 10) && (numero <= 20) ) 
{
	 printf(“Número dentro do intervalo.”);
}
*
Exemplo 5
Elabore um algoritmo que dada a idade de um nadador classifica-o em uma das seguintes categorias:   infantil de 5 a 10 anos, juvenil de 11 a 17 anos ou adulto maior de 18 anos.
#include <stdio.h>
main()
{
	int idade;
	printf ("Digite a idade: ");
	scanf("%d", &idade);
	if (idade >= 5 && idade <=10)
	{
	 printf("Categoria infantil!\n");
	}
	if (idade >= 11 && idade <=17)
	{
	 printf("Categoria juvenil!\n");
	}
	if (idade >= 18)
	{
	 printf("Categoria adulto!\n");
	}
}
*
Estrutura condicional aninhada
Na estrutura condicional composta aninhada cada teste só é executado se o anterior houver falhado.
Estrutura Geral em algoritmo:
	 se (expressão1) então
Início	
	instruções1;
Fim
	 senão se (expressão2) então
Início	
	instruções2;
Fim
	 senão se (expressão3) então
Início	
	instruções3;
Fim
Senão
Início	
	 instruções4;
Fim;
*
Estrutura condicional aninhada
Estrutura Geral em C:
	 if(expressão1)
{	
	instruções1;
}
	 else if (expressão2)
{	
	instruções2;
}
	 else if (expressão3)
{	
	instruções3;
}
else
{	
	 instruções4;
}
*
Exemplo 5
Voltando ao exemplo:
#include <stdio.h>
main()
{
	int idade;
	printf ("Digite a idade: ");
	scanf("%d", &idade);
	if (idade >= 5 && idade <=10)
	{
	 printf("Categoria infantil!\n");
	}
	else if (idade >= 11 && idade <=17)
	{
	 printf("Categoria juvenil!\n");
	}
	else if (idade >= 18)
	{
	 printf("Categoria adulto!\n");
	}
	else
	{
		printf("Muito jovem para nadar!\n");
	}
}
*
Exemplo 6 
#include <stdio.h>
main()
{
	int num1, num2;
	printf("Digite o primeiro numero inteiro: ");
	scanf("%d", &num1);
	printf("Digite o segundo numero inteiro: ");
	scanf("%d", &num2);
	if ( num2 > num1 )
	{
 	 printf ("%d e maior.", num2);
 	}
 	else if (num1 > num2)
 	{
	 printf ("%d e maior.", num1);
 	}
 	else
	{
 	 printf("Os numeros sao iguais");
	}
 }
Escreva um programa que leia dois números inteiros e imprime na tela o maior dos dois ou uma mensagem informando que os dois números são iguais.
*
Exemplo 7
Uma empresa concederá um aumento de salário aos seus funcionários, variável de acordo com o cargo, conforme a tabela abaixo. Faça um programa que leia o salário e o código do cargo de um funcionário e calcule o novo salário. Se o cargo do funcionário não estiver na tabela, ele deverá, então, receber 40% de aumento. Mostre o salário antigo, o novo salário e a diferença.
			Código do Cargo 		Percentual
 		101(Gerente)		 10% 	102(Engenheiro)		 20% 	 	 103(Técnico) 		 30%
*
Exemplo
7
#include <stdio.h>
main()
{
	int codigo;
	float salario, novo, diferenca;
	printf ("Digite o codigo do cargo: ");
	scanf("%d", codigo);
	printf("Digite o salario: ");
	scanf("%f", salario);
	if (codigo == 101)
	 novo = salario + salario * 0.10;
	else if (codigo == 102)
	 novo = salario + salario * 0.20;
	else if (codigo == 103)
	 novo = salario + salario * 0.30;
	else
	 novo = salario + salario * 0.40;
	diferenca = novo - salario;
	printf("Antigo = %f\n", salario);
	printf("Novo = %f\n", novo);
 printf("Diferenca = %f", diferenca);	
}
*
Estrutura Condicional
Múltiplas escolhas para uma mesma variável
switch (variável) 
{
	case valor1: Comandos1;
	case valor2: Comandos2;
	...
	case valorK: ComandosK;
	default: ComandosD; 
}
default: caso não seja nenhum dos valores anteriores
*
Estrutura Condicional
break; para terminar sequência de comandos
switch (variável) 
{
	case valor1: 
			Comandos1;
			break;
	case valor2: 
	case valor3: 
	case valor4: 
			Comandos2;
			break;
	case valor5: 
			Comandos3;
			break;
}
*
Estrutura Condicional
switch (carac)
{
	case 'a':
	case 'e':
	case 'i':
	case 'o':
	case 'u':
		printf ("Uma vogal.\n");
		break;
	case '$':
		printf ("O cifrão.\n");
		break;
	default:
		printf ("Outro caractere.\n");
		break;
}
*
Para ser apta a doar sangue a pessoa deve ter entre 18 e 65 anos e pesar no mínimo 50kg. Escreva um algoritmo que leia a idade e o peso de uma pessoa e apresente na tela uma mensagem informando se ela pode ser doadora ou não.
Uma determinada companhia aérea só contrata aeromoças que preencham os seguintes requisitos:
	- Ter idade igual ou superior a 24 anos.
	- Ter altura igual ou superior a 1.70 m.
 	- Falar com fluência 2 ou mais idiomas.
	Escreva um algoritmo que leia a idade, a altura e a quantidade de idiomas falados com fluência de uma candidata e imprima uma mensagem informando se essa candidata atende ou não aos requisitos da companhia aérea.
A prefeitura de uma cidade abriu uma linha de crédito para os funcionários estatutários. O valor máximo da prestação não poderá ultrapassar 30% do salário bruto. Fazer um programa que permita entrar com o salário bruto e o valor da prestação, e informar se o empréstimo pode ou não ser concedido.
Exercícios
*
Ajude um proprietário de cachorro a calcular quantos dias um pacote de ração pode durar. Escreva um programa que leia o peso do cachorro em quilos e o peso da embalagem de ração em quilos, e calcule e imprima a quantidade de dias que o pacote de ração irá durar. A tabela abaixo indica a porção diária de acordo com a faixa de peso do cachorro:
Exercícios
*
 Em São Paulo, durante um determinado intervalo de horários, veículos cuja placa termina em:
1 ou 2: Não podem trafegar na segunda-feira;
3 ou 4: Não podem trafegar na terça-feira;
5 ou 6: Não podem trafegar na quarta-feira;
7 ou 8: Não podem trafegar na quinta-feira;
9 ou 0: Não podem trafegar na sexta-feira;
Escreva um programa que leia a parte numérica da placa de um carro e imprima uma mensagem adequada informando qual o dia da semana em que o veículo não pode circular.
Exercícios
*
*
*
*
*
*
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais