Você está na página 1de 8

Departamento de Informática

Curso: Sistemas de Informação – Informática


Disciplina: Projeto de Algoritmos
Professor: Flávio Manzi Alves

Estruturas de Seleção
– Soluções –

1. Algoritmo que leia um número inteiro e execute o seguinte processamento: mostre o seu dobro, se estiver
na faixa entre 1 e 10, o seu triplo, se estiver na faixa entre 11 e 20, o seu quádruplo, se estiver na faixa
entre 21 e 30 ou mostre a mensagem “Número inválido” se não estiver em nenhuma destas faixas.
Implemente este algoritmo usando comandos Se aninhados e usando comando Escolha para avaliar as
diferenças entre ambas as abordagens.

Algoritmo Multiplicacao

Var num: inteiro

Inicio
Escreva (“Digite um numero inteiro” )
Leia (numero)
Escolha num
caso 1 ate 10
EscrevaL (“O dobro do número digitado é: “, num * 2)
caso 11 ate 20
EscrevaL (“O triplo do número digitado é “, num * 3)
caso 21 ate 30
EscrevaL (“O quádruplo do número é: “, num * 4)
Outrocaso
EscrevaL (“Número invalido”)
Fimescolha
Fim.

2. Algoritmo que apresente para uma mãe as atividades de seus filhos, de acordo com o dia da semana:
Segunda-feira: natação, Terça-feira: inglês, Quarta-feira: judô, Quinta-feira: inglês, Sexta-feira: piano,
Sábado: futebol, Domingo: livre.

Algoritmo Atividades_da_semana
Var dia: caractere

Inicio
Escreva (“Digite o dia da semana (1 – dom, 2 – segunda, ... 7 – sab)” )
Leia (dia)
Escolha dia
caso “2”
EscrevaL (“Segunda-feira – Aula de natação”)
caso “3”
EscrevaL (“Terça-feira – Aula de inglês”)
caso “4”
EscrevaL (“Quarta-feira – Aula de judô”)
caso “5”
EscrevaL (“Quinta-feira – Aula de inglês”)
caso “6”
EscrevaL (“Sexta-feira – Aula de piano”)
Departamento de Informática
Curso: Sistemas de Informação – Informática
Disciplina: Projeto de Algoritmos
Professor: Flávio Manzi Alves

caso “7”
EscrevaL (“Sábado – Aula de futebol”)
caso “1”
EscrevaL (“Domingo – Dia livre”)
Fim escolha
Fim.

3. Considerando as faixas especificadas abaixo, escreva um algoritmo que, para um determinado valor
inteiro, imprima qual a sua faixa.
- Faixa A – Valores abaixo de 100
- Faixa B – Valores entre 100 e 150 (inclusive)
- Faixa C – Valores entre 151 e 300 (inclusive)
- Faixa D – Valores entre 301 e 500 (inclusive)
- Faixa X – quaisquer outros valores

Algoritmo Faixa
Variaveis valor: real

Inicio
Escreva (“Digite um valor real”)
Leia (valor)
Escolha (valor)
caso 1 ate 99
EscrevaL (“Faixa A”)
caso 100 ate 150
EscrevaL (“Faixa B”)
caso 151 ate 300
EscrevaL (“Faixa C”)
caso 301 ate 500
EscrevaL (“Faixa D”)
Outrocaso
EscrevaL (“Faixa X”)
Fim escolha
Fim.

4. Algoritmo que, dada a idade de um nadador, classifique-o em uma das seguintes categorias:
Infantil A: 5 – 7 anos
Infantil B: 8 – 10 anos
Juvenil A: 11 – 13 anos
Juvenil B: 14 – 17 anos
Adulto: 18 – 35 anos
Veterano: 36 – 50 anos
Sênior: acima de 50 anos

Algoritmo Idade
Variaveis idade: inteiro

Inicio
Escreva (“Digite a idade do nadador”)
Leia (idade)
Escolha idade
Departamento de Informática
Curso: Sistemas de Informação – Informática
Disciplina: Projeto de Algoritmos
Professor: Flávio Manzi Alves

caso 5 ate 7
EscrevaL (“Infantil A”)
caso 8 ate 10
EscrevaL (“Infantil B”)
caso 11 ate 13
EscrevaL (“Juvenil A”)
caso 14 ate 17
EscrevaL (“Juvenil B”)
caso 18 ate 35
EscrevaL (“Adulto”)
caso 36 ate 50
EscrevaL (“Veterano”)
Outrocaso
Se (idade > 50) Entao
EscrevaL (“Sênior”)
Senao
EscrevaL (“Idade inválida”)
Fim se
Fim escolha
Fim.

5. Uma Companhia de Seguros define o nível de risco de seus segurados de acordo com a faixa etária e o
grupo de risco, conforme tabela abaixo. Faça um algoritmo que receba a idade e o grupo de risco de um
cliente e apresente o seu nível de risco (observação: a Companhia de Seguros não opera com menores de
18 anos e maiores de 70 anos e para estes, o nível de risco deve ser igual a 0)
Faixa etária Grupo de Risco
Baixo Médio Alto
18 – 24 1 2 3
25 – 39 2 3 4
40 – 54 3 4 5
55 – 70 6 7 8

Algoritmo Seguradora

Var idade, Nivel_Risco: Inteiro


grupo_risco: caractere

Inicio
Escreva (“Informe a idade do cliente ”)
Leia (idade)
Escreva (“Informe o grupo de risco (B/M/A) ”)
Leia (grupo_risco)
Escolha idade
caso 18 ate 24
Escolha grupo_risco
caso “B”: Nível_Risco  1
caso “M”: Nível_Risco  2
caso “A”: Nível_Risco  3
FimEscolha
caso 25 ate 39
Escolha grupo_risco
caso “B”: Nível_Risco  2
Departamento de Informática
Curso: Sistemas de Informação – Informática
Disciplina: Projeto de Algoritmos
Professor: Flávio Manzi Alves

caso “M”: Nível_Risco  3


caso “A”: Nível_Risco  4
FimEscolha
caso 40 ate 54
Escolha grupo_risco
caso “B”: Nível_Risco  3
caso “M”: Nível_Risco  4
caso “A”: Nível_Risco  5
FimEscolha
caso 55 ate 70
Escolha grupo_risco
caso “B”: Nível_Risco  6
caso “M”: Nível_Risco  7
caso “A”: Nível_Risco  8
FimEscolha
Outrocaso
Nível_Risco  0
FimEscolha
Se (Nivel_Risco = 0) Entao
EscrevaL (“A Companhia de Seguros não opera com clientes com idade ”, idade)
Senao
EscrevaL (“O nível de risco do cliente é ”, Nivel_Risco)
Fim se
Fim.

6. Escreva um algoritmo que receba as duas notas bimestrais de um aluno da UPIS, calcule a média final
(média aritmética) e apresente o conceito, de acordo com a tabela abaixo:
Média Conceito
0 SR
0,1 a 2,9 E
3,0 a 4,9 D
5,0 a 6,9 C
7,0 a 8,9 B
9,0 a 10,0 A

Algoritmo Menção_Aluno

Var med1, med2, media: real


mencao: caractere
med_int : inteiro
{ a variável med_int é para permitir a implementação do comando escolha, que
utiliza necessariamente um tipo enumerado – no caso o inteiro }

Inicio
Escreva (“Informe a média do primeiro bimestre ”)
Leia (med1)
Escreva (“Informe a média do segundo bimestre ”)
Leia (med2)
media  (med1 + med2)/2
med_int  10 * med
Escolha med_int
caso 0
Departamento de Informática
Curso: Sistemas de Informação – Informática
Disciplina: Projeto de Algoritmos
Professor: Flávio Manzi Alves

mencao  “S”
caso 1 ate 29
mencao  “E”
caso 30 ate 49
mencao  “D”
caso 50 ate 69
mencao  “C”
caso 70 ate 89
mencao  “B”
caso 90 ate 100
mencao  “A”
FimEscolha
Se (mencao = “S”) Entao
EscrevaL (“A menção foi SR ”)
Senao
EscrevaL (“A menção foi ”, mencao)
Fim se
Fim.

7. Escreva um algoritmo, que dados o dia e mês de nascimento de uma pessoa, informe o seu signo, de
acordo com a tabela:
Período Signo
21/março a 20/abril Áries
21/abril a 20/maio Touro
21/maio a 21/junho Gêmeos
22/junho a 23/julho Câncer
24/julho a 23/agosto Leão
24/agosto a 23/setembro Virgem
24/setembro a 22/outubro Libra
23/outubro a 22/novembro Escorpião
23/novembro a 21/dezembro Sagitário
22/dezembro a 20/janeiro Capricórnio
21/janeiro a 19/fevereiro Aquário
20/fevereiro a 20/março Peixes

Algoritmo Signo

Var dia, mes: Inteiro


Nome_signo: caractere

Inicio
Escreva (“Informe seu dia de nascimento ”)
Leia (dia)
Escreva (“Informe seu mês de nascimento ”)
Leia (mes)
Escolha mes
caso 1
Escolha dia
caso 1 ate 20: Nome_signo  “Capricórnio”
caso 21ate 31: Nome_signo  “Aquário”
outrocaso
Departamento de Informática
Curso: Sistemas de Informação – Informática
Disciplina: Projeto de Algoritmos
Professor: Flávio Manzi Alves

Nome_signo  “Dia inválido”


FimEscolha
caso 2
Escolha dia
caso 1 ate 19: Nome_signo  “Aquário”
caso 20ate 29: Nome_signo  “Peixes”
outrocaso
Nome_signo  “Dia inválido”
FimEscolha
caso 3
Escolha dia
caso 1 ate 20: Nome_signo  “Peixes”
caso 21ate 31: Nome_signo  “Áries”
outrocaso
Nome_signo  “Dia inválido”
FimEscolha
caso 4
Escolha dia
caso 1 ate 20: Nome_signo  “Áries”
caso 21ate 30: Nome_signo  “Touro”
outrocaso
Nome_signo  “Dia inválido”
FimEscolha
caso 5
Escolha dia
caso 1 ate 20: Nome_signo  “Touro”
caso 21ate 31: Nome_signo  “Gêmeos”
outrocaso
Nome_signo  “Dia inválido”
FimEscolha
caso 6
Escolha dia
caso 1 ate 21: Nome_signo  “Gêmeos”
caso 22ate 30: Nome_signo  “Câncer”
outrocaso
Nome_signo  “Dia inválido”
FimEscolha
caso 7
Escolha dia
caso 1 ate 23: Nome_signo  “Câncer”
caso 24ate 31: Nome_signo  “Leão”
outrocaso
Nome_signo  “Dia inválido”
FimEscolha
caso 8
Escolha dia
caso 1 ate 23: Nome_signo  “Leão”
caso 24ate 31: Nome_signo  “Virgem”
outrocaso
Nome_signo  “Dia inválido”
FimEscolha
caso 9
Departamento de Informática
Curso: Sistemas de Informação – Informática
Disciplina: Projeto de Algoritmos
Professor: Flávio Manzi Alves

Escolha dia
caso 1 ate 23: Nome_signo  “Virgem”
caso 24ate 30: Nome_signo  “Libra”
outrocaso
Nome_signo  “Dia inválido”
FimEscolha
caso 10
Escolha dia
caso 1 ate 22: Nome_signo  “Libra”
caso 23ate 31: Nome_signo  “Escorpião”
outrocaso
Nome_signo  “Dia inválido”
FimEscolha
caso 11
Escolha dia
caso 1 ate 22: Verifica._Signo  “Escorpião”
caso 23ate 30: Nome_signo  “Sagitário”
outrocaso
Nome_signo  “Dia inválido”
FimEscolha
caso 12
Escolha dia
caso 1 ate 21: Nome_signo  “Sagitário”
caso 22ate 31: Nome_signo  “Capricórnio”
outrocaso
Nome_signo  “Dia inválido”
FimEscolha
Outrocaso
Nome_signo  “Mês inválido”
FimEscolha
Se (Nome_signo = “Dia inválido) ou (nome_signo = “Mês inválido”) Entao
EscrevaL (nome_signo)
Senao
EscrevaL (“O seu signo é ”, nome_signo)
Fim se
Fim.

8. Escreva um algoritmo que receba dois valores numéricos (a, b) e um operador (“+”, “-”, “x” e “/”) e
implemente uma calculadora que realiza a respectiva operação com os dois operandos informados.

Algoritmo Calculadora

Var num1, num2, Result: Real


Operador: caractere
Erro: cadeia

Inicio
Escreva (“Digite o primeiro operando ”)
Leia (num1)
Escreva (“Digite o segundo operando ”)
Leia (num2)
Departamento de Informática
Curso: Sistemas de Informação – Informática
Disciplina: Projeto de Algoritmos
Professor: Flávio Manzi Alves

Escreva (“Digite o operador ”)


Leia (operador)
Erro  “ok”
Escolha op
caso “+”
Result  num1 + num2
caso “-”
Result  num1 – num2
caso “x”
Result  num1 * num2
caso “/”
se (b <> 0) entao
Result  num1 / num2
senao
Erro  “Divisão por zero”
fimse
Outrocaso
Erro  “Operador inválido”
Fim escolha
Se (Erro = “ok”) Entao
EscrevaL (num1, operador, num2 “ = ” , Result)
Senao
EscrevaL (“Erro”)
Fim se
Fim.

Você também pode gostar