0090 - Numar Maxim Vocale: Difference between revisions
Pagină nouă: == Cerința == Să se scrie un program care citește mai multe propoziții și determină propoziția cu cele mai multe vocale. == Date de intrare == Fișierul de intrare vocmaxin.txt conține pe prima linie un număr natural n, iar pe următoarele n linii câte o propoziție alcătuită din litere mici ale alfabetului englez și spații. == Date de ieșire == Dacă datele sunt introduse corect, fișierul de ieșire vocmaxout.txt va conține pe prima linie: " Datele de intra... |
|||
Line 30: | Line 30: | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# 0090 Numar Maxim Vocale | |||
def validare(nr_prop, propozitii): | |||
if nr_prop <= 0 or nr_prop >= 100: | |||
raise ValueError | |||
if len(propozitii) != nr_prop: | |||
raise ValueError | |||
for prop in propozitii: | |||
if len(prop) > 255: | |||
raise ValueError | |||
for litera in prop: | |||
if (litera < 'a' or litera > 'z') and litera != ' ': | |||
print("" + litera + "") | |||
raise ValueError | |||
file_out.write("Datele de intrare corespund restrictiilor impuse\n") | |||
def vocala(litera): | |||
if litera in "aeiou": | |||
return True | |||
return False | |||
def vocmax(propozitii): | |||
nr_maxim_vocale = 0 | |||
propozitia_dorita = "" | |||
for prop in propozitii: | |||
nr_vocale = 0 | |||
for caracter in prop: | |||
if vocala(caracter): | |||
nr_vocale += 1 | |||
if nr_vocale > nr_maxim_vocale: | |||
nr_maxim_vocale = nr_vocale | |||
propozitia_dorita = prop | |||
if len(propozitia_dorita) > 0: | |||
file_out.write(propozitia_dorita) | |||
else: | |||
file_out.write(propozitii[0]) | |||
if __name__ == '__main__': | |||
file_in = open("vocmaxin.txt", "r") | |||
file_out = open("vocmaxout.txt", "w") | |||
try: | |||
nr_propozitii = int(file_in.readline()) | |||
lista_propozitii = [] | |||
for i in range(nr_propozitii): | |||
propozitie = file_in.readline().strip() | |||
lista_propozitii.append(propozitie) | |||
validare(nr_propozitii, lista_propozitii) | |||
vocmax(lista_propozitii) | |||
except ValueError: | |||
file_out.write("Datele de intrare nu corespund restrictiilor impuse") | |||
except IndexError: | |||
file_out.write("Datele de intrare nu corespund restrictiilor impuse") | |||
</syntaxhighlight> |
Revision as of 19:24, 13 April 2023
Cerința
Să se scrie un program care citește mai multe propoziții și determină propoziția cu cele mai multe vocale.
Date de intrare
Fișierul de intrare vocmaxin.txt conține pe prima linie un număr natural n, iar pe următoarele n linii câte o propoziție alcătuită din litere mici ale alfabetului englez și spații.
Date de ieșire
Dacă datele sunt introduse corect, fișierul de ieșire vocmaxout.txt va conține pe prima linie: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa propoziția cu cele mai multe vocale. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse"
Restricții și precizări
- 0<n<100
- fiecare propoziție va conține cel mult 250 de caractere
- dacă sunt mai multe propoziții cu număr maxim de vocale se poate afișa oricare
Exemplu 1
- vocmaxin.txt
- 4
- somnoroase pasarele
- pe la cuiburi se aduna
- se ascund in ramurele
- noapte buna
- vocmaxout.txt
- Datele introduse corespund restricțiilor impuse.
- pe la cuiburi se aduna
Exemplu 2
- vocmaxin.txt
- 2
- ANA ARE MERE
- bACNOTA folosita "$"
- vocmaxout.txt
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line>
- 0090 Numar Maxim Vocale
def validare(nr_prop, propozitii):
if nr_prop <= 0 or nr_prop >= 100: raise ValueError
if len(propozitii) != nr_prop: raise ValueError
for prop in propozitii: if len(prop) > 255: raise ValueError for litera in prop: if (litera < 'a' or litera > 'z') and litera != ' ': print("" + litera + "") raise ValueError
file_out.write("Datele de intrare corespund restrictiilor impuse\n")
def vocala(litera):
if litera in "aeiou": return True
return False
def vocmax(propozitii):
nr_maxim_vocale = 0 propozitia_dorita = ""
for prop in propozitii: nr_vocale = 0 for caracter in prop: if vocala(caracter): nr_vocale += 1 if nr_vocale > nr_maxim_vocale: nr_maxim_vocale = nr_vocale propozitia_dorita = prop
if len(propozitia_dorita) > 0: file_out.write(propozitia_dorita) else: file_out.write(propozitii[0])
if __name__ == '__main__':
file_in = open("vocmaxin.txt", "r") file_out = open("vocmaxout.txt", "w")
try: nr_propozitii = int(file_in.readline()) lista_propozitii = []
for i in range(nr_propozitii): propozitie = file_in.readline().strip() lista_propozitii.append(propozitie)
validare(nr_propozitii, lista_propozitii) vocmax(lista_propozitii)
except ValueError: file_out.write("Datele de intrare nu corespund restrictiilor impuse") except IndexError: file_out.write("Datele de intrare nu corespund restrictiilor impuse")
</syntaxhighlight>