Introdução
Neste projeto, você aprenderá como organizar uma lista de cursos de programação usando o algoritmo de ordenação bubble sort. Os cursos serão ordenados em ordem lexicográfica, permitindo que você visualize e resuma facilmente as linguagens de programação que aprendeu.
👀 Visualização
$ gcc courses.c -o courses
$ ./courses
ASP
ASP.NET
BASIC
C
C#
C++
COBOL
JAVA
PASCAL
PHP
🎯 Tarefas
Neste projeto, você aprenderá:
- Como calcular corretamente o comprimento de um array
- Como modificar o tipo de parâmetro de uma função de ordenação
- Como corrigir a lógica de comparação e troca no algoritmo de ordenação
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Organizar uma lista de cursos de programação usando o algoritmo bubble sort
- Compreender a importância do cálculo adequado do comprimento do array e dos tipos de parâmetros da função
- Aplicar a lógica correta de comparação e troca em um algoritmo de ordenação
- Demonstrar sua capacidade de seguir instruções passo a passo e modificar o código existente para alcançar o resultado desejado
Corrigir o Cálculo do Tamanho do Array
Nesta etapa, você aprenderá como calcular corretamente o comprimento do array courses.
Abra o arquivo
courses.clocalizado no diretório/home/labex/project/.Encontre a seguinte linha de código:
int n = strlen(courses);Esta linha usa a função
strlenpara calcular o comprimento do arraycourses, o que está incorreto. A funçãostrlené usada para calcular o comprimento de uma string, não de um array.Substitua a linha acima pelo seguinte código:
int n = sizeof(courses) / sizeof(courses[0]);Esta linha usa o operador
sizeofpara calcular o tamanho total do arraycoursese, em seguida, o divide pelo tamanho de um único elemento para obter o número de elementos no array.
Alterar o Tipo de Parâmetro da Função de Ordenação
Nesta etapa, você aprenderá como alterar o tipo de parâmetro da função sort.
No arquivo
courses.c, encontre a definição da funçãosort:void sort(char p[], int n)Altere o tipo de parâmetro de
char p[]parachar *p[]. A definição da função atualizada deve ser semelhante a esta:void sort(char *p[], int n)Esta alteração é necessária porque estamos lidando com um array de strings (um array de ponteiros), e não com uma única string.
Corrigir a Lógica de Comparação e Troca
Nesta etapa, você aprenderá como corrigir a lógica de comparação e troca na função sort.
Na função
sort, encontre o seguinte código:if (k != j) { tmp = p[k]; p[k] = p[i]; p[i] = tmp; }Substitua a condição
if (k != j)porif (k != i). O código atualizado deve ser semelhante a este:if (k != i) { tmp = p[k]; p[k] = p[i]; p[i] = tmp; }Esta alteração é necessária para verificar se o menor elemento foi encontrado na iteração atual (indexada por
i).
Após concluir estas três etapas, seu arquivo courses.c deverá estar pronto para compilação e execução. Você pode agora prosseguir para a próxima etapa.
Na função
sort, complete a seção// TODO:da seguinte forma:{ if (strcmp(p[j], p[k]) < 0) { k = j; } }Execute o seguinte comando:
gcc courses.c -o courses
./courses
- Verifique se o programa produz a saída esperada.
ASP
ASP.NET
BASIC
C
C#
C++
COBOL
JAVA
PASCAL
PHP
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



