# 1.2 Syntax (Yazım Kuralları)

## **Temel C++ Sözdizimi**

C++ betikleri `.cpp` uzantılı dosyalar içinde yazılır ve her C++ programı `main()` fonksiyonu ile başlar ve biter. Her bir C++ deyimi de noktalı virgül (`;`) ile sonlandırılır.

* **Başlangıç ve Bitiş**: C++ kodları belirli bir başlangıç veya bitiş etiketi ile sınırlanmaz. Program akışı, `#include`direktifleri ile başlar ve `main()` fonksiyonu içinde tanımlanır.
* **Kod Yapısı**: C++ programı `main()` fonksiyonu ile başlar ve `{}` süslü parantezleri ile sınırlandırılır. Örneğin:

```
#include <iostream>  // Gerekli kütüphane eklenir.

int main() {  // Programın ana fonksiyonu burada başlar.
    std::cout << "Merhaba, Dünya!" << std::endl;  // Ekrana mesaj yazdırma işlemi.
    return 0;  // Program başarıyla bittiğinde 0 döndürülür.
}
```

> Not: `return 0;` ifadesi, `main()` fonksiyonunun sonunda programın başarılı bir şekilde tamamlandığını işletim sistemine bildirmek için kullanılır. `main()` fonksiyonu `int` türünde bir değer döndürmek zorunda olduğundan `return` ifadesi yazılır. `0` değeri, başarılı çalışmayı temsil eder.

## **C++ Büyük/Küçük Harf Duyarlılığı**

C++ dilinde **tüm anahtar sözcükler**, **değişkenler**, **sınıflar** ve **fonksiyon adları** büyük/küçük harfe duyarlıdır. Bu, `int`, `INT`, `Int` gibi ifadelerin aynı anlama gelmediği anlamına gelir.

```
#include <iostream>

int main() {
    std::cout << "Hello, Bootcamp2024" << std::endl;  // std::cout kullanımı
    std::COUT << "Hello, Bootcamp2024" << std::endl;  // Hata verir: COUT geçersizdir
    return 0;
}
```

> Yukarıdaki örnekte, `std::cout` küçük harflerle yazıldığında geçerlidir ve ekrana yazdırma işlemi yapar. Ancak `std::COUT` kullanımı hata verir çünkü `COUT` C++ tarafından tanımlı bir ifade değildir.

Örnek:

```
#include <iostream>

int main() {
    int value = 10;
    int Value = 20;
    int VALUE = 30;

    std::cout << "value: " << value << std::endl;  // Ekrana 10 yazar
    std::cout << "Value: " << Value << std::endl;  // Ekrana 20 yazar
    std::cout << "VALUE: " << VALUE << std::endl;  // Ekrana 30 yazar

    return 0;
}
```

> Bu örnekte, `value`, `Value` ve `VALUE` değişkenleri birbirinden bağımsızdır. Her biri farklı bir değeri temsil eder ve ekrana farklı sonuçlar yazdırır.

## Alıştırma

**S1) Bir C++ Betiği Şu Şekilde Başlar ve Biter:**

**a)**

```
#include <iostream>
int main() {
    // C++ code
    return 0;
}
```

b)

```
#include <iostream>
void main() {
    // C++ code
}
```

c)

```
#include <iostream>
int main()
    // C++ code
return 0;
```

**S2) Ekrana "Merhaba Dünya" Yazdırmak İçin Eksik Kısmı Ekleyin:**

```
#include <iostream>

int main() {
    [] << "Merhaba Dünya";
    return 0;
}
```

**a)**

```
std::cout
```

b)

```
Console.WriteLine
```

c)

```
echo
```

S3) Aşağıdaki kodlara göre ekrana yazan çıktı ne olacaktır ?

```
#include <iostream>

int main() {
    int value = 5;
    int Value = 10;
    int ValuE = 15;

    std::cout << Value;
    return 0;
}
```

a)

```
5
```

b)

```
10
```

c)

```
15
```
