cco 016 – fundamentos de programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5....
TRANSCRIPT
![Page 1: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/1.jpg)
CCO 016 – Fundamentos de Programação
Prof. Roberto Affonso da Costa JuniorProf. Roberto Affonso da Costa Junior
Universidade Federal de ItajubáUniversidade Federal de Itajubá
![Page 2: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/2.jpg)
Aula 07Aula 07
● Programação Condicional– Comandos Condicionais (se – senao)– Linguagem de Programação C (if – eles)– Estrutura Condicionais (caso)– Linguagem de Programação C (switch)
![Page 3: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/3.jpg)
Programação CondicionalProgramação Condicional
● Uma programação condicional, como o próprio nome já diz, permite que determinadas instruções sejam executadas ou não, dependendo do resultado de uma condiçãocondição ((testeteste)), ou seja, o programa vai tomar decisão de um processo (leitura, processo e impressão)(leitura, processo e impressão) a ser realizado.
![Page 4: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/4.jpg)
Programação CondicionalProgramação Condicional
● Isto é, são testados parâmetros e, dependendo de seus valores, tomamos um caminho ou outro. As condições que são testadas num programa são do tipo lógica (booleanobooleano), portanto podem ter somente dois resultados: VerdadeiroVerdadeiro ou FalsoFalso. Assim, a seleção de ações pode seguir, no máximo, duas alternativas: uma se a condição for verdadeiraverdadeira e outra se a condição testada for falsafalsa.
![Page 5: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/5.jpg)
Operadores LógicosOperadores Lógicos
● Os operadores lógicos são utilizados na confecção das condições (verdadeira ou falsaverdadeira ou falsa).
● Esses operadores são:
Significado Operador em C/C++
Maior que >
Menor que <
Maior ou igual a >=
Menor ou igual a <=
Diferente de !=
Igual a = =
![Page 6: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/6.jpg)
Valores BooleanosValores Booleanos
● Os operadores lógicos na linguagem irão servir para comparar duas variáveis ou uma variável e uma contante ou simplesmente uma constante. Em C e C++ o valor ‘0’valor ‘0’ tem o significado de falso e qualquer valor qualquer valor diferente de ‘0’diferente de ‘0’ o significado de verdadeiro.
● No entanto, em C++ tem o tipo booleano:
bool b1, b2;● Esse tipo aceita só dois valores, true ou false.
b1b1truefalse
![Page 7: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/7.jpg)
Pontos importantes do tipo boolPontos importantes do tipo bool● Por defaultdefault o valor truetrue é igual a 1 e o valor falsefalse igual
a 0.● Pode-se usar variável do tipo boolbool ou valores truetrue e
falsefalse em expressão matemáticas. Por exemplo:int x = false + true + 6;int x = false + true + 6;
● é uma operação valida e o resultado de x é igual a 7, com falsefalse = 0 e truetrue = 1.
● É também possível converter valores inteiros ou reais para o tipo boolbool.
bool x = 0; // falsebool y = 100; // true
bool z = 15.75; // truebool w = 0.0; // false
![Page 8: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/8.jpg)
Programa utilizando o tipo boolPrograma utilizando o tipo bool● Pode-se usar os operadores lógicos conforme o
programa:#include <bits/stdc++.h>using namespace std;int main() {
int A = 10, B = 7, C = 5, D = 3;bool b1;b1 = A > 10;cout << b1 << endl;b1 = B < A;cout << b1 << endl;b1 = C >= D;cout << b1 << endl;
![Page 9: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/9.jpg)
Programa utilizando o tipo boolPrograma utilizando o tipo bool● Continuação:
b1 = B <= 2;cout << b1 << endl;b1 = A != 10;cout << b1 << endl;b1 = D == 3;cout << b1 << endl;b1 = C;cout << b1 << endl;return 0;
}
![Page 10: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/10.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
00111100001111
![Page 11: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/11.jpg)
Operadores RelacionaisOperadores Relacionais
● Os operadores lógicos tem que ser complementados, pois não podemos comparar mais de duas variáveis, como por exemplo na matemática: A = B = CA = B = C. Não se pode fazer assim na linguagem de programação C/C+C/C+++. Para isso usamos os operadores relacionais: não, e e ou, conforme a tabela.
Significado Operador em C/C++
não !
e &&
ou ||
![Page 12: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/12.jpg)
Tabela dos Operadores RelacionaisTabela dos Operadores Relacionais
● Para relacionar os operadores tem-se as tabelas:
A ! A
V F
F V
A B A && B
V V V
V F F
F V F
F F FA B A || B
V V V
V F V
F V V
F F F
![Page 13: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/13.jpg)
Utilizando os Operadores Utilizando os Operadores RelacionaisRelacionais
● Pode-se usar os operadores lógicos conforme o programa:
#include <bits/stdc++.h>using namespace std;int main() {
int A = 10, B = 7, C = 5, D = 3;bool b1;b1 = !(A > 10);cout << b1 << endl;b1 = ((B < A) && (C < D));cout << b1 << endl;
![Page 14: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/14.jpg)
Utilizando os Operadores Utilizando os Operadores RelacionaisRelacionais
● Pode-se usar os operadores lógicos conforme o programa:
b1 = ((A >= D) || (B <= C));cout << b1 << endl;b1 = (!(A >= D) || (B <= C));cout << b1 << endl;b1 = ((B < A) && !(C < D));cout << b1 << endl;return 0;
}
![Page 15: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/15.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
1100110011
![Page 16: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/16.jpg)
Seleção SimplesSeleção Simples
● A seleção mais simples existente é quando o único bloco de comando (leitura, processo e/ou escreva) a ser realizado é aquele que a situação da <condição><condição> é verdadeira. Não existe a opção falsa, ou não é necessário realizar nada neste tipo de opção. É o que chamamos de opção “default”.
![Page 17: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/17.jpg)
Seleção SimplesSeleção Simples
Portugol: se <condição> então bloco de comandos fim-se
Fluxograma:
<condições>F
V
Bloco de comandos
![Page 18: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/18.jpg)
Seleção SimplesSeleção Simples
● Na linguagem C/C++ fica:
if (<condição>){
blocos de comandos;}
Vale observar que as chaves ({ e }) só são necessárias, quando se tem mais de um bloco de comando. Se tiver um só bloco de comando, não
precisa colocá-las.
![Page 19: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/19.jpg)
ExemploExemplo
● Faça um programa que leia um número real e diga se ele é “maior que 10”.
![Page 20: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/20.jpg)
Exemplo - PortugolExemplo - Portugol
inicio real N imprima (“Entre com N: “) leia (N) se N > 10 então
imprima (N,” maior que 10) fim-sefim
![Page 21: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/21.jpg)
Exemplo - FluxogramaExemplo - Fluxograma
INICIO
N
N, “ Maior que 10”
FIM
N > 10F
V
![Page 22: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/22.jpg)
Exemplo – C/C++Exemplo – C/C++
#include <bits/stdc++.h>using namespace std;int main() { float N; scanf ("%f",&N); if (N > 10) { printf ("%.1f maior que 10\n",N); } return 0;}
![Page 23: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/23.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
3.453.45
10.4510.4510.4 maior que 1010.4 maior que 10
![Page 24: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/24.jpg)
Seleção CompletaSeleção Completa
● A seleção completa é dada por se...então...senão...fim-se onde se a <condição><condição> for verdadeira é realizado o então e dentro dele os blocos de comandos 1, se for falsa, é realizado o senão e dentro dele os blocos de comandos 2.
![Page 25: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/25.jpg)
Seleção CompletaSeleção Completa
Portugol:se <condição> então bloco de comandos 1senão bloco de comandos 2fim-se
Fluxograma:
<condições>F
V
Bloco de comandos 1
Bloco de comandos 2
![Page 26: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/26.jpg)
Seleção CompletaSeleção Completa
● Na linguagem C/C++ fica:
if (<condição>){
blocos de comandos 1;} else {
blocos de comandos 2;}
![Page 27: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/27.jpg)
ExemploExemplo
● Leia um número natural e diga se ele é par ou impar
![Page 28: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/28.jpg)
Exemplo - PortugolExemplo - Portugol
inicio inteiro N imprima (“Entre com N: “) leia (N) se (resto (N,2) = 0) então imprima (N, “ e par”) senão imprima (N,” e impar) fim-sefim
![Page 29: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/29.jpg)
Exemplo - FluxogramaExemplo - FluxogramaINICIO
FIM
N
N, “ é par”
resto (N, 2) = 0F
V
N, “ é impar”
![Page 30: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/30.jpg)
Exemplo – C/C++Exemplo – C/C++#include <bits/stdc++.h>using namespace std;int main() {
int N;scanf ("%d",&N);if ((N % 2) == 0){
printf ("%d e par.\n", N);} else {
printf ("%d e impar.\n",N);}return 0;
}
![Page 31: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/31.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
888 é par.8 é par.
777 é impar.7 é impar.
![Page 32: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/32.jpg)
Operador da Seleção CompletaOperador da Seleção Completa
● O operador de seleção completa é dados por
EXP1 ? EXP2 : EXP3;EXP1 ? EXP2 : EXP3;
● onde EXP1EXP1 é uma expressão condicional, e EXP2EXP2 e EXP3EXP3 é um único bloco de comando para o verdadeiroverdadeiro e falsofalso, respectivamente.
![Page 33: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/33.jpg)
Exemplo – C/C++Exemplo – C/C++
#include <bits/stdc++.h>using namespace std;int main() {
int N;scanf ("%d",&N);((N % 2) == 0) ? printf ( "%d e par.\n", N): printf ( "%d e impar.\n",N);return 0;
}
![Page 34: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/34.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
888 é par.8 é par.
777 é impar.7 é impar.
![Page 35: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/35.jpg)
ExemploExemplo
● Faça um programa que leia um número natural e se for par mostre 0 e se for impar mostre 1.
![Page 36: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/36.jpg)
Exemplo – C/C++Exemplo – C/C++
#include <bits/stdc++.h>using namespace std;int main() {
int N, X;scanf ("%d",&N);X = ((N % 2) == 0) ? 0 : 1;printf("%d\n", X);return 0;
}
![Page 37: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/37.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
8800
7711
![Page 38: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/38.jpg)
ExemploExemplo
● Programa
#include <bits/stdc++.h>using namespace std;int main() {
int A, B, C, D;scanf("%d %d %d %d", &A, &B, &C, &D);if (!(A > 3)) printf("Verdade\n");else printf("Falso\n");if ((A > 3) || !(B > D)) printf("Verdade\n");else printf("Falso\n");
![Page 39: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/39.jpg)
Exemplo de Seleção CompletaExemplo de Seleção Completa
● Continuação:
if ((D < 0) && (C > 5)) printf("Verdade\n");else printf("Falso\n");if (!(B > 3) || (C < 7)) printf("Verdade\n");else printf("Falso\n");return 0;
}
![Page 40: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/40.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
1 5 8 01 5 8 0VerdadeVerdadeFalsoFalsoFalsoFalsoFalsoFalso
![Page 41: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/41.jpg)
ExemploExemplo
● Programa
#include <bits/stdc++.h>using namespace std;int main() {
int A, B, C, D, X;scanf("%d %d %d %d", &A, &B, &C, &D);X = ((A > B) || (C <= 3)) ?(A + 2) * (B - 2) : (A + B) / D * (C + D);printf("X = %d\n", X);return 0;
}
![Page 42: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/42.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
0 9 3 20 9 3 2X = 14X = 14
![Page 43: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/43.jpg)
Exemplo de Seleção CompletaExemplo de Seleção Completa
● Programa
#include <bits/stdc++.h>using namespace std;int main() {
int A, B, C, D, X;scanf("%d %d %d %d", &A, &B, &C, &D);X = (!(D > 3)) ?(A + B) * D : (A - B) / C;printf("X = %d\n", X);return 0;
}
![Page 44: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/44.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
0 9 3 20 9 3 2X = 18X = 18
![Page 45: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/45.jpg)
Seleção CompostaSeleção Composta
● A estrutura de seleção composta também é designada como seleção aninhada e é utilizada quando estivermos fazendo várias comparações (testes)(testes) sempre com a mesma variável. Esta estrutura é chamada de aninhada porque na sua representação fica uma seleção dentro de outra seleção.
![Page 46: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/46.jpg)
Seleção CompostaSeleção Composta
Portugol:se <condição 1> então se <condição 2> então bloco de comandos 11 senão bloco de comandos 12 fim-se bloco de comandos 1
senão se <condição 3> então bloco de comandos 21 senão bloco de comandos 22 fim-se bloco de comandos 2fim-se
![Page 47: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/47.jpg)
Seleção CompostaSeleção Composta<condições 1>
F
V
Bloco de comandos 1 Bloco de comandos 2
Fluxograma:
<condições 2> <condições 3>
V V
F F
Bloco de comandos 11
Bloco de comandos 12
Bloco de comandos 21
Bloco de comandos 22
![Page 48: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/48.jpg)
Seleção CompostaSeleção Composta
● Na linguagem C/C++ fica:if ( condição 1 ) { if ( condição 2 ) { bloco de comandos 11; } else { bloco de comandos 12; } bloco de comandos 1;
} else { if ( condição 3 ) { bloco de comandos 21; } else { bloco de comandos 22; } bloco de comandos 2;}
![Page 49: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/49.jpg)
ExemploExemplo
● Faça um programa que leia três medidas e determine se essas medidas formam um triânguloformam um triângulo, se formam que tipo de triângulo ele é (isósceles, escaleno ou isósceles, escaleno ou equiláteroequilátero).
![Page 50: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/50.jpg)
Exemplo - PortugolExemplo - Portugol
inicio real A, B, C leia (A, B, C) se (A < B + C) e (B < A + C) e (C < A + B) então se (A = B) e (B = C) então imprima(“Triangulo Equilatero”) senão se (A = B) ou (A = C) ou (B = C) então imprima (“Triangulo Isosceles”)
![Page 51: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/51.jpg)
Exemplo – PortugolExemplo – Portugol
senão imprima (“Triangulo escaleno”) fim-se fim-se senão imprima (“As medidas nao formam um triangulo”) fim-sefim
![Page 52: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/52.jpg)
Exemplo - FluxogramaExemplo - Fluxograma
INICIO
A, B, C
(A < B + C) e (B < A + C) e (C < A + B)F
21
V
![Page 53: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/53.jpg)
Exemplo - FluxogramaExemplo - Fluxograma
“Triangulo Equilatero”
(A = B) e (B = C)F
V
1
(A = B) ou (A = C) ou (B = C)
3 V
4
F
5
![Page 54: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/54.jpg)
Exemplo - FluxogramaExemplo - Fluxograma
“Triangulo Isosceles”
43
6
5
“Triangulo escaleno”
![Page 55: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/55.jpg)
Exemplo - FluxogramaExemplo - Fluxograma
FIM
“As medidas nao formam um triangulo”
26
![Page 56: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/56.jpg)
Exemplo – C/C++Exemplo – C/C++
#include <bits/stdc++.h>using namespace std;int main() { float A, B, C; scanf ("%f %f %f", &A, &B, &C); if ((A < B + C) && (B < A + C) && (C < A + B)) { if ((A == B) && (B == C)) { printf("Triangulo Equilatero\n"); } else {
![Page 57: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/57.jpg)
ExemploExemplo● Continuação
if ((A == B) || (A == C) || (B == C)) { printf ("Triangulo Isosceles\n"); } else { printf ("Triangulo escaleno\n"); } } } else { printf ("As medidas não formam um triangulo\n"); } return 0;}
![Page 58: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/58.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
3 3 33 3 3Triângulo EquiláteroTriângulo Equilátero
3 3 43 3 4Triângulo IsóscelesTriângulo Isósceles
3 4 53 4 5Triângulo escalenoTriângulo escaleno
3 4 103 4 10As medidas não formam um triânguloAs medidas não formam um triângulo
![Page 59: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/59.jpg)
Exemplo ExpressãoExemplo Expressão
● Calcular a seguinte expressão:
VL=5A+ B
(A−B)+2AB+ 3A
![Page 60: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/60.jpg)
Exemplo Exemplo ExpressãoExpressão
objetivo: Calcular uma expressão aritmética
1) Definir variáveis inteiros A, B, num1, num2, den1, den2, VL
2) Entrada dos dados imprima ( “entre com dois valores “ ) leia ( A, B )
3) Calculo do numerador num1 ← 5 A + B
![Page 61: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/61.jpg)
Exemplo Exemplo ExpressãoExpressão
4) Calculo do numerador do denominador num2 ← 2 A
5) Calculo do denominador simples den 1 ← B + 3A
6) calculo da expressao se ( den1 = 0 ) então imprima ( “expressão não calculada “ ) imprima ( “denominador nulo” ) senão
![Page 62: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/62.jpg)
Exemplo Exemplo ExpressãoExpressãosenão 6.1) calculo do denominador geral den2 ← ( A – B ) + num2 / den 6.2) calculo da expressão se ( den2 = 0 ) então imprima ( “expressão não calculada “ ) imprima ( “denominador nulo” ) senão VL ← num1 / den2 imprima ( “ valor da expressao = “, VL ) fim_se fim_se
![Page 63: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/63.jpg)
Exemplo Exemplo ExpressãoExpressão
7) mostrando os dados de entrada imprima ( “A = “, A ) imprima ( “B = “, B )
fim
![Page 64: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/64.jpg)
Exemplo Expressão - PortugolExemplo Expressão - Portugol
inicio {Declaração das variáveis} inteiros A, B, num1, num2, den1, den2, VL
{Entrada de Dados} imprima ( “entre com dois valores “ )
leia ( A, B )
{Calculo da expressão} num1 ← 5 A + B num2 ← 2 A den1 ← B + 3A
![Page 65: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/65.jpg)
Exemplo Expressão - PortugolExemplo Expressão - Portugol
{Verificando o denominador 1} se ( den1 = 0 ) então imprima ( “expressão não calculada “ ) imprima ( “denominador nulo” ) senão {Calculando o denominador 2} den2 ← ( A – B ) + num2 / den1
![Page 66: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/66.jpg)
Exemplo Expressão - PortugolExemplo Expressão - Portugol
{Verificando o denominador 2}
se ( den2 = 0 )
então
imprima ( “expressão não calculada “ )
imprima ( “denominador nulo” )
senão {Calculando e imprimindo o Valor da operação} VL ← num1 / den2
imprima ( “ valor da expressao = “, VL ) fim_se fim_se
![Page 67: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/67.jpg)
Exemplo Expressão - PortugolExemplo Expressão - Portugol
imprima ( “A = “, A ) imprima ( “B = “, B )fim
![Page 68: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/68.jpg)
Exemplo Expressão - C/C++Exemplo Expressão - C/C++#include <bits/stdc++.h>using namespace std;int main (){ int A, B, num1, num2, den1, den2, VL; scanf ("%d %d", &A, &B); num1 = 5 * A + B; num2 = 2 * A; den1 = B + 3 * A; if ( den1 == 0 ) { printf ("expressão não calculada\n"); printf ("denominador nulo\n");
![Page 69: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/69.jpg)
Exemplo Expressão - C/C++Exemplo Expressão - C/C++ } else { den2 = ( A - B ) + num2 / den1; if ( den2 == 0 ) { printf ("expressão não calculada\n"); printf ("denominador nulo\n"); } else { VL = num1 / den2 ; printf ("Valor da expressao = %d\n", VL); } } printf ("A = %d\n", A); printf ("B = %d\n", B);}
![Page 70: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/70.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
-1 3-1 3expressão não calculadaexpressão não calculadadenominador nulodenominador nuloA = -1A = -1B = 3B = 3
![Page 71: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/71.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
1 11 1expressão não calculadaexpressão não calculadadenominador nulodenominador nuloA = 1A = 1B = 1B = 1
![Page 72: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/72.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
4 34 3Valor da expressao = 23Valor da expressao = 23A = 4A = 4B = 3B = 3
![Page 73: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/73.jpg)
Exemplo ProvaExemplo Prova
● São dados os resultados de uma prova que consta de 5 questões, cujas respostas podem ser uma das 3 alternativas A, B ou C;
● São dados também as respostas de um aluno para esta prova.
● Desenvolva um algoritmo para calcular o desempenho deste aluno na prova segundo o seguinte critério:
– Acerto de 3 ou mais questões – conceito A– Acerto de 1 ou 2 questões – conceito B– Acerto de nenhuma questão - conceito R
![Page 74: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/74.jpg)
Exemplo ProvaExemplo Prova
objetivo: calcular o conceito de um aluno frente ao gabarito de uma prova
1) definição das variáveis caracter gab1, gab2, gab3, gab4, gab5 caracter resp1, resp2, resp3, resp4, resp5 caracter conceito inteiro n_questoes
2) entrada dos dados 2.1 ) dados do gabarito
imprima ( “entre com as 5 alternativas do gabarito” ) leia ( gab1, gab2, gab3, gab4, gab5 )
![Page 75: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/75.jpg)
Exemplo ProvaExemplo Prova
2.2 ) dados do aluno imprima ( “entre com as 5 resposta do aluno” ) leia ( resp1, resp2, resp3, resp4, resp5 )
3) inicializando variáveis n_questoes ← 0
4) calculando quantas questões estão certas se ( gab1 = resp1 ) então n_questoes ← n_questoes + 1 fim_se
![Page 76: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/76.jpg)
Exemplo ProvaExemplo Prova
se ( gab2 = resp2 ) então n_questoes ← n_questoes + 1 fim_se
se ( gab3 = resp3 ) então
n_questoes ← n_questoes + 1 fim_se
![Page 77: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/77.jpg)
Exemplo ProvaExemplo Prova
se ( gab4 = resp4 ) então
n_questoes ← n_questoes + 1 fim_se
se ( gab5 = resp5 ) então
n_questoes ← n_questoes + 1 fim_se
![Page 78: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/78.jpg)
Exemplo ProvaExemplo Prova
5) verificando o conceito do alunose ( n_questoes ≥ 3 )então conceito ← ‘A’senão se ( n_questoes > 0 ) então conceito ← ‘B’ senão conceito ← ‘R’
fim_se fim_se
![Page 79: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/79.jpg)
Exemplo ProvaExemplo Prova
6) mostrando os resultados
6.1 ) dados de entrada imprima ( “gabarito: “ ) imprima ( “questao 1: “, gab1 ) imprima ( “questao 2: “, gab2 ) imprima ( “questao 3: “, gab3 ) imprima ( “questao 4: “, gab4 ) imprima ( “questao 5: “, gab5 )
![Page 80: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/80.jpg)
Exemplo ProvaExemplo Prova
imprima ( “resposta do aluno: “ ) imprima ( “resposta 1: “, resp1 ) imprima ( “resposta 2: “, resp2 ) imprima ( “resposta 3: “, resp3 ) imprima ( “resposta 4: “, resp4 ) imprima ( “resposta 5: “, resp5 )
6.2 ) quantidade de acertos imprima ( “quantidade de questoes certas = “ ,
n_questoes ) 6.3 ) conceito do aluno imprima ( “conceito do aluno: “, conceito)
![Page 81: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/81.jpg)
Exemplo Expressão - PortugolExemplo Expressão - Portugol
inicio {Declaração das variáveis} inteiros A, B, num1, num2, den1, den2, VL
{Entrada de Dados} imprima ( “entre com dois valores “ )
leia ( A, B )
{Calculo da expressão} num1 ← 5 A + B num2 ← 2 A den1 ← B + 3A
![Page 82: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/82.jpg)
Exemplo Expressão - PortugolExemplo Expressão - Portugol
{Verificando o denominador 1} se ( den1 = 0 ) então imprima ( “expressão não calculada “ ) imprima ( “denominador nulo” ) senão {Calculando o denominador 2} den2 ← ( A – B ) + num2 / den1
![Page 83: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/83.jpg)
Exemplo Expressão - PortugolExemplo Expressão - Portugol
{Verificando o denominador 2}
se ( den2 = 0 )
então
imprima ( “expressão não calculada “ )
imprima ( “denominador nulo” )
senão {Calculando e imprimindo o Valor da operação} VL ← num1 / den2
imprima ( “ valor da expressao = “, VL ) fim_se fim_se
![Page 84: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/84.jpg)
Exemplo Expressão - PortugolExemplo Expressão - Portugol
imprima ( “A = “, A ) imprima ( “B = “, B )fim
![Page 85: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/85.jpg)
Exemplo Prova - C/C++Exemplo Prova - C/C++
#include <bits/stdc++.h>using namespace std;int main (){ char gab1, gab2, gab3, gab4, gab5; char resp1, resp2, resp3, resp4, resp5; char conceito; int n_questoes;
printf ("entre com as 5 alternativas do gabarito: "); scanf (" %c %c %c”, &gab1, &gab2, &gab3); scanf (" %c %c”, &gab4, &gab5 );
![Page 86: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/86.jpg)
Exemplo Prova - C/C++Exemplo Prova - C/C++ printf ("entre com as 5 resposta do aluno: "); scanf (" %c %c %c ”, &resp1, &resp2, &resp3 ); scanf (" %c %c ”, &resp4, &resp5 );
n_questoes = 0; if ( gab1 == resp1 ) ; { n_questoes ++; } if ( gab2 == resp2 ) { n_questoes ++; }
![Page 87: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/87.jpg)
Exemplo Prova - C/C++Exemplo Prova - C/C++ if ( gab3 == resp3 ) { n_questoes ++; } if ( gab4 == resp4 ) { n_questoes ++; } if ( gab5 == resp5 ) { n_questoes ++; }
![Page 88: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/88.jpg)
Exemplo Prova - C/C++Exemplo Prova - C/C++ if ( n_questoes >= 3 ) { conceito = 'A'; } else { if ( n_questoes > 0 ) { conceito = 'B'; } else { conceito = 'R'; } }
![Page 89: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/89.jpg)
Exemplo Prova - C/C++Exemplo Prova - C/C++ printf ("gabarito:\n"); printf ("questao 1: %c\n", gab1); printf ("questao 2: %c\n", gab2); printf ("questao 3: %c\n", gab3); printf ("questao 4: %c\n", gab4); printf ("questao 5: %c\n", gab5);
printf ("\n\nresposta do aluno:\n"); printf ("resposta 1: %c\n", resp1); printf ("resposta 2: %c\n", resp2); printf ("resposta 3: %c\n", resp3); printf ("resposta 4: %c\n", resp4); printf ("resposta 5: %c\n", resp5);
![Page 90: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/90.jpg)
Exemplo Prova - C/C++Exemplo Prova - C/C++ printf ("quantidade de questoes certas = %d\n", n_questoes);
printf ("conceito do aluno: %c\n", conceito); return 0;}
![Page 91: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/91.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
entre com as 5 alternativas do gabarito: entre com as 5 alternativas do gabarito: a b c d ea b c d eentre com as 5 resposta do aluno: entre com as 5 resposta do aluno: c b a c ec b a c e
![Page 92: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/92.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
gabarito:gabarito:questao 1: aquestao 1: aquestao 2: bquestao 2: bquestao 3: cquestao 3: cquestao 4: dquestao 4: dquestao 5: equestao 5: e
![Page 93: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/93.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
resposta do aluno:resposta do aluno:resposta 1: cresposta 1: cresposta 2: bresposta 2: bresposta 3: aresposta 3: aresposta 4: cresposta 4: cresposta 5: eresposta 5: equantidade de questoes certas = 3quantidade de questoes certas = 3conceito do aluno: Aconceito do aluno: A
![Page 94: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/94.jpg)
Seleções MúltiplasSeleções Múltiplas
● Podemos com as seleções aninhadas criarmos múltiplas seleçõesmúltiplas seleções, mas existe um comando ao qual as seleções múltiplas são melhor representadas. E com isto, podemos escolher mais opções que somente verdadeiraverdadeira e falsafalsa.
![Page 95: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/95.jpg)
Seleções MúltiplasSeleções Múltiplas
Portugol:caso (<variavel>) <valor_variavel 1>:Comandos de bloco 1 <valor_variavel 2>:Comandos de bloco 2 ... <valor_variavel n>:Comandos de bloco n senao: Comandos de bloco F (opcional)(opcional)fim-caso
![Page 96: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/96.jpg)
Seleções MúltiplasSeleções Múltiplas
<variavel>
Bloco de comandos F
Fluxograma:
F
Bloco de comandos 1<valor_variavel 1>
<valor_variavel 2> Bloco de comandos 2
<valor_variavel n> Bloco de comandos n
![Page 97: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/97.jpg)
Seleções MúltiplasSeleções MúltiplasLINGUAGEM C/C++:switch ( variavel ) { case <valor_variavel 1> : Comandos de bloco 1; break; case <valor_variavel 2> : Comandos de bloco 2; break; ... case <valor_variavel n> : Comandos de bloco n; break; default: Comandos de bloco F (opcional)}
Os BREAKsBREAKs são para pular os casos seguintes.
![Page 98: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/98.jpg)
Seleções MúltiplasSeleções Múltiplas
OBSERVAÇÃO:OBSERVAÇÃO:
As seleções Múltiplas nãonão aceitam variáveis CADEIACADEIA (STRINGSTRING) e nem variável Realvariável Real.
As seleções Múltiplas só aceitam variáveis CARACTERCARACTER (UM ÚNICO CARACTER) ou INTEIROINTEIRO.
![Page 99: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/99.jpg)
ExemploExemplo
● Faça um programa que a pessoa escolha qual é a sua Universidade pelo número dado:
1 – UNIFEI2 – UFMG3 – UFU4 – Outra
![Page 100: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/100.jpg)
Exemplo - PortugolExemplo - Portugolinicio inteiro opcao imprima (“Escolha a sua Universidade: “) imprima (“1 – UNIFEI”) imprima (“2 – UFMG”) imprima (“3 – UFU”) imprima (“4 – Outra”) leia (opcao) caso (opcao) 1 : imprima (“UNIFEI”) 2 : imprima (“UFMG”) 3 : imprima (“UFU”) 4 : imprima (“Outra”) fim-casofim
![Page 101: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/101.jpg)
Exemplo - C/C++Exemplo - C/C++
#include <bits/stdc++.h>using namespace std;int main(){ int opcao; printf("Escolha a sua Universidade:\n"); printf("1) UNIFEI\n"); printf("2) UFMG\n"); printf("3) UFU\n"); printf("4) Outra\n"); scanf("%d",&opcao);
![Page 102: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/102.jpg)
Exemplo - C/C++Exemplo - C/C++● Continuação
switch(opcao) { case 1: printf("UNIFEI\n"); break; case 2: printf("UFMG\n"); break; case 3: printf("UFU\n"); break;
![Page 103: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/103.jpg)
ExemploExemplo● Continuação
case 4: printf("Outra\n"); break; break; } return 0;}
![Page 104: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/104.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
11UNIFEIUNIFEI
22UFMGUFMG
33UFUUFU
44OutraOutra
55
Porque?Porque?
![Page 105: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/105.jpg)
ExemploExemplo
● Faça um programa que escolha a letra que começa o nome de uma fruta, conforme a lista abaixo:
a – abacaxia – abacaxib – bananab – bananac – cajuc – cajud – damascod – damasco
● Caso o usuário digite outra letra, imprima que está errado.
![Page 106: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/106.jpg)
ExemploExemplo
inicio caracter opcao imprima (“Escolha a primeira letra de uma fruta: “) imprima (“a – abacaxi”) imprima (“b – banana”) imprima (“c – caju”) imprima (“d – damasco”) leia (opcao)
![Page 107: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/107.jpg)
ExemploExemplo caso (opcao) ’a’ : imprima (“abacaxi”) ’b’ : imprima (“banana”) ’c’ : imprima (“caju”) ’d’ : imprima (“damasco”) senao : imprima (“Opcao errada”) fim-casofim
![Page 108: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/108.jpg)
ExemploExemplo● Em linguagem C/C++
#include <bits/stdc++.h>using namespace std;int main(){ char opcao; printf("Escolha a primeira letra de uma fruta:\n"); printf("a) abacaxi\n"); printf("b) banana\n"); printf("c) caju\n"); printf("d) damasco\n"); scanf(" %c",&opcao);
![Page 109: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/109.jpg)
ExemploExemplo● Continuação
switch(opcao) { case 'a': printf("abacaxi\n"); break; case 'b': printf("banana\n"); break; case 'c': printf("caju\n"); break;
![Page 110: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/110.jpg)
ExemploExemplo● Continuação
case 'd': printf("damasco\n"); break; default: printf("Opcao errada\n"); } return 0;}
![Page 111: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/111.jpg)
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
aaabacaxiabacaxi
bbbananabanana
cccajucaju
dddamascodamasco
&&Opcao erradaOpcao errada
Porque?Porque?
![Page 112: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5. 12. · Programação Condicional Uma programação condicional, como o próprio nome](https://reader037.vdocuments.net/reader037/viewer/2022090611/607b5f7b23e1fd62b26dd46e/html5/thumbnails/112.jpg)
ExercíciosExercícios
● https://www.urionlinejudge.com.br/judge/en/loginhttps://www.urionlinejudge.com.br/judge/en/loginURI 1035 a 1038, 1040 a 1052, 1061, 1837, 1847, 1929, 1933, 2057, URI 1035 a 1038, 1040 a 1052, 1061, 1837, 1847, 1929, 1933, 2057, 2059, 2235, 2313, 2670, 2717.2059, 2235, 2313, 2670, 2717.
● https://open.kattis.com/problems?order=problem_difficulty&dir=aschttps://open.kattis.com/problems?order=problem_difficulty&dir=ascQuadrant Selection, Take Two Stones, Spavanac, Quadrant Selection, Quadrant Selection, Take Two Stones, Spavanac, Quadrant Selection, Provinces and Gold, Filip, Datum (switch), Cetvrta.Provinces and Gold, Filip, Datum (switch), Cetvrta.
● https://neps.academy/https://neps.academy/● Vá em Programação e Assunto: Procure por Estruturas de Decisão. Vá em Programação e Assunto: Procure por Estruturas de Decisão.
Faço todos os exercícios.Faço todos os exercícios.