Você está na página 1de 21

ANO

2022

ATIVIDADE PRÁTICA:
LÓGICA DE PROGRAMAÇÃO
E ALGORITMOS

Aluno:
aaaaaaaa
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

QUESTÃO 1 de 4 (25 pontos)


CONTEÚDO ATÉ AULA 03
Enunciado: Imagina-se que você é um dos programadores responsáveis pela construção
de app de vendas para uma determinada empresa X que vende em atacado. Para calcular
o valor total que o deve-se levar em consideração o custo de embalagem conforme a
tabela abaixo
Quantidade Custo Embalagem para Frete
0 <= quantidade < 11 R$ 30.00
11 <= quantidade < 101 R$ 60.00
101 <= quantidade < 1001 R$ 120.00
quantidade >= 1001 R$ 240.00
Elabore um programa em Python que:
1. Entre com o valor unitário do produto (Lembrar que número decimal é feito
com PONTO e não VÍRGULA);
2. Entre com a quantidade desse produto;
3. O programa deve retornar o valor total sem o frete;
4. O programa deve retornar o valor total após o frete;
5. Deve-se utilizar estruturas if, elif e else (EXIGÊNCIA 1 de 1);
6. Colocar um exemplo de SAIDA DE CONSOLE de compra de mais de 1000
und.
Segue o exemplo de SAIDA DE CONSOLE:

print("Bem vindo a loja do Maurício Rodrigues ")


produto = float(input("Entre com o valor do produto: "))#Salva o valor do
produto
quantidade= int(input("Entre com a quantidade: "))#salvao valor da quantidade
do produto
valor = produto * quantidade#calculo para o preço do produto sem frete
if quantidade <= 0 and quantidade <11:#condicional para o valor do frete em
quantidades de 0 a 10
frete = valor + 30
print("O valor sem frete foi de: R$ {:.2f}".format(valor))#mostra na tela
valor sem frete
print("O valor com frete foi de: R$ {:.2f} (frete de R$
30,00)".format(frete), )#mostra na tela valor com frete
elif quantidade<=11 and quantidade<101:#condicional para o valor do frete em
quantidades de 11 a 100
frete = valor + 60
print("O valor sem frete foi de: R$ {:.2f}".format(valor))
print("O valor com frete foi de: R$ {:.2f} (frete de R$
60,00)".format(frete))
elif quantidade<=101 and quantidade<1001:#condicional para o valor do frete em
quantidades de 101 a 1000
frete = valor + 120
print("O valor sem frete foi de: R$ {:.2f}".format(valor))
print("O valor com frete foi de: R$ {:.2f} (frete de R$
120,00)".format(frete))

1
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

else:#condicional para o valor do frete em quantidades acima de 1000


frete = valor + 240
print("O valor sem frete foi de: R$ {:.2f}".format(valor))
print("O valor com frete foi de: R$ {:.2f} (frete de R$
240,00)".format(frete))

Saída do Console (FORMATO IMAGEM – PRINT DA TELA)

2
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

QUESTÃO 2 de 4 (25 pontos)


CONTEÚDO ATÉ AULA 04
Enunciado: Você e sua equipe de programadores foram contratados para
desenvolver um app de vendas para uma sorveteria. Você ficou com a parte de
desenvolver a interface do cliente para retirada do produto.
A Sorveteria possui seguinte tabela com o código, descrição, tamanhos e os
valores de sorvete:
Código Descrição Tamanho P Tamanho M Tamanho G
(500 ml) (1000 ml) (2000 ml)
TR Sabores R$ 6,00 R$ 10,00 R$ 18,00
Tradicionais
ES Sabores R$ 7,00 R$ 12,00 R$ 21,00
Especiais
PR Sabores R$ 8,00 R$ 14,00 R$ 24,00
Premium

Elabore um programa em Python que:


1. Entre com o tamanho do pote de sorvete desejado;
2. Entre com o código do sorvete desejado;
3. Pergunte se o cliente quer pedir mais alguma coisa (se sim repetir a partir
do item 1. Caso contrário ir para próximo passo);
4. Encerre a conta do cliente com o valor total;
5. Deve-se utilizar estruturas if, elif e else (EXIGÊNCIA 1 de 3);
6. Se a pessoa digitar um TAMANHO de sorvete e/ou código diferente dos da
tabela printar na tela: ‘TAMANHO ou CÓDIGO inválido(s)’ e voltar para o
menu (EXIGÊNCIA 2 de 3);
7. Deve-se utilizar while, break, continue (EXIGÊNCIA 3 de 3);
o (DICA: utilizar o continue dentro else que verifica a opção inválida)
o (DICA: utilizar o break dentro if que verifica a opção sair)
8. Colocar um exemplo de SAIDA DE CONSOLE com 3 (três) sorvetes
9. Colocar um exemplo de SAIDA DE CONSOLE com erro tamanho
10. Colocar um exemplo de SAIDA DE CONSOLE com erro código

Segue o exemplo de SAIDA DE CONSOLE:

3
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

Figura: Exemplo de programa com 3 sorvetes pedidos, 1 erro no pedido do tamanho e 1


erro no código do sorvete.

Apresentação do Código (FORMATO TEXTO)


print("Bem Vindo a sorveteria do Maurício Rodrigues ")
print("******************************************CARDÁPIO**********************
****************")
print("|Código| Descrição |Tamanho P (500 ml)|Tamanho M (1000 ml)|
Tamanho G (2000 ml)|")
print("| TR |Sabores Tradicionais| R$ 6,00 | R$ 10,00 |
$ 18,00 |")
print("| Es |Sabores Especiais | R$ 7,00 | R$ 12,00 |
$ 21,00 |")
print("| PR |Sabores Premium | R$ 8,00 | R$ 14,00 |
$ 24,00 |")
print("************************************************************************
****************")#mostrar na tela o cardápio
valor=0#inicializa a variável valor
while True:#torna o while como verdadeiro
tam= str(input("Entre com o tamanho do pote desejado (P/M/G): "))#pede ao
usuario o tamanho do pote
if tam == 'P':# verifica qual o tamanho do pote
codigo = str(input("Entre com o código do sabor desejado (TR/ES/PR):
"))#solicita o codigo do sabor
if codigo == 'TR':
print("Você pediu um sorvete sabor tradicional P de R$
6,00")#mostra na tela o sabor e tamanho escolhido
valor+= 6#soma o valor ao total
elif codigo == 'ES':

4
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

print("Você pediu um sorvete sabor especial P de R$ 7,00")


valor+= 7
elif codigo == 'PR':
print("Você pediu um sorvete sabor premium P de R$ 8,00")
valor+=8
else:
print("Código Inválido")#mostra mensagem caso o codigo seja
invalido
continue#retorna ao inicio do while para raceber o codigo
correto
elif tam == 'M':
codigo = str(input("Entre com o código do sabor desejado (TR/ES/PR):
"))
if codigo == 'TR':
print("Você pediu um sorvete sabor tradicional M de R$ 10,00")
valor+= 10
elif codigo == 'ES':
print("Você pediu um sorvete sabor especial M de R$ 12,00")
valor+= 12
elif codigo == 'PR':
print("Você pediu um sorvete sabor premium M de R$ 14,00")
valor+= 14
else:
print("Código Invalido")
continue
elif tam == 'G':
codigo = str(input("Entre com o código do sabor desejado (TR/ES/PR):
"))
if codigo == 'TR':
print("Você pediu um sorvete sabor tradicional G de R$ 18,00")
valor+= 18
elif codigo == 'ES':
print("Você pediu um sorvete sabor especial G de R$ 21,00")
valor+= 21
elif codigo == 'PR':
print("Você pediu um sorvete sabor premium G de R$ 24,00")
valor+= 24
else:
print("Código Invalido")
continue
else:# quando o tamanho for diferente do mostrado na tabela
print("Tamanho Invalido")
continue#retorna ao inicio do while para raceber o codigo correto
x=str(input("Deseja pedir mais alguma coisa (S/N) :"))#pergunta ao usuario
se deseja continuar
if x=="N":#avalia se o usuário deseja encerrar o pedido
break#encerra o while
print("Valor total: R${:.2f}".format(valor))#printa o valor final ao término do
while

Saída do Console (FORMATO IMAGEM – PRINT DA TELA)

5
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

6
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

QUESTÃO 3 de 4 (25 pontos)


CONTEÚDO ATÉ AULA 05
Enunciado: Imagina-se que você e sua equipe foram contratados por uma empresa preste
serviços de limpeza para desenvolver a solução de software. Você ficou encarregado da
parte de interação com o usuário.
O valor que a empresa cobra por limpeza é dado pela seguinte equação:
total=(metragem∗tipo)+ adional(is)
Em que cada uma das variáveis que compõe o preço total é quantizada da seguinte
maneira:
Quadro 1: Metragem versus valor Quadro 2: Tipo versus multiplicador
Metragem (m²) Valor (R$) Tipo Multiplicador
30 <= metragem < 300 60 + 0.3 * metragem B – Básica - Indicada para 1.00
300 <= metragem < 700 120 + 0.5 * metragem sujeiras semanais ou
Outros valores Não são aceitos quinzenais
C – Completa - Indicada 1.30
para sujeiras antigas e/ou
não rotineiras

Quadro 3: Adicionais versus valor


Adicionais Valor (R$)
0- Não desejo mais nada (encerrar) 0,00
1- Passar 10 peças de roupas - R$ 10.00 10,00
2- Limpeza de 1 Forno/Micro-ondas - R$ 12,00 12,00
3- Limpeza de 1 Geladeira/Freezer - R$ 20,00 20,00
Elabore um programa em Python que:
1. Pergunte a metragem (em m²).Se digitar um valor não numérico e/ou metragem for
menor/maior que o limite aceito repetir a pergunta;
2. Pergunte a tipo de limpeza. Se digitar uma opção não válida deve repetir a pergunta
3. Pergunte o adicional. Deve-se perguntar ao usuário se desejada mais algum
adicional até digitar ele 0
4. Encerre o total a ser pago com base na equação desse enunciado;
5. Deve-se codificar uma função metragem_limpeza() (EXIGÊNCIA 1 de 3);
o Deve-se perguntar dentro da função a metragem da porção (em m²);
o Deve-se ter um if/else ou if/elif ou if/else/elif para verificar se o usuário não
digitou uma metragem fora da faixa com que o empresa trabalha;
o Deve-se ter try/except para o caso do usuário digitar um valor não numérico;
o Deve-se retornar o valor em (RS) conforme a Quadro 1
6. Deve-se codificar uma função tipo_limpeza() (EXIGÊNCIA 2 de 3);
o Deve-se perguntar dentro da função a opção desejada;
o Deve-se ter um if/elif/else para verificar as opções possíveis ou não;
o Deve-se retornar o multiplicador conforme o Quadro 2
7. Deve-se codificar uma função adicional_limpeza() (EXIGÊNCIA 3 de 3);
o Deve-se perguntar dentro se deseja ou não mais algum adicional
o Deve-se ter um if/elif/else para verificar as opções possíveis ou não;
o Deve-se retornar o multiplicador conforme o Quadro 3
8. Colocar um exemplo de SAIDA DE CONSOLE com metragem inválida
9. Colocar um exemplo de SAIDA DE CONSOLE tipo de limpeza inválido
10. Colocar um exemplo de SAIDA DE CONSOLE metragem e opção válidos e mais 3
adicionais e no final deve ter o encerramento da conta com o descritivo de valor de

7
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

cada varável (ver figura abaixo)


Segue o exemplo de SAIDA DE CONSOLE:

Figura: Exemplo de programa com metragem inválido e depois válido, tipo de limpeza
inválido e depois válido, 3 adicionais e com total descritivo.

Apresentação do Código (FORMATO TEXTO)


def metragem_limpeza ():
while True: #while para rodar a função quando ocorrer um except
try: #parte válida do código
metroQuadrado = float(input("Entre com a metragem (em m²):
"))#recebe o valor em m² do usuario

if metroQuadrado >=30 and metroQuadrado<300:#verifica qual o valor


a partir da metragem
total = 60 + 0.3 * metroQuadrado
elif metroQuadrado>=300 and metroQuadrado <700:
total = 120 + 0.5 * metroQuadrado
else:#caso a metragem seja diferente do valor da tabela
raise NameError#induz o erro para o except

8
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

return total #retorna o valor total


except NameError:
print("Não aceitamos casa com metragem menor que 30 m² ou maior que
700 m².")
def tipo_limpeza ():
while True:
try:
print("B – Básica - Indicada para sujeiras semanais ou
quinzenais")#mostra o tipo de limpeza
print("C – Completa - Indicada para sujeiras antigas e/ou não
rotineiras")
limpeza = str(input("Entre com o tipo de limpeza: "))#adiciona o
tipo da limpeza
if limpeza =="B":#verifica qual o multiplicador a partir do tipo
mult = 1
print("Você selecionou limpeza Básica")
elif limpeza == "C":
mult = 1.3
print("Você selecionou limpeza Completa")
else:#caso tipo seja diferente que o informado
raise NameError
return mult#retorna o multiplicador
except NameError:
print("!!! Opção Inválida !!!")
def adicional_limpeza():
valor=0 #inicia a variável valor
while True:
try:#função válida do código
print("Deseja ou não mais algum adicional?")#mostra os adicionais
print("0- Não desejo mais nada (encerrar)")
print("1- Passar 10 peças de roupas - R$ 10.00")
print("2- Limpeza de 1 Forno/Micro-ondas - R$ 12,00")
print("3- Limpeza de 1 Geladeira/Freezer - R$ 20,00")
adc = int(input(": "))#recebe o adicional desejado

if adc ==0:#verifica qual item foi escolhido


valor += 0
break #encerra o método caso escolhido 0
elif adc == 1:
valor += 10
elif adc == 2:
valor += 12
elif adc == 3:
valor += 20
else:
raise ValueError
except ValueError:#except para quando for digitado um adicional não
correspondente
print("!!! Opção Inválida !!!")
return valor # retorna o valor
print("Bem vindo ao Programa de serviços de limpeza do Maurício Rodrigues ")
print("*******************************************************************")
print("*************** Menu 1 de 3 - Metragem limpeza ********************")
metro = metragem_limpeza()#chama a função e adicona o valor retornado na
váriável
print("*************** Menu 2 de 3 - Tipo de limpeza *********************")
tipo = tipo_limpeza()
print("*************** Menu 3 de 3 - Adicional de limpeza
********************")
adc = adicional_limpeza()
total = metro * tipo + adc#faz o calculo do valor a ser pago

9
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

print("Total a pagar : {} (metragem: {} * tipo: {} + adicional:


{})".format(total, metro, tipo, adc))#exibe na tela os valores

Saída do Console (FORMATO IMAGEM – PRINT DA TELA)

10
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

11
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

QUESTÃO 4 de 4 (25 pontos)


CONTEÚDO ATÉ AULA 06
Enunciado: Imagina-se que você está desenvolvendo um software de controle de
funcionários para uma empresa de RH. Este software deve ter o seguinte menu e
opções:
1. Cadastrar Funcionário
2. Consultar Funcionários(s)
1) Consultar Todas as Funcionários
2) Consultar Funcionário por Id
3) Consultar Funcionário(s) por Setor
4) Retornar
3. Remover Funcionário
4. Sair
Elabore um programa em Python que:
1. Deve-se codificar uma função cadastrar_funcionario(id) (EXIGÊNCIA 1);
o Essa função recebe como parâmetro um id exclusivo para cada funcionário
cadastrado (DICA: utilize um contador como parâmetro)
o Dentro da função perguntar o nome do funcionário;
o Dentro da função perguntar o setor do funcionário;
o Dentro da função perguntar o salário do funcionário
o Cada funcionário cadastrado deve ter os seus dados armazenados num
DICIONÁRIO (DICA: Conferir material escrito da p. 22 até p24 da AULA 06)
2. Deve-se codificar uma função consultar_funcionários()(EXIGÊNCIA 2);
o Dentro da função ter um menu com as seguintes opções:
 Consultar Todos os Funcionários
 Consultar Funcionário por Id
 Consultar Funcionário(s) por Setor
 Retornar
3. Deve-se codificar uma função remover_funcionario() (EXIGÊNCIA 3);
o Dentro da função perguntar qual o código do funcionário que se deseja
remover do cadastro (da lista de dicionário)
4. Colocar um exemplo de SAIDA DO CONSOLE com o cadastro de 3 (ou mais)
funcionários . Sendo que 2 delas do mesmo setor – ver figura 1
5. Colocar um exemplo de SAIDA DO CONSOLE com a consulta a todos os
funcionários cadastrados – ver figura 2
6. Colocar um exemplo de SAIDA DO CONSOLE com uma consulta por id – ver figura
3
7. Colocar um exemplo de SAIDA DO CONSOLE com uma consulta por setor – ver
figura 4
8. Colocar um exemplo de SAIDA DO CONSOLE ao remover um funcionário
cadastrado e mostrando depois todos os funcionários – ver figura 5

Segue os exemplos de SAIDA DE CONSOLE:

12
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

Figura 1: Exemplo de Cadastro de três funcionário, sendo que 2 deles são do


mesmo setor.

13
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

Figura 2: Exemplo de Consulta Todos os Funcionários e pelo Id.

Figura 3: Exemplo de Consultar Funcionários pelo Setor.

14
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

Figura 4: Exemplo de Remover Funcionário do cadastro e depois Consultar Todos os


Produtos. Veja que a produto de código 2 foi removido e não aparece mais no sistema.

Apresentação do Código (FORMATO TEXTO)


lista=[]#inicia a lista
codigo=0#inicia o código
def cadastrar_funcionario (codigo): #método para cadastrar
print("------------------------- Menu Cadastra funcionário
-----------------------")
print("Código :", codigo)
nome = str(input("Entre com o nome do funcionário: "))#recebe os valores
para cadastrar o funcionario
setor = str(input("Entre com o setor do funcionário: "))
salario = float(input("Entre com o valor do salário: "))
funcionario = {'codigo':codigo, 'nome':nome, 'setor':setor,
'salario':salario}#salva no dicionário
return funcionario #retorna o dicionario
def consultar_funcionarios():#faz a consulta
while True:#while para reiniciar o menu após a verificação
print("------------------------- Menu Consulta funcionário
-----------------------")
print("Escolha a opção desejada:")#menu de consulta
print("1 - Consultar todos os funcionários")
print("2 - Consultar funcionário por código")
print("3 - Consultar funcionario por setor")
print("4 - Retornar")
opcao = int(input(": "))# recebe o tipo de consulta

15
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

if opcao == 1:#identifica qual o tipo de consulta


for i in range(len(lista)):#percorre a lista
dicionario = lista[i]#salva a lista da interação no dicionario
print("Código :",dicionario['codigo'])
print("Nome: ",dicionario['nome']) #mostra dados dos
funcionarios
print("Setor: ",dicionario['setor'])
print("Salário: ",dicionario['salario'])
print('*******************************')

elif opcao == 2:
codigo=str(input("Entre com o codigo :"))#pede ao usuário o codigo
da pesquisa
for i in range(len(lista)):
dicionario = lista[i]
if str(dicionario['codigo']) == codigo:#verifica se o código da
interação é o mesmo solicitado pelo usuario
print("Código :", dicionario['codigo'])
print("Nome: ", dicionario['nome'])
print("Setor: ", dicionario['setor'])
print("Salário: ", dicionario['salario'])
print('*******************************')
elif opcao == 3:
setor=str(input("Entre com o nome do setor :"))#pede ao usuário o
fabricante que desja pesquisar
for i in range(len(lista)):
dicionario = lista[i]
if str(dicionario['setor']) == setor:#verifica se o fabricante
da interação é o mesmo solicitado pelo cliente
print("Código :", dicionario['codigo'])
print("Nome: ", dicionario['nome'])
print("Setor: ", dicionario['setor'])
print("Salário: ", dicionario['salario'])
print('*******************************')
else:
break# retorna ao menu principal
def remover_funcionario ():# remove o funcionario
codigo=int(input("Entre com o código a ser removido:"))#recebe o codigo
para remover
del(lista[codigo - 1])#deleta o funcionario da lista
print("Bem Vindo ao controle de funcionários do Maurício Rodrigues ")

while True:# inicia o menu principal e continua rodando o menu até que o
usuario pare
print("------------------------- Menu Principal -----------------------")
opcao = int(input("Escolha a opção desejada\n1- Cadastrar funcionário\n2-
Consultar funcionario\n3- Remover funcionario\n4- Sair\n"))#recebe o valor que
deseja receber do menu
if opcao == 1:
codigo+=1#contador para o código
lista.append(cadastrar_funcionario(codigo))#adiciona o dicionario a
lista
elif opcao == 2:
consultar_funcionarios()#consulta o funcionario
elif opcao == 3:
remover_funcionario()#remove o funcionario
else:
break#encerra o programa

16
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

Saída do Console (FORMATO IMAGEM – PRINT DA TELA)


Print cadastrando 3 funcionários (2 do mesmo setor).

Print consultando todos os funcionários cadastrados e uma consulta por Id.

17
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

Print mostrando a consulta por setor.

18
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

19
Caderno de Respostas da Atividade Prática de Lógica de Programação e Algoritmos.

Print mostrando remoção de um funcionário.

20

Você também pode gostar