Məzmuna keç
Educora
Başlanğıc16 dəq2 / 10

Dəyişənlər, tiplər və operatorlar

Dəyişənləri elan et, `int`, `double`, `char`, `bool`, `std::string` və `auto` ilə işlə, hesab operatorlarını və `std::cin` ilə girişi öyrən.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • Müxtəlif tipli dəyişənləri elan etmək və onlara qiymət vermək
  • auto və const açar sözlərindən istifadə etmək
  • Hesab operatorlarını tətbiq etmək, tam bölməni və % operatorunu izah etmək
  • std::cin ilə məlumat oxumaq və kəsr ədədlərin çapını idarə etmək

Oyunda personajın canı, xalı və adı yadda saxlanmalıdır: xal artır, can azalır, ad isə dəyişmir. Proqram bu məlumatları dəyişənlərdə saxlayır. C++ dilində hər dəyişənin öz tipi var və o, proqram işə düşməzdən əvvəl, kompilyasiya zamanı müəyyən olunur.

Dəyişənlər və tiplər

Tərif
Dəyişən

Yaddaşda adı olan və müəyyən tipli qiyməti saxlayan yer. C++ dilində dəyişən tip ad = qiymət; şəklində elan olunur, məsələn: int age = 14;.

TipNə saxlayırNümunə
inttam ədədlər42, -7
doublekəsr hissəli ədədlər3.14, -0.5
charbir simvol, tək dırnaqda'A', '7'
boolməntiqi qiyməttrue, false
std::stringmətn, qoşa dırnaqda"Baku"
long longçox böyük tam ədədlər9000000000
C++ dilinin əsas tipləri
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;
}
Gözlənilən nəticə
Age: 14
Height: 1.62 m
Grade: A
Student: 1
City: Baku

Diqqət et: char qiyməti tək dırnaqda ('A'), std::string isə qoşa dırnaqda yazılır. std::string üçün #include <string> lazımdır. bool tipli qiymət ekrana 1 (true) və ya 0 (false) kimi çıxır.

Kompüter bütün qiymətləri ikilik say sistemində — bitlərlə saxlayır. int adətən 4 bayt (32 bit) tutur və təxminən −2,1 milyarddan 2,1 milyarda qədər ədədləri saxlaya bilir. Daha böyük ədədlər üçün long long tipi var. Aşağıda bitləri yandırıb-söndür və 8 bitlə hansı ədədləri yazmağın mümkün olduğunu gör.

İnteraktiv
Simulyasiya yüklənir…
8 bit 0-dan 255-ə qədər 256 müxtəlif qiymət verir.

auto və const

Tip ilk qiymətdən aydındırsa, onu yazmaya bilərsən: auto açar sözü tipi kompilyatorun özünün müəyyən etməsini istəyir. auto dəyişəni «tipsiz» etmir — tip yenə kompilyasiya zamanı bir dəfəlik seçilir. const isə dəyişəni sabitə çevirir: ona ilk qiymət verildikdən sonra onu dəyişmək olmaz.

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;
}
Gözlənilən nəticə
Lives: 4 of 5
Speed: 2.5, letter: Z

Hesab operatorları

C++ adi hesab əməllərini bilir: +, -, *, /. Burada bir incəlik var: iki tam ədəd bölünəndə nəticə də tam olur, kəsr hissəsi sadəcə atılır. Bölmənin qalığını % operatoru verir. Kəsr nəticə lazımdırsa, ədədlərdən biri double olmalıdır — məsələn, 17.0 yazmaq və ya tipi static_cast<double> ilə çevirmək olar.

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;
}
Gözlənilən nəticə
a / b = 3
a % b = 2
17.0 / 5 = 3.4
cast: 3.4

Dəyişənin qiymətini dəyişmək üçün qısa yazılışlar var: score += 5 ifadəsi score = score + 5 deməkdir, -=, *=, /= də eyni qayda ilə işləyir. score++ qiyməti 1 artırır, score-- isə 1 azaldı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;
}
Gözlənilən nəticə
Score: 27
Coins: 3

Çıxış və giriş

std::cout kəsr ədədləri susmaya görə ən çoxu 6 əhəmiyyətli rəqəmlə çap edir. Kəsr hissəsində neçə rəqəm göstəriləcəyini özün seçmək üçün <iomanip> faylını qoş və std::fixed ilə std::setprecision yaz:

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;
}
Gözlənilən nəticə
4.66667
4.67

Klaviaturadan məlumat oxumaq üçün std::cin və >> operatoru işlədilir: std::cin >> year; istifadəçinin yazdığı ədədi year dəyişəninə yazır. Bu kursun nümunələrində qiymətləri kodun içində veririk ki, nəticə həmişə eyni olsun. Aşağıdakı fraqmenti isə öz kompüterində yoxlaya bilərsən:

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 və 2012 daxil etsən, proqram belə yazar: Hi, Murad! In 2030 you will be 18.

Əsas fikirlər

  • Dəyişən tip ad = qiymət; şəklində elan olunur və tipi sonradan dəyişmir.
  • Əsas tiplər: int, double, char, bool və std::string.
  • auto tipi ilk qiymətə görə müəyyən edir, const isə qiymətin dəyişməsini qadağan edir.
  • İki int-in bölünməsi tam ədəd verir; bölmənin qalığını % tapır.
  • std::cin >> klaviaturadan oxuyur, std::fixed və std::setprecision kəsr ədədlərin çapını idarə edir.

Özünü yoxla

10 sual. Hər düzgün cavab XP qazandırır.

1 / 10
int x = 17 / 5; əmrindən sonra x nəyə bərabərdir?