cco 016 – fundamentos de programaçãorcosta62br.unifei.edu.br/com110/aula_07.pdf · 2020. 5....
Post on 01-Nov-2020
2 Views
Preview:
TRANSCRIPT
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á
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)
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.
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.
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 = =
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
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
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;
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;
}
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
00111100001111
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 ||
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
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;
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;
}
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
1100110011
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”.
Seleção SimplesSeleção Simples
Portugol: se <condição> então bloco de comandos fim-se
Fluxograma:
<condições>F
V
Bloco de comandos
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.
ExemploExemplo
● Faça um programa que leia um número real e diga se ele é “maior que 10”.
Exemplo - PortugolExemplo - Portugol
inicio real N imprima (“Entre com N: “) leia (N) se N > 10 então
imprima (N,” maior que 10) fim-sefim
Exemplo - FluxogramaExemplo - Fluxograma
INICIO
N
N, “ Maior que 10”
FIM
N > 10F
V
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;}
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
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.
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
Seleção CompletaSeleção Completa
● Na linguagem C/C++ fica:
if (<condição>){
blocos de comandos 1;} else {
blocos de comandos 2;}
ExemploExemplo
● Leia um número natural e diga se ele é par ou impar
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
Exemplo - FluxogramaExemplo - FluxogramaINICIO
FIM
N
N, “ é par”
resto (N, 2) = 0F
V
N, “ é impar”
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;
}
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
888 é par.8 é par.
777 é impar.7 é impar.
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.
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;
}
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
888 é par.8 é par.
777 é impar.7 é impar.
ExemploExemplo
● Faça um programa que leia um número natural e se for par mostre 0 e se for impar mostre 1.
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;
}
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
8800
7711
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");
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;
}
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
1 5 8 01 5 8 0VerdadeVerdadeFalsoFalsoFalsoFalsoFalsoFalso
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;
}
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
0 9 3 20 9 3 2X = 14X = 14
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;
}
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
0 9 3 20 9 3 2X = 18X = 18
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.
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
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
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;}
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).
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”)
Exemplo – PortugolExemplo – Portugol
senão imprima (“Triangulo escaleno”) fim-se fim-se senão imprima (“As medidas nao formam um triangulo”) fim-sefim
Exemplo - FluxogramaExemplo - Fluxograma
INICIO
A, B, C
(A < B + C) e (B < A + C) e (C < A + B)F
21
V
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
Exemplo - FluxogramaExemplo - Fluxograma
“Triangulo Isosceles”
43
6
5
“Triangulo escaleno”
Exemplo - FluxogramaExemplo - Fluxograma
FIM
“As medidas nao formam um triangulo”
26
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 {
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;}
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
Exemplo ExpressãoExemplo Expressão
● Calcular a seguinte expressão:
VL=5A+ B
(A−B)+2AB+ 3A
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
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
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
Exemplo Exemplo ExpressãoExpressão
7) mostrando os dados de entrada imprima ( “A = “, A ) imprima ( “B = “, B )
fim
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
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
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
Exemplo Expressão - PortugolExemplo Expressão - Portugol
imprima ( “A = “, A ) imprima ( “B = “, B )fim
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");
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);}
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
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
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
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
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 )
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
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
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
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
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 )
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)
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
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
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
Exemplo Expressão - PortugolExemplo Expressão - Portugol
imprima ( “A = “, A ) imprima ( “B = “, B )fim
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 );
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 ++; }
Exemplo Prova - C/C++Exemplo Prova - C/C++ if ( gab3 == resp3 ) { n_questoes ++; } if ( gab4 == resp4 ) { n_questoes ++; } if ( gab5 == resp5 ) { n_questoes ++; }
Exemplo Prova - C/C++Exemplo Prova - C/C++ if ( n_questoes >= 3 ) { conceito = 'A'; } else { if ( n_questoes > 0 ) { conceito = 'B'; } else { conceito = 'R'; } }
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);
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;}
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
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
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
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.
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
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
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.
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.
ExemploExemplo
● Faça um programa que a pessoa escolha qual é a sua Universidade pelo número dado:
1 – UNIFEI2 – UFMG3 – UFU4 – Outra
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
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);
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;
ExemploExemplo● Continuação
case 4: printf("Outra\n"); break; break; } return 0;}
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
11UNIFEIUNIFEI
22UFMGUFMG
33UFUUFU
44OutraOutra
55
Porque?Porque?
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.
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)
ExemploExemplo caso (opcao) ’a’ : imprima (“abacaxi”) ’b’ : imprima (“banana”) ’c’ : imprima (“caju”) ’d’ : imprima (“damasco”) senao : imprima (“Opcao errada”) fim-casofim
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);
ExemploExemplo● Continuação
switch(opcao) { case 'a': printf("abacaxi\n"); break; case 'b': printf("banana\n"); break; case 'c': printf("caju\n"); break;
ExemploExemplo● Continuação
case 'd': printf("damasco\n"); break; default: printf("Opcao errada\n"); } return 0;}
Entrada/Saída do ProgramaEntrada/Saída do Programa
● Resultado do programa.
aaabacaxiabacaxi
bbbananabanana
cccajucaju
dddamascodamasco
&&Opcao erradaOpcao errada
Porque?Porque?
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.
top related