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
2825 - Chenar 2
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/2825/chenar2] == Cerință == Scrieți un program C/C++ care citește de la tastatură numere naturale din intervalul '''[3, 100]''', în această ordine: '''n''' și '''m''', apoi elementele unui tablou bidimensional cu '''n''' linii și '''m''' coloane, iar la final un număr '''x'''. Programul afișează pe ecran mesajul '''DA''', dacă există cel puțin un element egal cu '''x''' aflat pe conturul tabloului (format din prima linie, ultima linie, prima coloană și ultima coloană), sau mesajul '''NU''' în caz contrar. == Date de intrare == Programul citește de la tastatură de la tastatură numere naturale '''n''' și '''m''', apoi elementele unui tablou bidimensional cu '''n''' linii și '''m''' coloane, iar la final un număr '''x'''. == Date de ieșire == Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.", Programul va afișa pe ecran mesajul DA sau mesajul NU, conform cerinței. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.". == Restricții și precizări == *toate valorile citite sunt numere naturale din intervalul '''[3, 100]'''. == Exemple == === Exemplu 1 === ; Date de intrare :4 5 :12 5 12 11 4 :3 20 10 20 12 :4 5 30 12 6 :8 13 7 12 14 :12 ; Date de ieșire :DA === Exemplu 2 === ; Date de intrare : 3 2 ; Date de ieșire : NU, Datele nu sunt comform restricțiilor impuse == Rezolvare == <syntaxhighlight lang="python" line="1"> def citire_lin_col(): try: lin = int(input("Introduceti numarul de linii: ")) col = int(input("Introduceti numarul de coloane: ")) if 3 <= lin <= 100 and 3 <= col <= 100: print("Datele sunt corecte.") return lin, col else: print("Datele nu sunt conform restricțiilor impuse.") exit() except ValueError: print("Trebuie introduse doar numere intregi.") exit() def citeste_valori_matrice(lin, col): matrice = [] for linie in range(lin): matrice.append([]) for coloana in range(col): while True: try: n = int(input("Introduceti un numar: ")) if 3 <= n <= 100: print("Datele sunt corecte.") matrice[linie].append(n) break else: print("Datele nu sunt conform restricțiilor impuse.") except ValueError: print("Trebuie introduse doar numere intregi.") return matrice def citeste_numar_x(): while True: try: x = int(input("Introduceti numarul : ")) if 3 <= x <= 100: print("Datele sunt corecte.") return x else : print("Datele nu sunt conform restricțiilor impuse.") except ValueError: print("Trebuie introduse doar numere intregi.") def element(matrice, n, m, x): for i in range(n): for j in range(m): if i == 0 or i == n - 1 or j == 0 or j == m - 1: if matrice[i][j] == x: print("DA") return print("NU") if _name_ == "_main_": n, m = citire_lin_col() matrice = citeste_valori_matrice(n, m) x = citeste_numar_x() element(matrice, n, m, x) </syntaxhighlight> == Explicatii == Acest cod implementează o funcție pentru a căuta un anumit element x în matricea dată. Funcția primește matricea, numărul de linii și coloane ale acesteia și numărul căutat. În primul rând, funcția citire_lin_col solicită introducerea numărului de linii și coloane, verifică dacă acestea sunt în intervalul [3,100], afișează un mesaj corespunzător și returnează valorile introduse. Apoi, funcția citeste_valori_matrice primește numărul de linii și coloane și construiește matricea prin adăugarea de elemente la fiecare iterație a buclei. Se verifică dacă fiecare element este în intervalul [3,100], iar dacă acesta nu este valid, se va afișa un mesaj corespunzător. Funcția citeste_numar_x solicită introducerea numărului căutat, verifică dacă acesta este în intervalul [3,100], afișează un mesaj corespunzător și returnează valoarea introdusă. În cele din urmă, funcția element primește matricea, numărul de linii și coloane ale acesteia și numărul căutat. Se parcurge matricea și se caută elementul x pe marginea matricei (primele și ultimele linii și coloane). Dacă x este găsit pe una dintre margini, se afișează "DA" și se returnează. Dacă nu este găsit pe nicio margine, se afișează "NU". În if _name_ == "_main_":, se apelează funcțiile pentru a efectua căutarea elementului x în matricea dată.
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