0546 - Afisare0: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/546/afisare0 - Afisare0] ---- == Cerinţa == 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 == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, reprezentând elementele vectorului. == Date de ieșire == Programul afișează pe ecran elementele cerute, separate prin exact un spațiu, în or...
 
No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 6: Line 6:
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, reprezentând elementele vectorului.
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, reprezentând elementele vectorului.
== Date de ieșire ==  
== Date de ieșire ==  
Programul afișează pe ecran elementele cerute, separate prin exact un spațiu, în ordinea din vector.
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 ==
== Restricţii şi precizări ==
* 1 ⩽ '''n''' ⩽ 1.000
* 1 ⩽ '''n''' ⩽ 1.000
Line 17: Line 19:
: 7 4 9 6 2
: 7 4 9 6 2
; Ieșire
; Ieșire
: 4 6 2
: Datele sunt introduse corect.
: 4 6 2  
===Exemplul 2===
===Exemplul 2===
; Intrare
; Intrare
Line 23: Line 26:
: 1234542 4 2 1
: 1234542 4 2 1
; Ieșire
; Ieșire
: Eroare. Elementele din lista trebuie sa fie mai mici decat 1.000.000!
: Datele nu corespund restricțiilor impuse.
===Exemplul 3===
===Exemplul 3===
; Intrare
; Intrare
Line 29: Line 32:
: 6 4 2 0
: 6 4 2 0
; Ieșire
; Ieșire
: Eroare. Ultimul element trebuie sa fie nenul!
: Datele nu corespund restricțiilor impuse.
<br>
<br>
== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
# 0646 - Afisare0
# 0546 - Afisare0


def afisare_elemente_multiple_cu_ultimul_element(vector, n):
def afisare_elemente_multiple_cu_ultimul_element(vector, n):
Line 41: Line 44:




def citire_conform_restrictiilor():
def citire_conform_restrictiilor(vector, n):
    n = int(input())
     if n < 1 or n > 1000:
     if n < 1 or n > 1000:
         print("Eroare. Numarul n trebuie sa fie intre 1 si 1000!")
         print("Datele nu corespund restricțiilor impuse.")
         exit()
         exit()
    vector = list(map(int, input().split()))
     for x in vector:
     for x in vector:
         if x >= 1000000:
         if x >= 1000000:
             print("Eroare. Elementele din lista trebuie sa fie mai mici decat 1.000.000!")
             print("Datele nu corespund restricțiilor impuse.")
             exit()
             exit()
     if vector[n - 1] == 0:
     if vector[n - 1] == 0:
         print("Eroare. Ultimul element trebuie sa fie nenul!")
         print("Datele nu corespund restricțiilor impuse.")
         exit()
         exit()
     return vector, n
     print("Datele sunt introduse corect.")




if __name__ == '__main__':
if __name__ == '__main__':
     vector, n = citire_conform_restrictiilor()
    n = int(input())
     vector = list(map(int, input().split()))
    citire_conform_restrictiilor(vector, n)
     afisare_elemente_multiple_cu_ultimul_element(vector, n)
     afisare_elemente_multiple_cu_ultimul_element(vector, n)




Line 65: Line 69:


</syntaxhighlight>
</syntaxhighlight>
== Explicație rezolvare ==
  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.<br>  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.”.<br>  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!

Latest revision as of 19:19, 8 April 2023

Sursa: - Afisare0


Cerinţa[edit]

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]

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

Date de ieșire[edit]

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]

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

Exemple[edit]

Exemplul 1[edit]

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

Exemplul 2[edit]

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

Exemplul 3[edit]

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


Rezolvare[edit]

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

  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!