Buscar

Slides do prof salerno sobre switch

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

rangel@dsc.ufcg.edu.br
*
*
rangel@dsc.ufcg.edu.br
*
Tópicos
3.1	Introdução
3.2	Algoritmos	
3.3	Pseudocódigo
3.4	Estruturas de Controle
3.5	Estrutura de Seleção If
3.6	Estrutura de Seleção If/Else
Estrutura de seleção múltipla switch
Instrução break
Usada para sair imediata e rapidamente de certas estruturas de controle
3.7	Estrutura de Repetição While
3.8	Formulação de Algoritmos: Estudo de Caso 1 (Repetição Controlada por Contador)
Introdução à Programação
*
rangel@dsc.ufcg.edu.br
*
Tópicos
3.9	Formulação de Algoritmos com Refinamento Top-down por Passos: Estudo de Caso 2 (Repetição Controlada por Sentinela)
3.10	Formulação de Algoritmos com Refinamento Top-down: 	 Estudo de Caso 3 (Estruturas de Controle Aninhadas)
3.11	Operadores de Atribuição
3.12	Operadores de Incremento e Decremento
Introdução à Programação
*
rangel@dsc.ufcg.edu.br
*
3.1 Introdução
Precauções antes da escrita de um programa
Visão sinótica do problema
 
Planejamento cuidadoso de uma estratégia para solução do problema
Precauções durante a escrita de um programa
 
Conhecimento dos “blocos de construção” disponíveis
Uso de princípios adequados de programação
*
rangel@dsc.ufcg.edu.br
*
Bohm & Jacopini
Todos os programas escritos em termos de 3 estruturas de controle
Estruturas Seqüenciais
Por default, programas executados seqüencialmente (como ocorre em C) 
Estruturas de Seleção
Há três tipos em C: if, if/else e switch
Estruturas de Repetição
Há três tipos em C: while, do/while e for
3.4 Estruturas de Controle
*
rangel@dsc.ufcg.edu.br
3.5	Tomada de Decisão: Operadores de Igualdade e Relacionais
Comandos executáveis
Realização de ações (cálculos, entrada/saída de dados)
Tomada de decisões
Decisão de impressão "passa" ou "falha" a partir de um teste de condição
Estrutura de controle if
Versão simples neste ponto, maior detalhamento posteriormente
Se a condição for verdadeira, então o corpo do comando if será executado
Igual a 0 é falso, diferente de zero é verdadeiro
O controle sempre prossegue após o comando if
*
*
rangel@dsc.ufcg.edu.br
3.5	Tomada de Decisão: Operadores de Igualdade e Relacionais
*
≠
≤
≥
*
rangel@dsc.ufcg.edu.br
*
A estrutura de seleção if é uma estrutura do tipo única entrada/ única saída
Uma decisão pode ser tomada em qualquer expressão 
zero - falsa 
diferente de zero - Verdadeira 
3.6 Estrutura de Seleção if
*
rangel@dsc.ufcg.edu.br
3.6 Estrutura de Seleção if
Se média do aluno for maior ou igual a 7,0, o aluno foi aprovado por média
#include <stdio.h>
int main() {
float n1, n2, n3, media;
printf(“Entre com as 3 notas do aluno:\n");
 scanf( "%f %f %f", &n1, &n2, &n3 ); 
media= (n1+n2+n3)/3;
If (media > 7.0)
Printf(“aluno aprovado por média\n”);
{
*
*
rangel@dsc.ufcg.edu.br
*
If/Else
Código em C
if (media > 7.0)
printf(“aluno aprovado por média\n”);
	else
 	printf("Você vai para a final ou foi reprovado por média\n"); 
3.7 Estrutura de Seleção if-else
*
rangel@dsc.ufcg.edu.br
3.7 Estrutura de Seleção if-else
If/Else
Código em C
if (media >= 7.0)
printf(“Aprovado por média\n”);
else if (media<7.0 && media >= 4.0)
 	printf("Vai para a final\n”);
else
	 printf (“Reprovado por nota\n"); 
*
*
rangel@dsc.ufcg.edu.br
3.7 Estrutura de Seleção if-else
If/Else
Código em C
if (media >= 7.0)
printf(“Aprovado por média\n”);
else if (media >= 4.0)
 	printf("Vai para a final\n”);
else
	 printf (“Reprovado por nota\n"); 
*
*
rangel@dsc.ufcg.edu.br
*
If/Else
Operador condicional ternário ? :
Uso de três argumentos
Condição, valor1 se verdadeira, valor2 se falsa
return (a>b ? 0 : 1);
hora = (h>=0 && h<24)? h : 0;
	
3.7 Estrutura de Seleção if-else
*
rangel@dsc.ufcg.edu.br
*
If/Else
Operador condicional ternário ? :
	media_final >= 7 ? printf(“Você passou por média\n”) : printf(“Você vai para a final ou foi reprovado por média \n”);
	ou
	
	printf("%s\n", media_final >= 7 ? "Você passou por média" : "Você vai para a final ou foi reprovado por média"); 
	
3.7 Estrutura de Seleção if-else
*
rangel@dsc.ufcg.edu.br
*
Pseudocódigo para uma estrutura If/Else aninhada
	Se nota for maior ou igual a 9,0
		Imprima “Conceito A”
	Caso contrário
		Se nota for maior ou igual a 8,0 e menor do que 9,0 
	 		Imprima “Conceito B”
		Caso contrário 
			Se nota for maior ou igual a 7,0 e menor do que 			8,0 
				Imprima “Conceito C”
			Caso contrário 
	 			Se nota for maior ou igual a 6,0 e menor do que 			7,0 
					Imprima “Conceito D”
				Caso contrário 
					Imprima “Conceito I”
3.6 Estrutura de Seleção if-else
*
rangel@dsc.ufcg.edu.br
*
Instrução Composta
 
Série de instruções encerradas por um par de chaves ({ })
Exemplo
if ( media_final >= 7 ) 
 printf( “Você passou por média\n" );
else
{
 printf( “Se sua soma de notas for maior do que 12,5, você vai para a final\n" );
 printf(“Caso contrário, você foi reprovado\n");
} 
3.7 Estrutura de Seleção if-else
*
rangel@dsc.ufcg.edu.br
*
Instrução Composta
 
Análise do exemplo
Sem as chaves, a declaração
printf(“Caso contrário, você foi reprovado\n");
	seria executada automaticamente
Com as chaves, a referida declaração só será executada se o if for falso
3.6 Estrutura de Seleção if-else
*
rangel@dsc.ufcg.edu.br
*
Blocos
Instruções compostas por declarações e comandos
Erros de Sintaxe
Percebidos e acusados pelo compilador
Erros Lógicos
Exercem influência no tempo de execução do programa
Não fatais
Execução do programa  Saída incorreta
Fatais
Encerramento prematuro do programa
3.7 Estrutura de Seleção if-else
*
rangel@dsc.ufcg.edu.br
Exercícios
Faça um programa que receba o valor de uma distância, em quilômetros, a ser percorrida por um veículo, o seu consumo (km/l) e a quantidade de litros de combustível que ele possui. 
A seguir, emita uma mensagem informando se o veículo precisará ser reabastecido para percorrer a distância prevista. Caso necessite de ser reabastecido, informe a quantidade de combustível necessária
*
*
rangel@dsc.ufcg.edu.br
Exercícios
Refaça o problema do IMC, mostrando na tela a situação do usuário de acordo com a tabela abaixo.
 OBS.: IMC = peso/altura2
*
*
rangel@dsc.ufcg.edu.br
*
*
3.7	Estrutura de Seleção Múltipla switch
Switch
A instrução switch é usada quando queremos testar várias possibilidades de fluxo de código mas não queremos usar vários else if  Decisões múltiplas
Esta instrução compara uma expressão (valor) com todas as constantes, caso seja verdadeira ela executa as sequências de comandos daquela constante. Caso todas as alternativas sejam falsas o comando default é executado 
Os cases não aceitam operadores lógicos. Portanto, não é possível fazer uma comparação 
Série de rótulos case e um rótulo opcional default
switch (valor) {
case '1':
ações 
case '2':
ações
default:
ações
}
 
 
*
rangel@dsc.ufcg.edu.br
*
void menu (void){
 int opcao;
 printf("1. Depositar\n");
 printf("2. Retirar\n");
 printf("3. Mostrar Saldo\n");
 printf("0. Sair\n");
 scanf("%d", &opcao");
switch(opcao) {
 case '1':
 depositar();
 break;
O switch executa seu bloco em cascata. Ou seja, se a variável indicar para o primeiro case e dentro do switch tiver 5 cases, o switch executará todos os outros 4 cases a não ser que utilizemos o comando para sair do switch 
break;  Abandono da estrutura
case '2':
 retirar();
 break;
case '3':
 saldo();
 break;
case 0:
 return 0;
default:
 printf ("Opção inválida!\n");
}
3.7	Estrutura de Seleção Múltipla switch
*
rangel@dsc.ufcg.edu.br
*
Exercícios
Criar um programa para ler o preço e a categoria de um produto. Calcular e mostrar o reajuste de acordo com a categoria: A=50%, B=25%,
C=15 % e outras 5%.
Considerando somente o alfabeto, construir um programa para ler uma letra e mostrar uma das seguintes mensagens: “Vogal maiúscula”, “Vogal minúscula” ou “Consoante”.
rangel@dsc.ufcg.edu.br
*
José Eustáquio Rangel de Queiroz
Joseluce de Farias Cunha
Roberto Medeiros de Faria
DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO
UNIVERSIDADE FEDERAL DE CAMPINA GRANDE
CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Teste o Premium para desbloquear

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

Outros materiais