0546 - Afisare0

De la Universitas MediaWiki

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

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

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

Exemple

Exemplul 1

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

Exemplul 2

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

Exemplul 3

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


Rezolvare

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

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