2765 - Check Color
Cerință
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
Programul citește de la tastatură trei numere întregi, R, G și B.
Date de ieșire
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;
Restricții și precizări
- -1000 ≤ R, G, B ≤ 1000;
- 0 ≤ Rv, Gv, Bv ≤ 255 – unde v înseamnă valid.
Exemplul 1
- Intrare
- 0 128 256
- Ieșire
- NU E CULOARE
Exemplul 2
- Intrare
- 118 128 255
- Ieșire
- CULOARE
Exemplul 3
- Intrare
- 118
- 119
- 120
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- GRI
Rezolvare
Rezolvare ver. 1
<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>