Você está na página 1de 18

ANO

2022

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

Aluno:
JULIANO MARCIO DA SILVA RU3921665
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)

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


ru = 3921665 # atribui o codigo do RU a variável "ru"
print('*Seja bem vindo à empresa Juliano Marcio da Silva* RU:',ru) #
mostra mensagem inicial na tela.
print('Descontos referentes às quantidades vendidas:\n'# mostra na tela
as porcentagens
' Até 9...............: 0% na unidade\n'
' Entre 10 e 99.......: 5% na unidade\n'
' Entre 100 e 999.....:10% na unidade\n'
' Acima de 1000.......:15% na unidade\n')

valor = float(input('Digite o valor unitário do produto: R$ ')) #


solicita entrada de valor na tela
q = int(input('Digite quantas unidades deseja do produto: ')) #
solicita quantidade na tela
if(0 <= q < 10): # comparação menor que 10 un.
d = 0
elif(10 <= q < 100): # comparação entre 10 e 99un.
d = 5
elif(100 <= q < 1000): # comparação entre 100 e 999un.
d = 10
else: # comparação diferente das outras, acima de 1000un
d = 15
precon = valor * q # calculo preço total ss desc.
desc = precon * (d / 100) # calculo valor desconto
final = precon - desc # calculo valor final c desc.
print(' O Total dos produtos é de: R${:.2f}'.format(precon)) # mostra
na tela o valor total bruto

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

print(' O Valor total final é de: R${:.2f} - Desconto: {}


%'.format(final,d)) # mostra na tela o valor com desconto

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

Figura1: Saída do console com.

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:

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

‘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);
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

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


ru = 3921665 # atribui o codigo do RU a variável "ru"
print('*Bem vindo à loja de Juliano Marcio da Silva* RU:',ru) # mostra
na tela...

print('________________VEJA O CARDÁPIO______________________\n'# mostra


na tela as opções
'| CÓDIGO | DESCRIÇÃO DO ITEM | VALOR(R$) |\n'
'| 100 | Cachorro-Quente | 9,00 |\n'
'| 101 | Cachorro-Quente Duplo | 11,00 |\n'
'| 102 | X-Egg | 12,00 |\n'
'| 103 | X-Salada | 13,00 |\n'
'| 104 | X-Bacon | 14,00 |\n'
'| 105 | x-tudo | 17,00 |\n'
'| 200 | Refrigerante Lata | 5,00 |\n'
'| 201 | Chá Gelado | 4,00 |\n')
conta = 0 # atribui zero a conta - zera a conta no inicio
saida = 1 # atribui zero a memoria de controle para sair ou continuar
while saida == 1: # loop de ecolha de itens
preco = 0
produto = ' '
cod = int(input('Digite o código do produto desejado: '))#
solicita qual produto deseja
if(cod == 100): # compara o código escolhido
preco = 9.0
produto = 'Cachorro-Quente'
elif(cod == 101): #
preco = 11.0
produto = 'Cachorro-Quente Duplo'
elif(cod == 102): #
preco = 12.0
produto = 'X-Egg'
elif(cod == 103): #
preco = 13.0
produto = 'X-Salada'
elif(cod == 104): #
preco = 14.0
produto = 'X-Bacon'
elif(cod == 105): #
preco = 17.0
produto = 'X_Tudo'
elif(cod == 200): #
preco = 5.0
produto = 'Refigerannte Lata'

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

elif(cod == 201): #
preco = 4.0
produto = 'Chá Gelado'
else: # opção diferente das anteriores volta
print('Codigo ou produto inválido!')
continue # opção ivalida volta
print('Voce pediu um "{}", valor R${:.2f}'.format(produto,preco))
conta = conta + preco
it = 2 # nova memoria de controle do loop
while it != 1 and it != 0:
print('Deseja fazer mais algum pedido?')
saida = int(input('"1" sim "0" não: '))
if saida == 1:
it = 1
print('Continuando...')
elif saida == 0:
it = 0
break# termino do pedido sai do lupe
else: #
print('Opção Inválida!')
continue# fica preso no lupe até ser escolhida a
opção correta, 1 ou 2.
print('Finalizando...')
print('O valor da sua conta é de: R${:.2f}'.format(conta))# Fim de
pedido mostra a conta
print(' **Obrigado e Bom Apetite!**' )

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

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

Figura 2: Exemplo com dois produtos no pedido.

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

Figura 3: Exemplo com erros na hora da escolha do pedido.

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:
total=dimensões∗peso∗rota que você e sua equipe
Em que cada uma das variáveis que compõe o preço total é quantizada da
seguinte maneira:

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

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


dimensões (cm³) valor (R$) peso(kg) multiplicador
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

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

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)

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


#.........INICIO DA FUNÇAO DIMENSOESOBJETO......
def dimensoesObjeto():
mult = 0
while True: #loop de verrificação, enquanto verdadeiro
try: # loop de detecção excessão.
comp = int(input('Digite o comprimento do objeto (em cm):'))#
solicita etrada de comprimento
larg = int(input('Digite a largura do objeto (em cm):'))#
solicita etrada de largura
altu = int(input('Digite a altura do objeto (em cm):'))#
solicita etrada de altura
a = float(comp * larg * altu)# multiplica as dimesoes para
encotrar o volume
print ('O Volume calculado do objeto é: {:.2f}Cm³'.format(a))#
mostra o o resusltado
if(a > 0) and (a < 1000.0):# verifica as condições para
retornar o valor do calculo
return 10.00
elif(a >= 1000.0) and (a < 10000.0):
return 20.00
elif(a >= 10000.0) and (a < 30000.0):
return 30.00
elif(a >= 30000.0) and (a < 100000.0):
return 50.00
else:# valores fora do range, pedir novo valor
print('*Objeto fora do tamanho o aceitável! \n'
'Entre com as dimensões novamente')
continue
except ValueError: # excessão em caso de digit não numérico
print('*Valor digitado não numérico! \n'
'Entre com as dimensões novamente')
continue
#.........FIM DA FUNÇAO DIMENSOESOBJETO......
#.........INICIO DA FUNÇAO PEESOOBJETO.......
def pesoObjeto():
while True:
try: # lop de detecção de dígitação não numérico
peso =float(input('Digite o peso do objeto (em kg):'))
p = peso
if(p > 0) and (p <= 0.1): #compara o peso digitado com a tabela
e retora o valor do calculo
return 1
elif (p >= 0.11) and (p <= 1):
return 1.5
elif(p <= 10) and (p >= 1.10):
return 2
elif(p <= 30) and (p >= 10.1):
return 3

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

else:
print('Objeto acima do peso acitável!')
continue
except ValueError:
print('Valor digitado não numérico \n'
'Entre com o peso desejado novamente')
continue
#.........FIM DA FUNÇAO PEESOOBJETO..........
#.........INICIO DA FUNÇAO ROTAOBJETO.......
def rotaObjeto():# função rota
while True: # loop enquanto verdadeiro
try:
r = (input('Selecione a rota: \n'# solicita a rota desejada
'UR - De Uberaba para Rio de Janeiro\n'
'RU - De Rio de Janeiro para Uberaba\n'
'US - De São Paulo para Uberba\n'
'SU - De Uberba para São Paulo\n'
'SR - De São Paulo para Rio de Janeiro\n'
'RS - De Rio de Janeiro para São Paulo\n>>'))
if(r == 'UR') or (r == 'ur'):# comparação e saída de valor p
calculo
return 1
elif(r == 'RU') or (r == 'ru'):
return 1
elif(r == 'US') or (r == 'us'):
return 1.2
elif(r == 'SU') or (r == 'su'):
return 1.2
elif (r == 'SR') or (r == 'sr'):
return 1.5
elif (r == 'RS') or (r == 'rs'):
return 1.5
else:
print('*Código de Rota inexistente!')
continue
except ValueError:
print('*Código de Rota inexistente! \n'
'Por favor entre com a rota desejada novamente')
continue
#.........FIM DA FUNÇAO ROTAOBJETO..........
#.........INÍCIO DA FUNÇAO MAIN.............
print('Bem vindo a companhia de logistica Juliano Marcio da Silva RU:
3921665')#
area = dimensoesObjeto()# valor da função dimensoesobjeto
peso = pesoObjeto()# valor da função pesoobjeto
rota = rotaObjeto()# valor da função rotaobjeto
valor = (area * peso * rota) # multiplica os valores obtidos nas
funções e encontra o valor a cobrar
print('Total a pagar: R$ {:.2f} - (Dimensões: {} * Peso: {} * Rota:
{})'.format(valor,area,peso,rota)) # mostra o resultado final na tela

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

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

Figura4: Saída do console com dados válidos

Figura5: Saída do console com entrada de valores incorretos.


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)

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

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

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


listaPecas = [] #
def cadastrarPeca(codigo): # FUNÇÃO CADASTRAR PEÇAS
print('Selecionada a opção "Cadastrar Peça"')
print('O código da peça é: {:0>3}'.format(codigo))
nome = input('Entre com o nome da peça:')
fabricante = input('Entre com o fabricante da peça:')
valor = float(input('Entre com o valor R$ da peça:'))
dicionarioPecas = {'codigo' : codigo,
'nome' : nome,
'fabricante': fabricante,
'valor': valor}
listaPecas.append(dicionarioPecas.copy())
def consultarPeca(): # FUNÇÃO COSULTAR PEÇAS
while True:
try:
print('Você Selecionou a Opção de Consultar Peças')
opConsultar = int(input('Entre com a opção desejada\n'

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

'1- Consultar Todas as Peças\n'


'2- Consultar Peças por Código\n'
'3- Consultar Peças por Fabricante\n'
'4- Retornar\n-->'))
if opConsultar == 1:
print('-' * 20)
for pecas in listaPecas:
for key, value in pecas.items():
print('{} : {}'.format(key,value))
print('-' * 20)
elif opConsultar == 2:
print('Você Selecionou a Opção Peças por Código')
entrada = int(input('Digite o Código: '))
print('-' * 20)
for pecas in listaPecas:
if(pecas['codigo'] == entrada):
for key, value in pecas.items():
print('{} : {}'.format(key,value))
print('-' * 20)
elif opConsultar == 3:
print('Você Selecionou a Opção Peças por Fabricante')
entrada = input('Digite o Fabricante: ')
print('-' * 20)
for pecas in listaPecas:
if(pecas['fabricante'] == entrada):
for key, value in pecas.items():
print('{} : {}'.format(key,value))
print('-' * 20)
elif opConsultar == 4:
break
else:
print('Por favor digite somente o que pede')
continue
except ValueError:
print('Por Favor pare de digitar números que não existe...')
continue

def removerPeca(): # FUNÇÃO REMOVER PEÇAS


print('Você Selecionou o Remover Peça')
entrada = int(input('Digite o Código da peça que irá remover: '))
for pecas in listaPecas:
if(pecas['codigo'] == entrada):
listaPecas.remove(pecas)
else:
print('Você removeu o código.')

print('***Controle de Estoque da Bicicletaria Juliano Marcio da Silva -


RU 3921665')
registroPecas = 0
while True:
try:
opcao = int(input('Digite a opção desejada:\n'
'1- Cadastrar Peças\n'
'2- Consultar Peças\n'
'3- Remover Peças\n'

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

'4- Sair\n-->'))
if opcao == 1:
registroPecas = registroPecas + 1
cadastrarPeca(registroPecas)
elif opcao == 2:
consultarPeca()
elif opcao == 3:
removerPeca()
elif opcao == 4:
print('*Programa finalizado pelo operador*')
break
else:
print('Digite somente as opções do MENU')
continue
except ValueError:
print('*Numeração inexistente...')

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


Figura 6: Cadastro de três peças, duas com o mesmo fabricante.

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

Figura 7: Consulta a Todas as Peças.

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

Figura 8: Consulta por Código.

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

Figura 9: Consulta por fabricante.

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

Figura 10: Remoção de Peças por Fabricante

17

Você também pode gostar