Pular para o conteúdo

Cebraspe · Serviço Federal de Processamento de Dados (SERPRO) 2023

Questão discursiva 1 — Programação: Python — Algoritmos de Ordenação (Bubble Sort)

Programação Python — Algoritmos de Ordenação (Bubble Sort)

Discursiva Cebraspe 2023 Superior 30 pontos

Serviço Federal de Processamento de Dados (SERPRO) · Analista – Especialização: Tecnologia · Questão 1

Resposta de referência elaborada por resolução técnica — não é o padrão da banca

Texto-base:
O Bubble Sort é um algoritmo de ordenação que compara dois elementos adjacentes e, se estes estiverem na ordem errada, os troca de posição. Seguindo os passos descritos a seguir, o algoritmo repete esse processo até que não haja mais trocas a serem feitas, o que significa que a lista estará em ordem crescente.
Passo 1: Compara-se o primeiro elemento da lista com o segundo elemento. Se o primeiro elemento for maior do que o segundo, os elementos serão trocados de posição.
Passo 2: Compara-se o segundo elemento com o terceiro elemento. Se o segundo elemento for maior do que o terceiro, os elementos serão trocados de posição.
Passo 3: Continua-se esse processo de comparação e troca até que o último par de elementos seja comparado.
Passo 4: Repete-se o processo até que não haja mais trocas a serem feitas, o que significa que a lista está ordenada.
A figura a seguir ilustra os passos do algoritmo Bubble Sort.
Ilustração do Bubble Sort em três passagens sobre a lista inicial 5, 1, 4, 2, 8. Primeira passagem: compara o 1º com o 2º (troca), o 2º com o 3º (troca), o 3º com o 4º (troca) e o 4º com o 5º (não troca), resultando em 1, 4, 2, 5, 8. Segunda passagem: compara o 1º com o 2º (não troca), o 2º com o 3º (troca), o 3º com o 4º e o 4º com o 5º (não troca), resultando em 1, 2, 4, 5, 8. Terceira passagem: nenhuma troca, resultado 1, 2, 4, 5, 8.

Tendo como referência as informações anteriores, corrija e execute o código a seguir, que descreve o funcionamento do algoritmo de ordenação crescente Bubble Sort, escrito em Python. Aponte e corrija os erros de sintaxe [valor: 18,00 pontos] e de lógica [valor: 12,00 pontos] a partir de boas práticas de desenvolvimento, como clean code. Linhas de código não devem ser acrescentadas, excluídas ou comentadas, somente alteradas, caso apresentem erro(s). Apenas o(s) referido(s) erro(s) deve(m) ser alterado(s). O resultado da execução do código apresentado deverá estar de acordo com o esperado. Serão avaliadas a sintaxe do código e a correta execução do software, bem como os dados de entrada e saída esperados.

function ordenacao(numeros):
for x in range(len(numeros)-1):
for y in range(len(numeros)-1):
if(numeros[y]>numeros[y+1]):
temp = numeros[y+1]
numeros[y] = numeros[y+1]
numeros[y] = temp
return {numeros}
numeros = (5, 1, 4, 2, 8)
print("Lista Desordenada: ")
print (numeros)
print("Lista Ordenada:\n" + ordenacao(numeros))

Resultado esperado (após as correções)

Lista Desordenada:
[5, 1, 4, 2, 8]
Lista Ordenada:
[1, 2, 4, 5, 8]

O arquivo com o código precedente está no diretório SERPRO_23_PROVA\python\q1.py, na Área de Trabalho. Não exclua nenhum arquivo já presente nos diretórios. Renomeie o arquivo q1.py destinado ao desenvolvimento da solução com seu número de CPF, utilizando apenas algarismos, tal como o seguinte exemplo: 12345678900.py (caso ainda não o tenha feito). Para editar o arquivo renomeado, utilize o atalho do programa Notepad++ que se encontra na raiz do diretório SERPRO_23_PROVA. Para executar o código-fonte, abra o atalho do programa Prompt de Comando (cmd – Atalho) que se encontra na raiz do diretório SERPRO_23_PROVA na Área de Trabalho e, uma vez no console do Windows, execute o comando cd python para acessar a pasta que contém esse arquivo com o código. Para executar o código presente no referido arquivo, execute o comando python nomedoarquivorenomeado.py (por exemplo, python 12345678900.py) dentro do diretório SERPRO_23_PROVA\python.
Ao finalizar sua solução, certifique-se de que o nome do arquivo esteja renomeado tal como supracitado. Por fim, salve o arquivo com esse novo nome e com sua extensão e feche o Prompt de Comando.

Pontuação impressa no comando: erros de sintaxe 18,00 pontos e erros de lógica 12,00 pontos (total 30,00 pontos).

0 linhas · 0 palavras