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

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 multe litere cu număr maxim de apariții, se va fișa prima în ordine alfabetică

Exemplu 1

Intrare
In 12 mergem la munte
Ieșire
e


Explicație

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


Rezolvare

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