- Farklı türlerde değişkenler bildirmek ve onlara değer vermek
autoveconstanahtar sözcüklerini kullanmak- Aritmetik operatörleri uygulamak, tam sayı bölmesini ve
%operatörünü açıklamak std::cinile veri okumak ve ondalıklı sayıların yazdırılmasını ayarlamak
Bir oyunda karakterin canı, puanı ve adı hatırlanmalıdır: puan artar, can azalır, ad ise aynı kalır. Program bu bilgileri değişkenlerde saklar. C++'ta her değişkenin kendi türü vardır ve bu tür, program daha çalışmadan derleme sırasında belirlenir.
Değişkenler ve veri türleri
Bellekte adı olan ve belirli türde bir değer saklayan yer. C++'ta değişken tür ad = değer; biçiminde bildirilir, örneğin int age = 14;.
| Tür | Ne saklar | Örnek |
|---|---|---|
int | tam sayılar | 42, -7 |
double | ondalıklı sayılar | 3.14, -0.5 |
char | tek bir karakter, tek tırnak içinde | 'A', '7' |
bool | mantıksal değer | true, false |
std::string | metin, çift tırnak içinde | "Baku" |
long long | çok büyük tam sayılar | 9000000000 |
#include <iostream>
#include <string>
int main() {
int age = 14;
double height = 1.62;
char grade = 'A';
bool isStudent = true;
std::string city = "Baku";
std::cout << "Age: " << age << '\n';
std::cout << "Height: " << height << " m\n";
std::cout << "Grade: " << grade << '\n';
std::cout << "Student: " << isStudent << '\n';
std::cout << "City: " << city << '\n';
return 0;
}Age: 14 Height: 1.62 m Grade: A Student: 1 City: Baku
Dikkat et: char değeri tek tırnakla ('A'), std::string ise çift tırnakla yazılır. std::string için #include <string> gerekir. bool türündeki bir değer ekrana 1 (true) ya da 0 (false) olarak yazılır.
Bilgisayar tüm değerleri ikilik sistemde, yani bitler hâlinde saklar. int genellikle 4 bayt (32 bit) yer kaplar ve yaklaşık −2,1 milyardan 2,1 milyara kadar sayıları tutabilir. Daha büyük sayılar için long long türü vardır. Aşağıdaki bitleri açıp kapat ve 8 bitle hangi sayıların yazılabildiğini gör.
auto ve const
Tür, ilk değerden açıkça anlaşılıyorsa onu yazmayabilirsin: auto anahtar sözcüğü türü derleyicinin kendisinin belirlemesini sağlar. auto değişkeni “türsüz” yapmaz; tür yine derleme sırasında bir kez seçilir. const ise değişkeni bir sabite dönüştürür: ilk değerini aldıktan sonra değiştirilemez.
#include <iostream>
int main() {
auto lives = 3; // int
auto speed = 2.5; // double
auto letter = 'Z'; // char
const int maxLives = 5;
lives = lives + 1;
std::cout << "Lives: " << lives << " of " << maxLives << '\n';
std::cout << "Speed: " << speed << ", letter: " << letter << '\n';
// maxLives = 6; // error: maxLives is const
return 0;
}Lives: 4 of 5 Speed: 2.5, letter: Z
Aritmetik operatörler
C++ bilinen aritmetik işlemleri yapar: +, -, *, /. Burada bir incelik var: iki tam sayı bölündüğünde sonuç da tam sayı olur, ondalık kısım basitçe atılır. Bölümden kalanı % operatörü verir. Ondalıklı bir sonuç gerekiyorsa sayılardan biri double olmalıdır; örneğin 17.0 yazabilir ya da türü static_cast<double> ile dönüştürebilirsin.
#include <iostream>
int main() {
int a = 17;
int b = 5;
std::cout << "a / b = " << a / b << '\n';
std::cout << "a % b = " << a % b << '\n';
std::cout << "17.0 / 5 = " << 17.0 / 5 << '\n';
std::cout << "cast: " << static_cast<double>(a) / b << '\n';
return 0;
}a / b = 3 a % b = 2 17.0 / 5 = 3.4 cast: 3.4
Bir değişkeni değiştirmek için kısa yazımlar vardır: score += 5, score = score + 5 anlamına gelir; -=, *=, /= de aynı şekilde çalışır. score++ değeri 1 artırır, score-- ise 1 azaltır.
#include <iostream>
int main() {
int score = 10;
score += 5; // 15
score *= 2; // 30
score -= 4; // 26
score++; // 27
std::cout << "Score: " << score << '\n';
int coins = 7;
coins /= 2; // 3
std::cout << "Coins: " << coins << '\n';
return 0;
}Score: 27 Coins: 3
Çıktı ve girdi
std::cout ondalıklı sayıları varsayılan olarak en fazla 6 anlamlı basamakla yazar. Virgülden sonra kaç basamak görüneceğini kendin seçmek için <iomanip> ekle ve std::fixed ile std::setprecision kullan:
#include <iomanip>
#include <iostream>
int main() {
double total = 14.0;
double average = total / 3;
std::cout << average << '\n';
std::cout << std::fixed << std::setprecision(2) << average << '\n';
return 0;
}4.66667 4.67
Klavyeden veri okumak için std::cin ve >> operatörü kullanılır: std::cin >> year;, kullanıcının yazdığı sayıyı year değişkenine kaydeder. Bu kurstaki örneklerde sonucun her zaman aynı olması için değerleri kodun içinde veriyoruz. Aşağıdaki parçayı kendi bilgisayarında deneyebilirsin:
std::string name;
int year = 0;
std::cout << "Your name: ";
std::cin >> name;
std::cout << "Birth year: ";
std::cin >> year;
std::cout << "Hi, " << name << "! In 2030 you will be " << 2030 - year << ".\n";Hi, Murad! In 2030 you will be 18.Önemli noktalar
- Değişken
tür ad = değer;biçiminde bildirilir ve türü sonradan değişmez. - Temel türler:
int,double,char,boolvestd::string. autotürü ilk değerden çıkarır,constise değerin değiştirilmesini yasaklar.- İki
intbölündüğünde tam sayı elde edilir; kalanı%bulur. std::cin >>klavyeden okur;std::fixedvestd::setprecisionondalıklı sayıların yazılışını ayarlar.
Kendini test et
10 soru. Her doğru cevap XP kazandırır.
int x = 17 / 5; komutundan sonra x kaçtır?