AV10- Programaçao de Computadores UFMG

328 palavras 2 páginas
Programação de Computadores
Universidade Federal de Minas Gerais
Departamento de Ciência da Computação

Avaliação: AV 10
PROBLEMA:
Construir uma função, utilizando o SciNotes, que ordene em ordem crescente os elementos de um vetor pelo método de inserção.
SOLUÇÃO:
Essa solução será dada de uma forma onde explico mais a lógica da função, provando que soube o que fazer ao construí-la. Para ordenar os elementos de um vetor deve- se fazer um função que lê todos os elementos e os compara com todos os outros, portanto a complexidade do algoritmo é igual ao quadrado do número total de elementos do vetor. Utilizei a função length para que a função identificasse o número de elementos do vetor e as funções for e if, para expressar a lógica do exercício dentro da função. Tendo isto em vista, criei a função com a seguinte lógica e ordem de execução:
- o primeiro elemento tem de ser menor que o segundo para que a função funcione.
- a função seleciona o segundo número do vetor e compara com o primeiro de forma a colocá-los em ordem decrescente. Após isso compara o número seguinte do vetor com os anteriores, já ordenados entre eles, até que todos sejam comparados com todos (complexidade n2) e o vetor esteja em ordem crescente.
- quando tudo estiver completo e a função já tiver sido executada corretamente, ela imprime no Scilab o vetor ordenado caso o usuário digite na interface do Scilab ordem ou saida.
(funções clc, clear e funcprot são apenas para garantir que nenhuma informação previamente salva no Scilab interfira no bom funcionamento da função)

Imagem do programa pronto:

TESTES:
1- Vetor = [1 3 2 7 5 9](execução sem eco)

2- Vetor = [ 156 236 846 254 366 236 588] (execução com eco)

Relacionados