0456 - Piramida 1

From Bitnami MediaWiki

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 validate_input(n, c):

   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")
   if n < 1 or n > 20:
       raise ValueError("n trebuie sa fie intre 1 si 20")
   if not 33 <= ord(c) <= 126:
       raise ValueError("c trebuie sa fie un caracter cu codul ASCII cuprins intre 33 si 126")


def build_pyramid(n, c):

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


def main():

   n = input("Introduceti numarul natural n: ")
   c = input("Introduceti caracterul c: ")
   try:
       n = int(n)
       validate_input(n, c)
       build_pyramid(n, c)
   except ValueError as e:
       print(f"Input invalid: {e}")


if __name__ == "__main__":

   main()

</syntaxhighlight>