İletileri Göster

Bu özellik size üyenin attığı tüm iletileri gösterme olanağı sağlayacaktır . Not sadece size izin verilen bölümlerdeki iletilerini görebilirsiniz


Konular - Ömer Enliçay

Sayfa: [1]
1
C++ Hazır Kodlar / C++ Bitset Örneği
« : Mart 07, 2016, 09:39:46 ÖÖ »
C++ bitset örneği (16 bit)

Kod: [Seç]
#include <string>
#include <bitset>
#include <iostream>
using namespace std;
int main(){
  string ad, soyad;
 
  cout<<"Adinizi giriniz: ";
  cin>>ad ;
  cout<<"Soyadinizi giriniz: ";
  cin>>soyad;
 
  cout<<"ad /////////////////////"<<endl;
  for (std::size_t i = 0; i < ad.size(); ++i)
  {
      cout << bitset<16>(ad.c_str()[i]) << endl; //16 lık bitset
  }
 
  cout<<"soyad /////////////////"<<endl;
  for (std::size_t i = 0; i < soyad.size(); ++i)
  {
      cout << bitset<16>(soyad.c_str()[i]) << endl; //16 lık bitset
  }
}

2
C++ Kütüphaneleri / C++ String Kütüphanesi
« : Mart 06, 2016, 21:35:51 ÖS »
<string.h> Kütüphanesi

C++ da karakterlerden oluşan dizileri string türünden deklare edebiliriz. Bu türdeki değişkenlere çift tırnak içerisinde hertürlü karakter girişinin yapabiliriz.
 String sınıfını (türünü) kullanabilmemiz için en başa #include yazıp using namespace std; satırını eklememiz gerekmektedir.

Kod: [Seç]
#include <iostream>

using namespace std;

int main(){

string Mesaj="Merhaba forumkod.com !";

cout<<Mesaj<<endl;

return 0;
}

NOT: C++ dili C dilinde stringleri tanımlamak için kullanılan char *(char pointer) türünde yapıyı da desteklemektedir. Ancak pointerlarda yapılabilecek hatalar ve öğrenme zorluğu nedeniyle ayrı bir konuda pointerlar anlatılacaktır.

string bir değişken tanımlandığında constructor(yapıcı) metoduna ilk değer parametre girilerek te yapılabilir. Örn:
Kod: [Seç]
using namespace std;

string str("OmerEnlcy");


string sınıfından tanımlanmış bir değişkene cin ile kullanıcıdan  değer alınabilir. Bunun için iki yol vardır.
Birincisi eğer alınacak değer tek kelime ise doğrudan cin>>str_degisken; denilebilir. Bu durumda aralarında boşluk bulunan kelimelerden sadece ilki alınır.
İkincsi: aralarında boşluk olan kelimelerin tümü alınacaksa o zaman getline metodu kullanılır. Örn: getline(cin, str_degisken);

String Eklemesi

stringler birbirlerine "+" operatorü ile eklenebilir.
Mesela:
Kod: [Seç]
using namespace std;
string str1="Merhaba";
string str2="ForumKod";
string str3= str1+str2;

+= operatörü de stringleri eklemek için kullanılabilir. + veya += operatörü string ile char * türündeki türündeki stringi de ekleyebilecek şekilde tasarlanmıştır.


Stringlerin Karşılaştırılması

stringler birbirleri ile "==" operatörü ile kıyaslanabilmektedir. Örn:

Kod: [Seç]
using namespace std;
string str1="Merhaba";
string str2="Cü";
bool b=(str1==str2);
cout<<"Metinler esit olmadigi icin false döner: "<<b<<endl;

Fakat: ben "==" metodunun string karşılaştırmasına sıcak bakmıyorum bazı hatalar olabilmekte, bunun yerine equals() fonksiyonu kullanmak daha mantıklı.

Kod: [Seç]
using namespace std;
string str1="Merhaba";
string str2="Cü";
if(str1.equals(str2))
cout<<"Metinler esittir "<<endl;
else
cout<<"Metinler esit degil. "<<endl;

Bir şifre örneği yapalım:

Kod: [Seç]
using namespace std;

const string sifre="frmkod";
string str="";
cout<<"parolayi giriniz: ";
cin>>str;
if(str.equals(sifre))
cout<<"basarili"<<endl;
else
cout<<"sifre hatali";

String Uzunluğu ve Karakterlere Erişim

string bir değişkenin uzunluğu length() veya size() metodu ile alınabilir.
Mesela:

Kod: [Seç]
using namespace std;

string str="Kod yazmak bir sanattir";
cout<<"Metnin uzunlugu"<<str.length()<<endl;
cout<<"size de ayni isi yapar"<<str.size()<<endl;



Yukarıdaki örnekte "Kod yazmak bir sanattir" cümlesi aslında C++ da bir karakter dizisi olarak algılşanmaktadır. C/C++/Java/C# ve diğer bir çok dilde  diziler 0. indis ten başlarlar. Bu mantığa göre K harfi str stringinin 0. elemanıdır.
Örn.

Kod: [Seç]
#include <iostream>
using namespace sdt;

int main()
{

string sifre="frmkod";

cout<< 0. index<<sifre[0]<<endl;
cout<<1. index<<sifre[1]<<endl;

//bu şekilde çalışır
return 0;
}

Devamı gelecektir...


3
C++ Kütüphaneleri / C++ iomanip Kütüphanesi
« : Mart 02, 2016, 12:44:12 ÖS »
<iomanip> Kütüphanesi

Merhaba,

<iomanip> kütüphanesi C++ da akışların yani Giriş/Çıkış (İnput/Output) birimlerinin belirli formatlarda yazdırma fonksiyonlarını içeren bir kütüphanedir.

<iomanip> kütüphanesinde birçok fonksiyon vardır. Bunlar:
setw()-width()
setfill()
setprecision()
setbase() - resetiosflags()
setf() - unsutf()
setiosflags()

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
setw() Fonksiyonu

Girilen herhangi bir değişken için ayrılacak olan karakter genişliğini belirlemeye yarayan bir <iomanip> kütüphanesi fonksiyonudur. Diğer bir kullanım şekli ise “width()” şeklindedir.

 Örnek:
Kod: [Seç]
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
  int sayi= 234;
  cout<<setw(9)<<sayi<<endl;
  cout<<setw(6)<<sayi <<endl;
  cout<<setw(3)<<sayi <<endl;
  return 0;
}

Çıktı:

- - - - - 234
- - - 234
234



setfill() Fonksiyonu

 <iomanip> kütüphanesine ait formatlı yazdırma komutudur.Bu komutla bıraktığımız boşlukları verilen herhangi bir karakterle doldurmamızı sağlayan fonksiyondur.

Kod: [Seç]
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
  int sayi= 234;
  cout<<setfill('*')<<setw(9)<<sayi<<endl;
  cout<<setfill('*')<<setw(6)<<sayi <<endl;
  cout<<setfill('*')<<setw(4)<<sayi <<endl;
  return 0;
}

Çıktı:

* * * * * * 234
* * * 234
* 234


Setprecision() Fonksiyonu

  Girilen ondalıklı sayıları formatlı bir şekilde ve noktadan sonraki duyarlılığı belirlemek için kullanılan bir <iomanip> fonksiyondur.

Kod: [Seç]
#include<iostream>
#include<iomanip>                   
using namespace std;
int main()
{
double  sayi= 22.70964345;
cout<<setprecision(5)<<sayi<<endl;
cout<<setprecision(7)<<sayi <<endl;
cout<<setprecision(8)<<sayi <<endl;
return 0;
}


Çıktısı:

22.70964
22. 7096434
22. 70964345

setbase() Fonksiyonu

 setbase() fonsiyonu  istediğimiz basamağı fonksiyona yazarak kullanılan bir <iomanip> komutudur.Ancak içine 8-10 ve 16 lık basamak değerlerini alır.

Kod: [Seç]
#include <iostream>
#include <iomanip>
 using namespace std;
 int main ()
 {
cout << setbase (16);
 cout << 100 << endl;
 return 0;
}

Çıktı:

64

setf() Fonksiyonu

Formatlı yazdırma tekniğinde özelikle sağa dayalı,sola dayalı hangi basamakta yazılacağını ve noktadan sonra kaç hane gösterilmesi gerekiyor diye kavramları belirlemek için kullanılan çok önemli bir fonksiyondur.

//cout.setf ( ios::right, ios::adjustfield); şeklinde kullanılır. Ve kullanımda çeşitli parametreler alabilir.

//adjustfield (left, right), basefield (dec, hex, oct), floatfield (scientific, fixed)


Kod: [Seç]
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
 {
cout<<setw(15)               //cout.width(8) diğer bir kullanım şekli
cout.setf ( ios::left);
cout.setf (ios::hex,ios::basefield);    // hex(16)lık sistem seçildi
cout.setf ( ios::showbase );                      // 0x aktif edildi
cout.fill(‘*'); 
cout << 200 << endl;
cout.setf ( ios::fixed, ios::noshowbase );         //  0x kaldırıldı
cout << 200 << endl;
return 0;
}
 

Çıktısı:

0X128 * * * * * * * * * *    // cout << 200 << endl;
128                                  //cout << 200 << endl;



unsetf() Fonksiyonu

Unsetf()” komutu ise adındanda anlaşılacağı gibi “setf()” fonksiyonun tam tersi işleve sahip bir fonksiyondur.  Aynı programda setf ile oluşturulan (basefield gibi) seçilen alanın format özelliklerini devre dışı bırakır ve bir önceki ya da doğal halinin görüntülenmesini sağlar.
Kullanımı // cout.unsetf ( ios_base::basefield ); şeklindedir. Bir önceki proğramda kullanılan basefield özelliğini kaldırmamızı sağlar.

Kod: [Seç]
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
cout.setf(ios_base::hex,ios_base::basefield );   //hex(16) sayı basamağı seçildi

cout << 200 << endl;
cout.unsetf (ios_base::basefield );   // onaltılık sayı sistemi geri dönüştürüldü
cout << 200 << endl;                     ve tekrar standart olan 10 luk sayı
                                         basamağına dönüştürüldü.
return 0;
}

Çıktı:

0X128
200

setiosflags() Fonksiyonu

 “setiosflags()” fonksiyonu ile girilen değere showbase-uppercase gibi  özeliği vermezi sağlayan bir <iomanip> kütüphanesi fonsiyonudur.

Kod: [Seç]
#include <iostream>
#include <iomanip>
using namespace std;
int main ()

cout << hex << setiosflags ( ios_base::uppercase | ios_base::showbase);
cout << 200 << endl;  return 0;
}

Çıktı:

0X128       //cout << hex << setiosflags ( ios_base::uppercase | ios_base::showbase);



resetiosflags() Fonksiyonu

 “Resetiosflags()” Fonksiyonu ise “setiosflags()” fonksiyonun tam tersi özelliğe sahip bir fonsiyondur. Aynı programda “setiosflags()”ile verilen formatın özelliklerini devre dışı bırakır ve bir önceki ya da doğal halinin görüntülenmesini sağlar. Yani reset atmış olur

Kod: [Seç]
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
cout << hex << setiosflags (ios_base::showbase);
cout << 200 << endl;
cout << resetiosflags (ios_base::showbase) << 100 << endl;
return 0;
}

Çıktı:

128

Sayfa: [1]