ATIVIDADE PRÁTICA ESTRUTURA DE DADOS / PROGRAMAÇÃO III
UNINTER
QUESTÃO 1 de 2 – Lista Encadeada
Enunciado: 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 que um profissional
da saúde classifica a ordem de atendimento com base numa avaliação prévia do
paciente, entregando-lhe um cartão numerado verde (V) ou amarelo (A), que define o
menor ou maior grau de urgência da ocorrência, respectivamente. Para informatizar
esse processo, a direção do hospital contratou você para desenvolver uma fila de
chamada seguindo as seguintes regras:
Pacientes com cartão numerado amarelo (A) são chamados antes dos pacientes
com cartão numerado verde (V)
Entre os pacientes com cartão numerado amarelo (A), os que tem numeração
menor são atendidos antes.
Entre os pacientes com cartão numerado verde (V), os que tem numeração menor
são atendidos antes.
As numerações dos cartões verdes (V) iniciam em 1.
As numerações dos cartões amarelos (A) iniciam em 201.
Elabore um programa em Python que:
A. Deve-se implementar uma Lista Encadeada Simples em que: [EXIGÊNCIA DE
CÓDIGO 1 de 7];
a. O Nodo representa um cartão numerado contendo: número, cor e um
ponteiro para o próximo;
b. A lista é não circular, ou seja, seu último elemento aponta para nulo;
B. Deve-se implementar a função inserirSemPrioridade(nodo) em que:
[EXIGÊNCIA DE CÓDIGO 2 de 7];
a. Deve-se andar pela lista a partir da cabeça (head) e inserir o nodo no final
da lista.
C. Deve-se implementar a função inserirComPrioridade(nodo) em que:
[EXIGÊNCIA DE CÓDIGO 3 de 7];
a. Deve-se andar pela lista a partir da cabeça (head) e inserir o nodo após
todos os nodos com cor “A” que estão na lista.
b. O nodo inserido deve sempre estar antes de todos os nodos com cor “V”.
D. Deve-se implementar a função inserir() em que: [EXIGÊNCIA DE CÓDIGO 4 de 7];
a. Deve-se solicitar ao usuário a cor (“A” ou “V”).
b. A partir da cor, o número (inteiro) do paciente deve ser atribuído
automaticamente seguindo a ordem numérica. Por exemplo: o primeiro
paciente “V” será o 1, o segundo 2, e assim por diante.
c. Deve-se criar um nodo com a cor e o número atribuído ao paciente.
d. Se a lista estiver vazia, a cabeça (head) da lista deve apontar para o nodo
criado. Senão, se a cor do nodo for “V”, deve-se chamar a função
Enunciado: 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 que um profissional
da saúde classifica a ordem de atendimento com base numa avaliação prévia do
paciente, entregando-lhe um cartão numerado verde (V) ou amarelo (A), que define o
menor ou maior grau de urgência da ocorrência, respectivamente. Para informatizar
esse processo, a direção do hospital contratou você para desenvolver uma fila de
chamada seguindo as seguintes regras:
Pacientes com cartão numerado amarelo (A) são chamados antes dos pacientes
com cartão numerado verde (V)
Entre os pacientes com cartão numerado amarelo (A), os que tem numeração
menor são atendidos antes.
Entre os pacientes com cartão numerado verde (V), os que tem numeração menor
são atendidos antes.
As numerações dos cartões verdes (V) iniciam em 1.
As numerações dos cartões amarelos (A) iniciam em 201.
Elabore um programa em Python que:
A. Deve-se implementar uma Lista Encadeada Simples em que: [EXIGÊNCIA DE
CÓDIGO 1 de 7];
a. O Nodo representa um cartão numerado contendo: número, cor e um
ponteiro para o próximo;
b. A lista é não circular, ou seja, seu último elemento aponta para nulo;
B. Deve-se implementar a função inserirSemPrioridade(nodo) em que:
[EXIGÊNCIA DE CÓDIGO 2 de 7];
a. Deve-se andar pela lista a partir da cabeça (head) e inserir o nodo no final
da lista.
C. Deve-se implementar a função inserirComPrioridade(nodo) em que:
[EXIGÊNCIA DE CÓDIGO 3 de 7];
a. Deve-se andar pela lista a partir da cabeça (head) e inserir o nodo após
todos os nodos com cor “A” que estão na lista.
b. O nodo inserido deve sempre estar antes de todos os nodos com cor “V”.
D. Deve-se implementar a função inserir() em que: [EXIGÊNCIA DE CÓDIGO 4 de 7];
a. Deve-se solicitar ao usuário a cor (“A” ou “V”).
b. A partir da cor, o número (inteiro) do paciente deve ser atribuído
automaticamente seguindo a ordem numérica. Por exemplo: o primeiro
paciente “V” será o 1, o segundo 2, e assim por diante.
c. Deve-se criar um nodo com a cor e o número atribuído ao paciente.
d. Se a lista estiver vazia, a cabeça (head) da lista deve apontar para o nodo
criado. Senão, se a cor do nodo for “V”, deve-se chamar a função
inserirSemPrioridade(nodo). Senão, se a cor do nodo for “A”, deve-se
chamar a função inserirComPriordade(nodo).
E. Deve-se implementar a função imprimirListaEspera() em que: [EXIGÊNCIA DE
CÓDIGO 5 de 7];
a. Deve-se imprimir todos os cartões e seus respectivos números a partir do
primeiro até o último da lista.
F. Deve-se implementar a função atenderPaciente() em que: [EXIGÊNCIA DE
CÓDIGO 6 de 7];
a. Deve-se remover o primeiro paciente da fila e imprimir uma mensagem
chamando o paciente para atendimento informando o número do seu
cartão.
G. Deve-se implementar um menu para utilização do sistema em que: [EXIGÊNCIA
DE CÓDIGO 7 de 7];
a. Deve-se apresentar as opções (1 – adicionar paciente a fila, 2 – mostrar
pacientes na fila, 3 – chamar paciente, 4 – sair)
b. Se escolhida a opção 1, chamar a função inserir().
c. Se escolhida a opção 2, chamar a função imprimirListaEspera().
d. Se escolhida a opção 3, chamar a função atenderPaciente().
e. Se escolhida a opção 4, encerrar o programa.
f. Se escolhida uma opção diferente as opções disponíveis, volte para o
menu.
Para testar o software, execute os seguintes passos e apresente a saída do console
conforme exemplo de saída de console (próxima página):
H. Deve-se testar o sistema inserindo três (3) pacientes com cartão de cor “V”, dois
(2) pacientes com cartão de cor “A”, dois (2) pacientes com cartão “V” e três (3)
pacientes com cartão de cor “A”, nessa respectiva ordem. [EXIGÊNCIA DE
SAÍDA DE CONSOLE 1 de 3];
I. Deve-se apresentar na saída de console a impressão da lista de espera (opção 2
do menu principal). [EXIGÊNCIA DE SAÍDA DE CONSOLE 2 de 3];
J. Deve-se apresentar na saída de console o atendimento de dois (2) pacientes
(opção 3 do menu principal) e em seguida mostrar a lista de espera (opção 2 do
menu principal). [EXIGÊNCIA DE SAÍDA DE CONSOLE 3 de 3];
chamar a função inserirComPriordade(nodo).
E. Deve-se implementar a função imprimirListaEspera() em que: [EXIGÊNCIA DE
CÓDIGO 5 de 7];
a. Deve-se imprimir todos os cartões e seus respectivos números a partir do
primeiro até o último da lista.
F. Deve-se implementar a função atenderPaciente() em que: [EXIGÊNCIA DE
CÓDIGO 6 de 7];
a. Deve-se remover o primeiro paciente da fila e imprimir uma mensagem
chamando o paciente para atendimento informando o número do seu
cartão.
G. Deve-se implementar um menu para utilização do sistema em que: [EXIGÊNCIA
DE CÓDIGO 7 de 7];
a. Deve-se apresentar as opções (1 – adicionar paciente a fila, 2 – mostrar
pacientes na fila, 3 – chamar paciente, 4 – sair)
b. Se escolhida a opção 1, chamar a função inserir().
c. Se escolhida a opção 2, chamar a função imprimirListaEspera().
d. Se escolhida a opção 3, chamar a função atenderPaciente().
e. Se escolhida a opção 4, encerrar o programa.
f. Se escolhida uma opção diferente as opções disponíveis, volte para o
menu.
Para testar o software, execute os seguintes passos e apresente a saída do console
conforme exemplo de saída de console (próxima página):
H. Deve-se testar o sistema inserindo três (3) pacientes com cartão de cor “V”, dois
(2) pacientes com cartão de cor “A”, dois (2) pacientes com cartão “V” e três (3)
pacientes com cartão de cor “A”, nessa respectiva ordem. [EXIGÊNCIA DE
SAÍDA DE CONSOLE 1 de 3];
I. Deve-se apresentar na saída de console a impressão da lista de espera (opção 2
do menu principal). [EXIGÊNCIA DE SAÍDA DE CONSOLE 2 de 3];
J. Deve-se apresentar na saída de console o atendimento de dois (2) pacientes
(opção 3 do menu principal) e em seguida mostrar a lista de espera (opção 2 do
menu principal). [EXIGÊNCIA DE SAÍDA DE CONSOLE 3 de 3];
EXEMPLO DE SAÍDA DE CONSOLE:
SOMENTE INFORMATIVO. PODE APAGAR AO ENTREGAR O TRABALHO.
Figura 1: Exemplo de saída de console que o aluno deve fazer. Em que se insere 10
pacientes (5 com cartão verde e 5 com cartão amarelo) conforme [EXIGÊNCIA DE SAÍDA
DE CONSOLE 1 de 3];
Figura 2: Exemplo de saída de console que o aluno deve fazer. Em que mostra a lista de
pacientes, conforme [EXIGÊNCIA DE SAÍDA DE CONSOLE 2 de 3];
SOMENTE INFORMATIVO. PODE APAGAR AO ENTREGAR O TRABALHO.
Figura 1: Exemplo de saída de console que o aluno deve fazer. Em que se insere 10
pacientes (5 com cartão verde e 5 com cartão amarelo) conforme [EXIGÊNCIA DE SAÍDA
DE CONSOLE 1 de 3];
Figura 2: Exemplo de saída de console que o aluno deve fazer. Em que mostra a lista de
pacientes, conforme [EXIGÊNCIA DE SAÍDA DE CONSOLE 2 de 3];
Figura 3: Exemplo de saída de console que o aluno deve fazer. Em que ele chama dois
pacientes para atendimento e em seguida mostra a lista de pacientes, conforme
[EXIGÊNCIA DE SAÍDA DE CONSOLE 3 de 3];
Apresentação de Código da Questão 1:
SUBSTITUIR ESSE TEXTO QUE ESTÁ EM VERMELHO PELO SEU CÓDIGO DO EXERCÍCIO 1.
NÃO ESQUECER DE CUMPRIR AS EXIGÊNCIAS DE CÓDIGO!!
O CÓDIGO DEVE ESTAR IDENTADO!!
SERÃO ACEITOS SOMENTE CÓDIGOS NO FORMATO TEXTO (NADA DE IMAGEM NEM PRINT, ZERA A QUESTÃO!).
pacientes para atendimento e em seguida mostra a lista de pacientes, conforme
[EXIGÊNCIA DE SAÍDA DE CONSOLE 3 de 3];
Apresentação de Código da Questão 1:
SUBSTITUIR ESSE TEXTO QUE ESTÁ EM VERMELHO PELO SEU CÓDIGO DO EXERCÍCIO 1.
NÃO ESQUECER DE CUMPRIR AS EXIGÊNCIAS DE CÓDIGO!!
O CÓDIGO DEVE ESTAR IDENTADO!!
SERÃO ACEITOS SOMENTE CÓDIGOS NO FORMATO TEXTO (NADA DE IMAGEM NEM PRINT, ZERA A QUESTÃO!).
Apresentação de Saída do Console da Questão 1:
SUBSTITUIR ESSE TEXTO QUE ESTÁ EM LARANJA PELA A SAÍDA DO CONSOLE DO EXERCÍCIO 1
NÃO ESQUECER DE CUMPRIR AS EXIGÊNCIAS
SERÁ ACEITO SOMETE SAÍDAS DO CONSOLE NO FORMATO IMAGEM (NADA DE TEXTO AQUI! ZERA ESSA PARTE DA
QUESTÃO!)
SUBSTITUIR ESSE TEXTO QUE ESTÁ EM LARANJA PELA A SAÍDA DO CONSOLE DO EXERCÍCIO 1
NÃO ESQUECER DE CUMPRIR AS EXIGÊNCIAS
SERÁ ACEITO SOMETE SAÍDAS DO CONSOLE NO FORMATO IMAGEM (NADA DE TEXTO AQUI! ZERA ESSA PARTE DA
QUESTÃO!)
QUESTÃO 2 de 2 – Tabela Hash
Enunciado: Com o objetivo de criar um sistema novo de emplacamento de veículos, deputados
em do Distrito Federal – DF, decidiram que o último número da placa dos veículos, irá representar
o estado de registro dele. Para isso, sua equipe de desenvolvedores foi encarregada de
desenvolver uma Tabela Hash com endereçamento em cadeia de 10 posições (cada posição
do vetor deve ser uma lista encadeada), representando os números de 0 a 9 que irão representar
os 26 estados e o Distrito Federal (total 27).
A função hash deve seguir as seguintes regras:
A entrada da função hash deve ser uma string com 2 letras, representando a sigla do
estado e/ou distrito federal.
Caso a sigla seja DF (Distrito Federal), por questões de superstição, os deputados
solicitaram que o retorno da função seja 7 sempre.
Caso contrário, a função deve retornar a posição com base no valor ASCII das duas letras
e seguindo a seguinte regra:
posição = ( CHAR 1ASCII + CHAR 2ASCII ) MOD 10
Onde CHAR 1ASCII e CHAR 2ASCII são os valores ASCII da primeira e segunda letra,
respectivamente (Tabela ASCII no final do documento).
Elabore um programa em Python que:
A. Deve-se implementar a tabela Hash com 10 posições, onde inicialmente todas as
posições possuem valor None [EXIGÊNCIA DE CÓDIGO 1 de 7];
Enunciado: Com o objetivo de criar um sistema novo de emplacamento de veículos, deputados
em do Distrito Federal – DF, decidiram que o último número da placa dos veículos, irá representar
o estado de registro dele. Para isso, sua equipe de desenvolvedores foi encarregada de
desenvolver uma Tabela Hash com endereçamento em cadeia de 10 posições (cada posição
do vetor deve ser uma lista encadeada), representando os números de 0 a 9 que irão representar
os 26 estados e o Distrito Federal (total 27).
A função hash deve seguir as seguintes regras:
A entrada da função hash deve ser uma string com 2 letras, representando a sigla do
estado e/ou distrito federal.
Caso a sigla seja DF (Distrito Federal), por questões de superstição, os deputados
solicitaram que o retorno da função seja 7 sempre.
Caso contrário, a função deve retornar a posição com base no valor ASCII das duas letras
e seguindo a seguinte regra:
posição = ( CHAR 1ASCII + CHAR 2ASCII ) MOD 10
Onde CHAR 1ASCII e CHAR 2ASCII são os valores ASCII da primeira e segunda letra,
respectivamente (Tabela ASCII no final do documento).
Elabore um programa em Python que:
A. Deve-se implementar a tabela Hash com 10 posições, onde inicialmente todas as
posições possuem valor None [EXIGÊNCIA DE CÓDIGO 1 de 7];
B. Deve-se implementar as Listas Encadeadas Simples em que: [EXIGÊNCIA DE CÓDIGO 2
de 7];
a. O Nodo representa um Estado contendo: sigla, nomeEstado e um ponteiro para
o próximo;
b. As 10 posições da tabela hash, representam a cabeça de cada lista (head).
C. Deve-se implementar a inserção no início da lista encadeada (cada elemento novo deve
ser sempre inserido no início da lista) [EXIGÊNCIA DE CÓDIGO 3 de 7];
D. Deve-se implementar a impressão da tabela hash, onde devem ser impressas as siglas
de todos os nodos que estão na tabela hash separados por posição [EXIGÊNCIA DE
CÓDIGO 4 de 7];
E. Deve-se implementar a função hash, conforme enunciado. [EXIGÊNCIA DE CÓDIGO 5 de
7];
F. Deve-se implementar a inserção dos estados e distrito federal (todos os 27 com nome
e sigla) na tabela hash utilizando a função hash (não precisa solicitar ao usuário a
digitação via teclado, pode inserir no código mesmo de modo hard code) [EXIGÊNCIA DE
CÓDIGO 6 de 7];
G. Deve-se inserir na Tabela, além dos estados e distrito federal, um estado fictício, sendo
que esse estado tenha seu nome completo e como siglas, a primeira letra do seu nome
e a primeira letra do seu último sobrenome. Exemplo: Bruno Kostiuk – BK. EXIGÊNCIA
DE CÓDIGO 7 de 7];
Para testar o software, execute os seguintes passos e apresente a saída do console conforme
exemplo de saída de console (próxima página):
H. Deve-se apresentar na saída de console, a impressão da tabela hash antes de inserir
qualquer informação [EXIGÊNCIA DE SAÍDA DE CONSOLE 1 de 3];
I. Deve-se apresentar na saída de console, a impressão da tabela hash após inserir os 26
estados e o Distrito Federal – DF [EXIGÊNCIA DE SAÍDA DE CONSOLE 2 de 3];
J. Deve-se apresentar na saída de console, a impressão da tabela hash após inserir os 26
estados, Distrito Federal – DF e o estado fictício com seu nome completo. [EXIGÊNCIA
DE SAÍDA DE CONSOLE 3 de 3];
de 7];
a. O Nodo representa um Estado contendo: sigla, nomeEstado e um ponteiro para
o próximo;
b. As 10 posições da tabela hash, representam a cabeça de cada lista (head).
C. Deve-se implementar a inserção no início da lista encadeada (cada elemento novo deve
ser sempre inserido no início da lista) [EXIGÊNCIA DE CÓDIGO 3 de 7];
D. Deve-se implementar a impressão da tabela hash, onde devem ser impressas as siglas
de todos os nodos que estão na tabela hash separados por posição [EXIGÊNCIA DE
CÓDIGO 4 de 7];
E. Deve-se implementar a função hash, conforme enunciado. [EXIGÊNCIA DE CÓDIGO 5 de
7];
F. Deve-se implementar a inserção dos estados e distrito federal (todos os 27 com nome
e sigla) na tabela hash utilizando a função hash (não precisa solicitar ao usuário a
digitação via teclado, pode inserir no código mesmo de modo hard code) [EXIGÊNCIA DE
CÓDIGO 6 de 7];
G. Deve-se inserir na Tabela, além dos estados e distrito federal, um estado fictício, sendo
que esse estado tenha seu nome completo e como siglas, a primeira letra do seu nome
e a primeira letra do seu último sobrenome. Exemplo: Bruno Kostiuk – BK. EXIGÊNCIA
DE CÓDIGO 7 de 7];
Para testar o software, execute os seguintes passos e apresente a saída do console conforme
exemplo de saída de console (próxima página):
H. Deve-se apresentar na saída de console, a impressão da tabela hash antes de inserir
qualquer informação [EXIGÊNCIA DE SAÍDA DE CONSOLE 1 de 3];
I. Deve-se apresentar na saída de console, a impressão da tabela hash após inserir os 26
estados e o Distrito Federal – DF [EXIGÊNCIA DE SAÍDA DE CONSOLE 2 de 3];
J. Deve-se apresentar na saída de console, a impressão da tabela hash após inserir os 26
estados, Distrito Federal – DF e o estado fictício com seu nome completo. [EXIGÊNCIA
DE SAÍDA DE CONSOLE 3 de 3];
EXEMPLO DE SAÍDA DE CONSOLE:
SOMENTE INFORMATIVO. PODE APAGAR AO ENTREGAR O TRABALHO.
SOMENTE INFORMATIVO. PODE APAGAR AO ENTREGAR O TRABALHO.
Figura 1: Exemplo de saída de console que o aluno deve fazer. Impressão da tabela hash antes de inserir
qualquer informação, conforme [EXIGÊNCIA DE SAÍDA DE CONSOLE 1 de 3];
Figura 2: Exemplo de saída de console que o aluno deve fazer. Impressão da tabela hash após inserir os 26
estados e o Distrito Federal – DF, conforme [EXIGÊNCIA DE SAÍDA DE CONSOLE 2 de 3];
Figura 3: Exemplo de saída de console que o aluno deve fazer. Impressão da tabela hash após inserir os 26
estados, Distrito Federal – DF e o estado fictício com seu nome completo (No caso foi inserido BK na posição 1),
conforme [EXIGÊNCIA DE SAÍDA DE CONSOLE 3 de 3];
Apresentação de Código da Questão 2:
SUBSTITUIR ESSE TEXTO QUE ESTÁ EM VERMELHO PELO SEU CÓDIGO DO EXERCÍCIO 2.
qualquer informação, conforme [EXIGÊNCIA DE SAÍDA DE CONSOLE 1 de 3];
Figura 2: Exemplo de saída de console que o aluno deve fazer. Impressão da tabela hash após inserir os 26
estados e o Distrito Federal – DF, conforme [EXIGÊNCIA DE SAÍDA DE CONSOLE 2 de 3];
Figura 3: Exemplo de saída de console que o aluno deve fazer. Impressão da tabela hash após inserir os 26
estados, Distrito Federal – DF e o estado fictício com seu nome completo (No caso foi inserido BK na posição 1),
conforme [EXIGÊNCIA DE SAÍDA DE CONSOLE 3 de 3];
Apresentação de Código da Questão 2:
SUBSTITUIR ESSE TEXTO QUE ESTÁ EM VERMELHO PELO SEU CÓDIGO DO EXERCÍCIO 2.
NÃO ESQUECER DE CUMPRIR AS EXIGÊNCIAS DE CÓDIGO!!
O CÓDIGO DEVE ESTAR IDENTADO!!
SERÃO ACEITOS SOMENTE CÓDIGOS NO FORMATO TEXTO (NADA DE IMAGEM NEM PRINT, ZERA A QUESTÃO!).
Apresentação de Saída do Console da Questão 2:
O CÓDIGO DEVE ESTAR IDENTADO!!
SERÃO ACEITOS SOMENTE CÓDIGOS NO FORMATO TEXTO (NADA DE IMAGEM NEM PRINT, ZERA A QUESTÃO!).
Apresentação de Saída do Console da Questão 2:
SUBSTITUIR ESSE TEXTO QUE ESTÁ EM LARANJA PELA A SAÍDA DO CONSOLE DO EXERCÍCIO 2
NÃO ESQUECER DE CUMPRIR AS EXIGÊNCIAS
SERÁ ACEITO SOMETE SAÍDAS DO CONSOLE NO FORMATO IMAGEM (NADA DE TEXTO AQUI! ZERA ESSA PARTE DA
NÃO ESQUECER DE CUMPRIR AS EXIGÊNCIAS
SERÁ ACEITO SOMETE SAÍDAS DO CONSOLE NO FORMATO IMAGEM (NADA DE TEXTO AQUI! ZERA ESSA PARTE DA


