0892 - Pasareste 1: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Se dă un vector cu '''n''' elemente, numere naturale și un număr '''k'''. Ordonați crescător primele '''k''' elemente ale vectorului și descrescător ultimele '''n-k''' elemente.Pentru sortare se va folosit metoda '''QuickSort''' sau '''MergeSort'''. == Date de intrare == Programul citește de la tastatură numerele '''n''' și '''k''', iar apoi '''n''' numere naturale, reprezentând elementele vectorului. == Date de ieşire == Programul va afișa pe ecra...
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
== Cerinţa ==
== Cerinţa ==
Se dă un vector cu '''n''' elemente, numere naturale și un număr '''k'''. Ordonați crescător primele '''k''' elemente ale vectorului și descrescător ultimele '''n-k''' elemente.Pentru sortare se va folosit metoda '''QuickSort''' sau '''MergeSort'''.
Limba păsărească este foarte simplă; și asemănătoare cu limba română! Un text scris în română se traduce în păsărește astfel: după fiecare vocală se inserează litera '''p''' și vocala respectivă.
 
Se dă o propoziție scrisă în limba păsărească. se traducă în limba română.
== Date de intrare ==
== Date de intrare ==
Programul citește de la tastatură numerele '''n''' și '''k''', iar apoi '''n''' numere naturale, reprezentând elementele vectorului.
Programul citește de la tastatură un șir de caractere '''s'''.
== Date de ieşire ==
== Date de ieşire ==
Programul va afișa pe ecran elementele vectorului, separate prin exact un spațiu, după efectuarea operațiilor cerute.
Programul va afișa pe ecran șirul '''t''', reprezentând traducerea în română a șirului '''s'''.
== Restricții și precizări ==
== Restricții și precizări ==
* '''1 &les; k < n &les; 200 000'''
* șirurile '''s''' și '''t''' vor avea cel mult '''255''' de caractere
* cele '''n''' numere citite vor fi mai mici decât '''1 000 000 000'''
* șirul '''s''' va conține litere mici ale alfabetului englez și spații
* vocalele sunt: '''aeiou'''
* '''șirul dat în limba păsărească este corect'''
== Exemplul 1 ==
== Exemplul 1 ==
; Intrare
; Intrare
  7 3
  apanapa aparepe meperepe
13 1 10 15 3 7 11
; Ieșire
; Ieșire
  Datele introduse corespund restricțiilor impuse.
  Datele introduse corespund restricțiilor impuse.
  1 10 13 15 11 7 3
  ana are mere
<br>
<br>
== Exemplul 2 ==
== Exemplul 2 ==
; Intrare
; Intrare
  fhgjfhgfgj
  78675878576875
; Ieșire
; Ieșire
  Datele introduse nu corespund restricțiilor impuse.
  Datele introduse nu corespund restricțiilor impuse.
Line 24: Line 27:
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
# Definim funcția de verificare a valorilor n, k și a elementelor vectorului
# Definim funcția de verificare a valorilor s
def verificare(n_val, k_val, vector_verificare):
def verificare(s_val):
     # Verificăm dacă n și k respectă restricțiile problemei
     # Verificăm dacă s respectă restricțiile problemei
     if 1 <= k_val < n_val <= 200000:
     if 1 <= len(s_val) <= 255 and all(c.islower() or c.isspace() for c in s_val):
        # Verificăm dacă toate elementele vectorului sunt mai mici decât 1 000 000 000
        # Dacă valorile sunt valide, returnăm True
        if all(x < 1000000000 for x in vector_verificare):
        return True
            # Dacă toate condițiile sunt îndeplinite, returnăm True
     else:
            return True
        # Dacă valorile nu sunt valide, ridicăm o excepție
     return False
        raise ValueError




# Definim funcția pentru sortarea vectorului
# Definim funcția pentru traducerea din limba păsărească în română
def sortare_vector(k_val, vector_sortare):
def traducere_pasareasca(s_pasareasca):
     # Sortăm primele k elemente în ordine crescătoare
     vocale = 'aeiou'
     vector_sortare[:k_val] = sorted(vector_sortare[:k_val])
    t = ''
    # Sortăm ultimele elemente în ordine descrescătoare
    i = 0
    vector_sortare[k_val:] = sorted(vector_sortare[k_val:], reverse=True)
     while i < len(s_pasareasca):
    # Returnăm vectorul sortat
        if s_pasareasca[i] in vocale:
     return vector_sortare
            t += s_pasareasca[i]
            i += 3
        else:
            t += s_pasareasca[i]
            i += 1
     return t




if __name__ == '__main__':
if __name__ == '__main__':
   
     try:
     try:
         # Citim numărul de elemente din vector
         # Citim șirul de caractere
         n = int(input("Introduceti numarul de elemente din vector: "))
         s = input("Introduceti sirul de caractere: ")
        # Citim numărul k
        k = int(input("Introduceti numarul k: "))
        # Citim elementele vectorului
        vector = list(map(int, input("Introduceti elementele vectorului: ").split()))


         # Verificăm dacă datele introduse sunt valide
         # Verificăm dacă datele introduse sunt valide
         if verificare(n, k, vector):
         if verificare(s):
             # Dacă datele sunt valide, afișăm un mesaj de confirmare
             # Dacă datele sunt valide, afișăm un mesaj de confirmare
             print("Datele introduse corespund restricțiilor impuse.")
             print("Datele introduse corespund restricțiilor impuse.")
            # Sortăm vectorul și afișăm rezultatul
 
            print(' '.join(map(str, sortare_vector(k, vector))))
        # Traducem șirul din limba păsărească în română și îl afișăm
        else:
        print(traducere_pasareasca(s))
            print("Datele introduse nu corespund restricțiilor impuse.")
 
     # Tratăm cazul în care datele introduse nu sunt numere
     # Tratăm cazul în care datele introduse nu sunt valide
     except ValueError:
     except ValueError:
        # Afișăm un mesaj de eroare
         print("Datele introduse nu corespund restricțiilor impuse.")
         print("Datele introduse nu corespund restricțiilor impuse.")


</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 14:29, 14 December 2023

Cerinţa[edit | edit source]

Limba păsărească este foarte simplă; și asemănătoare cu limba română! Un text scris în română se traduce în păsărește astfel: după fiecare vocală se inserează litera p și vocala respectivă.

Se dă o propoziție scrisă în limba păsărească. Să se traducă în limba română.

Date de intrare[edit | edit source]

Programul citește de la tastatură un șir de caractere s.

Date de ieşire[edit | edit source]

Programul va afișa pe ecran șirul t, reprezentând traducerea în română a șirului s.

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

  • șirurile s și t vor avea cel mult 255 de caractere
  • șirul s va conține litere mici ale alfabetului englez și spații
  • vocalele sunt: aeiou
  • șirul dat în limba păsărească este corect

Exemplul 1[edit | edit source]

Intrare
apanapa aparepe meperepe
Ieșire
Datele introduse corespund restricțiilor impuse.
ana are mere


Exemplul 2[edit | edit source]

Intrare
78675878576875
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. Definim funcția de verificare a valorilor s

def verificare(s_val):

   # Verificăm dacă s respectă restricțiile problemei
   if 1 <= len(s_val) <= 255 and all(c.islower() or c.isspace() for c in s_val):
       # Dacă valorile sunt valide, returnăm True
       return True
   else:
       # Dacă valorile nu sunt valide, ridicăm o excepție
       raise ValueError


  1. Definim funcția pentru traducerea din limba păsărească în română

def traducere_pasareasca(s_pasareasca):

   vocale = 'aeiou'
   t = 
   i = 0
   while i < len(s_pasareasca):
       if s_pasareasca[i] in vocale:
           t += s_pasareasca[i]
           i += 3
       else:
           t += s_pasareasca[i]
           i += 1
   return t


if __name__ == '__main__':

   try:
       # Citim șirul de caractere
       s = input("Introduceti sirul de caractere: ")
       # Verificăm dacă datele introduse sunt valide
       if verificare(s):
           # Dacă datele sunt valide, afișăm un mesaj de confirmare
           print("Datele introduse corespund restricțiilor impuse.")
       # Traducem șirul din limba păsărească în română și îl afișăm
       print(traducere_pasareasca(s))
   # Tratăm cazul în care datele introduse nu sunt valide
   except ValueError:
       # Afișăm un mesaj de eroare
       print("Datele introduse nu corespund restricțiilor impuse.")

</syntaxhighlight>