0133 - Nume Prenume: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==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 consoan...
 
No edit summary
 
Line 18: Line 18:
:Datele de intrare nu corespund restricțiilor impuse.
:Datele de intrare nu corespund restricțiilor impuse.
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="">
<syntaxhighlight lang="python" line="1">
#0133 - Nume Prenume
#0133 - Nume Prenume
def verifica_sir(sir):
def verifica_sir(sir):
    # verificăm dacă șirul conține doar litere
     if not sir.isalpha():
     if not sir.isalpha():
         return False
         return False


     consoane = "bcdfghjklmnpqrstvwxyz"
     consoane = "bcdfghjklmnpqrstvwxyz"
    # verificăm dacă șirul conține cel puțin o consoană
     for litera in sir.lower():
     for litera in sir.lower():
         if litera in consoane:
         if litera in consoane:
Line 34: Line 36:
def construieste_sir(nume, prenume):
def construieste_sir(nume, prenume):
     sir_final = ""
     sir_final = ""
    # verificăm fiecare literă din prenume și adăugăm doar consoanele în șirul final
     for litera in prenume:
     for litera in prenume:
         if litera.lower() in "bcdfghjklmnpqrstvwxyz":
         if litera.lower() in "bcdfghjklmnpqrstvwxyz":
             sir_final += litera
             sir_final += litera


    # adăugăm numele la finalul șirului
     sir_final += " " + nume
     sir_final += " " + nume


Line 44: Line 49:


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




</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 10:40, 21 May 2023

Cerința[edit | edit source]

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[edit | edit source]

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

Date de ieșire[edit | edit source]

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

Exemplul 1[edit | edit source]

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

Exemplul 2[edit | edit source]

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

Rezolvare[edit | edit source]

<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>