2765 - Check Color

From Bitnami MediaWiki

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'


  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>