1376 - Laturi Triunghi: Diferență între versiuni
(Creat o pagină goală) |
Fără descriere a modificării |
||
(Nu s-au afișat 5 versiuni intermediare efectuate de același utilizator) | |||
Linia 1: | Linia 1: | ||
==Cerința== | |||
Se dă <span style="color: red;"> n</span>. Afișați un triunghi cu latura de <span style="color: red;"> n</span> steluțe gol înăuntru. | |||
==Date de intrare== | |||
Se va citi de la tastatură numărul <span style="color: red;"> n</span>. | |||
==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== | |||
<span style="color: red;"> 1 ≤ n ≤ 10</span> | |||
==Exemplu:== | |||
Intrare | |||
: 5 | |||
Ieșire | |||
: Date de intrare valide | |||
* | |||
* * | |||
* * | |||
* * | |||
* * * * * | |||
==Rezolvare== | |||
<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:== | |||
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. |
Versiunea curentă din 29 iunie 2023 18:25
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.