0890 - Nr Vocale
Cerința
Se dă o propoziție formată din litere mari și mici ale alfabetului englez, cifre, spații și semne de punctuație, în care literele mari și mici se consideră identice. Determinați vocala din șir cu număr maxim de apariții.
Date de intrare
Programul citește de la tastatură un șir de caractere.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa vocala determinată, literă mare. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse".
Restricții și precizări
- șirul citit va avea cel mult 255 caractere
- dacă în șir există mai multe vocale cu număr maxim de apariții, se va afișa prima în ordine alfabetică
- vocalele sunt AEIOUaeiou
Exemplu 1
- Intrare
- Ana are 5 mere si trei nuci
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- E
Exemplu 2
- Intrare
- $$$$$$$$$$$
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line>
- 0890 NrVocale
def validare(propozitie):
if len(propozitie) > 255: raise ValueError
print("Datele de intrare corespund restrictiilor impuse") return True
def vocala(litera):
lista_vocale = "aeiouAEIOU" if litera in lista_vocale: return True else: return False
def nrvocale(propozitie):
frecventa_litere = []
for i in range(128): frecventa_litere.append(0)
for litera in propozitie: if vocala(litera): if litera >= 'a': frecventa_litere[ord(litera) - 32] += 1 else: frecventa_litere[ord(litera)] += 1
aparitii_max = max(frecventa_litere)
for i in range(len(frecventa_litere)): if frecventa_litere[i] == aparitii_max: print(chr(i)) return
if __name__ == '__main__':
try: sir = input(f"Introduceti textul ") validare(sir) nrvocale(sir)
except ValueError: print("Datele de intrare nu corespund restrictiilor impuse") except IndexError: print("Datele de intrare nu corespund restrictiilor impuse")
</syntaxhighlight>