İçeriğe geç
Educora
Başlangıç16 dk2 / 10

Değişkenler, veri türleri ve operatörler

Değişken bildir; `int`, `double`, `char`, `bool`, `std::string` ve `auto` ile çalış; aritmetik operatörleri ve `std::cin` ile girdi almayı öğren.

Kendini test et
Bu derste öğreneceklerin
  • Farklı türlerde değişkenler bildirmek ve onlara değer vermek
  • auto ve const anahtar sözcüklerini kullanmak
  • Aritmetik operatörleri uygulamak, tam sayı bölmesini ve % operatörünü açıklamak
  • std::cin ile 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

Tanım
Değişken

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ürNe saklarÖrnek
inttam sayılar42, -7
doubleondalıklı sayılar3.14, -0.5
chartek bir karakter, tek tırnak içinde'A', '7'
boolmantıksal değertrue, false
std::stringmetin, çift tırnak içinde"Baku"
long longçok büyük tam sayılar9000000000
C++'ın temel veri türleri
C++
#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;
}
Beklenen çıktı
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.

Etkileşimli
Simülasyon yükleniyor…
8 bit, 0'dan 255'e kadar 256 farklı değer verir.

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.

C++
#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;
}
Beklenen çıktı
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.

C++
#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;
}
Beklenen çıktı
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.

C++
#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;
}
Beklenen çıktı
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:

C++
#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;
}
Beklenen çıktı
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:

C++
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";
Murad ve 2012 girersen program şunu yazar: 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, bool ve std::string.
  • auto türü ilk değerden çıkarır, const ise değerin değiştirilmesini yasaklar.
  • İki int bölündüğünde tam sayı elde edilir; kalanı % bulur.
  • std::cin >> klavyeden okur; std::fixed ve std::setprecision ondalıklı sayıların yazılışını ayarlar.

Kendini test et

10 soru. Her doğru cevap XP kazandırır.

1 / 10
int x = 17 / 5; komutundan sonra x kaçtır?