bcc 201 - introdução à programação controle de fluxo ...€¦ · 1/29 bcc 201 - introdu˘c~ao...
TRANSCRIPT
![Page 1: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/1.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/2.jpg)
2/29
Lembrando a aula passada . . . I
![Page 3: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/3.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/4.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/5.jpg)
5/29
Lembrando a aula passada . . . IV
Faca um Programa que pergunte em que turno voce estuda.Peca para digitar M-matutino ou V-Vespertino ou N-Noturno. Imprima a mensagem ”Bom Dia!”, ”Boa Tarde!” ou”Boa Noite!”, conforme o caso.
![Page 6: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/6.jpg)
6/29
Lembrando a aula passada . . . V
#i n c l u d e <i o s t r e a m>u s i n g namespace s t d ;i n t main ( ){
c h a r t u r n o ;cout << "Digite o turno: (M)atutino ,
(V)espertino e (N)oturno" ;c i n >> t u r n o ;i f ( t u r n o == ’M’ )
cout << "Bom dia \n" ;e l s e {
i f ( t u r n o == ’V’ )cout << "Boa tarde \n" ;
e l s ecout << "Boa noite \n" ;
}r e t u r n 0 ;
}
![Page 7: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/7.jpg)
7/29
Lembrando a aula passada . . . VI
...
Turno = ’M’
Escreva“Bom dia”
Turno = ’V’
Escreva“Boa tarde”
Escreva“Boa noite”
...
sim
nao
sim
nao
![Page 8: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/8.jpg)
8/29
Lembrando a aula passada . . . VII
#i n c l u d e <i o s t r e a m>u s i n g namespace s t d ;i n t main ( ){
c h a r t u r n o ;cout << "Digite o turno: (M)atutino ,
(V)espertino e (N)oturno" ;c i n >> t u r n o ;i f ( t u r n o == ’M’ )
cout << "Bom dia \n" ;i f ( t u r n o == ’V’ )
cout << "Boa tarde \n" ;i f ( t u r n o == ’N’ )
cout << "Boa noite \n" ;r e t u r n 0 ;
}
![Page 9: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/9.jpg)
9/29
Lembrando a aula passada . . . VIII
...
Turno = ’M’Escreva
“Bom dia”
Turno = ’V’Escreva
“Boa tarde”
Turno = ’N’Escreva
“Boa noite”
...
sim
sim
sim
![Page 10: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/10.jpg)
10/29
Lembrando a aula passada . . . IX
#i n c l u d e <i o s t r e a m>u s i n g namespace s t d ;i n t main ( ){
c h a r t u r n o ;cout << "Digite o turno: (M)atutino ,
(V)espertino e (N)oturno" ;c i n >> t u r n o ;i f ( t u r n o == ’M’ )
cout << "Bom dia \n" ;i f ( t u r n o == ’V’ )
cout << "Boa tarde \n" ;e l s e
cout << "Boa noite \n" ;r e t u r n 0 ;
}
Codigo certo?
![Page 11: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/11.jpg)
11/29
Lembrando a aula passada . . . X...
Turno = ’M’Escreva
“Bom dia”
Turno = ’V’
Escreva“Boa tarde”
Escreva“Boa noite”
...
sim
sim
nao
![Page 12: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/12.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/13.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/14.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/15.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/16.jpg)
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 :
cout << "x eh 1" ;b r e a k ;
c a s e 2 :cout << "x eh 2" ;b r e a k ;
d e f a u l t :cout << "valor de x desconhecido" ;
}
![Page 17: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/17.jpg)
17/29
Estrutura seletiva VI
i f ( x == 1)cout << "x eh 1" ;
e l s e{
i f ( x == 2)cout << "x eh 2" ;
e l s ecout << "valor de x desconhecido" ;
}
![Page 18: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/18.jpg)
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 :
cout << "x eh 1, 2 ou 3" ;b r e a k ;
d e f a u l t :cout << "x n~ao eh nem 1, nem 2 e nem 3" ;
}
![Page 19: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/19.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/20.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/21.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/22.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/23.jpg)
23/29
Exemplo 1 IV
i n t main ( ){
i n t cod ;cout << "Inserir codigo produto \n" ;c i n >> cod ;s w i t c h ( cod ){
c a s e 1 :cout << "Alimento nao-perecivel \n" ; b r e a k ;
c a s e 2 :cout << "Alimento perecivel \n" ; b r e a k ;
c a s e 3 :cout << "Vestuario \n" ; b r e a k ;
c a s e 4 :cout << "Limpeza \n" ; b r e a k ;
d e f a u l t :cout << "Produto nao existe \n" ;
}r e t u r n 0 ;
}
![Page 24: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/24.jpg)
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 ;cout << "Inserir uma letra \n" ;c i n >> 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’ :
cout << "Vogal!! \n" ;b r e a k ;
d e f a u l t :cout << "Nao eh uma vogal \n" ;
}r e t u r n 0 ;
}
![Page 25: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/25.jpg)
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 ;cout << "Inserir uma letra \n" ;c i n >> 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’ :
cout << "Vogal!! \n" ;b r e a k ;
d e f a u l t :cout << "Nao eh uma vogal \n" ;
}r e t u r n 0 ;
}
![Page 26: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/26.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/27.jpg)
26/29
Exemplo 3 II
i n t main ( ){d o u b l e num1 , num2 ;c h a r op ;cout << "Inserir numeros e operador (3 + 5) \n" ;c i n >> num1 >> op >> num2 ;s w i t c h ( op ){
c a s e ’+’ : cout << num1 + num2 ; b r e a k ;c a s e ’-’ : cout << num1 − num2 ; b r e a k ;c a s e ’*’ : cout << num1 ∗ num2 ; b r e a k ;c a s e ’/’ :
i f ( num2 != 0) cout << num1 / num2 ;e l s e cout << "divisao invalida \n" ;b r e a k ;
d e f a u l t :cout << "Operador invalido \n" ;
}r e t u r n 0 ;
}
![Page 28: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/28.jpg)
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 ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/29.jpg)
28/29
Exemplo 4 II
i n t main ( ){
i n t mes ;cout << "Digite o mes: " ;c i n >> 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 ;
cout<<"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 :
cout<<"Mes tem 30 dias" ; b r e a k ;c a s e 2 :
cout<<"Mes tem 28 dias" ; b r e a k ;d e f a u l t :
cout<<"Mes n~ao existe" ;}
}
![Page 30: BCC 201 - Introdução à Programação Controle de Fluxo ...€¦ · 1/29 BCC 201 - Introdu˘c~ao a Programa˘c~ao Controle de Fluxo Comandos de decis~ao multipla Guillermo C amara-Ch](https://reader033.vdocuments.pub/reader033/viewer/2022050410/5f878bb08e131d508758fd77/html5/thumbnails/30.jpg)
29/29
FIM