2765 - Check Color

From Bitnami MediaWiki

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'


  1. 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>