canlı ~/duyurular $
Algoritma müfredatı
ünite 1 · Temeller · ders 1.4

Değişken ve atama

x ← x + 1 matematikte saçma, algoritmada en doğal şey.

6 dk 4 / 22

Değişken bir kutu, atama o kutuya yeni değer koymaktır. Sözde kodda ok (←) kullanırız: toplam ← toplam + sayı. Bu bir denklem değil, bir emir: "toplamın şu anki değerine sayıyı ekle, sonucu yine toplam kutusuna koy."

Takas: en klasik tuzak

İki kutunun içeriğini yer değiştirmek istiyorsun: a ← b yazınca a'nın eski değeri gider; b'ye artık ne koyacaksın? Çözüm üçüncü bir kutu:

gecici ← a a ← b b ← gecici

Programlamada değişkenlerin o anki değerini takip etmek için izleme tablosu tutarız. Aşağıdaki adım adım izlemeye bak; her satırda hangi kutu değişiyor?

akış şeması elips: başla/bitir · dikdörtgen: işlem · paralelkenar: girdi/çıktı · baklava: karar
flowchart TD
  A([Başla]) --> B[a = 3, b = 7]
  B --> C[gecici = a]
  C --> D[a = b]
  D --> E[b = gecici]
  E --> F[/a ve b'yi yaz/]
  F --> G([Bitir])
sözde kod adımlar
1a ← 32b ← 73gecici ← a4a ← b5b ← gecici6YAZ a, b
aynısı C# ile C#
1int a = 3, b = 7;2int gecici = a;3a = b;4b = gecici;5Console.WriteLine(a + " " + b);
adım adım izleme

Kutuların her adımdaki değeri. Kağıtta izleme tablosu tutarken tam bunu yaparsın.

#satırabgecicinot
1 a ← 3, b ← 7 3 7 — Başlangıç
2 gecici ← a 3 7 3 a'nın kopyası saklandı
3 a ← b 7 7 3 a'nın eski değeri gitti; kopyası gecici'de
4 b ← gecici 7 3 3 Takas tamam
senin sıran

Üçüncü kutu kullanmadan takas yapmak mümkün mü? a ← a + b, b ← a − b, a ← a − b adımlarını a=3, b=7 için izleme tablosuyla takip et. Çalışıyor mu? Neden?

Canlı Kod'da C# ile dene
kendini sına x ← 5 sonra x ← x * 2 sonra x ← x − 1. x kaç?
9. Sırayla: 5 → 10 → 9. Her atama önceki değerin üstüne çalışır.
İşaret bu tarayıcıda kalır. XP için giriş yap — her ders +15 XP.