0287 – Verif Ord

From Bitnami MediaWiki
Revision as of 19:06, 3 January 2023 by 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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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 valoare este 1, dacă al k-lea şir este ordonat crescător, respectiv 0 dacă şirul nu este ordonat crescător.

Restricţii şi precizări

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

Exemplu

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

Rezolvare ver. 1

<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>