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: