1 Mart 2017 Çarşamba


    HARF EKLE FONKSİYONU İLE HARFLERİ EKRANA                                         YAZAN  PROGRAM




MALLOC VE FREE  KOMUTLARI



C++ Yeni Örnekler


1-İsmini ve yaşını ekrana yazdıran program (C++)



2-KDV'yi 0 18 sabit olarak tanımladıktan sonra 500 TL için ödenecek 
KDV miktarı hesaplama(c++) 



3- Cout komutunu yaz olacak şekilde değiştirme 




4 - #define kullanarak iki sayıdan büyük olanı ekrana yazan program




5- 1 -10 arası döngüyü #define kullanarak kısaltma





20 Şubat 2017 Pazartesi

Sınıfın Tanımları (Class Definition)

Class

    Class veriler ve fonksiyonların beraber bulunduğu bir tanım kümesidir. Class, fonksiyon olarak düşünülebilir fakat fonksiyonun daha gelişmiş halidir.

Public

    Fonksiyona sınıf içinden ve sınıf dışından erişime izin verir.

Protected

    Bu erişim belirteci işaretlenen ögeye sadece sınıfın içinden erişilebileceği fakat alt sınıflara aktarılabileceği anlamına gelmektedir.

Private

    Private altına yazılan bir değişkene class dışından ulaşılamaz.

Constructors (Yapılandırıcı / Kurucu)

    Nesne yönelimli programlama yaklaşımında bir nesnenin oluşturulması sırasında ilk çalışan fonksiyonun ismidir. Kurucu fonksiyonlar üyesi oldukları sınıf ile aynı ismi taşırlar. Kurucular parametre alırlar, ancak geri dönüş değerleri yoktur. Geri dönüş tipi olarak herhangi bir tip (void bile) yazılmaz.

Destructor (Yıkıcı / Yok Edici)

    Constructor fonksiyonunun yaptığı işin tersini yaparlar. Görevi biten nesneyi yok ederler. Bir sınıfın(class) üyesi olan bir değişken görevini noktaladığı durumda ~destructor() fonksiyonu otomatik çağrılarak üzerinde çalıştığı nesneyi devre dışı bırakır.

Compiler, Debugger, Linker, GUI, GNU, GPL, Open Source


  • Compiler (Derleyici)

    Compiler, yazılan programın kaynak kodunu okuyup içerisinde mantıksal veya yazınsal hatalar olup olmadığını bulan, bulduğu hataları kullanıcıya göstererek programın düzeltilmesine yardım eden, hata yoksa programın çalıştırılması öncesinde kaynak kodu makine diline çeviren bir yazılımdır.
  • Debugger

    Debugger hata ayıklayıcı anlamına gelmektedir. Derleyici programın arkaplanında çalışarak yazılan kodlar arasındaki hataları bulmaya çalışır.
  • Linker (Bağlayıcı)

    Bağlayıcı (linker), derleme işleminden sonra üretilen kodu işletim sisteminde çalışabilecek şekilde tek kod olarak üretir. Büyük yazılımlarda kod parçalara bölünüp ayrı ayrı derlenebilir parçalara ayrılabilir. Bu kodları daha sonra birleştirip tek kod üreten programlara bağlayıcı denir.
  • GUI (Graphical User Interface)

    Grafiksel Kullanıcı Arayüzü (Graphical User Interface), bilgisayarlarda işletilen komutlar ve bunların çıktıları yerine simgeler, pencereler, düğmeler ve panellerin tümünü ifade etmek için kullanılan genel addır.
 
  • GNU

     GNU; çekirdeği, sistem araçlarını, açıcılarını, kütüphanelerini ve son kullanıcı yazılımlarını içeren, GNU Tasarısı kapsamında geliştirilen bir işletim sistemidir. İsminin açılımı "GNU's Not Unix" (GNU Unix değildir) dir.
 
  • GPL

    GPL, "Özgür yazılım, özgür lisans" kavramlarında sürekliliği sağlaması sebebiyle başrolde yer aldı. GPL lisansı, aynı lisans şartlarının korunması kaydıyla her türlü kullanıma imkan veren yapısı sayesinde, açık kaynak kodlu yazılımların gelişiminde büyük katkı sahibidir. 
 
  • Open Source (Açık Kaynak)

    Açık kaynak yazılım veya açık kaynaklı yazılım veya kaynağı açık yazılım, kaynak kodu isteyen herkese açık olan yazılımlardır. Bu tür yazılımların ayırt edici özelliği kullanıcıya yazılımı değiştirme özgürlüğü sağlamasıdır. Açık kaynak kodlu yazılımlar, uyarlanabilir, sağlam, hızlı ve güvenlidir. 

IDE nedir? 


IDE (Integrated Development Environment) 

 

    Yazılımcılar için derleme ve diğer işlemleri gerçekleştiren programlar geliştirilmiştir. Bu tür programlara genel olarak tümleşik geliştirme ortamı (Integrated Development Environment, IDE) adı verilmektedir. Günümüzdeki IDE'ler kod tamamlama, yazım kontrolü, kod biçimlendirme gibi daha birçok özelliğe sahiptir.

 C++ için kullanılabilecek IDE'ler nelerdir?


1)Code::Blocks

   Code::Blocks, özgür açık kaynak kodlu bir C++ tümleşik geliştirme ortamıdır. wxWidgets tabanlı tamamen özelleştirilebilir arabirimiyle, GNU/Linux, Microsoft Windows, MacOS platformlarında sorunsuzca kullanılabilmektedir. Gelişmiş plugin desteğiyle kod yazımı esnasında ihtiyaç duyabileceğiniz birçok yardımcı fonksiyon sunar ve kod üzerinde tam bir hakimiyet kurmanıza olanak tanır.

2)NetBeans

   NetBeans, Oracle tarafından geliştirilen bir Java geliştirme ortamıdır. Netbeans IDE, Java , C/C++, PHP ve HTML5 diliyle profesyonel masaüstü, kurumsal, Web ve Mobil uygulamaları geliştirmek için gerekli tüm araçları içerir. Netbeans IDE'nin kurulumu kolaydır, kullanıma hazır gelir ve Windows, Linux, Mac OS X ve Solaris de dahil olmak üzere birçok platformda çalışır. Ücretsiz olarak dağıtılmaktadır.


3)Eclipse

 

    Eclipse, açık kaynak kodlu ve özgür bir tümleşik geliştirme ortamıdır (IDE). Ana odak noktası Java ve Java ile ilişkili teknolojiler olsa da, esnek yapısı sayesinde C/C++ ve Python gibi farklı diller için de kullanılmaktadır. 

                              

4)DevC++


    Dev C++, C (programlama dili) ve C++ dilleri ile GCC'nin Windows sürümü olan MinGw derleyici setini destekleyen, GNU GPL lisanslı ile dağıtılan özgür bir tümleşik geliştirme ortamıdır.

                               

5)Visual Studio

    Microsoft Visual Studio, Microsoft tarafından geliştirilen bir tümleşik geliştirme ortamıdır (IDE). Visual Studio, değişik programlama dillerini destekler, bu da kod editörü ve hata ayıklayıcısının neredeyse tüm programlama dillerini desteklemesini sağlamaktadır. Dahili diller C/C++, VB.NET, C# ve F# içermektedir.

                    

22 Aralık 2016 Perşembe

C PROGRAMLAMA DİLİ ÖRNEK SORU VE CEVAPLARI

1- Kullanıcıdan 2 reel sayı alıp bu sayıların toplamını bulan program


2- Kullanıcıdan 3 adet sayı alıp sayıların ortalamasını bulan program


3- Kullanıcının girdiği sayının tek mi çift mi olduğunu bulan program


4- Kullanıcının girdiği sayının faktöriyelini hesaplayan program


5- Gelen parametreye göre gelen sayının faktöriyelini hesaplayan fonksiyon


6- Belirtilen sayının faktöriyelini recursive (öz yineli) fonksiyon ile hesaplayan program


7- Fibonecci dizisini hesaplayan program (1,1,2,3,5,8,13,21,44,...)


8- Dizi kullanarak on adet sayıyı kullanıcıdan aldıktan sonra ekrana yazan program


9- 10 adet sayıyı kullanıcının girdiği sıranın tersine ekrana yazan program


10- Kullanıcının girdiği 10 adet sayıdan kaç tanesinin son girdiği sayıdan büyük olduğunu bulan program


11- Para birimi çeviren fonksiyon


12- Ekrana rastgele bir sayı yazdıran program


13- Ekrana [0-100] arası rastgele sayı yazdıran program


14- Ekrana [15-35] arası rastgele sayı yazdıran program


15- 7 zarı temsilen 1-6 arasında 7 adet rastgele sayıyı ekrana yazan program


16- 35. sorudaki zarlardan kaçının 3’ten büyük olduğunu bulan program


17- 35. sorudaki zarlardan kaçının birbiri ile eşit olduğunu bulan program


18- Bir dizinin içine 1-100 arası 10 adet rastgele sayı ile doldurup ekrana yazan program


19- 38. sorudaki dizideki sayılardan en büyüğünü ve en küçüğünü bulup ekrana yazan program


20- 38. sorudaki dizinin rakamlarını büyükten küçüğe sıralayan program


21- 38. sorudaki dizinin rakamlarını küçükten büyüğe sıralayan program














3 Aralık 2016 Cumartesi

1 Kasım 2016 Salı

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


1-) Kullanıcının girdiği sayıyı ekrana yazdıran program




2-) 1-100 arasında rastgele sayıyı ekrana yazan program




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




4-) Kullanıcın girdiği 2 sayının farkını bulan programı yazan program




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





6-) Kullanıcının adını öğrenip ekrana yazan program





7-) Kullanıcının adını öğrenip 10 kez ekrana yazan program





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





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





10-) 1'den 100'e kadar sayıları yan yana yazan program





11-) 1'den 100'e kadar sayıları, her sayı 4 basamak yer kaplayacak şekilde yan yana yazan program




12-) 1'den 100'e kadar sayıları, sol tarafı sıfır dolu 4 basamak şeklinde, yan yana yazan program (0001 0002 0003 ..... 0100)





13-) 1'den 20'ye kadar sayıları alt alta yazan program





14-)1'den 20'ye kadar sayıları 0,5'er arttırarak alt alta yazan program





15-)1'den 20'ye kadar sayıları 0,5'er arttırarak alt alta yazan program





16-)1'den 100'e kadar tek sayıları alt alta yazdıran program





17-) 1'den 100'e kadar çift sayıları alt alta yazan program






18-) 1'den 100'e kadar 3'ün katı olan sayıları alt alta yazan program





19-) 1'den 100'e kadar 2'ye ve 3'e tam bölünen sayıları alt alta yazan program




20-)100'den 1'e kadar sayıları yan yana yazan program





21-) 100'den 1'e kadar sayıları, her sayı 4 basamak yer kaplayacak şekilde yan yana yazan program





22-) 100'den 1'e kadar sayıları, sol tarafı sıfır dolu 4 basamak şeklinde, yan yana yazan program (0001 0002 0003 ..... 0100)




23-) 20'den 1'e kadar sayıları alt alta yazan program





24-) 20'den 1'e kadar sayıları 0,5'er azaltarak alt alta yazan program(1 / 1.5 / 2... 19.5 / 20)





25-) 20'den 1'e kadar sayıları 0,5'er azaltarak alt alta yazan program (01.000 / 01.500 / 02.000... 19.500 / 20.000)






26-) 100'den 1'e kadar tek sayıları alt alta yazan program






27-) 100'den 1'e kadar çift sayıları alt alta yazan program






28-) 100'den 1'e kadar 3'ün katı olan sayıları alt alta yazan program






29-) 100'den 1'e kadar 2'ye ve 3'e tam bölünen sayıları alt alta yazan program


23 Ekim 2016 Pazar

SHADER

Modern Gpu'larda Kullanılan Shader'ların İsimleri Ve Görevleri


    Shader, programlanabilir GPU’ların ortaya çıkmasından sonra hayatımıza girmiştir. 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 vertex’lerin transformasyonları, texture koordinatları 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 iş yapmaktadir, bu yüzden per-pixel diye tabir edilen işler genelde iyi bir ekran kartı gerektirir.

TEPE (VERTEX) SHADER 

    Grafik işlemcisine verilen her tepe noktası için bir defa çalıştırılır. Bu işlem, tepe noktasının 3 boyutlu pozisyonun ekranda gözükecek 2 boyutlu koordinatına çevrilmesi için yapılır. Tepe tarayıcısı pozisyon, renk, doku koordinatları gibi özellikler üzerinde işlem yapabilirken yeni bir tepe noktası yaratamaz. Bu tarayıcının çıktısı bir diğer tarayıcıya aktarılır.



GEOMETRİ (GEOMETRY) SHADER

     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.




NOKTA (PIXEL) SHADER 

    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 veya ton ayarı için kullanılır.


V-SYNC

Vsync nedir?

    Vsync, Vertical Synchronization kelimesinin yaygın kullanılan kısaltması. Türkçesi "dikey senkronizasyon" anlamına gelmektedir.
    Vsync (Vertical Synchronization) açılınca ekran kartının tazeleme hızıyla, monitörün tazeleme hızı denkleştirilir. Vsync kapalıyken görüntüde kırılmalar olur. Özellikle 3rd person ve 1st person kameralı oyunlarda mouse hızlı hareket ettirilidiğinde bu kırılma rahatlıkla görülür. Ekranın ortasından titreyen bir çizgi olarak geçer. Kapatıldığında ise fps artar.
    Önce kırılma da diyebileceğimiz "tearing"in ne olduğunu bilmeliyiz. Eğer ekran kartı monitöre belirli bir zamanda monitörün gösterebileceğinden daha fazla kare gönderirse ekranda kırılmalar olur ve bu kırılmalar da hassas bir gözü çoğu zaman rahatsız eder. Görüntüdeki bu kırılmalara "tearing" denir.
    İşte bu kırılmaları engellemek için V-Sync kullanılır ve oyunlarda saniyede gösterilecek kare sayısının monitörün tazeleme hızını geçmemesi sağlanır. Günümüzde 60 Hz`in altındaki tazeleme hızları kullanılmadığından en kötü durumda bile oyun performansı 60 FPS ile sınırlanır ki bu da oyunlar için çoğunlukla ideal hızdır.

    Aşağıda ilk resimde bazı "tearings" (kırılmalar) var. ikince resimde ise bu kırılmalar V-sync ile düzeltilmiş.


BENCHMARK SİTELERİ

Benchmark Nedir? 


      Hız testi (benchmark), gerçek hayattakine benzer işlemleri seri bir biçimde belirli bir donanım üzerinde yürütmektir. Örneğin işlemci testinde bir laptop'un işlemcisi, verileri ne kadar hızlı şifreleyebileceğini görmek üzere bir dizi matematiksel teste tabi tutulabilir. Sabit disk testlerinde büyük bir dosyanın ne kadar zamanda yazılıp okunabildiği, GPU testlerinde ekranda belirli sayıda nesne varken kaç FPS'ye ulaşıldığı test edilebilir. 

    Test sonuçları tek başlarına çok şey ifade etmeseler de, iki ürünün test sonuçlarını karşılaştırdığınızda hangisinin daha iyi performans sunduğu konusunda karar vermeye başlayabilirsiniz.

    İşlemci testi, ram testi, ekran kartı testi vb. testlerin yapıldığı siteler aşağıda verilmiştir.

1. https://www.cpubenchmark.net/

2.http://www.videocardbenchmark.net/

3.http://www.passmark.com/products/pt.htm

EKRAN KARTLARI VE ÖZELLİKLERİ

1.MSI R7 240

Slot Tipi: PCI-Express x16 
Bellek Kapasitesi:  2048 MB
Bellek Tipi: DDR3
Bellek Bant Genişliği: 72 GB / s


2.EVGA GTX750

Slot Tipi: PCI-Express 
Bellek Kapasitesi: 2 GB
Bellek Tipi: GDDR5
Bellek Bant Genişliği: 86.4 GB / s


3.MSI R9 380 GAMING

Slot Tipi: PCI-Express x16 
Bellek Kapasitesi: 4 GB
Bellek Tipi: DDR5
Bellek Bant Genişliği: 256 Bit



4.Sapphire Amd Firepro S9150 

Slot Tipi: PCI-Express x16 3.0
Bellek Kapasitesi: 16 GB
Bellek Tipi: DDR5
Bellek Bant Genişliği: 512 Bit

5.Sapphire AMD FirePro W9100 

Slot Tipi: PCI-Express x16 3.0
Bellek Kapasitesi: 16 GB
Bellek Tipi: DDR5
Bellek Bant Genişliği: 512 Bit