4109 - afisare22: Diferență între versiuni
De la Universitas MediaWiki
Fără descriere a modificării |
mFără descriere a modificării |
||
(Nu s-au afișat 2 versiuni intermediare efectuate de alți 2 utilizatori) | |||
Linia 17: | Linia 17: | ||
; Intrare | ; Intrare | ||
: 7 | : 7 | ||
: | : 91 -6 5 141 2 1 10 | ||
: 8 | : 8 | ||
: 8 14 9 14 16 15 4 6 | : 8 14 9 14 16 15 4 6 | ||
; Ieșire | ; Ieșire | ||
: Datele sunt introduse corect. | : Datele sunt introduse corect. | ||
: | : 91 141 | ||
===Exemplul 2=== | ===Exemplul 2=== | ||
; Intrare | ; Intrare | ||
: | : -2 | ||
: 1 2 3 4 | : 1 2 3 4 | ||
: -4 | |||
: 1 2 3 | |||
; Ieșire | ; Ieșire | ||
: Datele nu corespund restricțiilor impuse. | : Datele nu corespund restricțiilor impuse. | ||
Linia 41: | Linia 43: | ||
maxim = y[i] | maxim = y[i] | ||
for i in range(n): | for i in range(n): | ||
adevarat = True | |||
if x[i] < maxim: | if x[i] < maxim: | ||
adevarat = False | |||
if | if adevarat: | ||
exista = True | exista = True | ||
print(x[i], end=" ") | print(x[i], end=" ") | ||
Linia 51: | Linia 53: | ||
def citire_conform_restrictiilor( | def citire_conform_restrictiilor(n, x, m, y): | ||
if n != len(x): | if n != len(x): | ||
print("Datele nu corespund restricțiilor impuse.") | print("Datele nu corespund restricțiilor impuse.") | ||
exit() | exit() | ||
if m != len(y): | if m != len(y): | ||
print("Datele nu corespund restricțiilor impuse.1") | print("Datele nu corespund restricțiilor impuse.1") | ||
Linia 77: | Linia 75: | ||
exit() | exit() | ||
print("Datele sunt introduse corect.") | print("Datele sunt introduse corect.") | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
n | n = int(input()) | ||
x = list(map(int, input().split())) | |||
m = int(input()) | |||
y = list(map(int, input().split())) | |||
citire_conform_restrictiilor(n, x, m, y) | |||
afis_el_din_vect_x_mai_mari_decat_toate_el_din_y(n, x, m, y) | afis_el_din_vect_x_mai_mari_decat_toate_el_din_y(n, x, m, y) | ||
Linia 97: | Linia 98: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicație rezolvare== | == Explicație rezolvare== | ||
Acest | Acest cod conține două funcții, '''afis_el_din_vect_x_mai_mari_decat_toate_el_din_y''' și '''citire_conform_restrictiilor''', care se apelează în interiorul secțiunii '''if __name__ == '__main__':''' (linia 44) după citirea numărului n, vectorului x, numărului m, respectiv vectorului x (liniile 45-48, se folosește comanda input() pentru citire și int() pentru convertire în numere).<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 ca parametrii numărul n, vectorul x, numărul m și vectorul y. Funcția verifică dacă lungimile listelor x și y corespund numerelor 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 corespund acestor restricții, funcția afișează mesajul "Datele sunt introduse corect.", respectiv mesajul "Datele nu corespund restricțiilor impuse." dacă nu respectă oricare dintre restricții. |
Versiunea curentă din 26 aprilie 2023 11:22
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
- 1 ⩽ n, m ⩽ 10.000
- elementele celor 2 vectori vor fi din intervalul [-1.000.000.000,1.000.000.000]
Exemple
Exemplul 1
- Intrare
- 7
- 91 -6 5 141 2 1 10
- 8
- 8 14 9 14 16 15 4 6
- Ieșire
- Datele sunt introduse corect.
- 91 141
Exemplul 2
- Intrare
- -2
- 1 2 3 4
- -4
- 1 2 3
- Ieșire
- Datele nu corespund restricțiilor impuse.
Rezolvare
# 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):
adevarat = True
if x[i] < maxim:
adevarat = False
if adevarat:
exista = True
print(x[i], end=" ")
if not exista:
print("NU EXISTA")
def citire_conform_restrictiilor(n, x, m, y):
if n != len(x):
print("Datele nu corespund restricțiilor impuse.")
exit()
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.")
if __name__ == '__main__':
n = int(input())
x = list(map(int, input().split()))
m = int(input())
y = list(map(int, input().split()))
citire_conform_restrictiilor(n, x, m, y)
afis_el_din_vect_x_mai_mari_decat_toate_el_din_y(n, x, m, y)
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, care se apelează în interiorul secțiunii if __name__ == '__main__': (linia 44) după citirea numărului n, vectorului x, numărului m, respectiv vectorului x (liniile 45-48, se folosește comanda input() pentru citire și int() pentru convertire în numere).
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 ca parametrii numărul n, vectorul x, numărul m și vectorul y. Funcția verifică dacă lungimile listelor x și y corespund numerelor 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 corespund acestor restricții, funcția afișează mesajul "Datele sunt introduse corect.", respectiv mesajul "Datele nu corespund restricțiilor impuse." dacă nu respectă oricare dintre restricții.