1564 - Triunghi Dublu: Difference between revisions

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


==Date de ieșire==
==Date de ieșire==
Programul va afișa pe ecran figura.
Dacă datele sunt introduse corect, pe ecran se va afișa: '''"Date de intrare valide."''', apoi programul va afișa pe ecran figura. Î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 13: Line 13:
==Exemplu:==
==Exemplu:==
Intrare
Intrare
5
 
: 5


Ieșire
Ieșire
*
: Date de intrare valide
**
<nowiki>*</nowiki>
***
 
****
<nowiki>**</nowiki>
*****
 
    *****
<nowiki>***</nowiki>
      ****
 
      ***
<nowiki>****</nowiki>
        **
 
        *
<nowiki>*****</nowiki>
 
<nowiki>*</nowiki>
 
<nowiki>**</nowiki>
 
<nowiki>***</nowiki>
 
<nowiki>****</nowiki>
 
<nowiki>*****</nowiki>


==Explicație==
==Explicație==
Line 31: Line 42:


==Rezolvare==
==Rezolvare==
<syntaxhighlight lang=“python” line>
<syntaxhighlight lang="python" line="1">
n = int(input())
def validare(n):
    if 1 <= n <= 10:
        return True
    else:
        return False
 
 
def afisare_triunghi(n):
    for i in range(1, n + 1):
        for j in range(1, i + 1):
            print('*', end='')
        print()
 
    for i in range(1, n + 1):
        for j in range(1, 2 * n + 1):
            if j >= n + i:
                print('*', end='')
            else:
                print(' ', end='')
        print()


# afișarea primului triunghi
i = 1
while i <= n:
    print('*' * i)
    i += 1


# afișarea spațiilor între triunghiuri
if __name__ == '__main__':
i = n - 1
    n = int(input("Introduceti un numar: "))
while i >= 1:
     if validare(n):
     print(' ' * (n - i) + '*' * i)
        print("Date de intrare valide")
     i -= 1
        afisare_triunghi(n)
     else:
        print("Date de intrare invalide")
</syntaxhighlight>
</syntaxhighlight>
==Explicatie cod:==
Funcția validare(n) verifică dacă valoarea n se află în intervalul [1, 10]. Dacă valoarea n respectă restricțiile, funcția returnează True. În caz contrar, returnează False.
Funcția afisare_triunghi(n) afișează triunghiul format din caractere "" utilizând două bucle for. Prima buclă for parcurge de la 1 până la n și afișează un triunghi format din "". A doua buclă for parcurge de la 1 până la n și afișează restul triunghiului prin afișarea spațiilor și a "*" în funcție de poziția celulei.
În blocul if __name__ == '__main__':, se citște valoarea n de la utilizator folosind funcția input() și se validează această valoare utilizând funcția validare(n). Dacă valoarea introdusă este validă, se afișează un mesaj de confirmare și se apelează funcția afisare_triunghi(n) pentru a afișa triunghiul corespunzător. Dacă valoarea introdusă nu este validă, se afișează un mesaj de eroare.

Latest revision as of 18:32, 29 June 2023

Cerința[edit | edit source]

Se dă un număr n. Afișați figura din exemplu.

Date de intrare[edit | edit source]

Programul citește 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 programul va afișa pe ecran figura. Î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

*

**

***

****

*****

*

**

***

****

*****

Explicație[edit | edit source]

S-au afișat 2 triunghiuri, formate din 15 steluțe fiecare.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1"> def validare(n):

   if 1 <= n <= 10:
       return True
   else:
       return False


def afisare_triunghi(n):

   for i in range(1, n + 1):
       for j in range(1, i + 1):
           print('*', end=)
       print()
   for i in range(1, n + 1):
       for j in range(1, 2 * n + 1):
           if j >= n + i:
               print('*', end=)
           else:
               print(' ', end=)
       print()


if __name__ == '__main__':

   n = int(input("Introduceti un numar: "))
   if validare(n):
       print("Date de intrare valide")
       afisare_triunghi(n)
   else:
       print("Date de intrare invalide")

</syntaxhighlight>

Explicatie cod:[edit | edit source]

Funcția validare(n) verifică dacă valoarea n se află în intervalul [1, 10]. Dacă valoarea n respectă restricțiile, funcția returnează True. În caz contrar, returnează False. Funcția afisare_triunghi(n) afișează triunghiul format din caractere "" utilizând două bucle for. Prima buclă for parcurge de la 1 până la n și afișează un triunghi format din "". A doua buclă for parcurge de la 1 până la n și afișează restul triunghiului prin afișarea spațiilor și a "*" în funcție de poziția celulei. În blocul if __name__ == '__main__':, se citște valoarea n de la utilizator folosind funcția input() și se validează această valoare utilizând funcția validare(n). Dacă valoarea introdusă este validă, se afișează un mesaj de confirmare și se apelează funcția afisare_triunghi(n) pentru a afișa triunghiul corespunzător. Dacă valoarea introdusă nu este validă, se afișează un mesaj de eroare.