Soru
Programcıya, içerisinde 0 ila 255 değerleri arasında olan 3 farklı RGB değeri (kirmiziDegeri, yesilDegeri, MaviDegeri) veriliyor. Bu noktadan sonra ise programcıdan, girilen sayısal değerleri 16’lık Hexadecimal koda dönüştürmesi isteniyor.
RGB Renk, monitör gibi elektronik cihazların ışık kullanarak renk yaratmasını sağlayan bir renk modelidir ve üç temel rengin (kırmızı, yeşil, mavi) farklı yoğunluklarda kullanılarak renk gamından istenilen rengin elde edilmesine dayanır.
Örnek
Girdi | Çıktı |
---|---|
kirmiziDegeri: 255 yesilDegeri: 255 maviDegeri: 255 |
HEX değeri: #FFFFFF |
kirmiziDegeri: 222 yesilDegeri: 111 maviDegeri: 33 |
HEX değeri: #DE6F21 |
Çözüm - C#
using System;
using System.Drawing;
internal class Program
{
private static void Main(string[] args)
{
byte kirmiziDegeri = 148;
byte yesilDegeri = 0;
byte maviDegeri = 211;
// Girilen değerlerin 255'ten büyük olmamasını sağla
// Eğer girilen değer 255'ten büyükse değeri 255'e sabitle
if (kirmiziDegeri > 255)
kirmiziDegeri = 255;
if (yesilDegeri > 255)
yesilDegeri = 255;
if (maviDegeri > 255)
maviDegeri = 255;
// Color sınıfını kullanarak girilen değerleri aktar
Color donusturulenRenk = Color.FromArgb(kirmiziDegeri, yesilDegeri, maviDegeri);
// Değerleri 16'lık sisteme dönüştürerek değişkene aktar
string hexDegeri = donusturulenRenk.R.ToString("X2") + donusturulenRenk.G.ToString("X2") + donusturulenRenk.B.ToString("X2");
Console.WriteLine("HEX değeri: #" + hexDegeri);
Console.Read();
}
}
Çözüm - Java
public class Main {
public static void main(String[] args) {
int kirmiziDegeri = 148;
int yesilDegeri = 0;
int maviDegeri = 211;
// Girilen değerlerin 255'ten büyük olmamasını sağla
// Eğer girilen değer 255'ten büyükse değeri 255'e sabitle
if (kirmiziDegeri > 255)
kirmiziDegeri = 255;
if (yesilDegeri > 255)
yesilDegeri = 255;
if (maviDegeri > 255)
maviDegeri = 255;
// Değerleri 16'lık sisteme dönüştürerek değişkene aktar
String hexDegeri = String.format("%02X%02X%02X", kirmiziDegeri, yesilDegeri, maviDegeri);
System.out.println(("HEX değeri: #" + hexDegeri));
}
}
Çözüm - Python
kirmiziDegeri = 222
yesilDegeri = 111
maviDegeri = 33
# Girilen değerlerin 255'ten büyük olmamasını sağla
# Eğer girilen değer 255'ten büyükse değeri 255'e sabitle
if kirmiziDegeri > 255:
kirmiziDegeri = 255
if yesilDegeri > 255:
yesilDegeri = 255
if maviDegeri > 255:
maviDegeri = 255
sonuc = '%02x%02x%02x' % (kirmiziDegeri, yesilDegeri, maviDegeri)
print(f"HEX değeri: #{sonuc}")