0456 - Piramida 1: Difference between revisions

From Bitnami MediaWiki
Paul Ungur (talk | contribs)
Paul Ungur (talk | contribs)
No edit summary
Line 29: Line 29:
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
def validate_input(n, c):
def validare_date(n, c):
    flag = True
     if not isinstance(n, int) or not isinstance(c, str):
     if not isinstance(n, int) or not isinstance(c, str):
         raise ValueError("n trebuie sa fie un numar intreg, iar c trebuie sa fie un caracter string")
         flag = False
     if n < 1 or n > 20:
     if int(n) < 1 or int(n) > 20:
         raise ValueError("n trebuie sa fie intre 1 si 20")
         flag = False
     if not 33 <= ord(c) <= 126:
     if not 33 <= ord(c) <= 126:
         raise ValueError("c trebuie sa fie un caracter cu codul ASCII cuprins intre 33 si 126")
         flag = False
    return flag




def build_pyramid(n, c):
def construire_piramid(n, c):
     for i in range(1, n + 1):
     for i in range(1, n + 1):
         print((c * i).center(n * 2 - 1))
         print(c * i)




def main():
if __name__ == "__main__":
     n = input("Introduceti numarul natural n: ")
     n = input("Introduceti numarul natural n: ")
     c = input("Introduceti caracterul c: ")
     c = input("Introduceti caracterul c: ")
 
     if validare_date(n, c):
     try:
         n = int(n)
         n = int(n)
         validate_input(n, c)
         construire_piramid(n, c)
        build_pyramid(n, c)
     else:
     except ValueError as e:
         print("Date de intrare invalide")
         print(f"Input invalid: {e}")
 
 
if __name__ == "__main__":
    main()
</syntaxhighlight>
</syntaxhighlight>

Revision as of 15:54, 26 April 2023

Cerinţa:

Se citește numărul natural n, şi un caracter c. Să se afișeze următoarea piramidă: c cc ccc .... ccc...c

Date de intrare:

Programul citește de la tastatură numărul n şi caracterul c .

Date de ieşire:

Programul afișează pe ecran un caracter c, pe a doua linie două caractere c, pe a treia linie trei caractere c, etc, pe a n-a linie n caractere c.

Restricţii şi precizări:

1 ≤ n ≤ 20 c este un caracter cu codul ASCII cuprins între 33 şi 126, inclusiv.

Exemplu: Intrare 4 *

Ieșire

Rezolvare

<syntaxhighlight lang="python" line="1"> def validare_date(n, c):

   flag = True
   if not isinstance(n, int) or not isinstance(c, str):
       flag = False
   if int(n) < 1 or int(n) > 20:
       flag = False
   if not 33 <= ord(c) <= 126:
       flag = False
   return flag


def construire_piramid(n, c):

   for i in range(1, n + 1):
       print(c * i)


if __name__ == "__main__":

   n = input("Introduceti numarul natural n: ")
   c = input("Introduceti caracterul c: ")
   if validare_date(n, c):
       n = int(n)
       construire_piramid(n, c)
   else:
       print("Date de intrare invalide")

</syntaxhighlight>