18 Ocak 2013 Cuma
Mehmet Ali Birand'ı kaybettik
Cimbom'a 'Paşa' tokatı

Android kullananlar dikkat
Eğer bu uygulamayı Android cebinize indirdiyseniz, başınız büyük dertte olabilir
Facebook'un geçtiğimiz hafta 1 milyar dolar vererek satın aldığı, resim düzenleme ve paylaşma uygulaması Instagram gün geçtikçe popülerleşmeye devam ediyor.
Facebook'un geçtiğimiz hafta 1 milyar dolar vererek satın aldığı, resim düzenleme ve paylaşma uygulaması Instagram gün geçtikçe popülerleşmeye devam ediyor. iPhone kullananlar dikkat!
iPhone kullanıcıları iOS 6 yazılım güncellemesi yaptıktan sonra gönderdiği toplu mesajların MMS olarak ücretlendirildiği için gelen kabarık cep faturalarından şikayet etti. Gsm operatörleri İphone kullanıcılarını “ Facebook sekranizasyonuz açık ve rehberinizdeki kişi Facebook hesabınızda da ekli ise gönderdiğiniz kısa mesajlar otomatik olarak multimedya mesajı olarak gönderiliyor”şeklinde uyardı.
iPhone kullanıcıları 400 TL'ye varan cep faturaları ile karşılaşınca GSM operatörlerini topa tuttu.“Özel günlerde gönderdiğim toplu mesajlar kısa mesaj yerine multimedya mesajı olarak ücretlendirilmiş” şeklinde gelen şikayetleri inceleyen Şikayetvar.com şikayetçilerin GSM operatörleri ile görüştüğünde kabarık gelen cep faturaların nedenini ortaya çıkardı.
iPhone kullanıcıları 400 TL'ye varan cep faturaları ile karşılaşınca GSM operatörlerini topa tuttu.“Özel günlerde gönderdiğim toplu mesajlar kısa mesaj yerine multimedya mesajı olarak ücretlendirilmiş” şeklinde gelen şikayetleri inceleyen Şikayetvar.com şikayetçilerin GSM operatörleri ile görüştüğünde kabarık gelen cep faturaların nedenini ortaya çıkardı.
Nokia ve diğerleri...
Windows Phone'lu ceplerden hangisi ne kadar satıyor? En çok satan cep hangisi? Cevaplar haberimizde!
Windows Phone, pazar payını artırmaya devam ediyor. AdDuplex, Windows Phone'lar hakkında her ay bir istatistik yayınlıyor. Her ne kadar yayınlanan son rapor Aralılık ayının bitiş haftasını gösteriyor olsa da yeni rapor birkaç gün içerisinde yayınlanacak.
Windows Phone, pazar payını artırmaya devam ediyor. AdDuplex, Windows Phone'lar hakkında her ay bir istatistik yayınlıyor. Her ne kadar yayınlanan son rapor Aralılık ayının bitiş haftasını gösteriyor olsa da yeni rapor birkaç gün içerisinde yayınlanacak.
7 Ocak 2013 Pazartesi
MiceTR Transformice PVP
Tanıtım videosu:
WwW.MiceTR.CoM
1 Yıldır Sizlere hizmet vermekteyiz.
Ultra Hizmet için 2 pvp server olduk..
Herkes bizi tercih ediyorsa bu bir tesadüf değildir! MiceTR www.micetr.com
WwW.MiceTR.CoM
1 Yıldır Sizlere hizmet vermekteyiz.
Ultra Hizmet için 2 pvp server olduk..
Herkes bizi tercih ediyorsa bu bir tesadüf değildir! MiceTR www.micetr.com
6 Ocak 2013 Pazar
PC oyunları gerçek dünya ile birleşiyor

2012 yılında satışı en çok artan ürünler içerisinde yer alan tabletler ve akıllı telefonlar, oyuncak sektörüne de girmeyi başardı. Tablet oyunları sayesinde gerçek oyuncaklar ve sanal alem bir araya geliyor.
Online alışveriş ve karşılaştırma sitelerinden elde edilen verilere bakıldığında, 2012 yılı için “Tablet bilgisayar yılı oldu” demek yanlış olmaz. Önceki yıl online alışveriş satışlarında ilk 10’a bile giremeyen tabletler, 2012 yılında ilk sıradaki akıllı telefonların ardından en çok satılan ikinci ürün kategorisine yerleşmeyi başarmış.
Tabletler ve akıllı telefonlar, mobil hayatın gerektirdiği günlük işler, işlemler, sosyal medya kullanımı kadar oyun tutkunları ve çocuklar için de bulunmaz bir araç. Ulusal oyuncak magazin dergisi Toys ‘un Aralık 2012-Ocak 2013 tarihli 4.sayısının kapak konusu da bu nedenle tablet oyunlarına ayrıldı.
Yalnızca çocukların değil bilgisayar oyunu tutkunu yetişkinler için de müthiş bir deneyim olan, bir tür “artırılmış gerçekçilik” sayabileceğimiz tablet ve akıllı telefon oyunları, gelişen teknoloji ile birlikte artık cihaz ekranından dışarı taşmaya başladı.
Bir zamanlar elimizle uçurduğumuz uçak, rol oyunlarında yerine geçtiğimiz maskot kahramanlar, oyunlarında birbirimize doğrultarak ateş efekti yaptığımız silahlar ya da ellerimizle yarıştırdığımız oyuncak arabalar artık günümüz tablet teknolojisiyle birleşerek sanal alemin içine giriyorlar.
Ya da sanal alemi gerçek dünyaya yaklaştırıyorlar. Oyuncak dergisi Toys'ta tanıtılan iki konseptten birisi AppGear adı verilen maskot serisi. Seride yer alan oyuncakları, uygulama marketlerinden indirdiğimiz oyunları oynarken kullanıyoruz. Mesela zombi kahramanımızı uyumlu olarak programlandığı oyun açıkken ekran üstüne koyuyor ve oyunu onunla oynuyoruz. Savaş oyunları sevenler, satın aldıkları tabancanın üzerindeki yuvaya akıllı telefonlarını monte ederek oyundaki düşmanlarını bu gerçek tabancayla alt edebiliyor. Ya da oyuncak uçağımızı, kendi oyununu açarak tabletle entegre ediyor ve hem oynanabilirliği artırıyor, hem de artırılmış gerçeklilik teknolojisi ile sanal dünyayla gerçeği birbirine yaklaştırıyoruz.
Tabletler ve akıllı telefonlar, mobil hayatın gerektirdiği günlük işler, işlemler, sosyal medya kullanımı kadar oyun tutkunları ve çocuklar için de bulunmaz bir araç. Ulusal oyuncak magazin dergisi Toys ‘un Aralık 2012-Ocak 2013 tarihli 4.sayısının kapak konusu da bu nedenle tablet oyunlarına ayrıldı.
Yalnızca çocukların değil bilgisayar oyunu tutkunu yetişkinler için de müthiş bir deneyim olan, bir tür “artırılmış gerçekçilik” sayabileceğimiz tablet ve akıllı telefon oyunları, gelişen teknoloji ile birlikte artık cihaz ekranından dışarı taşmaya başladı.
Bir zamanlar elimizle uçurduğumuz uçak, rol oyunlarında yerine geçtiğimiz maskot kahramanlar, oyunlarında birbirimize doğrultarak ateş efekti yaptığımız silahlar ya da ellerimizle yarıştırdığımız oyuncak arabalar artık günümüz tablet teknolojisiyle birleşerek sanal alemin içine giriyorlar.
Ya da sanal alemi gerçek dünyaya yaklaştırıyorlar. Oyuncak dergisi Toys'ta tanıtılan iki konseptten birisi AppGear adı verilen maskot serisi. Seride yer alan oyuncakları, uygulama marketlerinden indirdiğimiz oyunları oynarken kullanıyoruz. Mesela zombi kahramanımızı uyumlu olarak programlandığı oyun açıkken ekran üstüne koyuyor ve oyunu onunla oynuyoruz. Savaş oyunları sevenler, satın aldıkları tabancanın üzerindeki yuvaya akıllı telefonlarını monte ederek oyundaki düşmanlarını bu gerçek tabancayla alt edebiliyor. Ya da oyuncak uçağımızı, kendi oyununu açarak tabletle entegre ediyor ve hem oynanabilirliği artırıyor, hem de artırılmış gerçeklilik teknolojisi ile sanal dünyayla gerçeği birbirine yaklaştırıyoruz.
Sony'den korsana ağır darbe
Sony'nin popüler oyun konsolu PlayStation 3'ün bir sonraki sürümü için kullanılması beklenen NFC teknolojisi oyunseverler için kabus olabilir.
Sony'e yakın kaynaklardan biri olan NeoGAF'ın yaptığı açıklamaya göre Sony, korsana darbe indirmek için NFC (Yakın Alan İletişim) teknolojisinden faydalanacak. Böylece her bir oyun tek bir konsola bağlanacak.
OYUNCUYA NE ZARARI VAR
Sony'nin bunu gerçekleştirmesi halinde arkadaşlar arası oyun takası da mümkün olmayacak; zira bir oyun sadece bir konsola bağlı olacağından başka konsollarda oyun çalışmayacak.
Sony bu şekilde korsanı önler mi bilinmez ama oyunseverlerin bu güvenlik önlemini pek hoş karşılamayacağı söylenebilir.
Sony'den konuyla ilgili resmi bir açıklama gelmezken; yeni konsolun 2014'te satışa sunulması planlanıyor.
OYUNCUYA NE ZARARI VAR
Sony'nin bunu gerçekleştirmesi halinde arkadaşlar arası oyun takası da mümkün olmayacak; zira bir oyun sadece bir konsola bağlı olacağından başka konsollarda oyun çalışmayacak.
Sony bu şekilde korsanı önler mi bilinmez ama oyunseverlerin bu güvenlik önlemini pek hoş karşılamayacağı söylenebilir.
Sony'den konuyla ilgili resmi bir açıklama gelmezken; yeni konsolun 2014'te satışa sunulması planlanıyor.
Galaxy S4 ortaya çıktı
SamMobile isimli sitede yayınlanan fotoğrafta yıl sonuna doğru satışa sunulması beklenen Galaxy S4 ilk kez karşımıza çıkıyor. Şubat ayı sonunda Barselona'da gerçekleştirilecek Dünya Mobil Kongresi'nde kamuoyuna tanıtılacak olan cihazın tasarımı Galaxy S3'e benziyor.
Android işletim sistemini kullanan cihazın ekranı ise SIII'e göre daha büyük bir yapıda bulunuyor.
S4'ün donanımsal özellikleriyle ilgili henüz bir bilgi yok.
Samsung'un Galaxy S3'ten sonra beklenen yeni akıllı cebinin ilk fotoğrafı internete sızdı.
Harika Server WwW.MiCeTR.CoM !.
Harika server WwW.MiCeTR.CoM
Arkadaşlar gerçekten güzel server. Sizin için 2 adet server sunduk.
2 Adet server ile harikalığı yaşayın!
Arkadaşlar gerçekten güzel server. Sizin için 2 adet server sunduk.
2 Adet server ile harikalığı yaşayın!
Transformice New Vip Fly Hack I v1.58 I 02.01.2013 I YENİ |
Sizlere Yeni Çıkan Vip Fly Hackı Göstericem...
--------------------------------------------------------------------------------------------------------
Yazılı Anlatım İle Başlıyalım.. ;
1.Transformice.exe Açalım..
2.Hesabımıza Giriş Yapalım..
3.Rastgele Bir Odaya Gidelim..
4.Hackımızı Açalım..
5.1-Fly Hack'a Tıklayalım Ve 5 Saniye Bekleyelim..
6.Hackımızı Test Edelim..
7.2-Fly Hack'a Tıklayalım.. (Sunucu Atmaması İçin)
8.Hackımız Aktif First Bootcamp vb.. Kasabilirsiniz..
--------------------------------------------------------------------------------------------------------
Yazılı Anlatım İle Başlıyalım.. ;
1.Transformice.exe Açalım..
2.Hesabımıza Giriş Yapalım..
3.Rastgele Bir Odaya Gidelim..
4.Hackımızı Açalım..
5.1-Fly Hack'a Tıklayalım Ve 5 Saniye Bekleyelim..
6.Hackımızı Test Edelim..
7.2-Fly Hack'a Tıklayalım.. (Sunucu Atmaması İçin)
8.Hackımız Aktif First Bootcamp vb.. Kasabilirsiniz..
Transformice CMS(Site dosyaları)-Server Dosyaları(Filesler)-CMS Editleme-Bütün SWFler
Merhaba arkadaşlar şimdi açtığım konuda çok emek vardır.
Ve Bütün Linkler Hotfile dır!! (Dosya Tc Sürekli siliyor)
NOT: 4Shared'e Girmesse DNS Ayarlarınızı 8.8.8.8 ve 8.8.4.4 yapın!
DNS Ayarlamak için.. DNS Ayarlamak İçin Tıkla.
Anlatacağım konunun içindekiler:
• Bütün Server Doyalarını (Filesleri) Sizin için ayrı ayrı editliyip upload ettim..
• Bütün Transformice CMS (Site Dosyaları)
• Yüklediğiniz CMS'leri Editleme.. Dreamweaver CS5 İle (Linkleride Vericeğim)
• Transformice Server Kurma (Video) [1.40 - 1.41]
• Ve son olarak ta Bütün SWF Dosyaları.. (0.120 - 0.126 - 0.167 - 0.55 - 1.10 - 1.31 - 1.37 - 1.39 - 1.40) [HEPSİ DECOMPİLE EDİLEBİLİR!]
Şimdi Başlıyalım...
---------------------------------------------------------------------------------------------------
Önce Bütün Dosyalar..
Transformice CMS Dosyaları:
CMS Master

Ve Bütün Linkler Hotfile dır!! (Dosya Tc Sürekli siliyor)
NOT: 4Shared'e Girmesse DNS Ayarlarınızı 8.8.8.8 ve 8.8.4.4 yapın!
DNS Ayarlamak için.. DNS Ayarlamak İçin Tıkla.
Anlatacağım konunun içindekiler:
• Bütün Server Doyalarını (Filesleri) Sizin için ayrı ayrı editliyip upload ettim..
• Bütün Transformice CMS (Site Dosyaları)
• Yüklediğiniz CMS'leri Editleme.. Dreamweaver CS5 İle (Linkleride Vericeğim)
• Transformice Server Kurma (Video) [1.40 - 1.41]
• Ve son olarak ta Bütün SWF Dosyaları.. (0.120 - 0.126 - 0.167 - 0.55 - 1.10 - 1.31 - 1.37 - 1.39 - 1.40) [HEPSİ DECOMPİLE EDİLEBİLİR!]
Şimdi Başlıyalım...
---------------------------------------------------------------------------------------------------
Önce Bütün Dosyalar..
Transformice CMS Dosyaları:
CMS Master
| Bu Resim Küçültülmüştür.. Gerçek Boyuta Dönmek İçin Tıklayınız.. Orjinal Resmin Uzunlukları 800x420 |

Java Nedir, Nasil Calisir?
Java Nedir
Nasil Calisir?Java nedir
nasil calisir?Bu yazida java'nin basitce ne oldugunu
nasil calistigini ve java ile iliskili bazi kavramlari basitce ve bildigim kadari ile aciklamaya calisacagimOn bilgi.
Java Sun microsystems muhendislerinden James Gosling tarafindan gelistirilmeye baslanmis gercek nesneye yonelik
platform bagimsiz
yuksek performansli
cok islevli
yuksek seviye
interpreted[adim adim isletilen] bir dildir (son ozellik
yani adim adim isletilen konusuna aciklik getirilecek).Java ilk ciktiginda daha cok kucuk cihazlarda kullanilmak icin tasarlanmis ortak bir platform dili olarak dusunulmus. Ancak bakmislar ki platform bagimsizligi ozelligi C ve C++'tan cok daha ustun ve guvenli bir yazilim gelistirme ve isletme ortami sunuyor
hemen her yerde kullanilmaya baslanmis. Su anda ozellikle kurumsal alanda ve mobil cihazlarda son derece populer olan java
ozellikle J2SE 1.4 ve gelecek 1.5 surumu ile masautunde de gucunu arttirmayi hedefliyor. Java'nin ilk surumu olan Java 1.0 (1995) Java Platform 1 olarak adlandirildi ve tasarlama amacina uygun olarak kucuk boyutlu ve kisitli ozelliklere sahipti. Daha sonra platformun gucu gozlendi ve tasariminda buyuk degisiklikler ve eklemeler yapildi. Bu buyuk degisikliklerden dolayi gelistirilen yeni platforma Java Paltform 2 adi verildi ama versiyon numarasi 2 yapilmadi
1.2 olarak devam etti. Bu bahar cikacak Java 1.5
gecen 1.2
1.3 ve 1.4 surumlerinin ardindan en cok gelisme ve degisikligi barindiran surum olacak.Veri Sıralayıp Ekrana Yazdırmak
Bu uygulamada 100 elemanlı veriyi girdi olarak alıp sıralayıp ekrana yazdırmayı öğrenelim.
Kod:
/*100 elemanlı veriyi fonksiyon kullanarak ekrana yazdırma*/ #include<stdio.h> #include<conio.h> #define Boyut 5 void elemanlarigir(int []); void sirala(int []); void ekranayaz(int []);
Veri Sıralayıp Ekrana Yazdırmak
Bu uygulamada 100 elemanlı veriyi girdi olarak alıp sıralayıp ekrana yazdırmayı öğrenelim.
Kod:
/*100 elemanlı veriyi fonksiyon kullanarak ekrana yazdırma*/
#include<stdio.h>
#include<conio.h>
#define Boyut 5
void elemanlarigir(int []);
void sirala(int []);
void ekranayaz(int []);
int main(){
int A[Boyut];
elemanlarigir(A);
sirala(A);
ekranayaz(A);
getch();
return 0;
}
void elemanlarigir(int B[]){
for(int i=0;i<Boyut;i++){
printf("%d. Elemani giriniz: ",i+1);
scanf("%d",&B[i]);
}
}
void sirala(int B[]){
for(int i=0;i<Boyut;i++)
for(int j=i;j<Boyut;j++)
if(B[i]<B[j]){
int gecici = B[i];
B[i]=B[j];
B[j]=gecici;
}
}
void ekranayaz(int B[]){
for(int i=1;i<=Boyut;i++){
printf("%-9dt",B[i-1]);
if(i%5==0)
printf("n");
}
}
C++ Nedir ve Temel Dersler!
Temel Bilgiler
C++ bilindiği gibi programlama dünyasında en çok ilgi gören C dilinden türemiştir. C++'ı klasik C dilinden farklı yapan yanı; Nesne Yönelimli Programlamayı da ( Object Oriented Programming) C'nin sözdizimi kurallarıyla birlikte desteklemesidir. Normalde C ile sadece yapısal programlama yaparken C++ dili ile hem yapısal hem de nesne yönelimli programlar yazabilirisiniz. C++ diline başlarken önce dilin C'den gelen ve temel olan özelliklerini öğrenmek gerekir. Örneğin değişken tanımlama atama ve diğer basit aritmektik işlemler kontrol yapıları ve döngüler gibi.
Teknolojinin ulaştığı son noktadaki programlama dillerinden olan C ve C++ bir çok yeni ve güçlü özellikleri içerir. Derslerimiz devam ettikçe bunların teker teker içine gireceğiz. C dilinin özelliklerinin %80 i C++'da da mevcuttur (bu karşılaştırma şahsi görüşümdür). Zaten C++ C'nin üst gurubudur. Bunu şöyle sıralayabiliriz. C C++ ve C# dır.
C dilinin avantajları az komut kümesinden oluşması ve bu komutların diğer yüksek seviyeli dillere nazaran daha hızlı çalışmasıdır. Ayrıca C deki kütüphaneler sayesinde fonksiyon tanımlamanıza gerek kalmadan işlemlerinizi yapmak mümkün olacaktır. Bu konuda çok detaya inmeden programlamaya geçmek istiyorum. Çünküprogramlamaya başladığımızda her örnekten sonra o an kullandığımız programın içinde geçen fonksiyon hatadeğişken belirleyiciler kısıtlamalar notasyonlar v.s gibi bilgilerden ara ara bahsedeceğim. Yalnız çok önemli olan bir konuya burada değinmek istiyorum. C nin avantajlarını programlamayla birlikte görmek güzel ama C nin dezavantajlarını programlamadan önce bilmeliyiz ki bunlardan sakınalım. Öncelikle Tanımlayıcılardan bahsetmek istiyorum. Her derleyici ve assmbley için değişkenleri sabitleri etiketleri ve fonksiyon adlarını tanımlama kuralları vardır. Bu notasyonlara tanımlayıcı denir. C++ da tüm tanımlayıcılar a . . . z - A . . . Z harfleri ile ya da alt çizgi "_" ile başlar. Bundan sonra rakam harf ya da alt çizgi kullanılabilir. ANCI C uyumlu derleyiciler 31 karaktere kadar tanımlayıcı kabul ederler fakat tanımlayıcının ilk sekiz karakterini kullanmayı kendimize alışkanlık etmeliyiz. Dikkat etmemiz gereken özelliklerden biri de kullandığımız ifadelerdeki büyük küçük harflerdir. C ve C++ büyük ve küçük harf duyarlılığına sahiptir. Kullandığımız ifadeleri birbirinden farklı ve aynı ifade olarak kullanıyorsak programımız hata verecektir. Bunu bir örnekle anlatayım:
Program
PROGRAM
progRAM
ProgRam Bu şekilde tanımlarsak hepsi birbirinden farklı ifadeler olarak C++ da okunacaktır. Biz Şunu alışkanlık edinmeliyiz; tanımlayıcılarımızın baş harfi büyük olacak. Büyük ve küçük harf kombinasyonlarının kullanılması ile önceden yapılan tanımlamalar bazen işi zorlaştırabilir. Eğer bu değişkenlerden birini kullanmak isterseniz bu zamana kadar nasıl tanımladığınızı bilmeniz gerekir. Örneğin printf()`in PRINTF() olarak çağrılması durumunda " bilinmeyen tanımlayıcı " (Unknown identifier) hata mesajı vererek sizi uyarır. Buna benzer olarak %f ve %F kullanımı hata verdirecektir. Programlamayı yaparken bunlara dikkat etmemiz gerekecek. Çünkü bir değişkeni veya tanımlayıcıyı başta nasıl kullandıysanız üç dört sayfa kod yazdıktan sonrada aynı şekliyle kullanmak zorundasınızdır. İşte burada en büyük handikap yaşanacaktır. Çünkü C/C++ derleyicileri her zaman hatanın nerde olduğunu göstermez. Bunu programcı kendisi satır satır takip ederek bulacaktır. Bundan dolayı bu söylediklerime baştan dikkat etmemiz gerekiyor.
Tavsiyeler:
İyi bir programlama yapabilmek için benim size olan tavsiyelerim; daha az kod kullanarak daha çok işlem yapabilme. Gerçi bunu yapsak zaten profesyonel oluruz . Zaten C++ `ın paradigması da buradan geliyor. Aslında C++ da yapabileceğimiz tüm programları C de yapma olanağımız var ama bu bize hem fazla kod yazmayı gerektirecek hem de zaman kaybetmemize sebep olacak. Zaten bunlardan kaçındığımız için C++ diyoruz. Elimizde nesneye yönelik bir dil varken ve kullanacağımız fonksiyonlar içinde hazır olarak mevcutsa tabi bize de bunun keyfini sürmek kalıyor. Tavsiyelerimden biride derslerde verdiğimiz örneklerin dışında aynı algoritmaya benzer farklı örnekler yapın. Öğrenmenin en iyi yolu yanlış yapmaktır. Bunu şöyle izah edeyim: eğer yanlış yapıyorsanız ve de o yanlışın kaynağını bulup düzeltebiliyorsanız o an onu öğrenmişsiniz demektir. Tabi örnekler sizin için alıştırma olacaktır ve hafızanızda kalıcı bir yer tutacaktır. Bunca kodu başka türlü hafızada tutamayız. İlk başlarda sık sık not alınız mümkün olduğunca da bol örnek yapınız. Örneklerinizi de kendiniz düşünüp kendi hayal gücünüzle oluşturursanız eminim bu işi başaracaksınızdır. Başta çok zor gelebilir ama başarı ter dökülmeden olmaz. Bu kısmı fazla uzatıp sizi daha başlamadan C/C++ dan uzaklaştırmak istemiyorum.
C++ İle Programlamaya Giriş
İlk programımız!
// ilk1.cpp
// Ekrana "Bu benim ilk programım" yazdırıyoruz
#include <iostream.h>
int main()
{
cout << "Bu benim ilk programım";
return 0;
} Şimdi Yazdığımız programı inceleyelim:
"//" işaretini açıklama satırlarında kullanıyoruz. C++ derleyicisi bu notasyonla başlayan satırı okumaz. Bununla birlikte daha uzun cümlelerimiz olursa bunları da " /* */ " notasyonunun içinde yazıcağız. Bu özellik de C den bize kalma. Demiştik zaten C `nin tüm özelliklerini C++ içerir. Fakat biz genelde " // " yi kullanacağız.
#include <iostream.h> : Bu bizim C++ da bulunan kütüphane dosyamızı çağırmaya yarıyor. Ben size şöyle tarif edeyim. iostream.h kütüphanesindeki hazır olan " cout " fonksiyonunu çağırıyor. Yani buda bizim fazla kod yazmamıza engel oluyor. .h ile biten dosyalar kütüphane dosyalarıdır. Bunu şuna da benzetebiliriz. Farz edelim ki elimizde bir alet çantası var içinden tornavidayı çağırdığımızda vida sıkacağızdır. Bu da ona benziyor. C++ da ki hazır kütüphanelerde bir çok hazır fonksiyonlar vardır. İlerde Bu hazır fonksiyonlar işimizi görmemeye başlayınca kendi kütüphanemizi yapmaya başlayacağız. Tabi bu seviyeye geldiğimizde olayı hemen hemen kavramış olacağız tabi neden olmasın öyle değil mi?
Daha sonraki satır her C++ programında mutlaka bulunması gereken bir satırdır. Her C++ programında main() fonksiyonu olmak zorundadır; bu fonksiyonumuzun önünde ise o fonksiyonun dönderdiği değişkenin veri tipi olmalıdır. Tabi ki C++ fonksiyonlar ve onların dönderdikleri değerler konusunu da ileride işleyeceğiz.
Bir sonraki satırda ise; C++ fonksiyonlar ve kod blokları " { } " parantezleri arasında bulunmalıdır. main de bir fonksiyon ise onun içindeki kodlar doğal olarak { } parantezleri arasındadır.
Program derlenip çalıştırıldığında ise ( Turbo C++ 3.1 kullanıyorsanız ctrl+f9 kısa yoluyla programı çalıştırabilirsiniz (Run) ) karşımıza "Bu benim ilk programım" yazısı çıkacaktır. İşte bu yazıyı ekrana veren komut da iostream.h kütüphanesindeki cout fonksiyonudur.
Önemli bir nokta ise C++ dilinde her satır ifadenin sonuna " ; " koymak zorundayız. Bundan farklı olarak #include satırlarının ve bir kaç farklı satırın arkasına " ; " gelmez. Bunları ileride göreceğiz.
Return 0 : programımızın (aynı zamanda main fonksiyonumuzun) çıkış noktasıdır. Eğer return ile 0 değeri dönderirsek programımızın güvenle çıktığını işletim sistemine bildirmiş oluruz. Bu sayede güvenle programımızın çalıştığını göreceğiz.
Şimdi size bir örnek daha vereceğim bununla da aynı çıktıyı elde edeceğiz. Arasındaki farkları eminim basit olarak sizlerde göreceksinizdir.
// ilk2.cpp
// Ekrana "Bu benim ilk programım" yazdırıyoruz
#include <stdio.h>
main()
{
printf("Selam bu benim ilk programım.\n");
return 0;
} Evet şimdi burada çok fark varmış gibi gözüküyor aslında ama öyle değil. Sadece kütüphanemiz stdio.h oldu ve ekrana yazdır fonksiyonumuzda printf oldu. Bu özellik C den kalma. Bunlar diğer program ile aynı işlevi görüyor. Buradaki fark " \n " notasyonu. Bu noptasyon bir sonraki satıra geçmek için kullanılır. Bu notasyonlara Escape dizileri denir. Tablo olarak bunları size veriyorum. Son yazdığımız ilk2.cpp de yerlerine koyarsanız çalışacaktır.
Değişkenler
Şimdi bize yine çok lazım olacak bir özellik de değişken tanımlamak ve atama yapmaktır. Bunu bir örnek üzerinde anlatmak istiyorum. Örneğimiz;
// degisken.cpp
// Burda değişken tanımlamayı göreceğiz.
// Aynı zamanda verilen bir sayıyı kendisi ile carpma 2.2=4 gibi
#include <iostream.h>
#include <stdio.h> // kütüphane dosyamız
main()
{
int i; // Değişken tanımlama
cout << "Bir sayı giriniz: ";
cin >> i;
i=i*i;
cout << "sonuc: " << i ;
return 0;
} Burada bundan önce yaptığımız programlardan farklı olarak int i kullandık yani değişken tanımladık.
Değişken Nasıl Tanımlanır?
Değişkenleri tanımlamak için aşağıdaki şema kullanılır.
[Veri Tipi] [Değişken Adı];
Örneğin
int sayi;
Şimdi degisken.cpp örneğindeki int i; kısmını anlamışsınızdır. Burada değişkenlere değinmek istiyorum. Biz yukarda İçinde sayı tutan bir değişkeni tanımladık. Benzer olarak aşağıdaki tanımlamalar da vardır.
char c;
int i;
float f;
double d;
unsigned int ui;
Burada [Veri Tipi] [Değişken Adı]; bu kalıba göre tanımlama yaptığımız için önce Veri Tiplerini inceleyelim.
Veri Tipleri
1) İnt tip.
Integer = Tamsayı
Tamsayıları içerir. Bellekte 2 Byte tutar. DOS'ta ve Win3.1'de 16 bit uzunlugunda ama Windows9x WinNTWin200 ve WinXP 32 bit uzunluğundadır.
Değer aralıkları Short ve long için değişir.
Örnek: 5 -20 1 gibi.
2) Sort tip.
Tam sayıları içerir. 16 bit uzunluğundadır.
signed: -32768 ile +32767 arasinda değer alır unsigned: 0 ile 65535 arasinda değer alır.
3) Long tip.
Tam sayılar içerir. 32 bit uzunluğundadır.
signed: -2147483648 ile +2177483647 arasinda değer alır unsigned: 0 ile 65535 arasinda değer alır.
4) Gerçel Tipler (Float Double Long double)
Gerçel sayıları içerirler.
float : Bellekte 4 Byte yer tutar. 3.4E-38 ile 3.4E+38 aralığında değer alır. Hassasiyet 7-8 basamaktır.
double : Bellekte 8 Byte ter tutar. 1.7E-308 ile 1.7E308 aralığında değer alır. Hassasiyet 15-16 basamaktır.
long double : doublenin tipinin daha genişidir.1.2E-4932 ile 1.2E-4932 aralığında değer alır. Hassasiyet 19-20 basamak.
5) Char Tip
Char : Karakter
Alfanumerik karakterleri içerir. Ve ya 8 bit uzunluğunda tamsayı.
signed: -128 ile 127 arasinda değer alır unsigned: 0 ile 255 arasında değer alır.
Örneğin: ' 01234567... ' ' *-+... ' 'abc....ABCD '
6) Bool tip.
true(dogru) = 1 veya false(yanlis) = 0 değerini alır. Eski derleyiciler bu türü desteklemeyebilir. Yeni ANSI C++ standardında eklenmiştir. Bu soyut matematik gördüyseniz. "p V q" ya benzer ( matematikçiyiz konuşturalım azıcık). Değer aralığı ise ya 1 dir (doğru) yada 0 dır (yanlış).
7) Enum tip.
enum sıralanmış değerleri tutar. Short int ile aynı değeri taşır.
Başta Fazla Detaya inip sizi bunaltmak istemiyorum. Çünkü C++ dili başlarda karmaşık gelen bir dildir. Bu da zaten kendisini yüksek seviyeli bir dil yapıyor . Ben size Bu dilin temel özelliklerini anlatarak basit programlar yapmayı göstereceğim.
Bu temel bilgileri aldıktan sonra programlamaya geçebiliriz. Derleyici Olarak ben Turbo C++ 3.1 i tavsiye ederim. Şu an bununla başlar iseniz işiniz daha kolay olacaktır (bence). İlerde Borland a geçeceğiz.
Değişken tanımlama konusunda bir konuya daha değinmek istiyorum. Değişkenlere değer atama ve aynı anda bir çok değişken tanımlamamız C++ da mümkündür.
char c = 'c';
int i = 5;
Daha sonradan değer atama:
char c;
int i;
c = 'c ';
i = 5;
Bir de aynı anda bir çok değişken tanımlayalım.
Örneğin:
int x y z;
x = y = z = 5;
xyz' nın değeri 5 oldu
Bir sonraki derste ise değişkenlerle birlikte bir de Operatörleri ele alacağız.
Operatörler I
Operatör ve Operand nedir?
Bunu bir örnek üzerinde anlatmak istiyorum. Örneğin; x + y 'de x ve y operand + ise operatördür. Bu bir aritmetiksel operatördür. Matematikte işlemler operatörler ve operandlar ile anlatılır.
Operatörleri öncelikle türlerine göre ayıralım:
1) Aritmetiksel operatörler + - * / % ++ --
2) Karşılaştırma operatörleri < > <= >= == !=
3) Eşitleme operatörleri = += -= *= /= %= <= >>= &= != ^=
4) Mantıksal Operatörler ! || &&
5) Bit bazında işlem yapan operatörler & ! ^ ~
Aritmetiksel (Matematiksel) Operatörler:
Matematiksel ifadeleri günlük hayattaki biçimde bilgisayarda yazamadığımız için belli kurallara uymamız gerekir. Bu kısım önemli olduğu için biraz geniş yer vereceğim. Kullandığımız matematiksel işlemler ve anlamları şöyledir:
![[Resim: c26qr.jpg]](http://img232.imageshack.us/img232/404/c26qr.jpg)
Bu operatörle verilen iki veya daha fazla operand toplanabilir. Yazılış şekli Aşağıdaki gibidir.
değişken1 + değişken2
Eğer bu iki değişkeni Sonuç gibi başka bir değişkene atarsak eşitleme operatörüyle aşağıdaki gibi yaparız.
Sonuç = değişken1 + değişken2
Buna bir örnek verelim.
// toplama.cpp
//Vize ve final notlarinindan geçme notunu hesaplama
#include <iostream.h>
#include <math.h>
main()
{
int vize final ort;
vize = 10;
final = 80;
ort = vize * 0.4 + final * 0.6;
cout<< "Geçme notunuz: " << ort;
} Burada çarpma operatörünü de kullandık sanırım artık diğerlerinin de ne olduğunu kavramış oldunuz. Bir örnekte işi ucuza getirdim . Fakat bir artma ve bir azalmaya örnek verelim. Bu bana çok lazım olmuştu.
Burada dikkat etmemiz gereken olay " ++ " operatörünü değişkenin önüne yazmanız gerektiğidir. Bu sayede değişken bir arttırılarak işleme konur. Arkasına konursa değişken işlenir sonra bir arttırılır. " -- " operatöründe ise aynı şekilde de bir azaltma yapılır.
// carpim.cpp
// x i bir arttırıp y yi bir azaltıp çarptık.
#include <iostream.h>
main()
{
int x = 5;
int y = 10;
cout << "x = " <<x << endl;
cout << "y = " << y << endl;
cout <<"++x * --y = " << ++x * --y ;
} İşte bir fark daha yakaladık bunu da hemen örnek üzerinde anlatalım. Sanırım buraya kadar geldiğimiz yerlerde int i çarpma işlemini bir arttırıp azaltmayı gördük ama diyeceksiniz ki " endl " ne oluyor? Hemen açıklayayım; Satır sonunu belirterek yeni satıra geçmemizi sağlar bir nevi " \n " Escape operatörü gibi bir işleve sahiptir.
Operatörler II
Karşılaştırma Operatörleri:
Bunların teker teker ne olduğunu söylemeye gerek yok. İfadeler gayet basittir. Burada dikkat etmemiz gereken önemli bir şey var: " >= <= == !=" notasyonlarını kullanırken iki notasyon arasında boşluk bırakmamalıyız. Buna dikkat edelim!
Eşitleme ( Atama) Operatörleri:
Bunlarıda liste halinda verelim.
Operatörler III
Mantıksal Operatörler (Lojik Operatör Sembolleri) :
Burası biraz Soyut Matematik biraz değinmek istiyorum. Yukarıda gördüğümüz mantıksal operatörler Doğru (1) yada Yanlış (0) sonucunu argümanlara bakarak üretirler. Mantıksal Değil (!) değeri tersine çevirir. Ve ( && ) operatörü ise yalnızca her iki ifadede Doğru (1) ise sonuç Doğru (1) ` dur; diğer durumlarda Yanlış (0)` dır. Veya` da ( || ) ise yalnızca iki ifadenin Yanlış (0) durumunda sonuç Yanlış (0) olur diğer durumlarda Doğru (1)`dur.
Ne diyorlardı? En iyi programcılar matematikçilerden çıkar . Arkadaşlar umarım zorlanmıyorsunuzdur. Olabildiğince ince eliyorum ve anlayacağınız şekle indirgemeye çalışıyorum. Bunun üstüne bir çay içerim. Geldiğimde devam edeceğim...
Bit bazında İşlem Yapan Operatörler :
Bu kısımda Soyut Matematiğin daha da ayrıntılarına girilmesi gerekiyor. Ben size kısaca bunu anlatayım. Çok karışıklık da sizi yoracaktır. Örnekleri yaparken yine üstünde dururuz.
Bit bazında işlem yapan operatörler şunlardır: AND (Ve ( & ) OR (Veya ( ~ )) XOR ( ^ ).
And (&) operatörü; bitleri karşılaştırır. Eğer her ikisi de Doğru (1) ise sonuç Doğru (1) aksi halde Yanlış (0)`dır.
OR (~) operatörü; iki biti karşılaştırır ve eğer ikisi de Doğru (1) ise yada birisi Doğru (1) ise sonucu Doğru (1) yapar. OR işlemi belirli bir bit i Doğru (1) e çekmek için kullanılabilir.
XOR (^) operatörü; bit düzeyinde EXCLUSIVE OR (dışında tutan veya) (Türkçe'sini çevirince saçma oluyor) işlemi yalnızca karşılaştırılan bitler bir birinden farklı ise Doğru (1) üretir aksi halde Yanlış (0) üretir.
! işareti ise her bir bit i ters çevirir.
Not: Bunlar yeni başlayanlar için yorucu olabilir. Son iki bölümün fazla üstünde durmayın
< Bir de bize C++ile gelmiş olan operatörlerden bahsetmek istiyorum. Bunlar;
" :: " Erim çözünürlüğü (Scope resolution operatörü).
" * " Dolaylı adresleme (Pointerlerle kullanacağız).
" & " Adres operatörü (Pointerlerle kullanacağız).
" new " Dinamik bellek ayırma .
" sizeof " Nesne Boyutu.
İlerde fonksiyonlara geçince bunları ve diğerlerini de göreceğiz. Şu an için sizi bunlarla yormak istemiyorum.
C++ bilindiği gibi programlama dünyasında en çok ilgi gören C dilinden türemiştir. C++'ı klasik C dilinden farklı yapan yanı; Nesne Yönelimli Programlamayı da ( Object Oriented Programming) C'nin sözdizimi kurallarıyla birlikte desteklemesidir. Normalde C ile sadece yapısal programlama yaparken C++ dili ile hem yapısal hem de nesne yönelimli programlar yazabilirisiniz. C++ diline başlarken önce dilin C'den gelen ve temel olan özelliklerini öğrenmek gerekir. Örneğin değişken tanımlama atama ve diğer basit aritmektik işlemler kontrol yapıları ve döngüler gibi.
Teknolojinin ulaştığı son noktadaki programlama dillerinden olan C ve C++ bir çok yeni ve güçlü özellikleri içerir. Derslerimiz devam ettikçe bunların teker teker içine gireceğiz. C dilinin özelliklerinin %80 i C++'da da mevcuttur (bu karşılaştırma şahsi görüşümdür). Zaten C++ C'nin üst gurubudur. Bunu şöyle sıralayabiliriz. C C++ ve C# dır.
C dilinin avantajları az komut kümesinden oluşması ve bu komutların diğer yüksek seviyeli dillere nazaran daha hızlı çalışmasıdır. Ayrıca C deki kütüphaneler sayesinde fonksiyon tanımlamanıza gerek kalmadan işlemlerinizi yapmak mümkün olacaktır. Bu konuda çok detaya inmeden programlamaya geçmek istiyorum. Çünküprogramlamaya başladığımızda her örnekten sonra o an kullandığımız programın içinde geçen fonksiyon hatadeğişken belirleyiciler kısıtlamalar notasyonlar v.s gibi bilgilerden ara ara bahsedeceğim. Yalnız çok önemli olan bir konuya burada değinmek istiyorum. C nin avantajlarını programlamayla birlikte görmek güzel ama C nin dezavantajlarını programlamadan önce bilmeliyiz ki bunlardan sakınalım. Öncelikle Tanımlayıcılardan bahsetmek istiyorum. Her derleyici ve assmbley için değişkenleri sabitleri etiketleri ve fonksiyon adlarını tanımlama kuralları vardır. Bu notasyonlara tanımlayıcı denir. C++ da tüm tanımlayıcılar a . . . z - A . . . Z harfleri ile ya da alt çizgi "_" ile başlar. Bundan sonra rakam harf ya da alt çizgi kullanılabilir. ANCI C uyumlu derleyiciler 31 karaktere kadar tanımlayıcı kabul ederler fakat tanımlayıcının ilk sekiz karakterini kullanmayı kendimize alışkanlık etmeliyiz. Dikkat etmemiz gereken özelliklerden biri de kullandığımız ifadelerdeki büyük küçük harflerdir. C ve C++ büyük ve küçük harf duyarlılığına sahiptir. Kullandığımız ifadeleri birbirinden farklı ve aynı ifade olarak kullanıyorsak programımız hata verecektir. Bunu bir örnekle anlatayım:
Program
PROGRAM
progRAM
ProgRam Bu şekilde tanımlarsak hepsi birbirinden farklı ifadeler olarak C++ da okunacaktır. Biz Şunu alışkanlık edinmeliyiz; tanımlayıcılarımızın baş harfi büyük olacak. Büyük ve küçük harf kombinasyonlarının kullanılması ile önceden yapılan tanımlamalar bazen işi zorlaştırabilir. Eğer bu değişkenlerden birini kullanmak isterseniz bu zamana kadar nasıl tanımladığınızı bilmeniz gerekir. Örneğin printf()`in PRINTF() olarak çağrılması durumunda " bilinmeyen tanımlayıcı " (Unknown identifier) hata mesajı vererek sizi uyarır. Buna benzer olarak %f ve %F kullanımı hata verdirecektir. Programlamayı yaparken bunlara dikkat etmemiz gerekecek. Çünkü bir değişkeni veya tanımlayıcıyı başta nasıl kullandıysanız üç dört sayfa kod yazdıktan sonrada aynı şekliyle kullanmak zorundasınızdır. İşte burada en büyük handikap yaşanacaktır. Çünkü C/C++ derleyicileri her zaman hatanın nerde olduğunu göstermez. Bunu programcı kendisi satır satır takip ederek bulacaktır. Bundan dolayı bu söylediklerime baştan dikkat etmemiz gerekiyor.
Tavsiyeler:
İyi bir programlama yapabilmek için benim size olan tavsiyelerim; daha az kod kullanarak daha çok işlem yapabilme. Gerçi bunu yapsak zaten profesyonel oluruz . Zaten C++ `ın paradigması da buradan geliyor. Aslında C++ da yapabileceğimiz tüm programları C de yapma olanağımız var ama bu bize hem fazla kod yazmayı gerektirecek hem de zaman kaybetmemize sebep olacak. Zaten bunlardan kaçındığımız için C++ diyoruz. Elimizde nesneye yönelik bir dil varken ve kullanacağımız fonksiyonlar içinde hazır olarak mevcutsa tabi bize de bunun keyfini sürmek kalıyor. Tavsiyelerimden biride derslerde verdiğimiz örneklerin dışında aynı algoritmaya benzer farklı örnekler yapın. Öğrenmenin en iyi yolu yanlış yapmaktır. Bunu şöyle izah edeyim: eğer yanlış yapıyorsanız ve de o yanlışın kaynağını bulup düzeltebiliyorsanız o an onu öğrenmişsiniz demektir. Tabi örnekler sizin için alıştırma olacaktır ve hafızanızda kalıcı bir yer tutacaktır. Bunca kodu başka türlü hafızada tutamayız. İlk başlarda sık sık not alınız mümkün olduğunca da bol örnek yapınız. Örneklerinizi de kendiniz düşünüp kendi hayal gücünüzle oluşturursanız eminim bu işi başaracaksınızdır. Başta çok zor gelebilir ama başarı ter dökülmeden olmaz. Bu kısmı fazla uzatıp sizi daha başlamadan C/C++ dan uzaklaştırmak istemiyorum.
C++ İle Programlamaya Giriş
İlk programımız!
// ilk1.cpp
// Ekrana "Bu benim ilk programım" yazdırıyoruz
#include <iostream.h>
int main()
{
cout << "Bu benim ilk programım";
return 0;
} Şimdi Yazdığımız programı inceleyelim:
"//" işaretini açıklama satırlarında kullanıyoruz. C++ derleyicisi bu notasyonla başlayan satırı okumaz. Bununla birlikte daha uzun cümlelerimiz olursa bunları da " /* */ " notasyonunun içinde yazıcağız. Bu özellik de C den bize kalma. Demiştik zaten C `nin tüm özelliklerini C++ içerir. Fakat biz genelde " // " yi kullanacağız.
#include <iostream.h> : Bu bizim C++ da bulunan kütüphane dosyamızı çağırmaya yarıyor. Ben size şöyle tarif edeyim. iostream.h kütüphanesindeki hazır olan " cout " fonksiyonunu çağırıyor. Yani buda bizim fazla kod yazmamıza engel oluyor. .h ile biten dosyalar kütüphane dosyalarıdır. Bunu şuna da benzetebiliriz. Farz edelim ki elimizde bir alet çantası var içinden tornavidayı çağırdığımızda vida sıkacağızdır. Bu da ona benziyor. C++ da ki hazır kütüphanelerde bir çok hazır fonksiyonlar vardır. İlerde Bu hazır fonksiyonlar işimizi görmemeye başlayınca kendi kütüphanemizi yapmaya başlayacağız. Tabi bu seviyeye geldiğimizde olayı hemen hemen kavramış olacağız tabi neden olmasın öyle değil mi?
Daha sonraki satır her C++ programında mutlaka bulunması gereken bir satırdır. Her C++ programında main() fonksiyonu olmak zorundadır; bu fonksiyonumuzun önünde ise o fonksiyonun dönderdiği değişkenin veri tipi olmalıdır. Tabi ki C++ fonksiyonlar ve onların dönderdikleri değerler konusunu da ileride işleyeceğiz.
Bir sonraki satırda ise; C++ fonksiyonlar ve kod blokları " { } " parantezleri arasında bulunmalıdır. main de bir fonksiyon ise onun içindeki kodlar doğal olarak { } parantezleri arasındadır.
Program derlenip çalıştırıldığında ise ( Turbo C++ 3.1 kullanıyorsanız ctrl+f9 kısa yoluyla programı çalıştırabilirsiniz (Run) ) karşımıza "Bu benim ilk programım" yazısı çıkacaktır. İşte bu yazıyı ekrana veren komut da iostream.h kütüphanesindeki cout fonksiyonudur.
Önemli bir nokta ise C++ dilinde her satır ifadenin sonuna " ; " koymak zorundayız. Bundan farklı olarak #include satırlarının ve bir kaç farklı satırın arkasına " ; " gelmez. Bunları ileride göreceğiz.
Return 0 : programımızın (aynı zamanda main fonksiyonumuzun) çıkış noktasıdır. Eğer return ile 0 değeri dönderirsek programımızın güvenle çıktığını işletim sistemine bildirmiş oluruz. Bu sayede güvenle programımızın çalıştığını göreceğiz.
Şimdi size bir örnek daha vereceğim bununla da aynı çıktıyı elde edeceğiz. Arasındaki farkları eminim basit olarak sizlerde göreceksinizdir.
// ilk2.cpp
// Ekrana "Bu benim ilk programım" yazdırıyoruz
#include <stdio.h>
main()
{
printf("Selam bu benim ilk programım.\n");
return 0;
} Evet şimdi burada çok fark varmış gibi gözüküyor aslında ama öyle değil. Sadece kütüphanemiz stdio.h oldu ve ekrana yazdır fonksiyonumuzda printf oldu. Bu özellik C den kalma. Bunlar diğer program ile aynı işlevi görüyor. Buradaki fark " \n " notasyonu. Bu noptasyon bir sonraki satıra geçmek için kullanılır. Bu notasyonlara Escape dizileri denir. Tablo olarak bunları size veriyorum. Son yazdığımız ilk2.cpp de yerlerine koyarsanız çalışacaktır.
Resim, takriben 15% (350x93) ölçeklenmiştir. Orjinal boyutta (407x108) görmek için bu çubuğa tıklayın. Yeni bir pencerede açmak için resme tıklayın.
![[Resim: c13nu.jpg]](http://img48.imageshack.us/img48/4218/c13nu.jpg)
Değişkenler
Şimdi bize yine çok lazım olacak bir özellik de değişken tanımlamak ve atama yapmaktır. Bunu bir örnek üzerinde anlatmak istiyorum. Örneğimiz;
// degisken.cpp
// Burda değişken tanımlamayı göreceğiz.
// Aynı zamanda verilen bir sayıyı kendisi ile carpma 2.2=4 gibi
#include <iostream.h>
#include <stdio.h> // kütüphane dosyamız
main()
{
int i; // Değişken tanımlama
cout << "Bir sayı giriniz: ";
cin >> i;
i=i*i;
cout << "sonuc: " << i ;
return 0;
} Burada bundan önce yaptığımız programlardan farklı olarak int i kullandık yani değişken tanımladık.
Değişken Nasıl Tanımlanır?
Değişkenleri tanımlamak için aşağıdaki şema kullanılır.
[Veri Tipi] [Değişken Adı];
Örneğin
int sayi;
Şimdi degisken.cpp örneğindeki int i; kısmını anlamışsınızdır. Burada değişkenlere değinmek istiyorum. Biz yukarda İçinde sayı tutan bir değişkeni tanımladık. Benzer olarak aşağıdaki tanımlamalar da vardır.
char c;
int i;
float f;
double d;
unsigned int ui;
Burada [Veri Tipi] [Değişken Adı]; bu kalıba göre tanımlama yaptığımız için önce Veri Tiplerini inceleyelim.
Veri Tipleri
1) İnt tip.
Integer = Tamsayı
Tamsayıları içerir. Bellekte 2 Byte tutar. DOS'ta ve Win3.1'de 16 bit uzunlugunda ama Windows9x WinNTWin200 ve WinXP 32 bit uzunluğundadır.
Değer aralıkları Short ve long için değişir.
Örnek: 5 -20 1 gibi.
2) Sort tip.
Tam sayıları içerir. 16 bit uzunluğundadır.
signed: -32768 ile +32767 arasinda değer alır unsigned: 0 ile 65535 arasinda değer alır.
3) Long tip.
Tam sayılar içerir. 32 bit uzunluğundadır.
signed: -2147483648 ile +2177483647 arasinda değer alır unsigned: 0 ile 65535 arasinda değer alır.
4) Gerçel Tipler (Float Double Long double)
Gerçel sayıları içerirler.
float : Bellekte 4 Byte yer tutar. 3.4E-38 ile 3.4E+38 aralığında değer alır. Hassasiyet 7-8 basamaktır.
double : Bellekte 8 Byte ter tutar. 1.7E-308 ile 1.7E308 aralığında değer alır. Hassasiyet 15-16 basamaktır.
long double : doublenin tipinin daha genişidir.1.2E-4932 ile 1.2E-4932 aralığında değer alır. Hassasiyet 19-20 basamak.
5) Char Tip
Char : Karakter
Alfanumerik karakterleri içerir. Ve ya 8 bit uzunluğunda tamsayı.
signed: -128 ile 127 arasinda değer alır unsigned: 0 ile 255 arasında değer alır.
Örneğin: ' 01234567... ' ' *-+... ' 'abc....ABCD '
6) Bool tip.
true(dogru) = 1 veya false(yanlis) = 0 değerini alır. Eski derleyiciler bu türü desteklemeyebilir. Yeni ANSI C++ standardında eklenmiştir. Bu soyut matematik gördüyseniz. "p V q" ya benzer ( matematikçiyiz konuşturalım azıcık). Değer aralığı ise ya 1 dir (doğru) yada 0 dır (yanlış).
7) Enum tip.
enum sıralanmış değerleri tutar. Short int ile aynı değeri taşır.
Başta Fazla Detaya inip sizi bunaltmak istemiyorum. Çünkü C++ dili başlarda karmaşık gelen bir dildir. Bu da zaten kendisini yüksek seviyeli bir dil yapıyor . Ben size Bu dilin temel özelliklerini anlatarak basit programlar yapmayı göstereceğim.
Bu temel bilgileri aldıktan sonra programlamaya geçebiliriz. Derleyici Olarak ben Turbo C++ 3.1 i tavsiye ederim. Şu an bununla başlar iseniz işiniz daha kolay olacaktır (bence). İlerde Borland a geçeceğiz.
Değişken tanımlama konusunda bir konuya daha değinmek istiyorum. Değişkenlere değer atama ve aynı anda bir çok değişken tanımlamamız C++ da mümkündür.
char c = 'c';
int i = 5;
Daha sonradan değer atama:
char c;
int i;
c = 'c ';
i = 5;
Bir de aynı anda bir çok değişken tanımlayalım.
Örneğin:
int x y z;
x = y = z = 5;
xyz' nın değeri 5 oldu
Bir sonraki derste ise değişkenlerle birlikte bir de Operatörleri ele alacağız.
Operatörler I
Operatör ve Operand nedir?
Bunu bir örnek üzerinde anlatmak istiyorum. Örneğin; x + y 'de x ve y operand + ise operatördür. Bu bir aritmetiksel operatördür. Matematikte işlemler operatörler ve operandlar ile anlatılır.
Operatörleri öncelikle türlerine göre ayıralım:
1) Aritmetiksel operatörler + - * / % ++ --
2) Karşılaştırma operatörleri < > <= >= == !=
3) Eşitleme operatörleri = += -= *= /= %= <= >>= &= != ^=
4) Mantıksal Operatörler ! || &&
5) Bit bazında işlem yapan operatörler & ! ^ ~
Aritmetiksel (Matematiksel) Operatörler:
Matematiksel ifadeleri günlük hayattaki biçimde bilgisayarda yazamadığımız için belli kurallara uymamız gerekir. Bu kısım önemli olduğu için biraz geniş yer vereceğim. Kullandığımız matematiksel işlemler ve anlamları şöyledir:
![[Resim: c26qr.jpg]](http://img232.imageshack.us/img232/404/c26qr.jpg)
Bu operatörle verilen iki veya daha fazla operand toplanabilir. Yazılış şekli Aşağıdaki gibidir.
değişken1 + değişken2
Eğer bu iki değişkeni Sonuç gibi başka bir değişkene atarsak eşitleme operatörüyle aşağıdaki gibi yaparız.
Sonuç = değişken1 + değişken2
Buna bir örnek verelim.
// toplama.cpp
//Vize ve final notlarinindan geçme notunu hesaplama
#include <iostream.h>
#include <math.h>
main()
{
int vize final ort;
vize = 10;
final = 80;
ort = vize * 0.4 + final * 0.6;
cout<< "Geçme notunuz: " << ort;
} Burada çarpma operatörünü de kullandık sanırım artık diğerlerinin de ne olduğunu kavramış oldunuz. Bir örnekte işi ucuza getirdim . Fakat bir artma ve bir azalmaya örnek verelim. Bu bana çok lazım olmuştu.
Burada dikkat etmemiz gereken olay " ++ " operatörünü değişkenin önüne yazmanız gerektiğidir. Bu sayede değişken bir arttırılarak işleme konur. Arkasına konursa değişken işlenir sonra bir arttırılır. " -- " operatöründe ise aynı şekilde de bir azaltma yapılır.
// carpim.cpp
// x i bir arttırıp y yi bir azaltıp çarptık.
#include <iostream.h>
main()
{
int x = 5;
int y = 10;
cout << "x = " <<x << endl;
cout << "y = " << y << endl;
cout <<"++x * --y = " << ++x * --y ;
} İşte bir fark daha yakaladık bunu da hemen örnek üzerinde anlatalım. Sanırım buraya kadar geldiğimiz yerlerde int i çarpma işlemini bir arttırıp azaltmayı gördük ama diyeceksiniz ki " endl " ne oluyor? Hemen açıklayayım; Satır sonunu belirterek yeni satıra geçmemizi sağlar bir nevi " \n " Escape operatörü gibi bir işleve sahiptir.
Operatörler II
Karşılaştırma Operatörleri:
Resim, takriben 30% (350x86) ölçeklenmiştir. Orjinal boyutta (500x122) görmek için bu çubuğa tıklayın. Yeni bir pencerede açmak için resme tıklayın.
![[Resim: c38jw.jpg]](http://img218.imageshack.us/img218/4940/c38jw.jpg)
Bunların teker teker ne olduğunu söylemeye gerek yok. İfadeler gayet basittir. Burada dikkat etmemiz gereken önemli bir şey var: " >= <= == !=" notasyonlarını kullanırken iki notasyon arasında boşluk bırakmamalıyız. Buna dikkat edelim!
Eşitleme ( Atama) Operatörleri:
Bunlarıda liste halinda verelim.
Resim, takriben 31% (350x120) ölçeklenmiştir. Orjinal boyutta (503x172) görmek için bu çubuğa tıklayın. Yeni bir pencerede açmak için resme tıklayın.
![[Resim: c42ll.jpg]](http://img116.imageshack.us/img116/1331/c42ll.jpg)
Operatörler III
Mantıksal Operatörler (Lojik Operatör Sembolleri) :
Resim, takriben 32% (350x44) ölçeklenmiştir. Orjinal boyutta (511x64) görmek için bu çubuğa tıklayın. Yeni bir pencerede açmak için resme tıklayın.
![[Resim: c54au.jpg]](http://img218.imageshack.us/img218/2018/c54au.jpg)
Burası biraz Soyut Matematik biraz değinmek istiyorum. Yukarıda gördüğümüz mantıksal operatörler Doğru (1) yada Yanlış (0) sonucunu argümanlara bakarak üretirler. Mantıksal Değil (!) değeri tersine çevirir. Ve ( && ) operatörü ise yalnızca her iki ifadede Doğru (1) ise sonuç Doğru (1) ` dur; diğer durumlarda Yanlış (0)` dır. Veya` da ( || ) ise yalnızca iki ifadenin Yanlış (0) durumunda sonuç Yanlış (0) olur diğer durumlarda Doğru (1)`dur.
Ne diyorlardı? En iyi programcılar matematikçilerden çıkar . Arkadaşlar umarım zorlanmıyorsunuzdur. Olabildiğince ince eliyorum ve anlayacağınız şekle indirgemeye çalışıyorum. Bunun üstüne bir çay içerim. Geldiğimde devam edeceğim...
Bit bazında İşlem Yapan Operatörler :
Bu kısımda Soyut Matematiğin daha da ayrıntılarına girilmesi gerekiyor. Ben size kısaca bunu anlatayım. Çok karışıklık da sizi yoracaktır. Örnekleri yaparken yine üstünde dururuz.
Bit bazında işlem yapan operatörler şunlardır: AND (Ve ( & ) OR (Veya ( ~ )) XOR ( ^ ).
And (&) operatörü; bitleri karşılaştırır. Eğer her ikisi de Doğru (1) ise sonuç Doğru (1) aksi halde Yanlış (0)`dır.
OR (~) operatörü; iki biti karşılaştırır ve eğer ikisi de Doğru (1) ise yada birisi Doğru (1) ise sonucu Doğru (1) yapar. OR işlemi belirli bir bit i Doğru (1) e çekmek için kullanılabilir.
XOR (^) operatörü; bit düzeyinde EXCLUSIVE OR (dışında tutan veya) (Türkçe'sini çevirince saçma oluyor) işlemi yalnızca karşılaştırılan bitler bir birinden farklı ise Doğru (1) üretir aksi halde Yanlış (0) üretir.
! işareti ise her bir bit i ters çevirir.
Not: Bunlar yeni başlayanlar için yorucu olabilir. Son iki bölümün fazla üstünde durmayın
< Bir de bize C++ile gelmiş olan operatörlerden bahsetmek istiyorum. Bunlar;
" :: " Erim çözünürlüğü (Scope resolution operatörü).
" * " Dolaylı adresleme (Pointerlerle kullanacağız).
" & " Adres operatörü (Pointerlerle kullanacağız).
" new " Dinamik bellek ayırma .
" sizeof " Nesne Boyutu.
İlerde fonksiyonlara geçince bunları ve diğerlerini de göreceğiz. Şu an için sizi bunlarla yormak istemiyorum.
Kaydol:
Kayıtlar (Atom)
Paris suikastinde 2 zanlı yakalandı
