1376 - Laturi Triunghi: Difference between revisions

From Bitnami MediaWiki
Paul Ungur (talk | contribs)
Paul Ungur (talk | contribs)
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 6: Line 6:


==Date de ieșire==
==Date de ieșire==
Se va afișa triunghiul cerut.
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==
==Restricții și precizări==
Line 14: Line 14:
Intrare
Intrare


5
: 5
Ieșire
Ieșire
 
: Date de intrare valide
     *
     *
   * *
   * *
Line 25: Line 25:
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
n = int(input("Introduceti un numar: "))
def validare_date(n):
    if not n.isdigit():
        return False
    n = int(n)
    if n < 1 or n > 10:
        return False
    return True
 


for i in range(1, n+1):
def afisare_triunghi(n):
    for j in range(n-i):
    margine = '*'
         print(" ", end="")
    liber = ' '
    for j in range(1, i+1):
    start = 2
        if j == 1 or j == i or i == n:
    baza = 4
            print("* ", end="")
    for temp in range(start, n + 1):
         else:
        for temp2 in range(0, n - temp + 1):
            print(" ", end="")
            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()
     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)
</syntaxhighlight>
</syntaxhighlight>
==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.

Latest revision as of 18:25, 29 June 2023

Cerința[edit | edit source]

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

Date de intrare[edit | edit source]

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

Date de ieșire[edit | edit source]

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[edit | edit source]

1 ≤ n ≤ 10

Exemplu:[edit | edit source]

Intrare

5

Ieșire

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

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1"> 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)

</syntaxhighlight>

Explicatie cod:[edit | edit source]

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.