0287 – Verif Ord: Difference between revisions

From Bitnami MediaWiki
Bogdan.Pop (talk | contribs)
Pagină nouă: == Cerinţa == Se dau '''numar_vectori''' şiruri cu elemente numere întregi. Să se verifice despre fiecare dacă este ordonat crescător. == Date de intrare == Programul citește de la tastatură numărul '''numar_vectori'''; iar apoi '''numar_vectori''' şiruri – pentru fiecare, se citeşte mai întâi numărul de valori '''numar_elemente''', apoi valorile din şir. == Date de ieșire == Programul afișează pe ecran n valori 0 sau 1, separate prin spaţii. A k-a valoa...
 
Bogdan.Pop (talk | contribs)
No edit summary
 
Line 4: Line 4:
Programul citește de la tastatură numărul '''numar_vectori'''; iar apoi '''numar_vectori''' şiruri – pentru fiecare, se citeşte mai întâi numărul de valori '''numar_elemente''', apoi valorile din şir.
Programul citește de la tastatură numărul '''numar_vectori'''; iar apoi '''numar_vectori''' şiruri – pentru fiecare, se citeşte mai întâi numărul de valori '''numar_elemente''', apoi valorile din şir.
== Date de ieșire ==  
== Date de ieșire ==  
Programul afișează pe ecran n valori 0 sau 1, separate prin spaţii. A k-a valoare este 1, dacă al k-lea şir este ordonat crescător, respectiv 0 dacă şirul nu este ordonat crescător.
Programul afișează pe ecran mesajul "Datele de intrare corespund restricțiilor impuse.", iar pe rândul următor '''numar_vectori''' valori 0 sau 1, separate prin spaţii. A k-a valoare este 1, dacă al k-lea şir este ordonat crescător, respectiv 0 dacă şirul nu este ordonat crescător. În cazul în care datele de intrare nu corespund restricțiilor impuse, se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse.".
== Restricţii şi precizări ==
== Restricţii şi precizări ==
* numar_elemente, numar_vectori ∈ ℕ
* numar_elemente, numar_vectori ∈ ℕ

Latest revision as of 19:19, 3 January 2023

Cerinţa[edit]

Se dau numar_vectori şiruri cu elemente numere întregi. Să se verifice despre fiecare dacă este ordonat crescător.

Date de intrare[edit]

Programul citește de la tastatură numărul numar_vectori; iar apoi numar_vectori şiruri – pentru fiecare, se citeşte mai întâi numărul de valori numar_elemente, apoi valorile din şir.

Date de ieșire[edit]

Programul afișează pe ecran mesajul "Datele de intrare corespund restricțiilor impuse.", iar pe rândul următor numar_vectori valori 0 sau 1, separate prin spaţii. A k-a valoare este 1, dacă al k-lea şir este ordonat crescător, respectiv 0 dacă şirul nu este ordonat crescător. În cazul în care datele de intrare nu corespund restricțiilor impuse, se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse.".

Restricţii şi precizări[edit]

  • numar_elemente, numar_vectori ∈ ℕ
  • 1 ⩽ numar_vectori ⩽ 10
  • 1 ⩽ numar_elemente ⩽ 500
  • -10000 < element vector < 10000
  • element vector ∈ ℤ

Exemplu[edit]

Intrare
3
9
5
-5
8
-2
-7
0
-9
10
7
-6
-5
-4
0
2
5
8
5
2
7
8
10
10
Ieșire
Datele introduse corespund restricțiilor impuse.
0 1 1


Intrare
3
2
15
10
0
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Intrare
2
4
-25
abc
10
15
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Rezolvare[edit]

Rezolvare ver. 1[edit]

<syntaxhighlight lang="python" line>

  1. 0287 - Verif Ord

def validare_date_numar_vectori(numar):

   if numar.isdigit() and 1 <= int(numar) <= 10:
       return True
   else:
       return False
   

def validare_date_numar_elemente(numar):

   if numar.isdigit() and 1 <= int(numar) <= 500:
       return True
   else:
       return False


def validare_date_vector(vector):

   for numar in vector:
       if numar.startswith('-') and numar[1:].isdigit() and len(numar) < 6:
           continue
       elif numar.isdigit() and len(numar) < 5:
           continue
       else:   
           return False
   return True
   

def verif_ord(numar_vectori, vector):

   flag = []
   
   for indice_vector in range(numar_vectori):
       if vector[indice_vector] == sorted(vector[indice_vector]):
           flag.append("1")
       else:
           flag.append("0")
   
   print(*flag, sep=" ")
   

if __name__ == "__main__":

   numar_vectori = input()
   vector = []
   
   if validare_date_numar_vectori(numar_vectori):
       numar_vectori = int(numar_vectori)
       for numar in range(numar_vectori):
           numar_elemente = input()
           if validare_date_numar_elemente(numar_elemente):
               numar_elemente = int(numar_elemente)
               vector_aux = []
               for indice in range(numar_elemente):
                   vector_aux.append(input())
               if validare_date_vector(vector_aux):
                   vector_aux = list(map(int, vector_aux))
                   vector.append(vector_aux)
               else:
                   print("Datele de intrare nu corespund restricțiilor impuse.")
                   break
           else:
               print("Datele de intrare nu corespund restricțiilor impuse.")
               break
       else:
           print("Datele de intrare corespund restricțiilor impuse.")
           verif_ord(numar_vectori, vector)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>