4109 - afisare22: Difference between revisions

From Bitnami MediaWiki
No edit summary
Line 97: Line 97:
</syntaxhighlight>
</syntaxhighlight>
== Explicație rezolvare==
== Explicație rezolvare==
   Acest program primește două liste de numere întregi x și y și determină toate elementele din lista x care sunt mai mari decât toate elementele din lista y. Pentru a face asta, programul găsește cel mai mare element din lista y, apoi compară fiecare element din lista x cu acest maxim și afișează elementele care sunt mai mari. Dacă nu există astfel de elemente, programul afișează "NU EXISTA". <br>  Funcția '''citire_conform_restrictiilor()''' primește datele de intrare conform unor restricții impuse și verifică dacă acestea sunt respectate. Aceasta primește doi vectori x și y și lungimile lor corespunzătoare n și m. Se verifică dacă lungimile corespund cu valorile n și m date ca intrare. De asemenea, se verifică dacă elementele din ambele liste sunt în intervalul [-1000000000, 1000000000]. Dacă datele de intrare nu respectă restricțiile impuse, programul va afișa un mesaj corespunzător și se va opri.<br>  Funcția '''afis_el_din_vect_x_mai_mari_decat_toate_el_din_y()''' primește cele două liste și apelează algoritmul descris mai sus pentru a găsi elementele din lista x mai mari decât toate elementele din lista y. Dacă nu există astfel de elemente, afișează mesajul "NU EXISTA".
   Acest cod conține două funcții, '''afis_el_din_vect_x_mai_mari_decat_toate_el_din_y''' și '''citire_conform_restrictiilor''', și o secțiune de cod care apelează aceste funcții pentru a rezolva problema dată.<br>  Funcția '''afis_el_din_vect_x_mai_mari_decat_toate_el_din_y''' primește patru argumente: n, x, m și y (n și m sunt lungimile vectorilor x, respectiv y). Funcția afișează elementele din lista x care sunt mai mari decât toate elementele din lista y. Mai exact, funcția găsește cel mai mare element din lista y, folosind o buclă for și variabila maxim. Apoi, parcurge lista x cu o altă buclă for și verifică dacă fiecare element din x este mai mare decât maxim. Dacă da, funcția afișează elementul. Dacă niciun element din x nu este mai mare decât maxim, funcția afișează mesajul "NU EXISTA".<br>  Funcția '''citire_conform_restrictiilor''' primește datele de intrare și le verifică dacă ele corespund restricțiilor impuse. Funcția primește un input întreg n, o listă de n numere întregi x, un input întreg m și o listă de m numere întregi y. Funcția verifică dacă lungimile listelor x și y corespund input-urilor n și m, respectiv. De asemenea, funcția verifică dacă toate numerele din x și y sunt întregi între -1000000000 și 1000000000 și dacă n și m sunt întregi între 1 și 10000. Dacă datele introduse de utilizator corespund acestor restricții, funcția afișează mesajul "Datele sunt introduse corect." și returnează valorile n, x, m și y, respectiv mesajul "Datele nu corespund restricțiilor impuse." dacă nu respectă toate restricțiile.

Revision as of 18:08, 31 March 2023

Sursa: - afisare22


Cerinţa

Se dă un vector x cu n elemente numere întregi, și un vector y cu m elemente, de asemenea numere întregi. Să se afișeze toate elementele din vectorul x care sunt mai mari decât toate elementele din vectorul y.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi cele n elemente ale vectorului x. Apoi și citește m și cele m elemente ale lui y.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou va afișa elementele din vectorul x care sunt mai mari decât toate elementele din vectorul y, sau NU EXISTA dacă vectorul x nu conține astfel de elemente. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".

Restricţii şi precizări

  • 1n, m10.000
  • elementele celor 2 vectori vor fi din intervalul [-1.000.000.000,1.000.000.000]

Exemple

Exemplul 1

Intrare
7
9 -6 5 14 2 1 10
8
8 14 9 14 16 15 4 6
Ieșire
Datele sunt introduse corect.
NU EXISTA

Exemplul 2

Intrare
7
1 2 3 4
Ieșire
Datele nu corespund restricțiilor impuse.


Rezolvare

<syntaxhighlight lang="python" line>

  1. 4109

def afis_el_din_vect_x_mai_mari_decat_toate_el_din_y(n, x, m, y):

   maxim = -1000000000
   exista = False
   for i in range(m):
       if y[i] > maxim:
           maxim = y[i]
   for i in range(n):
       advevarat = True
       if x[i] < maxim:
           advevarat = False
       if advevarat:
           exista = True
           print(x[i], end=" ")
   if not exista:
       print("NU EXISTA")


def citire_conform_restrictiilor():

   n = int(input())
   x = list(map(int, input().split()))
   if n != len(x):
       print("Datele nu corespund restricțiilor impuse.")
       exit()
   m = int(input())
   y = list(map(int, input().split()))
   if m != len(y):
       print("Datele nu corespund restricțiilor impuse.1")
       exit()
   for element in x:
       if element < -1000000000 or element > 1000000000:
           print("Datele nu corespund restricțiilor impuse.3")
           exit()
   for element in y:
       if element < -1000000000 or element > 1000000000:
           print("Datele nu corespund restricțiilor impuse.4")
           exit()
   if n < 1 or n > 10000:
       print("Datele nu corespund restricțiilor impuse.1")
       exit()
   if m < 1 or m > 10000:
       print("Datele nu corespund restricțiilor impuse.1")
       exit()
   print("Datele sunt introduse corect.")
   return n, x, m, y


if __name__ == '__main__':

   n, x, m, y = citire_conform_restrictiilor()
   afis_el_din_vect_x_mai_mari_decat_toate_el_din_y(n, x, m, y)







</syntaxhighlight>

Explicație rezolvare

  Acest cod conține două funcții, afis_el_din_vect_x_mai_mari_decat_toate_el_din_y și citire_conform_restrictiilor, și o secțiune de cod care apelează aceste funcții pentru a rezolva problema dată.
Funcția afis_el_din_vect_x_mai_mari_decat_toate_el_din_y primește patru argumente: n, x, m și y (n și m sunt lungimile vectorilor x, respectiv y). Funcția afișează elementele din lista x care sunt mai mari decât toate elementele din lista y. Mai exact, funcția găsește cel mai mare element din lista y, folosind o buclă for și variabila maxim. Apoi, parcurge lista x cu o altă buclă for și verifică dacă fiecare element din x este mai mare decât maxim. Dacă da, funcția afișează elementul. Dacă niciun element din x nu este mai mare decât maxim, funcția afișează mesajul "NU EXISTA".
Funcția citire_conform_restrictiilor primește datele de intrare și le verifică dacă ele corespund restricțiilor impuse. Funcția primește un input întreg n, o listă de n numere întregi x, un input întreg m și o listă de m numere întregi y. Funcția verifică dacă lungimile listelor x și y corespund input-urilor n și m, respectiv. De asemenea, funcția verifică dacă toate numerele din x și y sunt întregi între -1000000000 și 1000000000 și dacă n și m sunt întregi între 1 și 10000. Dacă datele introduse de utilizator corespund acestor restricții, funcția afișează mesajul "Datele sunt introduse corect." și returnează valorile n, x, m și y, respectiv mesajul "Datele nu corespund restricțiilor impuse." dacă nu respectă toate restricțiile.