2574 - Val 1: Difference between revisions
Paul Ungur (talk | contribs) |
Paul Ungur (talk | contribs) No edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
==Date de ieșire== | ==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== | ==Restricții și precizări== | ||
Line 13: | Line 13: | ||
==Exemplul 1:== | ==Exemplul 1:== | ||
Intrare | Intrare | ||
5 4 | : 5 4 | ||
Ieșire | 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__ | _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: | Exemplul 2: | ||
Intrare | Intrare | ||
6 8 | 6 8 | ||
Ieșire | 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__ | ||
_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== | ==Rezolvare== | ||
<syntaxhighlight lang= | <syntaxhighlight lang="python" line="1"> | ||
n, m = | 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() | |||
for | |||
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: | 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> | </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. |
Latest revision as of 18:31, 29 June 2023
Cerința[edit | edit source]
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[edit | edit source]
Programul citește numerele n m.
Date de ieșire[edit | edit source]
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[edit | edit source]
1 ≤ n ≤ m ≤ 20
Exemplul 1:[edit | edit source]
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[edit | edit source]
<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:[edit | edit source]
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.