4275 - Para 2: Diferență între versiuni

De la Universitas MediaWiki
Linia 36: Linia 36:
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
n = int(input("Introduceți un număr natural n: "))
def validare(n, c):
c = input("Introduceți un caracter c: ")
    if not n.isdigit() or int(n) < 1 or int(n) > 20:
        return False
    if not 33 <= ord(c) <= 126:
        return False
    return True


# Validarea datelor de intrare
 
if n < 1 or n > 20:
def rezolvare(n, c):
    print("Numărul introdus nu respectă restricțiile impuse.")
     for i in range(1, n):
elif ord(c) < 33 or ord(c) > 126:
         print(" " * (n - i) + c * i)
    print("Caracterul introdus nu respectă restricțiile impuse.")
     for i in range(n, 0, -1):
else:
         print(" " * (n - i) + c * i)
    # Construirea paralelogramului
 
     for i in range(n):
 
         print(" " * (n-i-1) + c*(i+1))
def main():
     for i in range(n-1):
    n = input("Introduceti numarul n: ")
         print(" " * (i+1) + c*(n-i-1))
    c = input("Introduceti caracterul c: ")
 
    if not validare(n, c):
        print("Date de intrare invalide!")
        return
 
    rezolvare(int(n), c)
 
 
if __name__ == '__main__':
    main()
</syntaxhighlight>
</syntaxhighlight>

Versiunea de la data 24 martie 2023 15:44

Cerinta:

Se citește numărul natural n, şi un caracter c. Să se afișeze următorul paralelogram:

     c
    cc
   ccc
  ....ccc...c
ccc...c
cc...c
....
cc
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 figura descrisă în enunț.

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

def validare(n, c):
    if not n.isdigit() or int(n) < 1 or int(n) > 20:
        return False
    if not 33 <= ord(c) <= 126:
        return False
    return True


def rezolvare(n, c):
    for i in range(1, n):
        print(" " * (n - i) + c * i)
    for i in range(n, 0, -1):
        print(" " * (n - i) + c * i)


def main():
    n = input("Introduceti numarul n: ")
    c = input("Introduceti caracterul c: ")

    if not validare(n, c):
        print("Date de intrare invalide!")
        return

    rezolvare(int(n), c)


if __name__ == '__main__':
    main()