2281 - Sageata: Difference between revisions
Sinn Erich (talk | contribs) |
Sinn Erich (talk | contribs) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
Programul citește de la tastatură numărul '''n'''. | Programul citește de la tastatură numărul '''n'''. | ||
== Date de ieșire == | == Date de ieșire == | ||
Programul va afișa pe ecran | Programul va afișa pe ecran o săgeată, ca în exemplu. | ||
Dacă datele sunt introduse corect, | Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează o săgeată. | ||
În | În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse." | ||
== Restricţii şi precizări == | == Restricţii şi precizări == | ||
1 < '''n''' ≤ 100 | |||
== Exemplul 1 == | == Exemplul 1 == | ||
; | ; Datele de intrare | ||
: | : Introduceți un număr între 2 și 100: | ||
; | : 5 | ||
: Datele | ; Datele de ieșire | ||
: Datele sunt introduse corect. | |||
***** | |||
***** | |||
***** | |||
***** | |||
***** | |||
***** | |||
***** | |||
***** | |||
***** | |||
<br> | <br> | ||
== Rezolvare == | |||
<syntaxhighlight lang="python" line> | |||
#2281 | |||
def afisare_parte_superioara(n): | |||
for i in range(n): | |||
print(" " * i + "*" * n) | |||
def afisare_parte_inferioara(n): | |||
for i in range(n - 2, -1, -1): | |||
print(" " * i + "*" * n) | |||
def validare(n): | |||
if n <= 1 or n > 100: | |||
print("Datele nu corespund restricțiilor impuse.") | |||
def | return False | ||
return True | |||
return | |||
if __name__ == '__main__': | |||
n = int(input("Introduceți un număr între 2 și 100: ")) | |||
if validare(n): | |||
print("Datele sunt introduse corect.") | |||
afisare_parte_superioara(n) | |||
afisare_parte_inferioara(n) | |||
</syntaxhighlight> | |||
'''Explicatie cod:''' | |||
Acest cod este o implementare a unei probleme de afișare a unui model format din caractere "*". | |||
Funcția afisare_parte_superioara(n) afișează partea superioară a modelului, care constă într-un triunghi dreptunghic cu baza de lungime n, format din caractere "*". Fiecare rând începe cu un număr de spații egal cu numărul rândului. | |||
Funcția afisare_parte_inferioara(n) afișează partea inferioară a modelului, care constă în oglindirea triunghiului dreptunghic al părții superioare. Fiecare rând începe cu un număr de spații egal cu numărul de linii ramase si continuă cu caracterele "*". | |||
Funcția validare(n) verifică dacă valoarea introdusă pentru n este validă, adică dacă se încadrează între 2 și 100. Dacă valoarea este invalidă, afișează un mesaj corespunzător și returnează False, altfel returnează True. | |||
Instrucțiunea if __name__ == '__main__': verifică dacă codul este rulat direct, nu importat ca modul în altă parte. Dacă este rulat direct, programul va cere utilizatorului să introducă o valoare între 2 și 100 și va verifica dacă valoarea este validă utilizând funcția validare(n). Dacă valoarea este validă, funcțiile afisare_parte_superioara(n) și afisare_parte_inferioara(n) vor fi apelate pentru a afișa modelul format din caractere "*". |
Latest revision as of 07:17, 27 April 2023
Sursa: [1]
Cerinţa[edit | edit source]
Pentru un număr n, o săgeată este formată din n steluțe (*) pe fiecare linie și 2*n - 1 linii.
Se dă un număr natural n. Să se afișeze o săgeată.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran o săgeată, ca în exemplu.
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează o săgeată.
În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse."
Restricţii şi precizări[edit | edit source]
1 < n ≤ 100
Exemplul 1[edit | edit source]
- Datele de intrare
- Introduceți un număr între 2 și 100:
- 5
- Datele de ieșire
- Datele sunt introduse corect.
***** ***** ***** ***** ***** ***** *****
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 2281
def afisare_parte_superioara(n):
for i in range(n): print(" " * i + "*" * n)
def afisare_parte_inferioara(n):
for i in range(n - 2, -1, -1): print(" " * i + "*" * n)
def validare(n):
if n <= 1 or n > 100: print("Datele nu corespund restricțiilor impuse.") return False return True
if __name__ == '__main__':
n = int(input("Introduceți un număr între 2 și 100: ")) if validare(n): print("Datele sunt introduse corect.") afisare_parte_superioara(n) afisare_parte_inferioara(n)
</syntaxhighlight>
Explicatie cod:
Acest cod este o implementare a unei probleme de afișare a unui model format din caractere "*".
Funcția afisare_parte_superioara(n) afișează partea superioară a modelului, care constă într-un triunghi dreptunghic cu baza de lungime n, format din caractere "*". Fiecare rând începe cu un număr de spații egal cu numărul rândului.
Funcția afisare_parte_inferioara(n) afișează partea inferioară a modelului, care constă în oglindirea triunghiului dreptunghic al părții superioare. Fiecare rând începe cu un număr de spații egal cu numărul de linii ramase si continuă cu caracterele "*".
Funcția validare(n) verifică dacă valoarea introdusă pentru n este validă, adică dacă se încadrează între 2 și 100. Dacă valoarea este invalidă, afișează un mesaj corespunzător și returnează False, altfel returnează True.
Instrucțiunea if __name__ == '__main__': verifică dacă codul este rulat direct, nu importat ca modul în altă parte. Dacă este rulat direct, programul va cere utilizatorului să introducă o valoare între 2 și 100 și va verifica dacă valoarea este validă utilizând funcția validare(n). Dacă valoarea este validă, funcțiile afisare_parte_superioara(n) și afisare_parte_inferioara(n) vor fi apelate pentru a afișa modelul format din caractere "*".