1376 - Laturi Triunghi

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerința

Se dă n. Afișați un triunghi cu latura de n steluțe gol înăuntru.

Date de intrare

Se va citi de la tastatură numărul n.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide.", apoi se va afișa triunghiul cerut. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Date de intrare invalide".

Restricții și precizări

1 ≤ n ≤ 10

Exemplu:

Intrare

5

Ieșire

Date de intrare valide
   *
  * *
 *   *
*     *
  • * * * *

Rezolvare

def validare_date(n):
    if not n.isdigit():
        return False
    n = int(n)
    if n < 1 or n > 10:
        return False
    return True


def afisare_triunghi(n):
    margine = '*'
    liber = ' '
    start = 2
    baza = 4
    for temp in range(start, n + 1):
        for temp2 in range(0, n - temp + 1):
            print(liber, end="")
        if temp > start:
            print(margine + " ", end="")
            for temp3 in range(baza, temp + 1):
                print(liber + " ", end="")
        print(margine + " ")
    for temp4 in range(baza, n + baza):
        print(margine + " ", end="")
    print()


if __name__ == '__main__':
    n = input("Introduceti numarul n: ")
    while not validare_date(n):
        n = input("Valoarea introdusa nu este valida. Introduceti un numar intre 1 si 10: ")
    if validare_date(n):
        print("Date de intrare valide")
        n = int(n)
        afisare_triunghi(n)

Explicatie cod:

Funcția validare_date(n) verifică dacă valoarea n este un număr valid pentru a rezolva problema dată. Verifică dacă n este un șir de caractere numeric (isdigit()) și apoi îl converteste într-un număr întreg (int(n)). Dacă n nu este un număr întreg sau dacă este mai mic decât 1 sau mai mare decât 10, funcția returnează False. În caz contrar, returnează True. Funcția afisare_triunghi(n) rezolvă problema dată și afișează un triunghi cu lățimea n. Folosește variabilele margine, liber, start și baza pentru a defini caracterele utilizate pentru afișare. Utilizează două bucle for pentru a itera prin rândurile triunghiului. În interiorul acestor bucle, utilizează alte bucle pentru a afișa caracterele corespunzătoare în fiecare rând. La final, afișează baza triunghiului prin repetarea caracterului margine de n+baza ori. În blocul if __name__ == '__main__':, se citește input-ul de la utilizator utilizând funcția input(). Se verifică dacă valoarea introdusă este validă utilizând funcția validare_date(n). Dacă nu este validă, se afișează un mesaj de eroare și se cere introducerea unei valori valide. Dacă valoarea introdusă este validă, se apelează funcția afisare_triunghi(n) pentru a rezolva problema și a afișa triunghiul.