0138 - Frecventa: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerința == Să se scrie un program care citește un șir de caractere și afișează litera mică cel mai des întâlnită în șir. == Date de intrare == Programul citește de la tastatură un șir de cel mult 255 caractere. == Date de ieșire == Programul afișează pe ecran litera mică cel mai des întâlnită în șir. == Restricții și precizări == : - șirul conține litere mari și mici ale alfabetului englez, cifre și spații : - dacă șirul conține mai mul...
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 18: Line 18:
<br>
<br>
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line="1">
#0138 Frecventa
# 0138 Frecventa
def verificare(sir_chr):            # functia de validare a datelor de intrare
    for caracter in sir_chr:
        if 122 < ord(caracter) < 97:
            if ord(caracter) != ord(" "):  # caracterul trebuie sa fie litera sau spatiu
                return False
 
    return True
 
 
def frecventa(sir):
    nr_alfabet = []    # vectorul de frecventa in care numaram fiecare litera din alfabet
    for i in range(123):
        nr_alfabet.append(0)
 
    for caracter in sir:                    # numaram fiecare litera din sir in vectorul de frecventa
        nr_alfabet[ord(caracter)] += 1
 
    max_aparitii = max(nr_alfabet[97:])    # aflam numarul maxim de aparitii
 
    for i in range(len(nr_alfabet)):
        if nr_alfabet[i] == max_aparitii and i >= 97: 
            # parcurgem sirul, daca gasim caracterul cu numar maxim de aparitii si e o litera il afisam
            print(chr(i))
            return
 
 
if __name__ == '__main__':
    sir_caractere = input("Introduceti sirul de caractere: ")      # citirea sirului
 
    if verificare(sir_caractere):  # verificarea datelor de intrare
        print("Datele introduse corespund restricțiilor impuse.")
        frecventa(sir_caractere)        # apelul functiei de rezolvare
    else:
        print("Datele introduse nu corespund restricțiilor impuse.")
       
</syntaxhighlight>

Latest revision as of 13:19, 4 May 2023

Cerința[edit | edit source]

Să se scrie un program care citește un șir de caractere și afișează litera mică cel mai des întâlnită în șir.

Date de intrare[edit | edit source]

Programul citește de la tastatură un șir de cel mult 255 caractere.

Date de ieșire[edit | edit source]

Programul afișează pe ecran litera mică cel mai des întâlnită în șir.

Restricții și precizări[edit | edit source]

- șirul conține litere mari și mici ale alfabetului englez, cifre și spații
- dacă șirul conține mai multe litere cu număr maxim de apariții, se va fișa prima în ordine alfabetică

Exemplu 1[edit | edit source]

Intrare
In 12 mergem la munte
Ieșire
e


Explicație[edit | edit source]

Litera e apare în șir de 3 ori. Tot de 3 ori apare și litera m, dar e este prima în ordine alfabetică.


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1">

  1. 0138 Frecventa

def verificare(sir_chr): # functia de validare a datelor de intrare

   for caracter in sir_chr:
       if 122 < ord(caracter) < 97:
           if ord(caracter) != ord(" "):   # caracterul trebuie sa fie litera sau spatiu
               return False
   return True


def frecventa(sir):

   nr_alfabet = []     # vectorul de frecventa in care numaram fiecare litera din alfabet
   for i in range(123):
       nr_alfabet.append(0)
   for caracter in sir:                    # numaram fiecare litera din sir in vectorul de frecventa
       nr_alfabet[ord(caracter)] += 1
   max_aparitii = max(nr_alfabet[97:])     # aflam numarul maxim de aparitii
   for i in range(len(nr_alfabet)):
       if nr_alfabet[i] == max_aparitii and i >= 97:   
           # parcurgem sirul, daca gasim caracterul cu numar maxim de aparitii si e o litera il afisam
           print(chr(i))
           return


if __name__ == '__main__':

   sir_caractere = input("Introduceti sirul de caractere: ")       # citirea sirului
   if verificare(sir_caractere):   # verificarea datelor de intrare
       print("Datele introduse corespund restricțiilor impuse.")
       frecventa(sir_caractere)        # apelul functiei de rezolvare
   else:
       print("Datele introduse nu corespund restricțiilor impuse.")
       

</syntaxhighlight>