0890 - Nr Vocale

From Bitnami MediaWiki
Revision as of 13:55, 27 March 2023 by Hotico Iulia Denisa (talk | contribs) (Pagină nouă: == 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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>

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