30 Ekim 2016 Pazar

C PROGRAMLAMA DİLİ ÖRNEK SORULARI VE ÇÖZÜMLERİ

1) Kullanıcının girdiği sayıyı ekrana yazdıran programı yazınız.




2) 1-100 arasında rastgele sayıyı ekrana yazan programı yazınız.




3) Kullanıcının girdiği 2 sayıdan büyük olanı ekrana yazan programı yazınız.




4) Kullanıcının girdiği 2 sayının farkını bulan programı yazınız.



5) Kullanıcının girdiği 2 sayı arasındaki işlemi seçebileceği programı yazınız.


6) Kullanıcının adını öğrenip ekrana yazan programı yazınız.


7) Kullanıcının adını öğrenip 10 kez yan yana ekrana yazanı programı yazınız.


8) Kullanıcının adını öğrenip 10 kez alt alta ekrana yazanı programı yazınız.



9) Kullanıcıdan alınan metnin kaç kez tekrarlanacağını yine kullanıcıdan aldıktan sonra alt alta yazan programı yazınız.



10) 1'den 100'e kadar sayıları yan yana yazdırın.


11) 1'den 100'e kadar sayıları, her sayı 4 basamak yer kaplayacak şekilde, yan yana yazdırın.


12) 1'den 100'e kadar sayıları, sol tarafı sıfır dolu 4 basamak şeklinde, yan yana yazdırın.



13) 1'den 20'ye kadar sayıları alt alta yazdırın.

14) 1'den 20'ye kadar sayıları 0,5'er arttırarak alt alta yazdırın.



15) 1'den 20'ye kadar sayıları 0,5'er arttırarak alt alta yazdırın. (1.000 / 1.500 / 2.000... 19.500 / 20.000)

16) 1'den 100'e kadar tek sayıları alt alta yazdırın.


17) 1'den 100'e kadar çift sayıları alt alta yazdırın.

18) 1'den 100'e kadar 3'ün katı olan sayıları alt alta yazdırın.

19) 1'den 100'e kadar 2'ye ve 3'e tam bölünen sayıları alt alta yazdırın.

20) 100'den 1'e kadar sayıları yan yana yazdırın.


21) 100'den 1'e kadar sayıları, her sayı 4 basamak yer kaplayacak şekilde, yan yana yazdırın.





22) 100'den 1'e kadar sayıları, sol tarafı sıfır dolu 4 basamak şeklinde, yan yana yazdırın.



23) 20'den 1'e kadar sayıları alt alta yazdırın.



24) 20'den 1'e kadar sayıları 0,5'er azaltarak alt alta yazdırın.


25) 20'den 1'e kadar sayıları 0,5'er azaltarak alt alta yazdırın. 







26) 100'den 1'e kadar tek sayıları alt alta yazdırın.



27) 100'den 1'e kadar çift sayıları alt alta yazdırın.


28)  100'den 1'e kadar 3'ün katı olan sayıları alt alta yazdırın.


29) 100'den 1'e kadar 2'ye ve 3'e tam bölünen sayıları alt alta yazdırın.



23 Ekim 2016 Pazar

Modern CPU'lardaki Shaderler


Programlanabilir gpularin ortaya çıkmasından sonra hayatımıza girmiş bir terim. (daha önce silikon graphics'e ait muadilleri vardı.)  Shaderlar, vertex'lere ya da pixellere hükmetmek üzere yazılan küçük program parçalarıdır.

Çok genel olarak, geometrik yapılar cpu'dan graphics pipeline denen bir yerlere gönderilir, burada öncelikle vertex shaderlar sayesinde vertexlerin (örneğin üçgenin üç kösesi üç vertextir) transformasyonları, texturekoordinatları gibi şeylerle oynanabilir. Ardından pixel shader gelir, bu da ekrana çizilen her bir noktanın özelliklerini değiştirme şansı verir bize. Doğası gereği pixel shader çok daha yoğun bir is yapmaktadır, bu yüzden per-pixel diye tabir edilen isler genelde iyi bir ekran kartı gerektirir.




     Geometry(Geometrik Tarayıcı)

Herhangi bir ağ üzerindeki tepe noktalarını silebilir veya yenilerini ekler. Geometrik tarayıcılar, var olan ağa hacimsel detay kazandırmak içinde kullanılabilir ki bunu CPU ya yaptırmak ekstra yük getirecektir
.



Pixel Shader(Nokta tarayıcı)

Her bir noktanın(pixelin) renk değerini hesaplarlar. Buraya girdiler, grafik iş hattına giden poligonları dolduran ızgara ünitesinden gelir. Nokta tarayıcılar genellikle ışıklandırma efektleri, pütür kaplama(bump mapping) veya ton ayarı için kullanılır.







Pixel Shader(Nokta tarayıcı)

Her bir noktanın(pixelin) renk değerini hesaplarlar. Buraya girdiler, grafik iş hattına giden poligonları dolduran ızgara ünitesinden gelir. Nokta tarayıcılar genellikle ışıklandırma efektleri, pütür kaplama(bump mapping) veya ton ayarı için kullanılır.



VSync (Dikey Senkronizasyon) Nedir

Monitörlerin yenileme döngüsü, oyunun görüntü işleme döngüsünün senkronizasyonu dışına çıktığı zaman, monitör o an sadece oyunun sağladığı karelerden yetişebildiklerini yenileyebilir. Sağlıksız bir biçimde gelişmiş bu veri alışverişi sonucu ortaya çıkan grafik hatasına yırtılma efekti diyoruz. Hiçbir oyuncunun karşılaşmak istemediği bu durum, düşük FPS sorunundan sonra oyuncuların ikinci düşmanı.

Yırtılma efektini çoğu oyunun ayarlar bölümünde bulunan Dikey Senkronizasyonu (V-Sync) aktif hale getirerek önlemek mümkün. Böylece yenileme döngüsü son bulana dek ekran ve oyun arasındaki gecikme önlenebilir. Maalesef, Dikey Senkronizasyon ayarının da dezavantajları var. Oyun o an  monitörün yenileme hızından daha yüksek bir FPS değerinde çalışırsa, görüntüde gecikmeler meydana gelir.
*Vsync kapatıldığında fps artar.
Bu resimde ağaç gövdelerindeki yırtılma efektini açıkça görebilirsiniz.





Benchmark Siteleri

Benchmark Testi

Benchmark testi, bir ürünün diğerine oranla nasıl performans gösterdiği anlamak ve ürünler arasında karşılaştırma yapabilmek için kullanıcıların kullandığı testlerdir. Örneğin bilgisayarınıza yeni bir SSD almak istiyorsunuz ve iki farklı marka seçeneği karşınıza çıktı. Bu ürünlerin benchmark testlerine ulaşarak bu ürünlerinin hangilerinin hangi şartlar altında daha iyi performans gösterdiğini saptayabilirsiniz.
Tıpkı donanımlarda olduğu gibi Benchmark yazılımlar üzerinde de performans testleri gerçekleştirmemize yardımcı olmaktadır. Bir oyunun iki farklı özelliklere sahip bilgisayar üzerinde ne şekilde performans göstereceğini anlamak için de pekala Benchmark testinden faydalanabilirsiniz.



Bazı Benchmark Siteleri:

  • PassMark Benchmark Charts



  • CPU World Benchmarks





  • CPUBoss






  • HWBOT Comparisons




  • AnandTech Benchmarks


Ekran Kartı İncelemesi


ASUS EN210 SILENT/DI/1GD3 1GB 64 Bit DDR3 Ekran Kartı



Ürün Tipi: Ekran Kartı
Frekans (Hz): 589 MHz
Chipset: GeForce 210
Gölgelendirici Modeli: PCI Express 2.0
Kullanılabilir Toplam Grafik Belleği: 1 GB
Bellek Frekansı: 1200 MHz
Grafik Bellek Tipi: DDR3



POWERCOLOR R7 250X 1GB GDDR5 128 Bit PCI-E 3.0 DX11.1 Ekran Kartı





Ürün Tipi: Ekran Kartı
Bağlantılar: DL DVI-D/ HDMI/ VGA
Grafik Denetleyici: RADEON R7 250X 1 GB GDDR5 128 Bit
Özel Nitelikler: Grafik Bellek Tipi: GDDR5, Bellek Arayüzü: 128 Bit, Maksimum Çözünürlük: HDMI 4096 x 2160,
Teknik Özellikler: Bellek Hızı: 1125MHz x 4 (4.5 Gbps), Engine Clock: 1000MHz, Genişletme Yuvası: PCIE 3.0, DirectX Desteği 11.1
Genişlik: 170 mm
Yükseklik: 111.2 mm



POWERCOLOR Amd Radeon R7 265 OC 2GB 256Bit GDDR5 DX11.2 PCI-E 3.0 Ekran Kartı

Frekans (Hz):1400 MHz
Chipset: Radeon R7 265
Kullanılabilir Toplam Grafik Belleği: 2 GB
Grafik Bellek Tipi: GDDR5
Bellek Arayüzü (bit): 256 Bit
Minimum Güç Kaynağı: 500 W
Genişletme Yuvası: PCIE 3.0



ASUS Nvidia GeForce GTX 950 STRIX Gaming 2 GB 128 Bit GDDR5 (DX12) Ekran Kartı (STRIX-GTX950-DC2OC-2GD5)


Ürün Tipi: Ekran Kartı
Chipset Üreticisi: NVIDIA
Kullanılabilir Toplam Grafik Belleği: 2 GB
Grafik Bellek Tipi: GDDR5
Bellek Arayüzü (bit): 128 Bit
Soğutma: Hava soğutmalı
Bağlantılar: 1 x HDMI, 2 x DVI, Display











Ürün Tipi: Ekran Kartı
Chipset Üreticisi: NVIDIA
Bellek Frekansı: 7200 MHz
Grafik Bellek Tipi: GDDR5
Minimum Güç Kaynağı: 150 W
Gerekli İşletim Sistemi: Windows Ailesi
Gerekli İşlemci Hızı: 1228 MHz







CUDA Ve Alternatif Teknolojisi


   CUDA, Nvidia tarafından ortaya konulan, bilgisayarın işlem performansına yüksek oranda katkı yapan bir paralel programlama platformudur. C, C++, C#, Fortran, Java, Python gibi programlama dilleri ile yazılmış algoritmaların GPU yani “grafik işlem birimi” üzerinde çalışmasını sağlayan bir sistem olarak da tanımlanabilir.
Paralel programlama, birden fazla CPU’nun bir arada çalışmasını istediği için zorluk çıkartır. CPU’lar aslen seri işlemcilerdir ve birden fazla CPU’nun bir arada kullanılabilmesi için karmaşık yazılımlar gerekmektedir. CUDA ise bünyesinde zaten paralellik yarattığı için bu zorlukları ortadan kaldırıyor.
CUDA etkinleştirilmiş GPU ile görüntü ve video işlem, hesaplamaya dayalı biyoloji ve kimya, akışkan dinamiği, bilgisayarlı tomografi, sismik analiz, ışın izleme ve çok daha fazlası dahil olmak üzere geniş bir aralıkta kullanım alanları bulmaktadır. CUDA, sadece NVIDIA GPU’larda çalışması itibariyle rakiplerinden farklı olsa da 2012 yılı itibariyle dünya üzerinde 300 milyondan fazla CUDA destekli GPU olduğu bilinmektedir. Bugün bu sayı daha da üst seviyeye ulaşmıştır.
CUDA İLE PARALEL HESAPLAMA
Hesaplama, CPU üzerindeki "merkezi işlemden" CPU ve GPU üzerindeki "birlikte işleme" doğru bir evrim geçirmektedir. NVIDIA, hesaplamadaki bu yeni paradigmaya olanak vermek için uygulamacılar için önemli bir taban olan ve GeForceION Quadro ve Tesla GPU’larüzerinde temin edilen CUDA paralel hesaplama mimarisini geliştirdi.
Tüketici pazarında Elemental Technologies, MotionDSP and LoiLo, Inc. ürünleri dahil olmak üzere başlıca video uygulamalarının neredeyse tümü CUDA ile hızlandırılmıştır veya yakında hızlandırılacaktır.
CUDA bilimsel araştırma alanında büyük coşku ile kabul görmüştür. Örneğin, CUDA yeni ilaç keşiflerini hızlandırmak üzere dünya genelinde akademik alanda ve ilaç şirketlerinde 60.000’den fazla araştırmacı tarafından kullanılan moleküler dinamik simülasyon program AMBER’i hızlandırmaktadır.
Finans piyasasında, Numerix ve CompatibL yeni bir risk uygulaması için CUDA desteğini duyurdu ve 17 kat hızlandırma elde etti. Numerix yaklaşık 400 finans kurumu tarafından kullanılmaktadır.
CUDA’nın bu denli kKabul görmesinin bir göstergesi de GPU hesaplama için Tesla GPU’ya olan eğilimdir. Şu anda dünya genelinde enerji sektöründe Schlumberger ve Chevron’dan bankacılık sektöründe BNP Paibas’a kadar Fortune 500 şirketlerinde kurulu 700’den fazla GPU kümesi bulunmaktadır.

Yakın zamanda yapılan Microsoft Windows 7 ve Apple Snow Leopard lansmanları ile GPU hesaplama yaygınlaşmaktadır. Bu yeni işletim sistemlerinde, GPU yalnızca grafik işlemci olmakla kalmayıp aynı zamanda tüm uygulamaların erişebildiği genel amaçlı bir paralel işlemci olacaktır.

22 Ekim 2016 Cumartesi

PCI Express Versiyonları

PCI Express nedir?
PCI, İngilizce "Peripheral Component Interconnect" kelimelerinin baş harflerinden oluşan bir kısaltmadır. Türkçe'de "Çevresel bileşen bağlantısı" anlamına gelmektedir.

Express kelimesi de Türkçe'de "Hızlı" anlamına gelmektedir.
PCI Express kelime anlamı olarak "Hızlı Çevresel bileşen bağlantısı" anlamına gelmektedir.

PCI; Bilgisayara entegre devreler veya harici kartlar halinde donanım eklenmesine imkan veren veriyolu arabirimidir.

PCI Express; Eski PCI, PCI-X ve AGP veriyolu standartlarını değiştirmek için tasarlanmış bir yüksek hızlı seri bilgisayar genişleme veriyolu standardına verilen isimdir.

PCI Express 2004 yılında yaratılmıştır. 

PCI Express versiyonları:


1. PCI Express 1.0a
2. PCI Express 1.1
3. PCI Express 2.0
4. PCI Express 2.1
5. PCI Express 3.x
6. PCI Express 4.0



HDMI Nedir? HDMI Çeşitleri

HDMI Türkçesi Yüksek Çözünürlüklü Çoklu Ortam Arayüzü (İngilizce:High Definition Multimedia Interface) anlamına gelen ve 2003 yılında geliştirilen çoğunlukla görüntü aktarma amacıyla kullanılan bir arabirimdir. HDMI isteğe bağlı olarak ses aktarmadada kullanılabilir.
HDMI’ın en önemli özelliği herhangi bir görüntü veya sesi sıkıştırmadan olduğu gibi aktarmayı sağlamasıdır. Bu nedenle HDMI kabloları oldukça yüksek değerde veri iletimini sağlayan kablolardır. Bu kablolar yapısal olarak değişik özellikte üretilmişlerdir.
 İlk olarak HDMI kablolu cihazı Pioneer piayasaya sürmüştür. (Pioneer DV-668AV DVD Oynatıcı, Pioneer PDP-434HDE TV gibi)
HDMI kablolarının değişik versiyonları bulunmaktadır. HDMI 1.0,HDMI 1.1,HDMI 1.2,HDMI 1.3 ve HDMI 1.4. Bunların aktarım hızları aşağıdaki gibidir. HDMI 1.4, HDMI 1.4a, HDMI 2 ve 2a HDMI kabloları içerisinde en yüksek düzeyde aktarım sağlayan ve 4K × 2K çözünürlük, Audio return channel (ARC), Stereoscopic 3D over HDMI ve Ethernet kanalı özelliğini destekleyen versiyondur. Kabloların üzerinde genellikle hangi versiyon olduğu yazılıdır.
HDMI 1.0 = 4,95 GBit/s Aktarım Hızı
HDMI 1.1 = 4,95 GBit/s, 10 GBit/s Aktarım Hızı
HDMI 1.2 = 4,95 GBit/s, 10 GBit/s Aktarım Hızı
HDMI 1.3 = 10,2 GBit/s Aktarım Hızı
HDMI 1.4 = 10,2 GBit/s Aktarım Hızı
HDMI 2.0 = 18 GBit/s Aktarım Hızı

HDMI Kablo Çeşitleri/Tipleri

HDMI Kabloları Çeşitli Tiplere Ayrılmaktadır. Bunlar TİP A,TİP B,TİP C, TİP D ve TİP E‘dir. Şekilde görüldüğü gibi Tip-A konnektör 19 pin’li olup elektriksel olarak tek-hatlı DVI-D ile çalışabilir. En çok kullanılan HDMI kablo bu tiptir ve yaygın olarak kullanılır. Tip-B ise daha yüksek çözünürlükleri (Bknz. WQSXGA (3200×2048)) destekler ve 29 pin’lidir. Çift-hatlı DVI-D ile elektriksel olarak çalışabilir. Tip-C ve Tip D taşınabilir cihazlar için tasarlanmıştır. Olduk.a küçük yapıda olup Tip D akıllı telefonlara uyumludur. Tip E ise otomotiv donanımlarına kullanılan bir HDMI çeşididir


OLED Nedir ?

 OLED'ler (Organik Işık Yayan Diyot), elektrik akımı uygulandığında ışık yayan karbon temelli organik maddeden yapılan diyotlardır. OLED’in yapımında kullanılan malzemeler, 1960'ların öncesinde keşfedildi ancak bu maddeler son 30 yıldır teknolojik çalışmalarda kullanılmaya başlandı.
  İlk olarak 1987'de Kodak araştırmacıları Ching W. Tang ve Steven Van Slyke tarafından oluşturulan OLED teknolojisi ise LED'le hemen hemen aynı yapıya sahiptir. Ancak LED ampulleri yerine ince, ışık yayan filmleri kullanır. OLED, bu sayede daha parlak ışık oluşturabilirken, mevcut LCD/LED teknolojilerden daha az enerji harcar. Ayrıca LCD teknolojisinin aksine dış kaynaktan gelen bir ışığa ihtiyaç duymayıp, kendi ışığını kendisi ürettiği için arka plan aydınlatması ve filtreye de ihtiyaç duymazlar. LCD’den daha ince, yapımı kolay ve daha verimlidirler. OLED'ler yüksek görüntü kalitesine, geniş görüntü açısına, parlak renklere, hızlı tepki oranına sahiptirler. OLED'ler genelde cam üzerinde üretilirler ancak plastik ve son teknoloji TV'lerde gördüğümüz gibi kıvrılabilir malzeme üzerinde de olabilirler. Örneğin OLED araştırmalarında alanının öncü şirketlerinden olan Universal Display'in yaptığı flexsible (kıvrılabilir) OLED modeli 'FOLED' böyledir.
 'TOLED' (Transparant OLED)'in ise saydam cam yüzeyi ile daha çok aydınlatma panelleri ve arabanızın gösterge penceresine gömülü bir sistem olarak  kullanılması hedefleniyor.

P-OLED vs SM-OLED
    OLED malzemelerinin bir çok çeşidi vardır. En basit bir ayrım yapmak gerekirse küçük moleküllü OLEDler (SM-OLED) ve büyük moleküllü OLEDler (polimer OLED yada P-OLED) diyebiliriz. Günümüzde neredeyse tüm OLEDler P-OLED’den çok SM-OLED tabanlıdır. Bu malzemeler P-OLED'lerden çok daha gelişmiştir.


AMOLED vs PMOLED
   Bu terimler OLED ekranlarının sürme metodu ile ilgilidir. PMOLED (Passive Matrix OLED) sınırlı boyut ve çözünürlüğe sahipken AMOLED'e (Active Matrix OLED) göre de yapımı kolay ve daha ucuz olan görüntüdür. AMOLED ise aktif matris TFT (Thin Film Transistor) dizisi ve depo kapasitesi kullanır. AMOLED'ler daha verimlidirler ancak tahmin edilebileceği gibi yapımları da oldukça karmaşık ve kapsamlıdır. Bu yüzden PMOLED'ler müzik çalar veya telefon gibi ikinci dereceden görüntülerde kullanılırken AMOLED'ler akıllı telefon, dijital kamera ve televizyon gibi yüksek performans gerektiren araçlarda kullanılır.






  2007 yılında öngörülen gelecekteki OLED teknolojisi ise neredeyse bu gün geldiğimiz noktayı gösteriyor. Kıvrımlı ekrana sahip OLED TV ler, giyilebilir OLED ler, pencerelerde gömülü şeffaf ve aynı zamanda esnetilebilir OLED'ler ve daha birçok alanda OLED teknolojisini görmek mümkün.





    OLED teknolojisini yaygın hale getirmek imkanlı gibi gözükse de üretimi çok pahalı ve zor olduğundan yaygınlaşamamışlardır. Günümüzde bazı markalar  OLED televizyonlar üretmiş olasına rağmen bu televizyonlar oldukça pahalıdır. Güney Koreli büyük bir şirket olan LG bu teknlojiyi televizyon alanında öncü olarak kullanarak 65 inç ve 77 inç büyüklüklere sahip dünyanın ilk 4K OLED TV’sini geçtiğimiz aylarda piyasaya sürdü.