EMO Style ForumPro - Hos Geldiniz
Giriş yap

Şifremi unuttum

Istatistikler
Toplam 202 kayıtlı kullanıcımız var
Son kaydolan kullanıcımız: AnthonyFurey3

Kullanıcılarımız toplam 1186 mesaj attılar bunda 862 konu
Tarıyıcı
 Kapı
 Indeks
 Üye Listesi
 Profil
 SSS
 Arama
Arama
 
 

Sonuç :
 


Rechercher çıkıntı araştırma

RSS akısı


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 


Kimler hatta?
Toplam 4 kullanıcı online :: 0 Kayıtlı, 0 Gizli ve 4 Misafir

Yok

[ Bütün listeye bak ]


Sitede bugüne kadar en çok 92 kişi Paz Ağus. 28, 2016 6:58 am tarihinde online oldu.
En son konular
» İnternetten Para Kazandıran Oyun ! Ödeme Alt Limiti Yok ! DEV KONU
Cuma Ağus. 29, 2014 8:33 am tarafından Hello EMO

» goldenchase.net maden yaparak para kazanma
Cuma Ağus. 29, 2014 8:18 am tarafından Hello EMO

» etichal hacker görsel egitim seti
Çarş. Ağus. 06, 2014 4:57 am tarafından Hello EMO

» KO TBL Source C#
Ptsi Ara. 09, 2013 6:36 am tarafından Hello EMO

» x86 Registers
C.tesi Ağus. 24, 2013 5:02 am tarafından Hello EMO

» [Tutorial] Pegando Address, Pointers de WYD
Çarş. Tem. 10, 2013 7:25 am tarafından Hello EMO

» [Tutorial] Pegando Address, Pointers de CS Metodo²
Çarş. Tem. 10, 2013 7:23 am tarafından Hello EMO

» [Tutorial] Aprendendo basico deASM OLLYDBG
Çarş. Tem. 10, 2013 7:22 am tarafından Hello EMO

» Basic C# DLL injector
Ptsi Tem. 08, 2013 7:48 am tarafından Hello EMO

Reklam

C++ Dersleri - [Ders 1]

Önceki başlık Sonraki başlık Aşağa gitmek

C++ Dersleri - [Ders 1]

Mesaj tarafından EMO Bir Perş. Haz. 02, 2011 3:58 am

[QUOTE=Theodore;2097]Selam Arkadaşlar

Bismillah diyelim ve başlayalım dersimize...


Çok
önemli NOT:
Eğer bu yola başkoyduysanız Bu sayfanın
hepsinin noktası virgülüne okumanız gerekiyor, mouse scroll ile bi
kaydırın bakın sayfaya oldukça uzun bir yazı, gözünüz kesmiyorsa kapatın
sayfayı sizden programcı olmaz, değil programcı bi cacık olmaz.
Okumadan kimsenin beynine bilgiyi hazır şekilde sokmazlar, mecburen
okuyacağız.Armut piş ağzıma düş mantığı yok programlamada,

Sloganımız; KRAL gibi yaşamak için Eşşek gibi okumak Smile

Programcı
olmak isteyen arkadaşlarımızın, hem türkçe kaynak sıkıntısını gidermek
hemde sorularına yanıt bulabilecekleri bir platform oluşturmak adına bu
işe giriştim.Bu konular sonundaki hedefim, konuyu takip eden arkadaşlara
programlama temelini, felsefesini, güçlü ve kalıcı olarak
kazandırmaktır. Bu konular sonunda istediğiniz her hangi bir dili
öğrenmek bir kaç gününüzü alacak, çünkü aralarındaki tek fark yazım yani
söz dizimi şekilleridir.

Peki neden C++? Arkadaşlar şu anda bu
yazıyı okurken çalışan işletim sisteminiz bu dille yazıldı.Para vererek
satın aldığınız yada alacağınız HF yada Kobot bu dille yazıldı.Yada
farklı bir bakış açısı ile bakacak olursak, kosp yazmayı düşünüyorsanız
en seri şekilde paket gönderebileceğiniz dil C++dır.

İşletim
sistemi olmadan bile çalışabilecek bir programı VB. NET le yazamazsınız,
.NET platformu zaten sizleri microsofta bağımlı hale getirmek , onların
çizdiği çember dışına çıkmamanız için geliştirilmiş bir sistemdir. C++
da tamamen özgürsünüz.Ama illa .NETin kolaylıklarından faydalanmak
istiyorsanız, C++.NET kullanabilrisiniz.Bu çok mantıklı da olur.

C++
dan başka bir dil öğrenecekseniz bu dil JAVA yada C++ ve Javanın güçlü
yanlarının birleşimi olan C# (okunuşu = Sii Şarp)olmalıdır.

Program ve programlama nedir?

Programlamaya
başlamadan önce bunları biliyor olmanız gerek, kafanıza girmesi için
somut örnekler kullanacağım. İki tane Aşçı olduğunu düşünün arkadaşlar,
Birisi İngiliz aşçı, diğeri Alman aşçı.Biz bu aşçılara kağıda tarifler
yazıp veriyoruz, onlarda yazılı olanları uygulayarak istediğimiz
yemekleri yapıyorlar. İşte arkadaşlar Aşçıları bilgisayar gibi düşünün,
verdiğimizi yemek tarifleride programlardır, bizim kağıda yazdığımız
şekilde istediğimiz yemekleri yaparlar. Aşçıların görevi bellidir,
insanların yeme içme gibi duygularını tatmin için hizmetlerde bulunur,
Binlerde çeşit yemek yapabilir, tatlı yapabilir yada güzel bir içecek
hazırlayabilirler tıpkı bunun gibi İşletim sistemlerinin temel görevleri
kulanıcıların ihtiyaçlarını, isteklerini yerine getirmektir, müzik
dinlemelerini, döküman yazmalarını, oyun oynamalarını sağlamak
gibi.Bildiğiniz gibi farklı işletim sistemleri vardır, Örneğin Windows
yada Linux gibi. işletim sistemleri arasındaki fark aşçıların ingiliz
yada alman olması gibi bir durumdur, İkisinide aynı yemek tarifini
verirseniz muhtemelen birisi anlayacak diğeri anlamayacaktır.

Aslında
Bir programlama dilini birden fazla işletim sisteminde
kullanabilrisiniz, Örneğin C++ dilini kullanabilirsiniz, işletim
sistemleri arasındaki farkı daha somutlaştıracak olursak.

Yemek
tarifine patlıcan pişir yazdığımızda, bir aşçı fırına atar pişirir
diğeri tavada pişirir başka bir aşçı haşlayarak pişirir ama temelde
hepsi pişirir. işletim sistemleride böyledir. Demek ki neymiş işletim
sistemleri patlıcan pişirir Smile


Programlama Ortamı oluşturalım...

Kodlamaya
başlamadan önce Bize bir derleyici programı lazım, yazdığımız kodları
derleyip çalıştıracak bir ortam ihtiyacımızı karşılacak bir çok
alternatif mevcut.Biz bu iş için Dev-C++
programını kullanacağız. Tamamen açık kaynak kodlu basit, ve
güçlü bir yazılımdır bu. Ama alternatif arıyorsanız,
Code::Blocks yada
NetBeans kullanabilirsiniz. Bunlar açık kaynak
kodlu yani programın kodlarını açıp inceleme fırsatınız olan
programlardır. Microsoftun Visual Studiodan temel farkları budur


[URL="http://www.bloodshed.net"]Bloodshed
Software - Providing Free Software to the internet community[/URL]
adresinden yada
[URL="http://garr.dl.sourceforge.net/project/dev-cpp/Binaries/Dev-C%2B%2B%204.9.9.2/devcpp-4.9.9.2_setup.exe"]Click
Here to Download[/URL] adresinden Dev-C++
yazılımını indirelim, bu arada bunu indirdiğiniz
sourceforge.net adresi açık kaynak kodlu yazılımların
paylaşıldığı en güçlü platformlardan birisidir.Günde yaklaşık 1 milyon
download yapılıyor bu siteden,İlginizi çekebilir.

Kurarken Türkçe
Seçeneğini seçiyoruz,diğer adımlarda da ileriyi seçiyoruz,kurulum
bittikten sonra aşağıdaki gibi dialogları yanıtlıyarak ilerliyoruz ve
programımız açılıyor.







Başlıyoruz programalaya...


DevC++
ta Dosya-Yeni-Proje-Kaynak kodu dosyası.
yada (CTRL+N) ile açıyoruz hemen boş bir sayfa.

Her
dilde adettir, ilk gün,öncelikle Hello World yazdırılır,Merhaba dünya
deyip başlayalım dilin temel yapısını anlatmaya.Basit bir program yazıp
kodları kabaca açıklayıp sonra temel konulara tekrar dönceğiz.


Kodlarımızı
copy/paste yapmayın elle yazın ki
elleriniz alışsın arkadaşlar.Zaten copy/paste yapmamanız için resim
şeklinde koydum Smile Binlerce satırlık programlar yazacağınız zamanlar
gelecek, şimdiden alışın kod yazmaya Smile

Bu arada hatırlatayım her ders sonunda küçük ödevler, tüm derslerin sonunda büyük bir proje ödevi olacak.


// İlk C++ programımız

Arkadaşlar
bu yapı programa açıklama ekleyeceğimiz zamanlar kullandığımız bir
yapıdır (//) işaretlerinden sonra
yazdıklarınızı program dikkate almaz,Bunlar bize notlar alarak kafamızın
karışmaması için lazım olacak, Büyük programlar yazdığımızda birde
bakmışızki kodlar içinde kaybolmuşuz ve boğuluyoruz.İşte böyle olmaması
için kendi anlayacağımız dilden notlar almamız gerekecek.

"//" işaretlerinden sonra yazdıklarınızı aynı satırda olmak kaydıyla dikkate almaz derleyici.

Birden
fazla satırlık açıklama gereken yerlerde ise
(/*) ve (*/)
işaretlerini kullanacağız.Bu işaretler arası kaç satır olursa olsun
dikkate almaz derleyici, isterseniz program kodu yazın hiç iplemez.


Burda
bilmeniz gereken:
"//" yada
"/*" ve
"*/"işaretleri açıklama yazmak
içindir.Derleyici bunları dikkate almaz.


#include

Buradaki satırı ilk aşamada anlamanız gerekmiyor, ama şunu bilin yazdığınız her programa bu satırı yazmak zorundasınız.

Ama
yinede kabaca anlatayım işlevini; bu satırda kullandığımız programa
"iostream" isimli kütüphane dosyasını
ekliyoruz.Peki nedir kütüphane?.

Kütüphaneler
bazı işlevler gerçekleştiren kodların bulunduğu dosyalardır,
kullanıcıyı kod karmaşasından kurtarır, öğreğin ekrana bir yazı
yazdırmak için temelde arka planda bir sürü işlem yapmanız gerekir yada
assembler ile birşeyler yapmanız gerekebilir, bir yazı yazdırmak için
bir sürü satır yazmak yerine kütüphane dosyası içinde bütün bu işlemler
yazılıdır zaten ve bu işlemleri tek bir kodla isimlendirilir, siz
programınızda sadece o küçük kodu yazarak bütün bu işlemleri yapmış
olursunuz.

Örnek: Kullanıcıdan bir sayı
girmesini istiyoruz, bu girilen sayının 2 katını alıp,3e bölüp, pi
sayısı ile toplayıp, karekökünü aldırmak istiyorsunuz. Bir kütüphane
dosyası oluşturursanız, bu işlemlerin hepsini kütüphane dosyasında
yapıp,tek bir kelimeyede tanımlama yaparsanız(örneğin "yap"), Ana
programınızda kütüphane dosyanızı en başta tanımladıktan sonra "yap"
kelimesini yazarak program otomatik olarak girilen sayının 2 katını
alıp,3e bölüp, pi sayısı ile toplayıp, karekökkünü alır.

.dll
uzantılı dosyalarda bu tip fonksiyonların bulunduğu dosyalardır.
içerisinde programcının yazdığı fonksiyonlar vardır, siz bu dll
dosyalarını #include satırına benzer şekilde
programınıza tanıtıp o dll içindeki fonksiyonları programınızda
kolaylıkla kullanabilirsiniz. içerisinde çok sayıda fonnksiyon
içerebilir bu dosyalar.

Örneğin; Multiclientlerde
herkes bunu yaparak birer multiclient yazdığını idda etmektedir,
Multiclientin asıl yazarı dll dosyasını yazan adamdır.


Burda
bilmeniz gereken:
"#include
" bunu her programda yazacağız, ezberleyin bunu.


using namespace std;

Bu
kısım da ilk aşamada bilmeniz gerekmeyen bir bölüm, ama bunuda her
programda yazmanız gerekiyor, bunları ileride anlayacaksınız ama çok
merak eden varsa anlatayım, anlamazsanız eğer takmayın kafaya geçin
burayı şimdilik önemli değil.

Normalde bir kodu kullanırken bir
kütüphane dosyasına ait olduğunu başına yazmamız gerekir.Örneğin
yukarıda örneğini verdiğimiz "yap" diye isim verdiğimiz fonksiyonu
kullanmak için

using std::yap şeklinde
kullanmamız gerekecekti, yani bunun anlamı bu kod yukarıda eklenen bir
kütüphane dosyalarından birisine ait demek.

using
namespace std;
yazarak bu mecburiyetten kurtuluyoruz, böyle
yazmamıza gerek kalmıyor, isim uzayı deniyor buna daha sonra iyice
anlayacaksınız şimdilik çok erken, meraklılar için yazdım sadece.

Burda
bilmeniz gereken:
"using namespace
std;
" bunu her programda yazacağız, ezberleyin bunu.


int main ()
{


.
.
.

}


İşte
bu kısım önemlidir, Bu kısma Main fonksiyon diyoruz.Bir program
yazarken kodlarımızı bu ana fonksiyon içine yazacağız çünkü program
çalışıtırldığında en üstteki tanımlamalardan sonra ilk olarak main
fonksiyonu arar ve çalıştırır. Main fonksiyon yoksa programdan söz
edemeyiz.Bütün kodlarımızı "{" ve
"}" işaretleri arasına yazıyoruz. Bu
işaretler fonksiyonun başlangıç ve bitimini işaret eder.
int
kısmı fonksiyonun tipidir ve bunu şimdi anlamanız gerekmiyor.İleride
fonksiyonlar konusunda çok iyi anlayacaksınız.

Burda
bilmeniz gereken:
Her programda ilk olarak main fonksiyon
çalışıtırılır.Programımızı bu main fonksiyon
içinde "{" ve "}"
işaretleri arasına yazacağız.

cout << "Hello World!";

Yavaş
yavaş kodları öğrenme vakti geldi. Burada bakınca anlayacağınız üzere
ekrana yazı yazdırıyoruz. "cout" ekrana yazı yazdırma
komutudur, ilk başta bir kütüphane belirtmiştik,bu kod onun bir
parçasıdır yani "iostream" kütüphanesinin bir
kodudur. iostreami programın başında
tanımlamazsanız , "cout" bir işe yaramaz program hata
verir.
cout komutundan sonra
"<<" işaretleri ile bilginin akış yönünü
belirtiyoruz. Tırnak içinde yazılmış olan cümleden sonra
"cout" koduna doğru "<<"
işaretleri koyuyoruz.İleride kullanıcıdan bilgi alacağımız zamanlarda bu
işaretlerin yönü değişecek ve örnek kullanımlarını görünce daha iyi
anlayacaksınız.
Satırın en sonunda ";"
işareti vardır, bu komutun bittiğini gösterir, Kullandığımız her
komuttan sonra kullanmamız gerek yoksa program hata verir, çünkü komutun
hala devam ettiğini düşünüp diğer yazılarıda bu komutun parçası olarak
algılamaya çalışır. işimiz bitince ";"
komutuyla sonlandırıyoruz satırı.

Cout ile bir şey yazdıracağımız zaman eğer bu yazdıracağımız şeyler cümle yapısında ise gördüğünüz gibi tırnak içinde yazıyoruz;
Eğer daha önceden tanıttığımız bir değişken ise tırnak koymayız o zaman, bunu ileride örneklerle daha iyi anlayacaksınız.

cout << "Hello World!";
cout << "How are you";


yazarsak, derleyici bu iki ayrı cümleyi araya boşluk koymadan yan yana yazacaktır.


Bir ekran çıktısından sonra alt satıra geçmek için "endl" ifadesini kullanırız;

cout << "Hello World!" << endl;
cout << "How are you";


şeklinde yazarsak alt satıra geçtikten sonra "How are you" yazar.


cout
ile birden fazla değişkeni sürekli <<
kullanarak tek kod ile yazabiliriz aynen aşağıdaki resimde olduğu gibi.


Burda bilmeniz gereken: cout ile yazı yazdırılır."endl" alt satıra geçişimizi sağlar. ";" ile kod sonlandırılır.


system("pause");

Bunu
bilmenize gerek yok, sadece yazıları ekranda tutmak için kullandık,
ileride öğreneceğiz bunları,normalde programı çalıştırınca yapması
gerekenleri yapar ve kapanır pencere ve bu çok hızlı olur. "Hello world"
yazısını neredeyse göremezsiniz bile.Bu satırla "Bir tuşa başınız gibi
bir yazı yazar ve ekranı siz bir tuşa basana kadar tutar, ve siz
programınızın çıktılarını görürsünüz.Hello world yazısını görebilmek
için yazdık bunu.

Burda bilmeniz gereken:
bir tuşa basana kadar program kapanmasın istiyorsak
kullanırız bunu,ve çok anlamayı hedeflemeyin bunu ileri düzey şimdilik.

return 0;

Fonksiyonlar
konusunda anlatacağım bunları "int main()" ibaresini
de anlatmamıştım pek bunlar aynı konu içinde anlatılacak şimdilik
bilmenize gerek yok.
Yazdıklarımda yanlış ve hata arayanlar için
yazıyorum bunu Smile fonksiyonun ne değer döndürdüğünü gösteriyor bu
satır.Yeni başlayanlar için gereksiz bilgi.

Burda bilmeniz gereken: Main fonksiyon sonuna yazmanız gerekiyor bunu, ezberleyin.

Bu
arada ekleyeyim hemen program yazarken kodlar arasındaki boşlukların
hiç bir önemi yok derleyici tarafından birinci boşluktan sonraki
boşluklar yok sayılır.Acaba bu kodlar arasında boşluk var mıydı yok
muydu diye düşünmeyin hiç bir zaman.Yani Sadece tanımlamalar yapacağımız
zaman gerekecek; Programın ilk satırladındaki gibi birer boşluk şartı
var ama fazlasını istediğiniz kadar boşluk koyun farketmez program yine
çalışır.Daha sonra kullandıkça görecek daha iyi öğreneceksiniz.

Aşağıda
iki örnek verdim iki şekildede çalışır boşluklar satır farkları hiç
önemli değil,derleyici kodları birbirinden ayırmak için ";" işaretini
kullanır. Bu işareti görene kadar aynı kodun devamı olarak görür
yazanları.





Artık başlayalım,daha başlamamıştık Smile


DEĞİŞKENLER ve VERİ TİPLERİ


Şimdi
arkadaşlar size desemki 5 sayısını aklınızda tutun, sorna desemki
ikinci olarak 2 sayısınıda aklınızda tutun, 5 ve 2 sayıları şu anda
beyninizde bir yerdelerde 1. sayı ve 2. sayı olarak tutuluyor.Şimdi
desemki 1. sayıyı 1 arttırın hemen beynininzden(5+1=6) yaparsınız ve 1.
sayı 6 oldu diye düşünürsünüz. Sonra desemki 2. sayıyı 1. sayıdan
çıkartın ve sonucu söyleyin hemen (6-2=4) diyeceksiniz.

a=5; (5)
b=2; (2)
a=a+1; (a = 5+1= 6)
Sonuc=a-b; (sonuc = 6-2 = 4)

İşte
aynı sistem programlamada da vardır.Hatırlanmasını istediğimiz, daha
sonra kullanacağımız bilgileri hafızada tutulmaları için isimlendirir,
ve ne tip bir bilgi olduklarını programımızda belirtiriz.Bu verileri
daha sonra program içinde aksi belirtilmediği sürece
değiştirebiliriz.Yalnız dikkat etmemiz gereken nokta C++ dilinde küçük
harf büyük harf duyarlılığı vardır.Diyelimki hafızada tutulması için iki
değişken isimlendirdiniz. Birinci_sayi ve
birinci_sayi aynı şeyler değildir.bu ikisinide farklı
olarak algılar.Bu isimlendirmelerde bazı kurallar vardır

Kural1: Büyük küçük harf duyarlılığı vardır
Kural2:
Türkçe karakterler kullanılmaz,(İ,ç,Ç,ş,Ş,ğ,Ğ gibi ama küçük İ, yani i
harfi ingilizce karakter olduğu için kullanlabilir.i harfinin Büyük
yazılışı I şeklindedir ingilizcede, programlamadada böyle kullanılır)
Kural3: Değişken isimleri sayı ile başlayamaz."_" kullanılabilir. ama diğer simgeler kullanılamaz.
Kural4: değişken isimleri programda kullanılan kodlarla aynı olamaz.

Bu
bahsettiğimiz değişkenlerin tam olarak nasl tanımlandığını anlatmadan
önce değişken tiplerini anlatmamız gerek, yani hafızada tutulmasını
istediğimiz bilginin çeşidi nedir bunu belirtiyoruz, sayı mı, harf mi,
yazı mı programa bildirmemiz gerek.

char
---> Bu değişken tipinde tek bir karakter
yada 1 byte yani 8 bit uzunluğundaki küçük tam sayılar saklayabiliriz.
-128 ile 127 arasında herhangi bir değer alabilir.Gördüğünüz gibi sayı
doğrusunun sağında ve solunda aynı sayıda değer alabiliyor.Değişkenleri
işaretsiz olarak belirtirsek yani "unsigned"
olarak tanımlarsak negatif alabileceği değerlerden feragat edilir o
değerleri pozitif değerlere ekleyerek alabileceği pozitif değerler
arttırılabilir.

Yani char tipindeki değişkenimizin
"unsigned"(işaretsiz) olduğunu programa belirtirsek -128 den 127ye kadar
değilde 0 dan 255e kadar yapabiliriz.

Bu nerede kullanılabilir
mesela,örneğin ASCII kodlarıda böyle çalışır. Klavyeden
çıkartabileceğimiz her karakterin bir ASCII kodu vardır biliyorsunuz.
ASCII kodları 0-255 arası değişir.255 karakterden de faydalanmak için
için char tipini unsigned olur.
[URL="http://tr.wikipedia.org/wiki/ASCII_tablosu"]ASCII
tablosu - Vikipedi[/URL] adresinden her karakterin karşılık değildiği
sayıyı öğrenebilirsiniz. Şimdi işimize yaramayacak ama ne işe
yaradıklarını bilesiniz diye veriyorum, anlamadıysanız çok önemli değil.

Burda
bilmeniz gereken kısım :
char tipinde tek karakterlik
değişkenler tutabiliriz, matematiksel anlam ifade etmezler, öğreğin "k"
harfi yada "2" bunları matematiksel olarak nitelendirmez program sadece
yazı olarak görür.


int
---> En çok kullanacağımız değişken tipi
budur,int integer'in kısaltmasıdır yani tam sayı
anlamına gelir. örneğin 5 sayısı, 1299 sayısı tam sayılardır bu tip
değerler saklamak için bu değişken tipini seçeriz.Bu değişken tipi RAMde
4 byte yabi 4x8= 32 bit yer kaplar, yani 32 tane 1 veya 0 dan oluşan
bir sayı olarak hafızada saklanır.
siz 1 sayısını int oalrak
saklamak istediğinizde "00000000000000000000000000000001" sayısını
hafızada tutar.Birazdan göreceğiz eğer çok küçük sayılarla işlemler
yapıyorsanız RAMde kullandığımız alanı düşürmek adına başka değişken
tipleri kullanmanız gerekebilir.
Şunuda söylemekte fayda
var, bu değerler işletim sisteminin kaç bit olduğuna göre değişiklik
gösterir,32 bit sistemlere göre rakamlar veriyorum, 64 bit yada 16 bit
sistemlerde farklı değerlerde yer kaplarlar hafızada
.

int
değişken tipi -2147483648 ile 2147483647 arasında herhangi bir değer
alabilir "unsigned int" oalrak 0 ile
4294967295(yaklaşık 4,3 milyar) değer alabilir.


short
int
---> int değişken tipinin
aynısıdır yalnız alabileceği değerler daha azdır çünkü hafızada int
gibi 4 byte değil sadece 2 byte yani 16 bit yer kaplar.
siz 1
sayısını short int oalrak saklamak istediğinizde "0000000000000001"
olarak saklar. int tipinin yarısı kadardır hane sayısı, doğal olarak RAM
kullanımı biraz daha düşecektir.

short int
tipi değişkenler -32768 ile 32767 arası değer alabilir ama
işaretsiz olarak yani "unsigned short int" olarak 0
ile 65535 arası değerler alabilir.


bool
---> bool değişken tipi doğru yada yanlış
olmak üzere iki değer alır sadece, bool tipine göre Değişken ya
False yada True olabilir.Hafızada
1byte yer kaplar.True=1,False=0 dır.


float
---> Ondalıklı sayıları tutmak için
kullanılır, Virgülden sonra 7 basamak duyarlığa sahiptir.4 byte yer
kaplar hafızada. örneğin; 3.14 yada 2.54903 gibi sayılar.

NOT: C++ ta ondalıklı sayılar virgül ile değil nokta ile yazılır 12,26 yanlıştır 12.26 olmalıdır.


double
---> float tipinin daha yüksek duyarlıklı
halidir.Virgülden sonra 15 basmak duyarlığa sahiptir, 8 byte yer kaplar
hafızada. (15.56)

wchar_t
---> Char tipiyle hemen hemen aynıdır
fakat bunun farkı geniş bir karakter desteği sunar, unicode dediğimiz
dünyadaki tüm dillerin tüm karakterlerini içeren bir yapıdır, ASCII de
255 karakter limiti olduğu için sadece kendi dilinizdeki işletim
sisteminin ayarlarına göre karakterler çıkartabilir. diyelimki Türkçe
işletim sisteminiz var. Her hangi bir japonca harfi kullanmakta sorun
yaşarsınız, ama unicode desteği ile bu soru ortadan kalkar çünkü tüm
karakterlerin birer sayısal değeri vardır unicode'da.
İşte bu değişken tipi bu desteği sunar.Şimdilik pek işimize yaramayacak ama bilmenizde fayda var.


DEĞİŞKEN TANIMLAMA

Değişken
tanımlarken öncelikle değişkenin tipini yazıyoruz daha sonra bir boşluk
bırakıp bir isim veriyoruz ev ";" ile
sonlandırıyoruz.

Daha önce de dediğim gibi değişken isimleri
sayıyla başlayamaz, boşluk içeremez, "_" içerebilir"
ve büyük ve küçük harf duyarlılığı vardır, yani "h" ile "H" farklıdır.

int sayi;

yada

double pi_sayisi;


istersek aynı satırda birden fazla tanımalama yapabiliyoruz aralara vigül koyarak.

int sayi1,sayi2,sayi3,sayi4;

Aşağıdaki ifade bunun aynısıdır.

int sayi1;
int sayi2;
int sayi3;
int sayi4;


Değişken tanımlarken unsigned yani işaretsiz tanımlama yapmak için şu şekilde yaparız.


unsigned int sayi5;


yada işaretli olduğunu özellikle belirtmek istersek

signed int sayi 6;

yazabiliriz ama bu aşağıdaki ile aynıdır.

int sayi6;

Hiç
bir durum belirtmedikçe signed yani işaretli (-,+) arası bi değer
kümesi belirtir.onun için başıan signed yazmak vakit kaybıdır.

Bu
değişkenleri tanımladıktan sonra program içinde herhangi istediğimiz
bir yerde yada tanımlama satırında bu değerlere sayılar atayabiliriz;
Atama işlemlerini eğer istersek aşağıdaki şekillerde yani programın tanımlama yaptığımız ilk başında da belirtebiliriz.


Dikkat
ederseniz char tipindeki değişkene atama yaparken tek tırnak içine
alıyoruz.'h' ama cout ile yazı yazdırırken çift tırnak (" ") kullanırız,
buna dikkat edelim.


NOT: Değişkene değer atamanın başka bir yolu ise

int a=5; yerine int a(5); yazmaktır.İkiside aynıdır.

Bu
anlattıklarımızdan sonra şöyle bir eksiğin olduğunu hissetmeniz
gerekiyor, Kocaman bir cümleyi yani birden fazla
kelimeden oluşan yada boşluk içeren bir cümleyi nasıl hafızada
tutabiliriz?


işte burda devreye
"string" sınıfı giriyor, Strign bir değişken tipi
değildir ama yukarıda bahsettiğim ihtiyacı karşılamak için meydana
getirilmiş bir çözümdür.Bunu kullanabilmek string
kütüphanesini programımıza ilk başta eklememiz gerekiyor.


Onun dışında kullanımı diğer değişken tiplerindeki gibidir.


Birde
bazı kaçış dizileri vardır, örneğin "
yazdırmak için, \ yazdırmak için
yada ' yazdırmak için gibi daha bir çok işte
kolaylık sağlayan bu karakter dizilerini kullanabiliriz.Aşağıda bir
siteden bulduğum güzel bir tablo şeklinde bunların listesi ve örnek
kullanımlarını görebilirsiniz.





OPERATÖRLER


"+" --> Anlaşılacağı üzere toplama işlemi yapmaya yarar

"-" --> Çıkartma işlemi yapmaya yarar

"/" --> Bölme işlemi yapmaya yarar

"*" --> Çarpma işlemi yapmaya yarar

"%" --> Mod alma işlemi yapmaya yarar,

örnek:
"a= 11 % 3" yaparsanız 11 sayısını 3
sayısına böler, kalan sayıyı a'ya atar yani a=2
olur.

İşlem önceliklerinide unutmamamız lazım, öncelikler aynen matematikteki gibidir, Aşağıdaki örnete daha iyi anlayacaksınız.


Şimdi bazı işlerimizi kolaylaştıran operatörlere bakalım;Örneklerle açıklamak daha yerinde olur

"+="
---> a += 5; ---> a =
a+5
; Yani a'yı 5 arttır demiş olduk.

örnek: x += x; ----> x= x+x;



"-="
---> a -= 5; ---> a =
a-5;
Yani a'yı 5 azalt demiş olduk.

örnek: a -= b+8; ----> x= x+(b+Cool;



"*="
---> a *= 5; ---> a =
a*5;
Yani a'yı 5 kat arttır demiş olduk.

örnek: x *= y+3; ----> x= x*(y+3);




"/="
---> a /= 5; ---> a =
a/5;
Yani a'yı 5 kat azalt demiş olduk çünkü 5e böldük

örnek: x /= y*z; ----> x= x/(y*z);



"%="
---> a %= 5; ---> a =
a%5;
Yani a'yı 5e böl ve bölme işleminden kalan değer kaçsa o
değer a olsun.

örnek: x %= y%2; ----> x= x%(y%2);



"++"
---> 1 arttırma işaretidir. diyelimki b=3; ve
a=b++; yaparsak a=4 olur.

Örnek: a++; yaparsak a'yı 1 arttırmış oluruz
Örnek: ++a; yukardaki ile aynıdır iki şekildede yazılır.




"--"
---> 1 azaltma işaretidir. diyelimki b=3; ve
a=--b; yaparsak a=2 olur.

Örnek: a--; yaparsak a'yı 1 azaltmış oluruz
Örnek: --a; yukardaki ile aynıdır iki şekildede yazılır.



Bunların
dışında bir çok operatör daha vardır ama şu anda anlatırsam onları,
kullanabileceğimiz konuları görmediğimiz için havada kalacak, kafanız
karışacak, ileride yeni konularla birlikte hepsini göreceğiz.

cout
ile ekrana yazı yazdırmayı görmüştük daha önce, şimdi
kullanıcıdan bilgi isteyeceğimiz zamanlar ne kullanmamız
gerekiyor
onu görelim.Bunun için "cin"
komutunu göreceğiz."cin" komutuda
"cout" gibi
kütüphanesine aittir.

cin >> degisken_adi; şeklinde kullanılır.


Dikkat
ederseniz okların yönü ters tarafa bu defa, cout ile
ekrana yazdırdığımız için yazıyı ekrana doğru yönlendiriyorduk ve ok
yönleri ona göreydi, şimdi ise ekrandan değişkene doğru bilgi akışı var
onun için ok yönleri değişken adına doğru. Şimdi örnekle
somutlaştıralım.


Yalnız
"cin" ile string tipinde bir cümle yani boşluk içeren bir değişken
alacağınız zaman boşluktan sonrasını almaz siz yazsanızda boşluğa kadar
alır diğerini görmezden gelir.Aşağıdaki örneği yazıp çalıştırırsanız ne
demek istediğimi daha iyi anlayacaksınız,


yani diyelimki isim olarak "Cahit Arman" girip entera basarsanız Değişkene sadece "Cahit" kelimesini atar.

Bu
gibi durumlarda string değişkenimiz içine boşluk içerek bir yazı
atamamız gerekiyorsa getline fonksiyonunu kullanırız.

getline(cin,degisken_adi); bize tüm satırı komple okumayı entera basana kadar okumayı sağlar.


Bu
dersimizde son olarak başka bir kütüphaneden bahsederek
"<<" işareti ve yönü hakkındaki yani akış yöünü
konusunu daha somutlaştırmak istiyorum

stringstream();
fonksiyonu okuduğumuz string tipi değişkeni yani sayısal değeri olmayan
verimizi herhangi bir sayısal değişkene aktarabilmeyi sağlar.Böylece
kullanıcıdan her bilgi aldığımız zaman yeni bir değişken tanımlamak
sorunda kalmayız. Sadece bir stringimiz olur ve her kullanıcı girişinde
onu kullanıp diğer istediğimiz değişkene aktarabiliriz, böylece RAM
konusunda tasarruflu davranmış oluruz.

strignstream fonsiyonuun
kullanabilmek için
kütüphanesini eklememiz gerekiyor programa.

örneğin:

string yazi;
int yil;
stringstream(yazi) >> yil;


aşağıda daha somut bir örnek yapacağım.

stream
ingilizce akış anlamına gelmektedir, Bir verirnin akışı söz konusu
olduğunda << yada >>
işaretlerinin önemi oraya çıkmaktadır.Veri akışının yönünü gösterirler
her zaman.
Aşağıda örnekte daha iyi anlayacağız burdaki amacımız
kullanıcıdan her bilgi aldığımızda yeni bir string oluşturmamıza gerek
kalmamasıdır, RAM tasarrufu sağlıyoruz bu şekilde. Büyük programlarda
işimize yarayabilir.


Bu
Dersimizin sonuna geldik arkadaşlar, aşağıda yazdığım birkaç basit ödev
var, yapmaya çalışır, uğraşırsanız yolu sonu aydınlık...

ÖDEVLER:

1- Kullanıcıdan Adını ve soyadını, doğum tarihini alıp ekrana "Ad soyad X yaşındadır" yazdırınız.
Ad ve soyadı ayrı ayrı değişkenler olsun.


2- Kullanıcıdan 5 tane sayı girmesini isteyip,
bu 5 sayı 2 kat arttırınız,
sonra hepsini birer azaltınız ve aritmedik ortalamasını hesaplayınız.Çift tırnak içinde gözüksün ekranda.
Ekrana
aritmetik ortalamasını yazdırınız sonra bir alt satıra bu ortalamanın 5
ile bölümünden kalanı yazdırınız. Bu sayı da tek tırnak içinde gözüksün
ekranda.


3- Kullanıcıdan bir
atasözü yazmasını isteyin, bu atasözü komple tek bir değişken olsun,
sonra çift tırnak arasıdna ekrana yazdırınız.


4-
Kullanıcıdan Bir dairenin yarı çapını girmesini isteyin, ve bu
ölçülerdeki dairenin alanını ekrana yazdırınız.


5-
TC kimlik numarasını sayısal olarak programımızda nasıl
kullanabiliriz,nasıl bir değişkene atayabiliriz(araştırma
ödevi)


6- "define" ve "const" kavamlarını araştırınız ve ne işe yaradığını anlayınız.(Araştırma ödevi)


Arkadaşlar Sormak istediğiniz herşeyi konu altında sorabilirsiniz.


Özel mesaj yoluyla soru sormayın buraya sorunki herkes cevabından faydalansın.

Herkese iyi çalışmalar, inşallah hayırlı olur hepimiz için...

Theodore Maxwell,Botkings
[/QUOTE]
avatar
EMO
EMO Team
EMO Team

Cinsiyet : Erkek
Burçlar : Yay
Yılan
Mesaj Sayısı : 184
Puan : 109193
Rep Puanı : 5
Doğum tarihi : 28/11/89
Kayıt tarihi : 18/05/11
Yaş : 27
Nerden : EMO world
İş/Hobiler : RCE Student / Game Hacking / Learn Beginner C#,C++,Delphi
Lakap : EMO

Kullanıcı profilini gör

Sayfa başına dön Aşağa gitmek

Önceki başlık Sonraki başlık Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz