2281 - Sageata: Difference between revisions

From Bitnami MediaWiki
Sinn Erich (talk | contribs)
Sinn Erich (talk | contribs)
 
(7 intermediate revisions by the same user not shown)
Line 10: Line 10:
Programul va afișa pe ecran o săgeată, ca în exemplu.
Programul va afișa pe ecran o săgeată, ca în exemplu.


Dacă datele sunt introduse corect, programul va rula.
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 cazul în care datele nu respectă restricțiile, se va afișa pe ecran: ''' "Datele nu corespund restricțiilor impuse.".'''
Î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 ==
* 0 < '''n''' ⩽ 10
1 < '''n''' ≤ 100


== Exemplul 1 ==
== Exemplul 1 ==
; Intrare
; Datele de intrare
: 4
: Introduceți un număr între 2 și 100:
; Ieșire
: 5
: Datele corespund cerințelor.
; Datele de ieșire
: 576
: 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)


== Rezolvare ==
def validare(n):
<syntaxhighlight lang="python" line>
     if n <= 1 or n > 100:
#4273
         print("Datele nu corespund restricțiilor impuse.")
def patrate_perfecte(n):
         return False
     patrate = []
     return True
    i = 1
    while len(patrate) < n:
         patrat = i * i
        patrate.append(patrat)
         i += 1
     return patrate


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)


def calculeaza(numbers):
</syntaxhighlight>
    product = 1
    for number in numbers:
        product *= number
    return product


'''Explicatie cod:'''


def validare_numar(n):
Acest cod este o implementare a unei probleme de afișare a unui model format din caractere "*".
    if n < 1 or n > 10:
        return False
    return True


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.


if __name__ == '__main__':
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 "*".
    n = int(input("Introduceți numărul n: "))
    if not validare_numar(n):
        print("Datele introduse nu corespund cerintelor.")
    else:
        squares = patrate_perfecte(n)
        product = calculeaza(squares)
        print("Datele introduse corespund cerintelor.")
        print(product)


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.


</syntaxhighlight>
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>

  1. 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 "*".