Oʻzgaruvchilar amalda: almashtirish va koʻlam

Algoritmlarda eng koʻp uchraydigan amallardan biri — ikki oʻzgaruvchi qiymatini almashtirish (swap). Saralash algoritmlarining asosi ham shu!

Nega toʻgʻridan-toʻgʻri almashtirib boʻlmaydi?

a = b; b = a; deb yozsak, birinchi qatordayoq a ning eski qiymati yoʻqoladi. Yechim — uchinchi, vaqtinchalik oʻzgaruvchi:

  • temp = a; — a ning qiymati vaqtincha saqlanadi;
  • a = b; — endi a ga b yoziladi;
  • b = temp; — b ga a ning eski qiymati yoziladi.

Oʻzgaruvchining koʻlami (scope)

Oʻzgaruvchi eʼlon qilingan blok ({ }) ichidagina «koʻrinadi»:

  • lokal oʻzgaruvchi — funksiya/blok ichida eʼlon qilinadi, blok tugashi bilan oʻchadi;
  • global oʻzgaruvchi — barcha funksiyalardan tashqarida; hamma joydan koʻrinadi, lekin koʻp ishlatish yomon amaliyot hisoblanadi;
  • const — qiymati oʻzgarmas «oʻzgaruvchi»: const double PI = 3.14159;.

Kirish va chiqish

cin >> x; — klaviaturadan qiymat oʻqish, cout << x; — ekranga chiqarish. Quyidagi dastur ikki sonni oʻqib, ularni almashtirib chiqaradi.

🎬 Animatsion misol

«▶» tugmasini bosing yoki qadamma-qadam koʻring. Oʻz qiymatlaringizni kiritib sinab koʻrishingiz mumkin.

💻 C++ kod misoli

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cout << "Ikki son kiriting: ";
    cin >> a >> b;

    cout << "Oldin:  a = " << a << ", b = " << b << endl;

    // Klassik almashtirish (swap) — vaqtinchalik o'zgaruvchi bilan
    int temp = a;
    a = b;
    b = temp;

    cout << "Keyin:  a = " << a << ", b = " << b << endl;

    // C++ da tayyor funksiya ham bor:
    swap(a, b);   // yana joyiga qaytardik
    cout << "swap(): a = " << a << ", b = " << b << endl;
    return 0;
}