• Matéria: Informática
  • Autor: madarauchihab14
  • Perguntado 6 anos atrás

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

Anexos:

Respostas

respondido por: juanbomfim22
3

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:

  • https://brainly.com.br/tarefa/25157006#readmore
Anexos:
Perguntas similares