Menu
Coddy logo textTech

Sözde Kod Örnekleri

Cambridge IGCSE ve A-Level sözde kodunda 15 çözümlü örnek: ilk OUTPUT satırından kabarcık sıralamasına kadar. Her biri çıktısını gösterir ve hepsini aşağıdaki düzenleyicide çalıştırabilirsin.

Bu örnekler nasıl okunur?

Sözde kod, bir programın adımlarını gerçek bir programlama dilinin katı kuralları olmadan, İngilizceye yakın yapılandırılmış bir dille anlatır. Aşağıdaki her örnek, IGCSE ve A-Level sınavlarında kullanılan Cambridge stilini izler: değişkenler için DECLARE, atama için ←, yazdırmak için OUTPUT, ve ENDIF, NEXT ya da ENDWHILE ile kapanan bloklar.

Her örnek bir problemi tanımlar, sözde kodunu verir, ürettiği çıktıyı gösterir ve nasıl çalıştığını açıklar. Bir örneği sayfanın en üstündeki düzenleyiciye yüklemek için Düzenleyicide çalıştır düğmesine bas; orada satır satır ilerleyip değişkenlerin değişimini izleyebilirsin. Söz dizimine yeni misin? Sözde kod düzenleyicisinde her yapının tıklanabilir bir kütüphanesi var.

1. Hello, World

Ekrana bir mesaj yazdır.

Sözde kod
OUTPUT "Hello, World!"
Çıktı
Hello, World!

OUTPUT ardından gelen her şeyi yazdırır; metin çift tırnak içine yazılır. Bu tek satır başlı başına bir programdır: sözde kodda main fonksiyonu ya da import gerekmez.

2. İki sayıyı topla

İki tam sayıyı sakla, topla ve toplamı yazdır.

Sözde kod
DECLARE a : INTEGER
DECLARE b : INTEGER
DECLARE total : INTEGER
a ← 12
b ← 30
total ← a + b
OUTPUT "The total is ", total
Çıktı
The total is 42

Her değişken kullanılmadan önce bir ad ve bir türle bildirilir. ← oku bir değer saklar, bu yüzden total ← a + b satırını "total, a artı b olur" diye oku. OUTPUT içindeki virgül, metni ve değeri aynı satırda birleştirir.

3. Tek mi, çift mi?

Bir sayının tek mi çift mi olduğuna karar ver.

Sözde kod
DECLARE n : INTEGER
n ← 17
IF n MOD 2 = 0 THEN
    OUTPUT n, " is even"
ELSE
    OUTPUT n, " is odd"
ENDIF
Çıktı
17 is odd

MOD bölmeden kalanı verir. Çift bir sayı 2'ye bölününce kalan bırakmaz, bu yüzden test n MOD 2 = 0 olur. IF iki daldan birini seçer, ENDIF de bloğu kapatır. Sözde kodda tek bir = iki değeri karşılaştırır; asla atama yapmaz.

4. Sınav puanını harf notuna çevir

100 üzerinden bir puanı harf notuna çevir: 80 ve üzeri A, 60 ile 79 arası B, 60'ın altı C.

Sözde kod
DECLARE score : INTEGER
DECLARE grade : CHAR
score ← 74
IF score >= 80 THEN
    grade ← 'A'
ELSE
    IF score >= 60 THEN
        grade ← 'B'
    ELSE
        grade ← 'C'
    ENDIF
ENDIF
OUTPUT "Score ", score, " gets grade ", grade
Çıktı
Score 74 gets grade B

Kontroller en yüksek sınırdan aşağıya doğru yapılır; 74 puan ilk testi geçemez, ikinciyi geçer. Bir IF'i başka bir IF bloğunun ELSE kısmına koymak, Cambridge sözde kodunda else-if zinciri yazmanın yoludur. CHAR tek tırnak içinde tek bir karakter tutar.

5. 1'den 10'a kadar sayıların toplamı

1'den 10'a kadar bütün tam sayıları topla.

Sözde kod
DECLARE total : INTEGER
DECLARE i : INTEGER
total ← 0
FOR i ← 1 TO 10
    total ← total + i
NEXT i
OUTPUT "Sum of 1 to 10 is ", total
Çıktı
Sum of 1 to 10 is 55

FOR döngüsü sabit sayıda çalışır: i sırasıyla 1, 2, 3 değerlerini alarak 10'a kadar gider, NEXT i de döngü gövdesinin bittiği yeri gösterir. Ara toplam 0'dan başlar ve her turda büyür. Sonuç olan 55, n(n + 1) / 2 formülünün verdiği değerle aynıdır.

6. Çarpım tablosu yazdır

7 çarpım tablosunun ilk beş satırını yazdır.

Sözde kod
DECLARE i : INTEGER
FOR i ← 1 TO 5
    OUTPUT "7 x ", i, " = ", 7 * i
NEXT i
Çıktı
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35

Döngü sayacı i hesaplamanın içinde kullanılır, bu yüzden her tur farklı bir satır yazdırır. OUTPUT, virgüllerle birden fazla metin parçasını ve değeri birleştirebilir.

7. WHILE döngüsüyle geri sayım

5'ten 1'e geri say, sonra bir kapanış mesajı yazdır.

Sözde kod
DECLARE count : INTEGER
count ← 5
WHILE count > 0 DO
    OUTPUT count
    count ← count - 1
ENDWHILE
OUTPUT "Liftoff!"
Çıktı
5
4
3
2
1
Liftoff!

WHILE döngüsü koşulunu her turdan önce kontrol eder ve koşul yanlış olur olmaz durur. Burada koşul count > 0, gövde de her seferinde count değerini bir azaltır. Azaltan satırı çıkarırsan döngü hiç bitmez. Kaç tur gerektiğini önceden bilmediğinde WHILE kullan.

8. Dizideki en büyük sayıyı bul

Altı sayılık bir listedeki en büyük değeri bul.

Sözde kod
DECLARE nums : ARRAY[1:6] OF INTEGER
DECLARE i : INTEGER
DECLARE largest : INTEGER
nums[1] ← 14
nums[2] ← 3
nums[3] ← 27
nums[4] ← 9
nums[5] ← 21
nums[6] ← 6
largest ← nums[1]
FOR i ← 2 TO 6
    IF nums[i] > largest THEN
        largest ← nums[i]
    ENDIF
NEXT i
OUTPUT "The largest number is ", largest
Çıktı
The largest number is 27

ARRAY[1:6], 1'den 6'ya numaralanmış altı yer bildirir, çünkü Cambridge dizileri genellikle 1'den başlar. Program ilk elemanın en büyük olduğunu varsayar, sonra diğer her elemanı onunla karşılaştırır ve hangisi büyükse onu tutar. Dizi baştan sona bir kez gezildikten sonra cevap largest içindedir.

9. Ortalama hesapla

Dört sınav notunun ortalamasını bul.

Sözde kod
DECLARE marks : ARRAY[1:4] OF INTEGER
DECLARE i : INTEGER
DECLARE total : INTEGER
marks[1] ← 70
marks[2] ← 85
marks[3] ← 64
marks[4] ← 91
total ← 0
FOR i ← 1 TO 4
    total ← total + marks[i]
NEXT i
OUTPUT "Average mark: ", total / 4
Çıktı
Average mark: 77.5

Döngü dizinin her elemanını total değişkenine ekler, sonra program toplamı not sayısına böler. / operatörü ondalıklı bir sonuç verir; çıktının 77.5 olmasının nedeni budur. Tam sayı bölmesi istediğinde bunun yerine DIV kullan.

11. Kabarcık sıralaması

Beş sayıyı küçükten büyüğe sırala.

Sözde kod
DECLARE nums : ARRAY[1:5] OF INTEGER
DECLARE i : INTEGER
DECLARE j : INTEGER
DECLARE temp : INTEGER
nums[1] ← 5
nums[2] ← 1
nums[3] ← 4
nums[4] ← 2
nums[5] ← 8
FOR i ← 1 TO 4
    FOR j ← 1 TO 5 - i
        IF nums[j] > nums[j + 1] THEN
            temp ← nums[j]
            nums[j] ← nums[j + 1]
            nums[j + 1] ← temp
        ENDIF
    NEXT j
NEXT i
FOR i ← 1 TO 5
    OUTPUT nums[i]
NEXT i
Çıktı
1
2
4
5
8

Kabarcık sıralaması her komşu çifti karşılaştırır ve yanlış sıradaysa yerlerini değiştirir. Dış döngünün her turundan sonra kalan en büyük değer sona gitmiş olur; bu yüzden iç döngü her seferinde bir eleman erken durabilir. Yer değiştirme için üçüncü bir değişken gerekir: temp, diğer değer kopyalanırken bir değeri tutar.

Bu algoritmayı animasyonla izle

12. Fonksiyonla faktöriyel

n faktöriyeli (n!) döndüren bir fonksiyon yaz, sonra onunla 5!'i hesapla.

Sözde kod
FUNCTION Factorial(n : INTEGER) RETURNS INTEGER
    DECLARE result : INTEGER
    DECLARE i : INTEGER
    result ← 1
    FOR i ← 2 TO n
        result ← result * i
    NEXT i
    RETURN result
ENDFUNCTION

OUTPUT "5! = ", Factorial(5)
Çıktı
5! = 120

Bir FUNCTION parametre alır, işini yapar ve RETURN ile bir değer geri verir; başlığı döndürdüğü türü belirtir. İçinde bildirilen değişkenler yalnızca fonksiyon çalışırken vardır. 5! = 5 × 4 × 3 × 2 × 1, yani 120'dir.

13. Bir kelimedeki ünlüleri say

PSEUDOCODE kelimesinde kaç ünlü harf olduğunu say.

Sözde kod
DECLARE word : STRING
DECLARE letter : CHAR
DECLARE vowels : INTEGER
DECLARE i : INTEGER
word ← "PSEUDOCODE"
vowels ← 0
FOR i ← 1 TO LENGTH(word)
    letter ← SUBSTRING(word, i, 1)
    IF letter = 'A' OR letter = 'E' OR letter = 'I' OR letter = 'O' OR letter = 'U' THEN
        vowels ← vowels + 1
    ENDIF
NEXT i
OUTPUT word, " has ", vowels, " vowels"
Çıktı
PSEUDOCODE has 5 vowels

LENGTH bir string'deki karakter sayısını verir, SUBSTRING(word, i, 1) ise i konumundan başlayan tek bir karakter alır. Döngü her karakteri dolaşır ve karakter A, E, I, O ya da U olduğunda sayacı bir artırır.

14. FizzBuzz

1'den 15'e kadar sayıları yazdır; ama 3'ün katları için Fizz, 5'in katları için Buzz, ikisinin de katı olanlar için FizzBuzz yazdır.

Sözde kod
DECLARE i : INTEGER
FOR i ← 1 TO 15
    IF i MOD 15 = 0 THEN
        OUTPUT "FizzBuzz"
    ELSE
        IF i MOD 3 = 0 THEN
            OUTPUT "Fizz"
        ELSE
            IF i MOD 5 = 0 THEN
                OUTPUT "Buzz"
            ELSE
                OUTPUT i
            ENDIF
        ENDIF
    ENDIF
NEXT i
Çıktı
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

Kontrollerin sırası önemlidir. 15 hem 3'ün hem 5'in katıdır, bu yüzden 15 testi önce gelmelidir; yoksa program Fizz yazdırır ve FizzBuzz'a hiç ulaşmaz. Tam da bu tür bir akıl yürütmeyi ölçtüğü için klasik bir mülakat ısınma sorusudur.

15. REPEAT UNTIL ile şifre denemeleri

Sırayla en fazla üç şifre dene ve biri doğruysa erişim ver.

Sözde kod
DECLARE attempts : ARRAY[1:3] OF STRING
DECLARE tries : INTEGER
DECLARE guess : STRING
attempts[1] ← "hunter1"
attempts[2] ← "letmein"
attempts[3] ← "open sesame"
tries ← 0
REPEAT
    tries ← tries + 1
    guess ← attempts[tries]
    OUTPUT "Try ", tries, ": ", guess
UNTIL guess = "open sesame" OR tries = 3
IF guess = "open sesame" THEN
    OUTPUT "Access granted"
ELSE
    OUTPUT "Locked out"
ENDIF
Çıktı
Try 1: hunter1
Try 2: letmein
Try 3: open sesame
Access granted

REPEAT ... UNTIL döngüsü koşulunu sonda kontrol eder, bu yüzden gövde her zaman en az bir kez çalışır. Şifre eşleştiğinde ya da üçüncü denemeden sonra durur. Tahminler bir diziden gelir, böylece örnek klavyeden bir şey yazmadan çalışır; bir sınav cevabında genellikle her birini INPUT ile okursun.

Sözde kod örnekleri SSS

Basit bir sözde kod örneği nasıl olur?

Kısa bir örnek, bir sınavın geçilip geçilmediğine karar verir: IF score >= 50 THEN OUTPUT "Pass" ELSE OUTPUT "Fail" ENDIF. Neredeyse İngilizce gibi okunur ama sabit kurallara uyar; bu yüzden satır satır Python'a, Java'ya ya da başka bir dile çevrilebilir. Bu sayfadaki 15 program tek satırlık bir programdan arama ve sıralamaya kadar gider.

Sözde kod nasıl yazılır?

Önce programın ne yapması gerektiğine karar ver, sonra adımları küçük bir anahtar sözcük kümesiyle sırayla yaz: değişkenler için DECLARE, atama için ←, kararlar için IF, tekrar için FOR ya da WHILE, sonuçlar için OUTPUT. Her bloğun gövdesini girintile, bloğu kendi bitiş anahtar sözcüğüyle kapat ve her satırda tek bir işlem yap.

Sözde kod her sınavda aynı mı?

Hayır. Cambridge (IGCSE ve A-Level) DECLARE ve ← okunu kullanır, AQA bildirim olmadan ← kullanır, OCR'ın Exam Reference Language'i Python'a benzer, Edexcel ise SET ... TO yazar. Buradaki örnekler Cambridge stilindedir; sözde kod düzenleyicisi dört stilin hepsi arasında geçiş yapabilir.

Sözde kodu çalıştırabilir miyim?

Evet, bu sayfada. Sözde kod gerçek bir programlama dili olmadığı için resmi bir derleyicisi yoktur, ama buradaki düzenleyici Cambridge sözde kodunu tarayıcında çalıştırır, çıktıyı gösterir ve satır satır ilerler. Herhangi bir örneğin altındaki Düzenleyicide çalıştır düğmesine bas.

Sözde kod ile akış şeması arasındaki fark nedir?

İkisi de bir algoritmayı kodlanmadan önce tanımlar. Akış şeması adımları kutular ve oklarla çizer; bu da az sayıda karar içeren kısa süreçlere uygundur. Sözde kod ise adımları yapılandırılmış metin olarak yazar; daha uzun programlara ölçeklenir ve gerçek koda daha doğrudan dönüşür.

Sözde kodda değişken bildirmek zorunlu mu?

Cambridge sözde kodunda evet: değerlendirme ölçütleri, bir değişken kullanılmadan önce DECLARE name : TYPE yazılmasını bekler. AQA'nınki gibi başka stiller bildirimi atlar. Bir değişkeni bildirmek, okuyana onun hangi türde bir değer tuttuğunu da söyler.

Coddy programlama dilleri çizimi

Coddy ile sözde koddan gerçek koda geç

BAŞLA