0133 - Nume Prenume: Difference between revisions
Adina Timiș (talk | contribs) 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... |
Adina Timiș (talk | contribs) 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(" | # citim numele și prenumele de la tastatură | ||
prenume = input(" | 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">
- 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>