trabalho de programação aplicada

2
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.

Upload: alexandre-medina

Post on 22-Jun-2015

8 views

Category:

Documents


2 download

DESCRIPTION

Trabalho do Primeiro Período.

TRANSCRIPT

Page 1: Trabalho de Programação Aplicada

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.

Page 2: Trabalho de Programação Aplicada

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 **********************************************************