0489 - Afisare1

De la Universitas MediaWiki

Sursa: - Afisare1


Cerinţa

Se citește un vector cu n elemente, numere naturale. Să se afișeze elementele vectorului în următoarea ordine: primul, ultimul, al doilea, penultimul, etc.

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 cerută. Î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

Exemple

Exemplul 1

Intrare
5
2 9 1 5 8
Ieșire
Datele sunt introduse corect.
2 8 9 5 1

Exemplul 2

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


Rezolvare

# 0489 - Afisare1

def afisare_ultim_penultim_etc_element(vector, n):
    inceput = 0
    final = n - 1
    while inceput <= final:
        print(vector[inceput], end=" ")
        if inceput != final:
            print(vector[final], end=" ")
        inceput += 1
        final -= 1


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 >= 1000:
            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_ultim_penultim_etc_element(vector, n)

Explicație rezolvare

   Programul de mai sus conține două funcții, funcția afisare_ultim_penultim_etc_element(vector, n) și funcția citire_conform_restrictiilor(vector, n), care se vor rula în interiorul main-ului (if __name__ == '__main__' , linia 25) după citirea numărului n (linia 26) și celor n numere pe care le vom pune în șirul vector (linia 27).
După ce am citit elementele, se va apela funcția citire_conform_restrictiilor(vector, n), care primește doi parametri: vectorul „vector” și lungimea sa, reprezentată de variabila „n”. Funcția verifică mai întâi dacă lungimea vectorului n respectă restricțiile impuse: trebuie să fie între 1 și 1000. Dacă lungimea nu respectă această condiție, funcția afișează un mesajul „Datele nu corespund restricțiilor impuse.” și oprește programul folosind funcția "exit()". Funcția verifică, de asemenea, dacă fiecare element al vectorului este mai mic decât 1000000 și dacă ultimul element al vectorului este diferit de 0. Dacă aceste condiții nu sunt îndeplinite, funcția afișează un mesajul de eroare și oprește programul utilizând funcția "exit()". Dacă toate restricțiile sunt îndeplinite, funcția afișează un mesajul „Datele sunt introduse corect.”, iar funcția se încheie.
Apoi, dacă datele au fost introduse corect, se trece la apelarea funcției afisare_ultim_penultim_etc_element(vector, n), care primește ca argument vectorul „vector” și numărul n. Această funcție afișează elementele vectorului în ordinea următoare: primul element, ultimul element, al doilea element, penultimul element, al treilea element și tot așa. Această funcție afișează elementele astfel încât să fie separate printr-un spațiu și folosește o variabilă „inceput” pentru a urmări primul element și o variabilă „final” pentru a urmări ultimul element. În timpul afișării, aceasta modifică valorile acestor două variabile (o dată ce afișează primul, crește variabila inceput, iar când afișează ultimul scade variabila final). Astfel, afișează toate elementele din vector în ordinea corespunzătoare.