0% acharam este documento útil (0 voto)
14 visualizações6 páginas

Message

O documento descreve um programa para separação de lixo em três categorias (orgânicos, papéis, plásticos) usando uma lista ligada duplamente encadeada. O usuário insere itens de lixo em uma lista que é ordenada e distribuída nas categorias apropriadas baseado em critérios numéricos. O usuário pode consultar ou remover itens e verificar a localização final de cada item.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
14 visualizações6 páginas

Message

O documento descreve um programa para separação de lixo em três categorias (orgânicos, papéis, plásticos) usando uma lista ligada duplamente encadeada. O usuário insere itens de lixo em uma lista que é ordenada e distribuída nas categorias apropriadas baseado em critérios numéricos. O usuário pode consultar ou remover itens e verificar a localização final de cada item.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd

Seletiva = []

class Saco:
def __init__(self, valor):
[Link] = valor
[Link] = None
[Link] = None

class CaminhaoDeLixo:
def __init__(self):
[Link] = None
[Link] = None

def inserir_inicio(self, valor):


novo_no = Saco(valor)
novo_no.proximo = [Link]
if [Link]:
[Link] = novo_no
else:
[Link] = novo_no
[Link] = novo_no

def inserir_meio(self, posicao, valor):


if posicao == 0:
self.inserir_inicio(valor)
return

novo_no = Saco(valor)
atual = [Link]
for i in range(posicao - 1):
if atual is None:
raise Exception("Posição inválida")
atual = [Link]
novo_no.proximo = [Link]
novo_no.anterior = atual
if [Link]:
[Link] = novo_no
else:
[Link] = novo_no
[Link] = novo_no

def inserir_final(self, valor):


novo_no = Saco(valor)
if not [Link]:
[Link] = novo_no
[Link] = novo_no
return
[Link] = novo_no
novo_no.anterior = [Link]
[Link] = novo_no

def deletar_inicio(self):
if not [Link]:
return
if [Link]:
[Link] = None
else:
[Link] = None
[Link] = [Link]
def deletar_meio(self, posicao):
if posicao == 0:
self.deletar_inicio()
return
atual = [Link]
for i in range(posicao):
if atual is None:
raise Exception("Posição inválida")
atual = [Link]
if [Link]:
[Link] = [Link]
if [Link]:
[Link] = [Link]
else:
[Link] = [Link]

def deletar_final(self):
if not [Link]:
return
if not [Link]:
[Link] = None
[Link] = None
return
[Link] = None
[Link] = [Link]

def buscar(self, valor):


atual = [Link]
while atual:
if [Link] == valor:
return True
atual = [Link]
return False

def travessia(self):
atual = [Link]
while atual:
print([Link])
atual = [Link]

def SepararLixo(self):
atual = [Link]
while atual:
[Link]([Link])
atual = [Link]

class LixosPares:
def __init__(self):
[Link] = None
[Link] = None

def JogaPar(self, valor):


novo_no = Saco(valor)
if not [Link]:
[Link] = novo_no
[Link] = novo_no
return
[Link] = novo_no
novo_no.anterior = [Link]
[Link] = novo_no

def travessia(self):
atual = [Link]
while atual:
print([Link])
atual = [Link]

def buscar(self, valor):


atual = [Link]
while atual:
if [Link] == valor:
return True
atual = [Link]
return False

class LixosImpares:
def __init__(self):
[Link] = None
[Link] = None

def JogaImpar(self, valor):


novo_no = Saco(valor)
if not [Link]:
[Link] = novo_no
[Link] = novo_no
return
[Link] = novo_no
novo_no.anterior = [Link]
[Link] = novo_no

def travessia(self):
atual = [Link]
while atual:
print([Link])
atual = [Link]

def buscar(self, valor):


atual = [Link]
while atual:
if [Link] == valor:
return True
atual = [Link]
return False

class LixosPrimos:
def __init__(self):
[Link] = None
[Link] = None

def JogaPrimo(self, valor):


novo_no = Saco(valor)
if not [Link]:
[Link] = novo_no
[Link] = novo_no
return
[Link] = novo_no
novo_no.anterior = [Link]
[Link] = novo_no

def travessia(self):
atual = [Link]
while atual:
print([Link])
atual = [Link]

def buscar(self, valor):


atual = [Link]
while atual:
if [Link] == valor:
return True
atual = [Link]
return False

def mergeSort(lis):
if len(lis)>1:
mid = len(lis)//2
lefthalf = lis[:mid]
righthalf = lis[mid:]

mergeSort(lefthalf)
mergeSort(righthalf)

i=0
j=0
k=0
while i < len(lefthalf) and j < len(righthalf):
if lefthalf[i] < righthalf[j]:
lis[k]=lefthalf[i]
i=i+1
else:
lis[k]=righthalf[j]
j=j+1
k=k+1

while i < len(lefthalf):


lis[k]=lefthalf[i]
i=i+1
k=k+1

while j < len(righthalf):


lis[k]=righthalf[j]
j=j+1
k=k+1
return lis

def TestePrimo(num):
if num <= 1:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True

Caminhao = CaminhaoDeLixo()
LixoPar = LixosPares()
LixoImpar = LixosImpares()
LixoPrimo = LixosPrimos()

def Separação():
for i in Seletiva:
if TestePrimo(i):
[Link](i)

if i % 2 == 0:
[Link](i)

if i % 2 != 0:
[Link](i)

print("Olá, esse programa foi realizado para separar o seu lixo.")


print("Para inserir o seu lixo basta colocar o seu número e nós iremos cuidar da
organização para você, quando você terminar de inserir basta digitar FIM.")
lixoinput = input()

while lixoinput != "FIM":

[Link](int(lixoinput))

lixoinput = input()
Seletiva = mergeSort(Seletiva)

for i in Seletiva:
Caminhao.inserir_final(i)

print("Agora você poderá remover o lixo caso algum erro tenha sido cometido durante
a inserção, quando acabar coloque FIM.")
print("Para você retirar um valor coloque a posição dele. Obs: as posições podem
mudar quando você remover algum valor. E não tente remover algo que você não
colocou.")

print(*Seletiva)
retirainput = input()

while retirainput != "FIM":


if int(retirainput) == 0:
Caminhao.deletar_inicio()
[Link](0)

elif int(retirainput) == (len(Seletiva)-1) :


Caminhao.deletar_final()
[Link](int(retirainput))
else:
Caminhao.deletar_meio(int(retirainput))
[Link](int(retirainput))

print(*Seletiva)
retirainput = input()

Separação()

print("Agora todo o lixo que você jogou se encontra separado e em seu devido
lugar.")
print("Para ver em qual lixeira seu lixo foi posicionado basta digitar:")
print("Org: lixos orgânicos (pares)")
print("Pap: papéis (ímpares)")
print("Pla: plásticos (primos)")
print("Se quiser buscar um lixo específico: digite o número do lixo que almeja
encontrar a localização.")
print("Para encerrar o programa digite FIM.")

BT = input()

while BT != 'FIM':
if BT == "Org":

[Link]()
elif BT == "Pap":

[Link]()

elif BT == "Pla":

[Link]()

else:
if [Link](int(BT)):
print("O lixo", BT, "esta no lixo organico!")

elif [Link](int(BT)):
print("O lixo", BT, "esta no lixo de papel!")

elif [Link](int(BT)):
print("O lixo", BT, "esta no lixo de plastico!")

else:
print("O lixo", BT, "não esta em nenhuma lixeira. ;-;")

BT = input()

Você também pode gostar