0133 - Nume Prenume

From Bitnami MediaWiki

Cerința

Scrieți un program care citește de la tastatură două șiruri formate fiecare din cel mult 20 de caractere. Primul șir reprezintă numele unei persoane, iar al doilea șir reprezintă prenumele aceleiași persoane. Atât numele, cât și prenumele sunt formate doar din litere ale alfabetului englez și fiecare conține cel puțin o consoană. Programul construiește în memorie și afișează pe ecran un al treilea șir de caractere, care va conține consoanele din prenumele citit dispuse în ordinea în care apar în prenume, urmate de exact un spațiu și de numele citit.

Date de intrare

Programul citeşte de la tastatură cele două șiruri.

Date de ieșire

Programul afişează pe ecran șirul construit după regula precizată.

Exemplul 1

Intrare
Popescu Vasile
Ieșire
Datele de intrare corespund restricțiilor impuse.
Vsl Popescu

Exemplul 2

Intrare
aaaaaa Vasile
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

<syntaxhighlight lang="python" line="1">

  1. 0133 - Nume Prenume

def verifica_sir(sir):

   # verificăm dacă șirul conține doar litere
   if not sir.isalpha():
       return False
   consoane = "bcdfghjklmnpqrstvwxyz"
   # verificăm dacă șirul conține cel puțin o consoană
   for litera in sir.lower():
       if litera in consoane:
           return True
   return False


def construieste_sir(nume, prenume):

   sir_final = ""
   # verificăm fiecare literă din prenume și adăugăm doar consoanele în șirul final
   for litera in prenume:
       if litera.lower() in "bcdfghjklmnpqrstvwxyz":
           sir_final += litera
   # adăugăm numele la finalul șirului
   sir_final += " " + nume
   return sir_final


if __name__ == '__main__':

   # citim numele și prenumele de la tastatură
   nume = input("Introduceți numele: ")
   prenume = input("Introduceți prenumele: ")
   # verificarea restricțiilor
   if verifica_sir(nume) and verifica_sir(prenume):
       # construim și afișăm șirul final
       sir_final = construieste_sir(nume, prenume)
       print(sir_final)
       print("Datele de intrare corespund restricțiilor impuse.")
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")


</syntaxhighlight>