Ministério da Educação
Brasil um país de todos
Personal tools
You are here: Home Members Roberta Andrade de Araújo Fagundes Introdução a Programação Solução da questão da aula do dia 09.11
Navigation
Log in


Forgot your password?
 
Document Actions

Solução da questão da aula do dia 09.11

by Roberta Andrade de Araújo Fagundes last modified 2009-11-09 01:51

Solução da questão que recebe como dado de entrada um arquivo com o seguinte padrão (nome + "\t" + tel + "\t" + cpf) e gera um novo arquivo ordenando os dados por nome ou cpf.

Click here to get the file

Size 1.3 kB - File type text/python-source

File contents

def bubble(vet,dado):
    #checagem para ordenar por cpf ou nome
    if (dado.upper()=="CPF"):
        n=2
    else:
        n=0
    #inicio do bubble sort     
    troca=True
    fim=len(vet)-1
    pos=1
    while(troca==True):
        troca=False
        for i in range(0,fim):
            # o if foi ajustado
            if(vet[i][n]>vet[i+1][n]):
                chave=vet[i]
                vet[i]=vet[i+1]
                vet[i+1]=chave
                pos=i
                troca=True
        fim=pos
    return (vet)

#Criando a lista
f=open("C:/Python31/ordenacao.txt","r")
contatos=f.readlines()
f.close() 
lista=[]
for i in contatos:
    a=i.rsplit("\t")
    lista.append(a)

op=input("Digite a opcao para ordenar(1-->CPF, 2 -->nome): ")
output=""
if (op=="1"):
    # Obs:Lista 2 recebe os dados ordenados.    
    lista2=bubble(lista,"CPF")
    output="C:/Python31/ordenado_por_CPF.txt"
else:
    # Obs:Lista 2 recebe os dados ordenados.    
    lista2=bubble(lista,"NOME")
    output="C:/Python31/ordenado_por_NOME.txt"

#Inserir os espaços entre nome, tel e cpf.
for i in lista2:            
      i[0]+="\t"              
      i[1]+="\t"

f=open(output,"w")
for i in lista2:
    f.writelines(i)
f.close()    
    
    
    

    
    

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: