trabalho de programação aplicada
DESCRIPTION
Trabalho do Primeiro Período.TRANSCRIPT
UFU/FACOM Disciplina: Algoritmos e Programação de Computadores Período: 2010/2 Ref: Segundo Trabalho de Programação DESCRIÇÃO DO TRABALHO: O objetivo deste trabalho é familiarizar o aluno com vetores e métodos de ordenação. O problema genérico de ordenação pode ser formulado como: ENTRADA: uma sequência de n números <a1,a2,...,an>. SAÍDA: uma permutação (reordenamento) dos valores de entrada <a1', a2', ..., an'> de tal forma que a1'<= a2' <= ... <= an'. Dada por exemplo, a seqüência de 5 inteiros <21, 34, 48, 27, 41> um algoritmo de ordenação nesta seqüência deverá produzir a seguinte saída <21, 27, 34, 41, 48>. Ordenar é uma operação fundamental em computação e por causa disto inúmeros bons algoritmos foram desenvolvidos. Qual o melhor algoritmo? Esta resposta depende de vários fatores. Depende, por exemplo, do número de itens a serem ordenados, se os números já estão mais ou menos ordenados e outros fatores. A técnica de ordenação por Seleção é uma técnica muito conhecida de ordenação.A idéia é sempre procurar o menor elemento do vetor e inseri-lo no início do vetor. Procuramos o menor valor do vetor e colocamos ele em vetor[1]. Procuramos o menor valor do vetor excluindo o já colocado e colocamos ele em vetor[2]. E assim vamos indo até termos todo o vetor ordenado. Partindo sempre a partir do último elemento reordenado (a partir do i), o programa procura o menor elemento no vetor e o substitui pelo elemento i atual.
Exemplo de Funcionamento: O programa recebe o seguinte vetor:
v[1] v[2] v[3] v[4] v[5] v[6]
5 3 7 8 2 5
O programa começa com i=1. O indexador i será visualizado com cor preta e minimo com a cor cinza.
v[1] v[2] v[3] v[4] v[5] v[6] 5 3 7 8 2 5
O índice i é marcado como a variável minimo, que é sempre o menor elemento do vetor. Então, inicia-se uma repetição para de j=2 até o comprimento do vetor, com o objetivo de descobrir qual é o menor elemento.
j=2 ... v[j]=3 < v[mínimo]=v[1]=5, portanto mínimo=j=2
v[1] v[2] v[3] v[4] v[5] v[6]
5 3 7 8 2 5
... v[j]=7 > v[mínimo]=v[2]=3, portanto nada é alterado.
j=4 ... v[j]=8 > v[mínimo]=v[2]=3, portanto nada é alterado.
j=5 ... v[j]=2 < v[mínimo]=v[2]=3, portanto mínimo=j=5.
v[1] v[2] v[3] v[4] v[5] v[6]
5 3 7 8 2 5
J=6 ... v[j]=5 > v[mínimo]=v[5]=2, portanto nada é alterado.
Agora substituímos o v[minimo] pelo v[i], formando com isto o novo vetor:
v[1] v[2] v[3] v[4] v[5] v[6] 2 3 7 8 5 5
Este procedimento é repetido para todos os elementos do vetor, com exceção do primeiro, até que todo o vetor esteja ordenado.
Sua tarefa é implementar este método de ordenação em FORTRAN. Lembre-se que a seqüência de números a ser ordenada deve estar armazenada em um vetor.
PONTUAÇÃO EXTRA: Os alunos que além de fazer a ordenação de números conseguirem também fazer ordenação de nomes receberão pontos adicionais. Exemplo de ordenação com nomes. Considerando os seguintes nomes: Jose da Silva Maria de Sousa Pedro Martins Maria Dias Maria Clara Santos A execução do programa deverá retornar o seguinte: Jose da Silva Maria Clara Santos Maria de Sousa Maria Dias Pedro Martins **********************************************************