Você está na página 1de 28

ANO

2022

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

Aluno:
LUCAS GABRIEL CARDOSO GOMES FERREIRA
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. Uma das
estratégias de vendas dessa empresa X é dar desconto maiores por unidade conforme a
tabela abaixo:
Quantidades Desconto
Até 9 0% na unidade
Entre 10 e 99 5% na unidade
Entre 100 e 999 10% na unidade
De 1000 para mais 15% na unidade
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 desconto;
4. O programa deve retornar o valor total após o desconto;
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 10 und.
(para mostrar que o desconto foi aplicado)
Segue o exemplo de SAIDA DE CONSOLE:

Colocar o seu nome

OBS: Para os números decimais ficarem com somente duas casas depois da vírgula
utilize {:.2f). Exemplo:
print('O valor sem desconto foi: R$ {:.2f}' .format(sub_total))

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


print('Bem Vindo a Loja do Lucas Gabriel Cardoso Gomes Ferreira') #
indentificador pessoal
valorun = (float(input('Insira o valor do produto:'))) # recebe o valor do
produto
quantidade = (int(input('Insira a quantidade:'))) # recebe a quantidade
valortotal = valorun * quantidade # calcula o valor total
print('O valor total foi de R$ {:.2f}'.format(valortotal)) # exibe o valor
total sem desconto
if 99 >= quantidade >= 10: # verifica se a quantidade está entre 10 e 99
porcentagem = 5 # porcentagem de desconto
elif 999 >= quantidade >= 100 and quantidade <= 999: # verifica se a
quantidade está entre 100 e 999
porcentagem = 10 # porcentagem de desconto
elif quantidade >= 1000: # verifica se a quantidade é maior que 999
porcentagem = 15 # porcentagem de desconto
else: # é executado caso de nenhum verificador acima ser verdadeira (até 9)

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

porcentagem = 0 # porcetagem de desconto

desconto = valortotal * (porcentagem/100) # calcula o valor a ser descontado


valordescontado = valortotal - desconto # aplica o desconto ao valor total
if porcentagem > 0: # é executado quando existe alguma porcentagem de desconto
print('O valor com desconto foi de R$ {:.2f} (desconto
{}%)'.format(valordescontado, porcentagem)) # exibe o
# valor com desconto

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

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 lanchonete. Você ficou com a parte de
desenvolver a interface do cliente para retirada do produto.
A lanchonete possui seguinte tabela de produtos listados com sua descrição,
códigos e valores:
Código Descrição Valor(R$)
100 Cachorro-Quente 9,00
101 Cachorro-Quente Duplo 11,00
102 X-Egg 12,00
103 X-Salada 13,00
104 X-Bacon 14,00
105 X-Tudo 17,00
200 Refrigerante Lata 5,00
201 Chá Gelado 4,00

Elabore um programa em Python que:


1. Entre com o código do produto desejado;
2. Pergunte se o cliente quer pedir mais alguma coisa (se sim repetir o passo
item 2. Caso contrário ir para próximo passo);
3. Encerre a conta do cliente com o valor total;
4. Deve-se utilizar estruturas if, elif e else (EXIGÊNCIA 1 de 3);
5. Se a pessoa digitar um NÚMERO diferente dos da tabela printar na tela:
‘opção inválida’ e voltar para o menu (EXIGÊNCIA 2 de 3);
6. Deve-se utilizar while, break, continue (EXIGÊNCIA 3 de 3);

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

o (DICA: utilizar o continue dentro else que verifica a opção inválida)


o (DICA: utilizar o break dentro elif que verifica a opção sair)
7. Colocar um exemplo de SAIDA DE CONSOLE com dois pedidos
8. Colocar um exemplo de SAIDA DE CONSOLE com erro ao digitar no pedido
Segue o exemplo de SAIDA DE CONSOLE:

Colocar o seu nome

Figura: Exemplo de programa com 2 itens pedido (Sendo que um deles teve uma
tentativa com erro) e no final o valor final é apresentado.

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


print('Bem Vindo a Lanchonete do Lucas Gabriel Cardoso Gomes Ferreira') #
indentificador pessoal
print('') # inicio do print do menu
print('******************Cardápio****************')
print('| Código | Descrição | Valor |')
print('| 100 | Cachorro Quente | 9,00 |')
print('| 101 | Cachorro Quente Duplo | 11,00 |')
print('| 102 | X-Egg | 12,00 |')
print('| 103 | X-Salada | 12,00 |')

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

print('| 104 | X-Bacon | 14,00 |')


print('| 105 | X-Tudo | 17,00 |')
print('| 200 | Refrigerante Lata | 5,00 |')
print('| 201 | Chá Gelado | 4,00 |')
print('------------------------------------------') # fim do print do menu
total = 0 # valor total do pedido(esta como zero para ser somado com os
pedidos futuros)
while True: # laço de repetição
codigo = int(input('Insira o código do produto desejado: ')) # recebe o
codigo do produto
if codigo == 100: # codigo para um produto da tabela
total += 9 # valor deste produto que é somado ao total
print('Você pediu um Cachorro Quente no valor de R$ 9,00') # print das
informações do produto pedido
elif codigo == 101: # elif com o mesmo padrão do if acima
total += 11
print('Você pediu um Cachorro Quente Duplo no valor de R$11,00')
elif codigo == 102: # elif com o mesmo padrão do elif acima
total += 12
print('Você pediu um X-Egg no valor de R$ 12,00')
elif codigo == 103: # elif com o mesmo padrão do elif acima
total += 12
print('Você pediu um X-Salada no valor de R$ 12,00')
elif codigo == 104: # elif com o mesmo padrão do elif acima
total += 14
print('Você pediu um X-Bacon no valor de R$ 14,00')
elif codigo == 105: # elif com o mesmo padrão do elif acima
total += 17
print('Você pediu um X-Tudo no valor de R$ 17,00')
elif codigo == 200: # elif com o mesmo padrão do elif acima
total += 5
print('Você pediu um Refrigerante Lata no valor de R$ 5,00')
elif codigo == 201: # elif com o mesmo padrão do elif acima
total += 4
print('Você pediu um Chá Gelado no valor de R$ 4,00')
else: # else para caso de codigo inexistente inserido
print('Opção Inválida') # print da mensagem de erro
continue # retorna ao inicio do pedido
print('Deseja Mais algum produto?')
print('Digite 1 para SIM')
print('Digite 0 para NÃO')
loop = int(input('Digite sua escolha: ')) # pergunta ao usuario se quer
fazer mais um produto
if loop: # em caso de True
continue # retorna ao inicio para pedir outro produto
else: # em caso de False
break # quebra o laço de repetição para exibir o valor total
print('O valor total de seu pedido é de R$ {}'.format(total)) # exibe o valor
total do pedido

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

4
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
de logística que acabou de entrar no ramo. Essa empresa trabalha com encomendas
de pequeno e médio porte e opera somente entre 3 cidades.
O valor que a empresa cobra por objeto é dado pela seguinte equação:
𝒕𝒐𝒕𝒂𝒍 = 𝒅𝒊𝒎𝒆𝒏𝒔õ𝒆𝒔 ∗ 𝒑𝒆𝒔𝒐 ∗ 𝒓𝒐𝒕𝒂 que você e sua equipe
Em que cada uma das variáveis que compõe o preço total é quantizada da seguinte
maneira:

Quadro 1: Dimensões versus Valor Quadro 2: Peso versus multiplicador


dimensões (cm³) valor (R$) peso(kg) multiplicador

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

volume < 1000 10 peso <= 0.1 1


1000 <= volume < 10000 20 0.1 <= peso < 1 1.5
10000 <= volume < 30000 30 1 <= peso < 10 2
30000 <= volume < 100000 50 10 <= peso < 30 3
volume >= 100000 Não é aceito peso => 30 Não é aceito

Quadro 3: Rota versus multiplicador


rota multiplicador
RS - De Rio de Janeiro até São Paulo 1
SR - De São Paulo até Rio de Janeiro 1
BS - De Brasília até São Paulo 1.2
SB - De São Paulo até Brasília 1.2
BR - De Brasília até Rio de Janeiro 1.5
RB - Rio de Janeiro até Brasília 1.5
Obs.: Pode-se mudar o nome das cidades e siglas. Utilizando 3 cidades está
ótimo

Elabore um programa em Python que:


1. Pergunte a altura (em cm), comprimento (em cm) e largura (em cm) do objeto.
Se digitar um valor não numérico e/ou as dimensões passarem do limite
aceito repetir a pergunta;
2. Pergunte o peso do objeto (em kg). Se digitar um valor não numérico e/ou o
peso passar do limite aceito repetir a pergunta;
3. Pergunte a rota do objeto. Se digitar uma opção que não esteja na tabela
repetir a pergunta;
4. Encerre o total a ser pago com base na equação desse enunciado;
5. Deve-se codificar uma função dimensoesObjeto (EXIGÊNCIA 1 de 3);
o Dentro da função perguntar altura do objeto (em cm);
o Dentro da função perguntar o comprimento do objeto (em cm);
o Dentro da função perguntar a largura do objeto (em cm)
o Calcular o volume (em cm) da caixa p/a objeto (altura*largura*comprimento);
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 pesoObjeto (EXIGÊNCIA 2 de 3);
o Dentro da função perguntar peso do objeto (em kg);
o Deve-se ter um try/except para o caso de o usuário digitar um valor não
numérico;
o Deve-se retornar o multiplicador conforme o Quadro 2
7. Deve-se codificar uma função rotaObjeto (EXIGÊNCIA 3 de 3);
o Dentro da função perguntar a rota do objeto desejada (Sugestão: utilize as
siglas para facilitar os testes);
o OBS: PODE MUDAR O NOME DAS CIDADES E SUAS SIGLAS
o Deve-se retornar o multiplicador conforme o Quadro 3
8. Colocar um exemplo de SAIDA DE CONSOLE uma encomenda com peso,
dimensões e rota válidos
9. Colocar um exemplo de SAIDA DE CONSOLE com o tratamento de erro
quando digitado um valor não numérico é digitado no campo peso ou
dimensões)

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

Segue o exemplo de SAIDA DE CONSOLE:


Colocar o seu nome

Figura: Exemplo de programa com tratamento de valor e erro de digitação


Apresentação do Código (FORMATO TEXTO)
# Funções
def dimensoesobjeto(): # Função que descobre o volume do objeto e o transforma
em um valor em reais
while True: # laço de repetição para loop em caso de erro/valor invalido
try: # try para evitar erro de valor não numerico
largura = int(input('\nInsira a largura do objeto em cm: ')) #
recebe largura do objeto
if largura < 1: # 3 ifs, sendo um para cada valor, que verifica
numero negativo ou zero
print('\nErro... Valor negativo ou igual a zero inserido, tente
novamente!!') # mensagem de erro em
# caso de dimensão 0, pois a multiplicação do volume gerara
resultado 0
continue # repetição do laço em caso de erro
altura = int(input('Insira a altura do objeto em cm: ')) # recebe
altura do objeto

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

if altura < 1: # identico ao primeiro if da função


print('\nErro... Valor negativo ou igual a zero inserido, tente
novamente!!')
continue
comprimento = int(input('Insira o comprimento do objeto em cm: '))
# recebe comprimento do objeto
if comprimento < 1: # identico ao primeiro if da função
print('\nErro... Valor negativo ou igual a zero inserido, tente
novamente!!')
continue
volume = largura * altura * comprimento # formula de calculo do
volume
print('\nO volume de seu objeto é {}cm³'.format(volume)) #
exibição na tela do volume
except ValueError: # except em caso de erro no valor
print('\nErro... Medida incorreta, tente novamente!!') # print da
mensagem de erro
else: # executado apos o try
if volume < 1000: # verifica o volume
valor = 10 # nos da o valor do objeto relacionado ao volume
return valor # devolve o valor para o programa principal
elif 1000 <= volume < 10000: # identico ao primeiro if deste else
valor = 20
return valor
elif 10000 <= volume < 30000: # identico ao primeiro if deste else
valor = 30
return valor
elif 30000 <= volume < 100000: # identico ao primeiro if deste
else
valor = 50
return valor
elif volume >= 100000: # verifica o volume maior que o aceitado
print('\nNão aceitamos dimensões tão grandes, tente
novamente!!') # mensagem de erro ao inserir
# objeto grande

def pesoobjeto(): # função em que pergunta o peso e retorna um multiplicador


while True: # laço de repetição para loop em caso de erro/valor invalido
try: # try para evitar valor não numerico
peso = float(input('\nInsira o peso do objeto em kg: ')) # recebe
o peso
except ValueError:
print('\nErro... Peso incorreto, tente novamente!!') # mensagem de
erro em caso de peso valor incorreto
else: # executa apos o try
if peso < 0.1: # verifica se o peso do objeto é menor que o
permitido ou negativo
print('\nErro... Valor negativo ou muito pequeno inserido,
tente novamente!!') # mensagem de erro
continue # retorna o laço para inserir um valor permitido
elif peso <= 0.1: # verifica o peso do objeto
multiplicador = 1 # nos da o valor do multiplicador referente
ao peso
return multiplicador # retorna ao programa principal o valor
do multiplicador
elif 0.1 < peso <= 1: # identico ao primeiro elif deste else
multiplicador = 1.5
return multiplicador
elif 1 < peso <= 10: # identico ao primeiro elif deste else
multiplicador = 2

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

return multiplicador
elif 10 < peso <= 30: # identico ao primeiro elif deste else
multiplicador = 3
return multiplicador
elif peso > 30: # verifica se o peso é maior que o aceito
print('\n não aceitamos pesos tão grandes! Tente novamente!!')
# mensagem de erro

def rotaobjeto(): # função em que pergunta a rota e retorna um multiplicador


while True: # laço de repetição para loop em caso de rota incorreta
rota = input('\nInsira a rota desejada (sigla): ') # recebe a sigla da
rota
if rota == 'RS' or rota == 'Rs' or rota == 'rs' or rota == 'rS': #
verifica a rota digitada independente de
# maiusculo ou minuculo
print('\nA rota selecionada foi de Rio de Janeiro até São Paulo')
# printa a rota selecionado
multiplicador = 1 # determina o valor do multiplicador
return multiplicador # retorna ao programa principal o
multiplicador
if rota == 'PR' or rota == 'Pr' or rota == 'pr' or rota == 'pR': #
identico ao primeiro if
print('\nA rota selecionada foi de Paraná até Rio Grande do Sul')
multiplicador = 1.2
return multiplicador
if rota == 'BS' or rota == 'Bs' or rota == 'bs' or rota == 'bS': #
identico ao primeiro if
print('\nA rota selecionada foi de Brasília até Santa Catarina')
multiplicador = 1.5
return multiplicador
else: # em caso de rota incorreta exibe uma mensagem de erro
print('\nErro... Rota incorreta, tente novamente!!')
continue # retorna ao começo do laço para tentar novamente

def opcoesrota(): # função que exibe as opções de rota


print('\nSelecione a rota')
print('\nRS - De Rio de Janeiro para São Paulo')
print('\nPR - De Paraná para Rio Grande do Sul')
print('\nBS - De Brasília para Santa Catarina')

def loop(): # gera um loop caso o usuario queira efetuar mais um calculo de
encomenda
print('\n1 - Para efetuar mais uma operação')
print('2 - Para finalizar o programa')
while True:
try: # try para caso de erro de valor não numerico
op = int(input('\nEscolha uma opção: ')) # recebe a opção do
usuario
except ValueError:
print('Erro... Opção inválida inserida, tente novamente!!') #
mensagem de erro
else:
if op == 1: # verifica se a opção é sim
print('\n Reiniciando programa!!') # mensagem da reinicio
return True # retorna True para o loop
elif op == 2: # verifica se a opção é não
print('\nEncerrando programa!!') # mensagem de finalização do
programa

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

return False # retorna False para o loop


else: # em caso de nenhuma opção acima ser inserida
print('Erro... Opção inválida inserida, tente novamente!!') #
mensagem de erro
continue # retorna ao inicio e pergunta novamente ao usuario a
opção

# ProgramaPrincipal
print('Bem Vindo a Companhia de Logística Lucas Gabriel Cardoso Gomes Ferreira
S.A.') # indentificador pessoal
while True:
valortam = dimensoesobjeto() # variavel que recebe a função
dimensoesobjeto e guarda o valor
multpeso = pesoobjeto() # variavel que recebe a função pesoobjeto e guarda
o multiplicador
opcoesrota() # roda a variavel que exibe as opções
multrota = rotaobjeto() # variavel que recebe a função rotaobjeto e guarda
o multiplicador
total = valortam * multpeso * multrota # equação que calcula o valor total
print('\nO total a pagar é de R${}'.format(total)) # exibe o valor total
print('Sendo R${} pelo tamanho do objeto * {} pelo peso * {} pela
rota'.format(valortam, multpeso, multrota))
# exibe como o valor é calculado
rep = loop() # variavel que recebe a se o usuario deseja reiniciar o
programa
if rep: # em caso de True volta o laço
continue
else: # em caso de False finaliza o programa
break

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.

12
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
estoque para uma bicicletaria. Este software deve ter o seguinte menu e opções:
1. Cadastrar Peça
2. Consultar Peça
1) Consultar Todas as Peças
2) Consulta Peças por Código
3) Consulta Peças por Fabricante
4) Retornar
3. Remover Peça
4. Sair
Elabore um programa em Python que:
1. Deve-se codificar uma função cadastrarPeca (código) (EXIGÊNCIA 1);
o Essa função recebe como parâmetro um código exclusivo para cada peça
cadastrado (DICA: utilize um contador como parâmetro)
o Dentro da função perguntar o nome da peça;
o Dentro da função perguntar o fabricante da peça;
o Dentro da função perguntar o valor da peça
o Cada peça cadastrada 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 consultarPeca(EXIGÊNCIA 2);
o Dentro da função ter um menu com as seguintes opções:
▪ Consultar Todas as Peças
▪ Consultar Peças por Código
▪ Consultar Peças por Fabricante
▪ Retornar
3. Deve-se codificar uma função chamada removerPeca (EXIGÊNCIA 3);
o Dentro da função perguntar qual o código do produto 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) peças.
Sendo que 2 delas do mesmo fabricante – ver figura 1
5. Colocar um exemplo de SAIDA DO CONSOLE com a consulta a todas as peças
cadastradas – ver figura 2
6. Colocar um exemplo de SAIDA DO CONSOLE com uma consulta por código – ver
figura 3
7. Colocar um exemplo de SAIDA DO CONSOLE com uma consulta por fabricante – ver
figura 4
8. Colocar um exemplo de SAIDA DO CONSOLE ao remover um cadastro e mostrando
depois todos os cadastros– ver figura 5

Segue os exemplos de SAIDA DE CONSOLE:

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

Colocar o seu nome

Figura 1: Exemplo de Cadastrar de três peças. Perceba que 2 delas tem o


mesmo fabricante.

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

Figura 2: Exemplo de Consulta Todas as Peças.

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

Figura 3: Exemplo de Consultar por Código.

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

Figura 4: Exemplo de Consultar Peças por Fabricante

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

Figura 5: Exemplo de Remover Peça do cadastro e depois Consultar Todas as


Peças. Veja que a peça de código 1 foi removida e não aparece mais no sistema.

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

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


# FUNÇÕES
def cadastrarpeca(cd): # função que cadastra peças
print('\nVocê selecionou a opção Cadastrar Peças')
print('\nCódigo exclusivo peça : {}'.format(codigo))
peca['codigo'] = cd # recebe o codigo da peça em um dicionario
peca['nome'] = input('Por Gentileza, digite o NOME da peça: ') # recebe o
nome da peça em um dicionario
peca['fabricante'] = input('Por Gentileza, digite o FABRICANTE da peça: ')
# recebe o fabricante da peça em um
# dicionario
while True: # laço para retornar em caso de erro no valor da peça
try: # try para caso de valor não numerico inserido
peca['valor'] = float(input('Por Gentileza, digite o VALOR da peça:
')) # recebe o valor da peça em um
# dicionario
except ValueError: # gera uma mensagem de erro em caso de valor
incorreto e volta para o inicio do laço
print('\nErro... Valor incorreto inserido, tente novamente!!\n')
continue
else:
if peca['valor'] < 0: # verifica se o valor é negativo e reinicia
o laço
print('\nErro... Valor negativo inserido, tente novamente!!\n')
continue
break
lista.append((peca.copy())) # adiciona uma copia de nossos dicionario
dentro da lista de todas as peças
peca.clear() # limpa o dicionario para caso de cadastrar outra peça
print('\nPeça cadastrada com sucesso!!')

def consultarpeca(): # Função que consulta as peças já cadastradas


print('\nVocê selecionou a opção Consultar Peças')
while True:
print('\n1 - Consultar Todas as Peças') # opções para o usuario
print('2 - Consultar peças por Código')
print('3 - Consultar peças por Fabricante')
print('4 - Retornar para o Menu Anterior')
try: # try para caso de inserção de valor não numerico na opção
op = int(input('\nDigite uma opção: ')) # recebe a opção do
usuário
except ValueError: # em caso de erro no valor retorna ao inicio do
laço
print('\nErro... Opção incorreta inserida, tente novamente!!')
continue
else: # em caso de valor numerico inserido é rodado
if op == 1: # em caso de opção consultar todas as peças
print('\n Todas as Peças\n____________________')
for dicionario in lista: # verifica todos os itens na lista
for x, y in dicionario.items(): # pega todos as chaves e
valores dos dicionarios
print('{} : {}'.format(x, y)) # exibe estas chaves e
valores de forma mais organizada
print('____________________')
continue # retorna ao inicio da função após exibir todas as
peças

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

elif op == 2: # em caso de opção consultar peça por codigo


while True: # laço para retorno em caso de valor não numerico
de codigo
try: # try para testar o codigo da peça
cod = int(input('Por favor, digite o CÓDIGO da peça:
')) # recebe o codigo da peça a ser
# pesquisado
except ValueError: # em caso de valor não numerico
reinicia o recebimento de codigo
print('\nErro... Código incorreto inserida, tente
novamente!!\n')
continue
else:
print('\n Peças por Código\n______________________')
for dicionario in lista: # verifica todos os items na
lista
if dicionario['codigo'] == cod: # executado em
caso de encontrar o codigo da peça dentro
# de um dicionario
for x, y in dicionario.items(): # pega as
chaves e valores do dicionario escolhido
print('{} : {}'.format(x, y)) # exibe na
tela de forma organizada
print('______________________')
break
elif op == 3: # em caso de opção consultar peça por fabricante
fabri = input('Por favor, digite o FABRICANTE da peça:
').lower() # recebe o fabricante a pesquisar
print('\n Peças por Fabricante\n__________________________')
for dicionario in lista: # verifica todos os items na lista
if dicionario['fabricante'].lower() == fabri: # caso
encontrar o fabricante dentro de algum
# dicionario
for x, y in dicionario.items(): # pega as chaves e
valor destes dicionarios
print('{} : {}'.format(x, y)) # exibe na tela de
forma organizada
print('__________________________')
elif op == 4: # em caso de opção voltar ao menu principal sai do
laço e volta ao menu
break
else: # exibe uma mensagem de erro em caso de inserir uma opção
invalida
print('\nErro... Opção incorreta inserida, tente novamente!!')

def removerpeca(): # função que remove a peça da lista


print('Você selecionou a opção Remover Peça')
while True: # laço para caso de erros
try: # testa se o codigo é um valor numerico
cod = int(input('Digite o CÓDIGO da peça a ser removida: ')) #
recebe o codigo da peça a ser removida
except ValueError: # em caso de valor não numerico reinicia o laço
print('\nErro... Código incorreto inserida, tente novamente!!\n')
continue
for dicionario in lista: # verifica todos os itens na lista
if dicionario['codigo'] == cod: # procura o dicionario em que o
codigo é igual ao codigo da peça a remover
lista.remove(dicionario) # remove o dicionario em que o codigo
inserido se encontra
break

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

def menu(): # printa o menu principal


print('\n1 - Cadastrar Peças')
print('2 - Consultar Peças')
print('3 - Remover Peça')
print('4 - Sair')

# PROGRAMA PRINCIPAL
print('Bem Vindo ao Controle de Estoque da Bicicletaria do Lucas Gabriel
Cardoso Gomes Ferreira') # indentificador
# pessoal
lista = [] # lista vazia que vai receber os dicionarios
peca = {} # dicionario vazio que receberá os dados da peça
codigo = 0 # contador incial de codigo crescente
while True:
menu() # exibe o menu principal
try: # testa a opção inserida
opcao = int(input('\nDigite uma opção: ')) # recebe a opção do usuario
except ValueError: # em caso de valor não numerico não executa o restante
do programa e reinicia o laço
print('\nErro... Opção incorreta inserida, tente novamente!!')
else:
if opcao == 1: # em caso de opção 1 inicia a função cadastrarpeca
codigo += 1 # soma 1 ao codigo toda vez em que uma peça é
cadastrada, gerando para cada peça um codigo
# crescente
cadastrarpeca(codigo) # função para cadastrar peça recebendo o
codigo exclusivo da peça
continue # reinicia o laço apos a função terminar
elif opcao == 2: # em caso de opção 2 inicia a função consultarpeca
consultarpeca() # inicia a função
continue # reinicia o laço apos a função terminar
elif opcao == 3: # em caso de opção 3 inicia a função removerpeca
removerpeca() # inicia a função
continue # reinicia o laço apos a função terminar
elif opcao == 4: # em caso de opção 4 finaliza o programa
print('\nFinalizando programa!!')
break # quebramento do laço
else: # em caso de nenhuma das opções acima ser inserido, exibibe
mensagem de erro e reinicia o laço
print('\nErro... Opção incorreta inserida, tente novamente!!')
continue

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

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

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

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

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

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

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

27

Você também pode gostar