Você está na página 1de 21

ANO

2022

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

Aluno:
Anilton Araujo da Silva Junior
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:

Figura: Exemplo de programa com 1001 unidades sendo pedidas.

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


print("Bem vindo a loja do Anilton Araujo da Silva Junior ")
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
frete=0#inicia as variaveis
valorTotal = 0
if quantidade <= 0 and quantidade <11:#valor do frete e total em quantidades de
0 a 10
frete =30
valorTotal = valor + frete
elif quantidade<=11 and quantidade<101:#valor do frete e total em quantidades
de 11 a 100
frete = 60
valorTotal = valor + frete
elif quantidade<=101 and quantidade<1001:##valor do frete e total em
quantidades de 101 a 1000
frete = 120
valorTotal = valor + frete

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

else:#valor do frete e total em quantidades de 1000


frete = 240
valorTotal = valor + frete

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$
{:.2f})".format(valorTotal, frete), )#mostra na tela valor com 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 Anilton Araujo da Silva Junior ")
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 tabela de atributos

valorTotal=0#inicializa a variável valor

while True:#torna o while como verdadeiro

tamanho= str(input("Entre com o TAMANHO do pote desejado (P/M/G): "))#pede


ao usuario o tamanho do pote

if tamanho == 'P':# verifica qualo tamanho do pote


cod = str(input("Entre com o CÓDIGO do sabor desejado (TR/ES/PR):
"))#solicita o codigo do sabor
if cod == 'TR':

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

print("Você pediu um sorvete sabor TRADICIONAL P de R$


6,00")#mostra na tela o sabor e tamanho escolhido
valorTotal+= 6#soma o valor ao total
elif cod == 'ES':
print("Você pediu um sorvete sabor ESPECIAL P de R$ 7,00")
valorTotal+= 7
elif cod == 'PR':
print("Você pediu um sorvete sabor PREMIUM P de R$ 8,00")
valorTotal+=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 tamanho == 'M':

cod = str(input("Entre com o CÓDIGO do sabor desejado (TR/ES/PR):


"))

if cod == 'TR':
print("Você pediu um sorvete sabor TRADICIONAL M de R$ 10,00")
valorTotal+= 10
elif cod == 'ES':
print("Você pediu um sorvete sabor ESPACIAL M de R$ 12,00")
valorTotal+= 12
elif cod == 'PR':
print("Você pediu um sorvete sabor PREMIUM M de R$ 14,00")
valorTotal+= 14
else:
print("Código Invalido")
continue
elif tamanho == 'G':

cod = str(input("Entre com o CÓDIGO do sabor desejado (TR/ES/PR):


"))

if cod == 'TR':
print("Você pediu um sorvete sabor TRADICIONAL G de R$ 18,00")
valorTotal+= 18
elif cod == 'ES':
print("Você pediu um sorvete sabor ESPECIAL G de R$ 21,00")
valorTotal+= 21
elif cod == 'PR':
print("Você pediu um sorvete sabor PREMIUM G de R$ 24,00")
valorTotal+= 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) :"))#verifica se o


usuario se deseja continuar

if x=="N":#avalia se o usuário deseja encerrar o pedido


break#encerra o while

print("Valor total a ser pago é: {:.2f}".format(valorTotal))#Mostra o valor


final ao fim do while

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

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

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 ():#método para calcular a limpeza pelo m²
print("*************** Menu 1 de 3 - Metragem limpeza
************************")
while True: #while para rodar a função quando ocorrer um except
try: #parte válida do código
metro = float(input("Entre com a metragem (em m²): "))#recebe o
valor em m²

if metro >=30 and metro<300:#verifica se o valor está dentro do


admitido
resultado = 60 + 0.3 * metro
elif metro>=300 and metro <700:
resultado = 120 + 0.5 * metro

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

else:#valor diferente do valor da tabela


raise NameError#manda o erro para o except
return resultado #retorna o valor total
except NameError: #quando existir um erro
print("Não aceitamos casa com metragem menor que 30 m² ou maior que
700 m² !!")

def tipo_limpeza ():


print("*************** Menu 2 de 3 - Tipo de 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")
tipo = str(input("Entre com o tipo de limpeza: "))#adiciona o tipo
da limpeza
if tipo =="B":#verifica qual o multiplicador a partir do tipo
multiplicador = 1
print("Você selecionou B – Básica")
elif tipo == "C":
multiplicador = 1.3
print("Você selecionou C – Completa")
else:#caso tipo seja diferente que o informado
raise NameError
return multiplicador#retorna o multiplicador
except NameError:
print("opção inválida")
def adicional_limpeza():
print("*************** Menu 3 de 3 - Adicional de limpeza
************************")
resultado=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")

adicional = int(input(": "))#recebe o adicional desejado

if adicional ==0:#verifica qual tipo foi escolhido


resultado += 0
break #encerra o método caso escolhido 0
elif adicional == 1:
resultado += 10
elif adicional == 2:
resultado += 12
elif adicional == 3:
resultado += 20
else:
raise ValueError
except ValueError:#adicional não correspondente
print("opção inválida")
return resultado # retorna o resultado
print("Bem vindo ao Programa de serviços de limpeza do Anilton Araujo da Silva
Junior ")
metragem = metragem_limpeza()#chama o método e adiciona o returno em uma
variável

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

tipo = tipo_limpeza()
adicional = adicional_limpeza()
total = metragem * tipo + adicional#calcula o valor a ser pago
print("Total : {} (metragem: {} * tipo: {} + adicional: {})".format(total,
metragem, tipo, adicional))#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)


lst=[]#inicializando a lista
codi=0#inicializando o código
def cadastrar_funcionario (cod): #função de cadastro que recebe o codigo como
parêmatro
print("codigo do funcionário :",cod)
nome = str(input("Digite o nome do funcionario: "))#recebe os valores
referente ao funcionario
setor = str(input("Digite o setor do funcionario: "))
salario = float(input("Digite o valor do salario: "))
dic = {'codigo':cod,'nome':nome,'setor':setor,'salario':salario}#salva em
um dicionário
return dic #retorna o dicionario
def consultar_funcionarios():#função para consultar
while True:#while para reiniciar o menu após a verificação
print("você selecionou consultar funcionário")
print("Escolha a opção desejada:")
print("1 - Consultar todos os funcionários \n2 - Consultar funcionário
por código \n3 - Consultar funcionario por setor \n4 - retornar")#menu com os
tipos de consulta
escolha = int(input(""))#input para escolher o o tipo de consulta
if escolha == 1:#para a veriguar qual o tipo de consulta
for i in range(len(lst)):#percorre a lista no tamanho da lista
dic = lst[i]#salva a lista corresponde a interação na variável

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

dic
print("Código :",dic['codigo'])
print("Nome: ",dic['nome'])
print("Setor: ",dic['setor'])#printa os dados da lista na tela
print("Salário: ",dic['salario'])
print('--------')
elif escolha == 2:
cod=str(input("digite o codigo :"))#pede ao usuário o codigo que
desja pesquisar
for i in range(len(lst)):
dic = lst[i]
if str(dic['codigo']) == cod:#verifica se o código da interação
é o mesmo solicitado pelo cliente
print("Código :", dic['codigo'])
print("Nome: ", dic['nome'])
print("Setor: ", dic['setor']) # printa os dados da lista
na tela
print("Salário: ", dic['salario'])
print('--------')
elif escolha == 3:
set=str(input("digite o nome do setor :"))#pede ao usuário o
fabricante que desja pesquisar
for i in range(len(lst)):
dic = lst[i]
if str(dic['setor']) == set:#verifica se o fabricante da
interação é o mesmo solicitado pelo cliente
print("Código :", dic['codigo'])
print("Nome: ", dic['nome'])
print("Setor: ", dic['setor']) # printa os dados da lista
na tela
print("Salário: ", dic['salario'])
print('--------')
else:
break# para o menu caso o usuario deseje retornar ao menu anterior
def remover_funcionario ():#função para remover o funcionario
cod=int(input("digite o código a ser removido:"))#pede ao usuário o que
deseja remover
del(lst[cod-1])#deleta o dicionario a partir de seu código
print("Bem Vindo ao controle de funcionários do Anilton Araujo da Silva Junior
")
while True:#para sempre inicializar o menu
x = 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 x == 1:
codi=codi+1#contador para o código
lst.append(cadastrar_funcionario(codi))#adiciona o dicionario a lista
elif x == 2:
consultar_funcionarios()#consulta o funcionario
elif x == 3:
remover_funcionario()#remove o funcionario
else:
break#encerra o programa

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


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

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

Um 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