Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
0356 - Perechi
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Sursă: [https://www.pbinfo.ro/probleme/356/perechi] == Cerință == La concursul “Miss & Mister Boboc” participă n perechi de elevi, despre fiecare elev cunoscându-se înălțimea. Numim grad de disproporționalitate al unei perechi este diferența în valoare absolută dintre înălțimile elevilor care formează perechea. Să se determine perechea cu grad de disproporționalitate maxim. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' perechi de numere naturale, separate prin spaţii, reprezentând înălțimile elevilor dintr-o pereche. == Date de ieșire == Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.". Programul afișează pe ecran două numere '''x y''', separate prin exact un spațiu, reprezentând perechea cu grad maxim de disproporționalitate. Dacă există mai multe perechi cu grad maxim de disproporționalitate, se va afișa prima pereche în ordinea în care au fost date. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.". == Restricții și precizări == * '''1 ≤ n ≤ 1000''' * înălțimile elevilor sunt numere naturale cuprinse între '''1''' și '''1000''' – unitatea de măsură folosită este de origine extraterestră, nu încercați să o înțelegeți !! == Exemplr == === Exemplu 1 === ; Intrare : 6 : 7 9 : 6 7 : 8 12 : 12 10 : 10 6 : 11 13 ; Ieșire : 8 12 === Exemplu 2 === ; Intrare : a : b c : d e : f b : n s ; Ieșire : Datele nu sunt comform restricțiilor impuse == Rezolvare == <syntaxhighlight lang="python" line="1"> def citeste_n(): while True: try: n = int(input("Introduceti numarul de perechi: ")) if n >= 1 and n <= 1000: print("Datele sunt corecte.") return n else: print("Datele nu sunt conform restrictiilor impuse.") except ValueError: print("Trebuie introduse doar numere intregi.") def citeste_perechi(n): valori = [] for i in range(n): while True: try: valoare1, valoare2 = map(int, input("Introduceti o pereche de valori separate prin spatiu: ").split()) if 1 <= valoare1 <= 1000 and 1 <= valoare2 <= 1000: print("Datele sunt corecte.") valori.append((valoare1, valoare2)) break else: print("Datele nu sunt conform restrictiilor impuse.") except ValueError: print("Trebuie introduse doar valori numerice.") return valori def pereche(valori): a, b, maxim = 0, 0, -1 for i, pereche in enumerate(valori): x, y = pereche grdis = abs(x - y) if grdis > maxim: maxim = grdis a, b = x, y return a,b if _name_ == '_main_': n = citeste_n() valori = citeste_perechi(n) x,y = pereche(valori) print("Perechea cu diferența minimă este la poziția: ", x, y) </syntaxhighlight> == Explicații == Acesta este un program scris în Python care își propune să găsească perechea de valori cu diferența maximă dintr-un set de perechi de valori, după ce primește numărul de perechi și valorile acestora de la utilizator. În funcția citeste_n(), utilizatorul este întâi invitat să introducă numărul de perechi. Acesta este verificat apoi pentru a se asigura că este un număr întreg între 1 și 1000, iar dacă este valabil, funcția returnează valoarea introdusă. În caz contrar, utilizatorului i se cere să introducă din nou un număr valabil. În funcția citeste_perechi(n), utilizatorul este invitat să introducă perechi de valori, separate prin spațiu, și să le introducă de n ori, conform numărului de perechi introdus anterior. Asemenea primei funcții, fiecare valoare este verificată pentru a se asigura că este un număr întreg între 1 și 1000, și dacă este valabil, valoarea este adăugată la lista valori. În caz contrar, utilizatorului i se cere să introducă din nou valori valabile. Funcția pereche(valori) primește lista de perechi de valori și parcurge fiecare pereche de valori. Pentru fiecare pereche, calculează diferența dintre cele două valori și verifică dacă această diferență este mai mare decât maximul curent. Dacă este, valoarea maximului este actualizată, iar perechea de valori aferentă este reținută în variabilele a și b. La final, funcția returnează cele două valori ale perechii cu diferența maximă. În main, funcția citeste_n() este apelată pentru a citi numărul de perechi de valori, apoi funcția citeste_perechi(n) este apelată pentru a citi valorile propriu-zise. Apoi, funcția pereche(valori) este apelată pentru a găsi perechea cu diferența maximă, iar rezultatul este afișat într-un mesaj.
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width