30
1/29 BCC 201 - Introdu¸ ao ` a Programa¸ ao Controle de Fluxo Comandos de decis˜ ao multipla Guillermo C´ amara-Ch´ avez UFOP

BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

1/29

BCC 201 - Introducao a Programacao

Controle de FluxoComandos de decisao multipla

Guillermo Camara-ChavezUFOP

Page 2: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

2/29

Lembrando a aula passada . . . I

Page 3: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

3/29

Lembrando a aula passada . . . II

I Comando de decisao:

i f ( e x p r ){

. . . // s e f o r VERDADEIRA}e l s e{

. . . // s e f o r FALSA}

Page 4: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

4/29

Lembrando a aula passada . . . III

I Pseudocodigo e fluxograma

s e e x p r ent ao. . .

sen ao. . .

f i m s e

Entrada

condicao

Comando 1Comando 2

Saıda

sim

nao

Page 5: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

5/29

Lembrando a aula passada . . . IV

Ler quatro notas escolares de um aluno e imprimir umamensagem dizendo que o “aluno foi aprovado” se o valor damedia escolar for maior ou igual a 7,0. Se a media for entre5,0 e 6,9 a mensagem deve aparecer como “Esta emRecuperacao” e se a media for inferior a 5.0 o “aluno estareprovado”.

Page 6: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

6/29

Lembrando a aula passada . . . V

...

media ≥ 7

Escreva“Aprovado”

media ≥ 5

Escreva “Emrecuperacao”

Escreva“Reprovado”

...

sim

nao

sim

nao

Page 7: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

7/29

Lembrando a aula passada . . . VI

#i n c l u d e <s t d i o . h>i n t main ( ){

d o u b l e nota1 , nota2 , nota3 , nota4 ;d o u b l e media ;p r i n t f ("Inserir 4 notas" ) ;s c a n f (" %lf %lf %lf %lf" ,

&nota1 , &nota2 , &nota3 , &nota4 ) ;media = ( nota1+nota2+nota3+nota4 ) / 4 ;i f ( media >= 7)

p r i n t f ("Aluno aprovado \n" ) ;e l s e i f ( media >= 5)

p r i n t f ("Esta em Recuperac~ao \n" ) ;e l s e

p r i n t f ("Aluno reprovado \n" ) ;r e t u r n 0 ;

}

Page 8: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

8/29

Lembrando a aula passada . . . VII

...

media ≥ 7Escreva

“Aprovado”

media ≥ 5e

media < 7

Escreva “Emrecuperacao”

media < 5Escreva

“Reprovado”

...

sim

sim

sim

Page 9: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

9/29

Lembrando a aula passada . . . VIII

#i n c l u d e <s t d i o . h>i n t main ( ){

d o u b l e nota1 , nota2 , nota3 , nota4 ;d o u b l e media ;p r i n t f ("Inserir 4 notas" ) ;s c a n f (" %lf %lf %lf %lf" ,

&nota1 , &nota2 , &nota3 , &nota4 ) ;media = ( nota1+nota2+nota3+nota4 ) / 4 ;i f ( media >= 7)

p r i n t f ("Aluno aprovado \n" ) ;i f ( media >= 5 && media < 7)

p r i n t f ("Esta em Recuperac~ao \n" ) ;i f ( media < 5)

p r i n t f ("Aluno reprovado \n" ) ;r e t u r n 0 ;

}

Page 10: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

10/29

Lembrando a aula passada . . . IX

#i n c l u d e <s t d i o . h>i n t main ( ){

d o u b l e nota1 , nota2 , nota3 , nota4 ;d o u b l e media ;p r i n t f ("Inserir 4 notas" ) ;s c a n f (" %lf %lf %lf %lf" ,

&nota1 , &nota2 , &nota3 , &nota4 ) ;media = ( nota1+nota2+nota3+nota4 ) / 4 ;i f ( media >= 7)

p r i n t f ("Aluno aprovado \n" ) ;i f ( media >= 5 & media < 7)

p r i n t f ("Esta em Recuperac~ao \n" ) ;e l s e

p r i n t f ("Aluno reprovado \n" ) ;r e t u r n 0 ;

}

Codigo certo?

Page 11: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

11/29

Lembrando a aula passada . . . X...

media ≥ 7Escreva

“Aprovado”

media ≥ 5e

media < 7

Escreva “Emrecuperacao”

Escreva“Reprovado”

...

sim

sim

nao

#i n c l u d e <s t d i o . h>i n t main ( ){

d o u b l e nota1 , nota2 , nota3 , nota4 ;d o u b l e media ;p r i n t f ("Inserir 4 notas" ) ;s c a n f (" %lf %lf %lf %lf" ,

&nota1 , &nota2 , &nota3 , &nota4 ) ;media = ( nota1+nota2+nota3+nota4 ) / 4 ;i f ( media >= 7)

p r i n t f ("Aluno aprovado \n" ) ;i f ( media >= 5 & media < 7)

p r i n t f ("Esta em Recuperac~ao \n" ) ;e l s e

p r i n t f ("Aluno reprovado \n" ) ;r e t u r n 0 ;

}

Codigo errado!! Mostra duas mensagens se nota >= 7

Page 12: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

12/29

Estrutura seletiva I

O objetivo do comando e verificar varias possibilidades para valoresde uma variavel ou expressaoFluxograma

idade

Escreva“20 anos”

Escreva“15 anos”

Escreva“5 anos”

Escreva“25 anos”

Escreva“30 anos”

20155 25 30

Page 13: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

13/29

Estrutura seletiva II

Pseudocodigo

E s c o l h a < e x p r e s s a o−de−s e l e c a o >caso < exp 1 >

< l i s t a −de−comandos−1 >caso < exp 2 >

< l i s t a −de−comandos−2 >caso < exp 3 >

< l i s t a −de−comandos−3 >. . .o u t r o c a s o

< l i s t a −de−comandos−n >f i m e s c o l h a

Page 14: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

14/29

Estrutura seletiva III

C/C++

s w i t c h ( e x p r e s s a o ) {c a s e c o n s t 1 :

grupo de comandos 1 ;b r e a k ;

c a s e c o n s t 2 :grupo de comandos 2 ;b r e a k ;

. . .d e f a u l t :

grupo de comandos d e f a u l t ;}

Page 15: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

15/29

Estrutura seletiva IV

Funciona da seguinte forma:

I switch verifica se a expressao e equivalente a const1,

I se for, executa o grupo de comandos 1 ate que encontre umbreak.

I Se a expressao nao for igual a const1, verifica a relacao comconst2 e assim por diante.

I Se nao for nenhum dos valores, o grupo de comandosdefault e executado.

Page 16: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

16/29

Estrutura seletiva V

Os dois trechos de programa abaixo sao equivalente

s w i t c h ( x ) {c a s e 1 :

p r i n t f ("x eh 1" ) ;b r e a k ;

c a s e 2 :p r i n t f ("x eh 2" ) ;b r e a k ;

d e f a u l t :p r i n t f ("valor de x desconhecido" ) ;

}

Page 17: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

17/29

Estrutura seletiva VI

i f ( x == 1)p r i n t f ("x eh 1" ) ;

e l s e{

i f ( x == 2)p r i n t f ("x eh 2" ) ;

e l s ep r i n t f ("valor de x desconhecido" ) ;

}

Page 18: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

18/29

Estrutura seletiva VII

Se nao usamos o comando break em cada case o programacontinuaria ate o fim do bloco

s w i t c h ( x ) {c a s e 1 :

// s e x f o r 1 , p a s s a por a q u ic a s e 2 :

// s e x f o r 1 ou 2 , p a s s a por a q u ic a s e 3 :

p r i n t f ("x eh 1, 2 ou 3" ) ;b r e a k ;

d e f a u l t :p r i n t f ("x n~ao eh nem 1, nem 2 e nem 3" ) ;

}

Page 19: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

19/29

Estrutura seletiva VIII

I O switch so permite comparar expressoes com constantes.

I Se precisarmos comparar com variaveis ou verificar faixasde valores, devemos usar o comando if.

Page 20: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

20/29

Exemplo 1 I

Escreva um programa que leia o codigo de um determinadoproduto e mostre a sua classificacao. Utilize a tabela abaixo comoreferencia:

Codigo Classificacao

1 Alimento nao-perecıvel2 Alimento perecıvel3 Vestuario4 Limpeza

Page 21: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

21/29

Exemplo 1 II

Fluxograma

Inicio

cod

Escreva“DigiteCodigo”

Leia cod

cod

Escreva“Vestuario”

Escreva“Alimentoperecıvel”

Escreva“Alimento

nao-perecıvel”

Escreva“Limpeza”

Escreva“Produto

nao existe”

Fim

321 4 outro caso

Page 22: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

22/29

Exemplo 1 III

Pseudocodigo

I n i c i oi n t e i r o : cod ;E s c r e v a ("Digite codigo" ) ;L e i a ( cod ) ;E s c o l h a cod

caso 1E s c r e v a ("Alimento nao-perecivel" ) ;

caso 2E s c r e v a ("Alimento perecivel" ) ;

caso 3E s c r e v a ("Vestuario" ) ;

caso 4E s c r e v a ("Limpeza" ) ;

o u t r o c a s oE s c r e v a ("Produto nao existe" ) ;

f i m e s c o l h aFim

Page 23: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

23/29

Exemplo 1 IV

i n t main ( ){

i n t cod ;p r i n t f ("Inserir codigo produto \n" ) ;s c a n f (" %d" , &cod ) ;s w i t c h ( cod ){

c a s e 1 :p r i n t f ("Alimento nao-perecivel \n" ) ; b r e a k ;

c a s e 2 :p r i n t f ("Alimento perecivel \n" ) ; b r e a k ;

c a s e 3 :p r i n t f ("Vestuario \n" ) ; b r e a k ;

c a s e 4 :p r i n t f ("Limpeza \n" ) ; b r e a k ;

d e f a u l t :p r i n t f ("Produto nao existe \n" ) ;

}r e t u r n 0 ;

}

Page 24: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

24/29

Exemplo 2Dada uma letra, escreva na tela se essa letra e ou nao uma vogal(pode considerar apenas letras minusculas).

i n t main ( ){

c h a r l e t r a ;p r i n t f ("Inserir uma letra \n" ) ;s c a n f (" %c" , &l e t r a ) ;s w i t c h ( l e t r a ){

c a s e ’a’ :c a s e ’e’ :c a s e ’i’ :c a s e ’o’ :c a s e ’u’ :

p r i n t f ("Vogal!! \n);

break;

default:

printf("Nao eh uma v o g a l \n");}

return 0;

}

Page 25: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

24/29

Exemplo 2Dada uma letra, escreva na tela se essa letra e ou nao uma vogal(pode considerar apenas letras minusculas).

i n t main ( ){

c h a r l e t r a ;p r i n t f ("Inserir uma letra \n" ) ;s c a n f (" %c" , &l e t r a ) ;s w i t c h ( l e t r a ){

c a s e ’a’ :c a s e ’e’ :c a s e ’i’ :c a s e ’o’ :c a s e ’u’ :

p r i n t f ("Vogal!! \n);

break;

default:

printf("Nao eh uma v o g a l \n");}

return 0;

}

Page 26: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

25/29

Exemplo 3 I

Implemente o programa da calculadora utilizando uma instrucaoswitch-case para determinar a operacao que deve ser executada,conforme o usuario escolheu no menu de opcoes:

Page 27: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

26/29

Exemplo 3 II

i n t main ( ){d o u b l e num1 , num2 ;c h a r op ;p r i n t f ("Inserir numeros e operador (3 + 5) \n" ) ;s c a n f (" %d %c %d" , &num1 , &op , &num2 ) ;s w i t c h ( op ){

c a s e ’+’ : p r i n t f (" %d" , num1 + num2 ) ; b r e a k ;c a s e ’-’ : p r i n t f (" %d" , num1 − num2 ) ; b r e a k ;c a s e ’*’ : p r i n t f (" %d" , num1 ∗ num2 ) ; b r e a k ;c a s e ’/’ :

i f ( num2 != 0) p r i n t f (" %d" , num1 / num2 ) ;e l s e p r i n t f ("divisao invalida \n" ) ;b r e a k ;

d e f a u l t :p r i n t f ("Operador invalido \n" ) ;

}r e t u r n 0 ;

}

Page 28: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

27/29

Exemplo 4 I

Escreva um programa que indique o numero de dias existentes emum mes.

Numero de dias Meses31 01, 03, 05, 07, 08,

10, 12

30 04, 06, 09, 11

28 02

Page 29: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

28/29

Exemplo 4 II

i n t main ( ){

i n t mes ;p r i n t f ("Digite o mes: " ) ;s c a n f (" %d" , &mes ) ;s w i t c h ( mes ){

c a s e 1 : c a s e 3 : c a s e 5 : c a s e 7 :c a s e 8 : c a s e 1 0 : c a s e 1 2 ;

p r i n t f ("Mes tem 31 dias" ) ; b r e a k ;c a s e 4 : c a s e 6 : c a s e 9 : c a s e 1 1 :

p r i n t f ("Mes tem 30 dias" ) ; b r e a k ;c a s e 2 :

p r i n t f ("Mes tem 28 dias" ) ; b r e a k ;d e f a u l t :

p r i n t f ("Mes n~ao existe" ) ;}

}

Page 30: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · Estrutura seletivaIV Funciona da seguinte forma: I switch veri ca se a express~ao e equivalente a const1, I se

29/29

FIM