2574 - Val 1
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
Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide.", apoi programul va afișa o diagrama cerută. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Date de intrare invalide".
Restricții și precizări
1 ≤ n ≤ m ≤ 20
Exemplul 1:
Intrare
- 5 4
Ieșire
- Date de intrare valide
__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
<syntaxhighlight lang="python" line="1"> 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)
</syntaxhighlight>
Explicatie cod:
Funcția validare(n, m) verifică dacă valorile n și m respectă restricțiile problemei. Verifică dacă n și m se află în intervalul [1, 20]. Dacă valorile nu respectă restricțiile, se afișează un mesaj de eroare și programul se încheie folosind funcția exit(). Funcția rezolvare(n, m) construiește și afișează figura cerută în funcție de valorile n și m. Folosind două bucle for, se parcurg rândurile și coloanele figurii. Fiecare celulă a figurii este afișată ca un caracter "_" sau "0" în funcție de poziția sa în figură. În blocul if __name__ == "__main__":, se citesc valorile n și m de la utilizator folosind funcția input() și se validează aceste date utilizând funcția validare(n, m). Dacă valorile introduse sunt valide, se afișează un mesaj de confirmare și se apelează funcția rezolvare(n, m) pentru a construi și afișa figura. Dacă valorile introduse nu sunt valide, se afișează un mesaj de eroare.