Sunteți pe pagina 1din 2

Universidade Federal do Rio Grande do Norte

Escola de Ciências e Tecnologia

Laboratório de Linguagem de Programação: Ordenação

Resolva os exercícios a seguir usando funções. Para cada questão, é re-


comendado desenvolver primeiro (e testar) a função auxiliar.
Apenas digite código no computador quando já tiver uma ideia clara da
solução do exercício.

1. Você é o professor de uma turma de LiP e gostaria de saber a média das


k maiores notas da turma. Escreva uma função mediaK que recebe um
array nota com as notas dos alunos da turma, o número de alunos e o
valor de k, e retorna a média das k maiores notas da turma. Escreva as
funções auxiliares que achar necessário.
• Entrada: nota = { 2.5, 6, 8, 4, 7 } k=3
• Saída: A média das 3 maiores notas é 7
• Entrada: nota = { 8.5, 9.5, 7.5, 6.5, 8.6, 9.2 } k = 2
• Saída: A média das 2 maiores notas é 9.35
2. Escreva uma função juntaOrdenado, que recebe três vetores de inteiros,
v1 , v2 e v3 , e o número de elementos n de v1 e v2 (assuma que ambos
possuem o mesmo número de elementos). Essa função deve preencher
o vetor v3 com os elementos de v1 e v2 de maneira alternada da seguinte
forma: o primeiro elemento de v3 deve ser o menor elemento de v1 , o
segundo elemento de v3 deve ser o menor elemento de v2 , o terceiro
elemento de v3 deve ser o segundo menor elemento de v1 , o quarto
elemento de v3 deve ser o segundo menor elemento de v2 , e assim por
diante. A função juntaOrdenado deve retornar o número de elementos
de v3 .
Escreva também uma função auxiliar ordena, que deve ser usada por
juntaOrdenado. A função ordena recebe um array de inteiros v, o seu
número de elementos n, e ordena os elementos de v em ordem cres-
cente.
Na função principal, imprima os elementos correspondentes ao vetor v3 .

• Entrada: v1 = { 1, 3, 2} v2 = { 6, 5, 4}
• Saída: v3 = { 1, 4, 2, 5, 3, 6 }
• Entrada: v1 = { 10, 5, 8, 7 } v2 = { 4, 2, 9, 11 }
• Saída: v3 = { 5, 2, 7, 4, 8, 9, 10, 11 }

3. Crie uma função ordenaPalavra que recebe um cadeia de caracteres s,


formada apenas por letras minúsculas, e ordena os caracteres de s de
acordo com o seguinte critério:

1
(a) As vogais devem aparecer antes das consoantes.
(b) Após aplicar o primeiro critério, as vogais e as consoantes devem
ser ordenadas em ordem alfabética.
Escreva as funções auxiliares que achar necessário.

• Entrada: “bola"
• Saída: “aobl"
• Entrada: “tomate"
• Saída: “aeomtt"

4. Escreva uma função ordenaParImpar que recebe um array de inteiros


v e o seu número de elementos n. Essa função deve ordenar v da se-
guinte maneira: os elementos nos índices pares devem ser ordenados
em ordem não-decrescente, e os elementos nos índices ímpares devem
ser ordenados em ordem não crescente.
Escreva uma função auxiliar troca para trocar dois elementos do array.
Após chamar a função ordenaParImpar, imprima na função principal o
vetor ordenado.

• Entrada: v = { 1, 2, 3, 4, 5, 6, 7 }
• Saída: { 1, 6, 3, 4, 5, 2, 7 }
• Entrada: v = { 5, 9, 2, 3, 13, 2, 1, 8 }
• Saída: { 1, 9, 2, 8, 5, 3, 13, 2 }

S-ar putea să vă placă și