0546 - Afisare0

From Bitnami MediaWiki
Revision as of 19:19, 8 April 2023 by Csatari Mălina (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sursa: - Afisare0


Cerinţa[edit | edit source]

Se citește un vector cu n elemente, numere naturale. Să se afișeze elementele din vector care sunt multipli ai ultimului element.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.

Date de ieșire[edit | edit source]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", iar pe rând nou elementele cerute, separate prin exact un spațiu, în ordinea din vector. În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".

Restricţii şi precizări[edit | edit source]

  • 1 ⩽ n ⩽ 1.000
  • elementele vectorului vor fi mai mici decât 1.000.000
  • ultimul element al vectorului este nenul

Exemple[edit | edit source]

Exemplul 1[edit | edit source]

Intrare
5
7 4 9 6 2
Ieșire
Datele sunt introduse corect.
4 6 2

Exemplul 2[edit | edit source]

Intrare
4
1234542 4 2 1
Ieșire
Datele nu corespund restricțiilor impuse.

Exemplul 3[edit | edit source]

Intrare
4
6 4 2 0
Ieșire
Datele nu corespund restricțiilor impuse.


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 0546 - Afisare0

def afisare_elemente_multiple_cu_ultimul_element(vector, n):

   for i in range(n):
       if vector[i] % vector[n - 1] == 0:
           print(vector[i], end=" ")


def citire_conform_restrictiilor(vector, n):

   if n < 1 or n > 1000:
       print("Datele nu corespund restricțiilor impuse.")
       exit()
   for x in vector:
       if x >= 1000000:
           print("Datele nu corespund restricțiilor impuse.")
           exit()
   if vector[n - 1] == 0:
       print("Datele nu corespund restricțiilor impuse.")
       exit()
   print("Datele sunt introduse corect.")


if __name__ == '__main__':

   n = int(input())
   vector = list(map(int, input().split()))
   citire_conform_restrictiilor(vector, n)
   afisare_elemente_multiple_cu_ultimul_element(vector, n)



</syntaxhighlight>

Explicație rezolvare[edit | edit source]

  Programul de mai sus conține două funcții, funcția afisare_elemente_multiple_cu_ultimul_element(vector, n) și funcția citire_conform_restrictiilor(vector, n), care sunt rulate în main (if __name__ == '__main__' , linia 23) după citirea numărului n și cele n numere care vor forma un șir numit vector.
După citire se apelează funcția citire_conform_restrictiilor(vector, n), care primește două argumente: un vector și lungimea sa, reprezentată de variabila „n”. Funcția verifică dacă lungimea vectorului respectă restricțiile impuse: între 1 și 1000. Dacă vectorul este mai lung sau mai scurt decât acest interval, funcția afișează un mesajul de eroare și oprește executarea programului folosind funcția "exit()". De asemenea, funcția verifică dacă elementele vectorului sunt mai mici decât 1.000.000 și dacă ultimul element al vectorului este diferit de zero. Dacă una dintre aceste condiții nu este îndeplinită, funcția afișează un mesajul de eroare și oprește executarea programului. Dacă toate restricțiile sunt respectate, funcția afișează un mesajul „Datele sunt introduse corect.”.
Apoi, după terminarea funcției citire_conform_restrictiilor(vector, n) (caz în care datele sunt introduse corect), se apelează funcția afisare_elemente_multiple_cu_ultimul_element(vector, n), care primește două argumente: un vector și lungimea sa, reprezentată de variabila "n". Funcția parcurge vectorul folosind o buclă "for" și afișează numerele care sunt divizibile cu ultimul element al vectorului. Funcția folosește operatorul "%" pentru a verifica dacă un număr este divizibil cu ultimul element. Dacă numărul este divizibil, acesta este afișat pe ecran folosind funcția "print" și separatorul " ". În acest fel, toate elementele sunt verificate, și se va afișa rezultatul dorit!