2765 - Check Color
Cerință[edit | edit source]
Orice culoare poate fi reprezentată drept o combinație de intensități de roșu (RED), verde (GREEN) și albastru (BLUE). Calculatorul tău folosește, cel mai probabil, culori reprezentate pe 24 de biți, câte 8 rezervați fiecărei dintre cele trei culori anterior menționate. Dându-se trei numere, R, G și B, verificați dacă acestea pot reprezenta o culoare sau o nuanță de gri. O culoare se consideră nuanță de gri dacă și numai dacă diferența dintre oricare două coduri ce reprezintă culorile primare nu depășește 10.
Date de intrare[edit | edit source]
Programul citește de la tastatură trei numere întregi, R, G și B.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa pe ecran:
- NU E CULOARE dacă R, G și B nu pot reprezenta o culoare;
- CULOARE dacă R, G și B pot reprezenta o culoare, dar nu o nuanță de gri;
- GRI dacă R, G și B pot reprezenta o nuanță de gri;
În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
Restricții și precizări[edit | edit source]
- -1000 ≤ R, G, B ≤ 1000;
- 0 ≤ Rv, Gv, Bv ≤ 255 – unde v înseamnă valid.
Exemplul 1[edit | edit source]
- Intrare
- 0 128 256
- Ieșire
- NU E CULOARE
Exemplul 2[edit | edit source]
- Intrare
- 118
- 128
- 255
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- CULOARE
Exemplul 3[edit | edit source]
- Intrare
- 118
- 119
- 120
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- GRI
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line="1" start="1"> def validare(R, G, B):
# Verifică dacă R, G și B se află în intervalul [-1000, 1000] if -1000 <= R <= 1000 and -1000 <= G <= 1000 and -1000 <= B <= 1000: return True return False
def verifica_culoare(R, G, B):
a = [R, G, B] # Sortează vectorul a pentru a putea calcula diferența dintre cel mai mare și cel mai mic element a.sort() dif = a[2] - a[0] if 0 <= a[0] <= 255 and 0 <= a[2] <= 255: # Verifică dacă diferența dintre cel mai mare și cel mai mic element este mai mică sau egală cu 10 if dif <= 10: return 'GRI' else: return 'CULOARE' else: return 'NU E CULOARE'
- Verificarea daca codul este executat direct sau este importat ca un modul
if __name__ == "__main__":
R = int(input("Introduceti R: ")) G = int(input("Introduceti G: ")) B = int(input("Introduceti B: ")) if validare(R, G, B): # Daca datele de intrare sunt valide, afiseaza un mesaj de confirmare si apeleaza functia verifica_culoare cu parametrii specificati print("Datele de intrare corespund restricțiilor impuse.") print(verifica_culoare(R, G, B)) else: # Daca datele de intrare nu sunt valide, afiseaza un mesaj de eroare print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>