Linguagem: Python Faça um programa, que contenha subprogramas, que leia da entrada padrão nomes completos,

Linguagem: Python
Faça um programa, que contenha subprogramas, que leia da entrada padrão nomes completos, compostos de nome e sobrenome(s), de pessoas até que uma string vazia seja lida. Escreva na saída padrão todos os nomes e sobrenomes com mais de dois caracteres que ocorreram mais que uma vez. Mostre-os ordenados alfabeticamente. Neste caso implemente subprograma contendo um dos métodos de ordenação visto nas aulas gravadas.
Sugestão: Utilize listas.


Linguagem: Python Faça um programa, que contenha subprogramas, que leia da entrada padrão nomes comp

1 Resposta

  • Elen

    O que são sub-programas?

    Sub-programas, sub-rotinas ou simplesmente funções são pedaços de códigos que realizam tarefas específicas em um programa. Elas podem, por exemplo, tanto receber argumentos e retornar valores, como não receber nem retornar nenhum dos dois.

    Uma função em Python é estruturada da seguinte maneira:

    def nomefuncao(argumentos):

         código

         return retornofuncao

    Qual é a resposta?

    Analisando a questão, um dos códigos possíveis (escritos em Python 3.7) é:

    def lista_nomes():

     """ Lê os nomes completos até uma string vazia """

     lista = []

     nome = "_"

     while nome != "":

        nome = input("Digite seu nome: ").strip()

        nome_sobrenome = nome.split(" ")

        if nome != "":

           lista.append(nome_sobrenome)

     return lista

    def verifica_repetidos(lista):

      """ Cria lista dos nomes repetidos maiores que 2 dígitos """

      lista_repetidos = []

      lista_total = [ns for nome in lista for ns in nome if len(ns) >2]

      for i in range(len(lista_total)):

          const = lista_total[i]

          lista_total[i] = " "

          if const in lista_total and const not in lista_repetidos:

               lista_repetidos.append(const)

          lista_total[i] = const

      return lista_repetidos

           

    def ordena_nome(repetidos):

       """ Algoritmo bubble sort """

       for i in range(len(repetidos)):

           for j in range(len(repetidos)-1):

              if repetidos[j] > repetidos[j+1]:

                    const = repetidos[j+1]

                    repetidos[j+1] = repetidos[j]

                    repetidos[j] = const

       return repetidos              

    # Programa principal

    for nome in ordena_nome(verifica_repetidos(lista_nomes())):

      print(nome)

    Leia mais sobre funções em Python:
    Faça um programa, que contenha subprogramas, que leia da entrada padrão nomes completos, compostos d

Clique aqui para adicionar a sua resposta.