# 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
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.yavuzlar.org/egitim/c-plus-plus/2.0-fonksiyonlar/1.2-syntax-yazim-kurallari.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
