Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER 
ESCOLA SUPERIOR POLITÉCNICA 
CURSO 
ESTRUTURA DE DADOS 
 
 
 
 
 
 
 
ATIVIDADE PRÁTICA 
 
 
 
 
 
 
 
 
NOME:– RU: 
NOME 
 
 
 
 
 
 
 
 
 
 
TRÊS RIOS – RJ 
ANO DO PROJETO: 2023 
 
 
 
1 
 
1 EXERCÍCIO 1 (EXEMPLO) 
Com a finalidade de melhorar o atendimento e priorizar os casos 
mais urgentes, a direção de um hospital criou um sistema de triagem em numerado 
verde (V) ou amarelo (A), que define o menor ou maior grau 
de urgência da ocorrência, respectivamente. Para informatizar esse 
processo, o software desenvolvido tem como base o seguinte trecho de 
código-fonte: 
 
Na linha 27, a função inserir recebe o número e a cor do cartão entregue 
ao paciente na triagem. Pacientes com cartão verde são inseridos no final da 
fila pela função inserirNoFinal (linhas 17-25). Pacientes com cartão amarelo 
têm prioridade no atendimento e são inseridos no início da fila, em ordem de 
chegada, pela função inserir prioridade. Portanto, se são entregues os cartões 
10-V, 11-V, 5-A, 12-V e 6-A, nessa ordem, a fila deve ficar assim organizada: 5-A, 6-A, 
10-V, 11-V e 12-V. 
 Considerando o processo de triagem descrito e o trecho de código-fonte 
apresentado, implemente a função inserirPrioridade conforme indicado (linha 36) 
 
 
 
 
 
Solução do aluno: 
 
import tkinter as tk #biblioteca gráfica 
 
class ElementoDaListaSimples: 
 def __init__(self, dado, cor): 
 self.dado = dado 
 self.cor = cor 
 self.proximo = None 
 
class ListaEncadeadaSimples: 
 def __init__(self, nodos=None): 
 self.head = None 
 if nodos is not None: 
 nodo = ElementoDaListaSimples(dado=nodos.pop(0), cor="V") 
 self.head = nodo 
 for elem in nodos: 
 nodo.proximo = ElementoDaListaSimples(dado=elem) 
 nodo = nodo.proximo 
 
 def inserirNoFinal(self, nodo): 
 if self.head is None: 
 self.head = nodo 
 return 
 nodo_atual = self.head 
 while nodo_atual.proximo is not None: 
 nodo_atual = nodo_atual.proximo 
 nodo_atual.proximo = nodo 
 
 def inserirPrioridade(self, nodo): #função inserir PRIORIDADE 
DE ATENDIMENTO 
 
 if self.head is None: 
 self.head = nodo 
 return 
 else: 
 nodo.proximo = self.head 
 self.head = nodo 
 
class TriagemApp: 
 def __init__(self, root): 
 self.root = root 
 self.root.title("Triagem criada por Silas Barbosa de Almeida") 
#TITULO DA MINHA TELA GRÁFICA 
 
 self.lista_triagem = ListaEncadeadaSimples() 
 
 self.label = tk.Label(root, text="Insira o número do paciente:") 
 self.label.pack(pady=10) 
 
 self.entry_numero = tk.Entry(root) 
 self.entry_numero.pack(pady=10) 
 
 self.label_cor = tk.Label(root, text="Selecione a cor do cartão:") 
 self.label_cor.pack(pady=10) 
 
 self.cor_var = tk.StringVar() 
 
 
 
 
 self.cor_var.set("V") # Inicialmente, a cor é verde 
 self.radio_verde = tk.Radiobutton(root, text="Verde", varia-
ble=self.cor_var, value="V") 
 self.radio_amarelo = tk.Radiobutton(root, text="Amarelo", varia-
ble=self.cor_var, value="A") 
 self.radio_verde.pack() 
 self.radio_amarelo.pack() 
 
 self.btn_inserir = tk.Button(root, text="Inserir Paciente", com-
mand=self.inserir_paciente) 
 self.btn_inserir.pack(pady=20) 
 
 self.listbox = tk.Listbox(root) 
 self.listbox.pack(pady=10) 
 
 def inserir_paciente(self): 
 numero = self.entry_numero.get() 
 cor = self.cor_var.get() 
 
 # Validar a entrada 
 if not numero: 
 tk.messagebox.showwarning("Aviso", "Por favor, insira o número 
do paciente.") 
 return 
 
 paciente = ElementoDaListaSimples(dado=numero, cor=cor) 
 
 if cor == "V": 
 self.lista_triagem.inserirNoFinal(paciente) 
 else: 
 self.lista_triagem.inserirPrioridade(paciente) 
 
 self.atualizar_listbox() 
 
 # Limpar campos de entrada 
 self.entry_numero.delete(0, tk.END) 
 self.cor_var.set("V") 
 
 # Mensagem de confirmação 
 tk.messagebox.showinfo("Sucesso", "Paciente inserido com sucesso!") 
 
 def atualizar_listbox(self): 
 self.listbox.delete(0, tk.END) 
 current = self.lista_triagem.head 
 while current: 
 self.listbox.insert(tk.END, f"Número: {current.dado}, Cor: 
{current.cor}") 
 current = current.proximo 
 
if __name__ == "__main__": 
 root = tk.Tk() 
 app = TriagemApp(root) 
 root.mainloop() 
 
 
Imagem do código funcionando no seu computador: 
 
 
 
 
 
 
 
Exercício 2: 
Uma empresa trabalha na produção de concreto e terceiriza o serviço 
de transporte do produto. Os caminhoneiros telefonam para a empresa e 
registram seu interesse pelo trabalho. Todas as manhãs os caminhone-
ros estacionam o caminhão no pátio da empresa e aguarda a sua vez. O 
atendimento segue o critério de ordem de chegada. Esse processo é, 
atualmente, controlado pela secretária, que utiliza sua agenda para ge-
renciar os motoristas diariamente. A empresa, que carrega, no máximo 
10 caminhões por dia, pretende informatizar esse processo. 
Implemente a solução desse problema, utilizando o conceito de fila. 
 
from queue import Queue #biblioteca queue para implementar a fila 
 
class EmpresaConcreto: #é a classe que representa a empresa de concreto. 
 def __init__(self, capacidade_maxima=10): 
 self.fila_caminhoes = Queue() 
 self.capacidade_maxima = capacidade_maxima 
 
 def registrar_interesse(self, caminhoneiro): #é o método para caminho-
neiros se registrarem na fila 
 if self.fila_caminhoes.qsize() < self.capacidade_maxima: 
 self.fila_caminhoes.put(caminhoneiro) 
 
 
 
 
 print(f"{caminhoneiro} registrado com sucesso!") 
 else: 
 print("Capacidade máxima de caminhões atingida. Tente novamente 
amanhã.") 
 
 def atender_caminhoes(self): #é o método para atender os caminhoneiros 
com base na ordem de chegada 
 while not self.fila_caminhoes.empty(): 
 caminhoneiro = self.fila_caminhoes.get() 
 print(f"Atendendo caminhoneiro: {caminhoneiro}") 
 
if __name__ == "__main__": 
 empresa = EmpresaConcreto() 
 
 # Exemplo de registro de caminhoneiros 
 caminhoneiros = ["Motorista1", "Motorista2", "Motorista3", "Motoris-
ta4", "Motorista5", "Motorista6", "Motorista7"] 
 for caminhoneiro in caminhoneiros: 
 empresa.registrar_interesse(caminhoneiro) 
 
 # Exemplo de atendimento 
 empresa.atender_caminhoes()

Mais conteúdos dessa disciplina