2574 - Val 1: Diferență între versiuni
Fără descriere a modificării |
|||
Linia 53: | Linia 53: | ||
Functie care verifica daca valorile citite pentru n si m respecta restrictiile problemei. | Functie care verifica daca valorile citite pentru n si m respecta restrictiile problemei. | ||
""" | """ | ||
if not (1 <= n <= m <= 20): | if not (1 <= n <= 20 and 1 <= m <= 20): | ||
print("Date de intrare incorecte!") | print("Date de intrare incorecte!") | ||
exit() | exit() | ||
Linia 63: | Linia 63: | ||
""" | """ | ||
# initializam matricea cu caractere "_" | # initializam matricea cu caractere "_" | ||
for j in range(1, n + 1): | |||
for i in range(1, 8 * m + 1): | |||
if j == 1: | |||
if i % 8 == 3 or i % 8 == 5: | |||
print('0', end='') | |||
else: | |||
print('_', end='') | |||
elif j == n: | |||
if i % 8 == 1 or i % 8 == 7: | |||
print('0', end='') | |||
else: | |||
print('_', end='') | |||
else: | |||
if i % 8 == 2 or i % 8 == 6: | |||
print('0', end='') | |||
else: | |||
print('_', end='') | |||
print() | |||
if __name__ == "__main__": | |||
# citim valorile n si m | # citim valorile n si m | ||
n, m = map(int, input().split()) | n, m = map(int, input().split()) | ||
# validam datele de intrare | # validam datele de intrare | ||
validare(n, m) | if validare(n, m): | ||
print("Date de intrare valide") | |||
# rezolvam problema si afisam rezultatul | |||
rezolvare(n, m) | |||
</syntaxhighlight> | </syntaxhighlight> |
Versiunea de la data 26 aprilie 2023 15:59
Cerința
Se citeste n și m. Să se reprezinte următoarea diagramă în funcție de n și m, în care n reprezintă înălțimea, iar m numărul de valuri care compun diagrama. Diagrama este formată din caractere 0, interiorul și exteriorul valurilor sunt alcătuite din caractere _.
Date de intrare
Programul citește numerele n m.
Date de ieșire
Programul va afișa o diagrama cerută.
Restricții și precizări
1 ≤ n ≤ m ≤ 20
Exemplul 1:
Intrare 5 4
Ieșire
__0_0_____0_0_____0_0_____0_0___
_0___0___0___0___0___0___0___0__
_0___0___0___0___0___0___0___0__
_0___0___0___0___0___0___0___0__
0_____0_0_____0_0_____0_0_____0_
Exemplul 2:
Intrare
6 8
Ieșire
__0_0_____0_0_____0_0_____0_0_____0_0_____0_0_____0_0_____0_0___
_0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0__
_0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0__
_0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0__
_0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0__
0_____0_0_____0_0_____0_0_____0_0_____0_0_____0_0_____0_0_____0_
Rezolvare
def validare(n, m):
"""
Functie care verifica daca valorile citite pentru n si m respecta restrictiile problemei.
"""
if not (1 <= n <= 20 and 1 <= m <= 20):
print("Date de intrare incorecte!")
exit()
def rezolvare(n, m):
"""
Functie care construieste si afiseaza figura ceruta in functie de valorile lui n si m.
"""
# initializam matricea cu caractere "_"
for j in range(1, n + 1):
for i in range(1, 8 * m + 1):
if j == 1:
if i % 8 == 3 or i % 8 == 5:
print('0', end='')
else:
print('_', end='')
elif j == n:
if i % 8 == 1 or i % 8 == 7:
print('0', end='')
else:
print('_', end='')
else:
if i % 8 == 2 or i % 8 == 6:
print('0', end='')
else:
print('_', end='')
print()
if __name__ == "__main__":
# citim valorile n si m
n, m = map(int, input().split())
# validam datele de intrare
if validare(n, m):
print("Date de intrare valide")
# rezolvam problema si afisam rezultatul
rezolvare(n, m)