# İç İçe İfadeler

Basit yapıdaki seçme komutlarını bir önceki konumuz olan Seçme Komutları konusunda gördük. Şimdi biraz daha ileri seviye örneklere bakalım.

2 boyutlu koordinat düzleminde x ve y değerleri bilinen bir noktanın hangi koordinat düzleminde yer aldığını tespit etmeye çalışalım. Bilindiği gibi koordinat düzlemi 4 farklı bölgeden oluşur.

&#x20;Yandaki resim bize koordinat düzlemindeki bölgeleri gösteriyor. Gördüğünüz gibi iki sayının da pozitif olduğu yerde noktamız 1. bölgede, x negatif y pozitif ise, 2. bölgede, ikisi de negatif ise 3. bölgede ve son olarak x pozitif y negatif ise 4. bölgede yer alıyor noktamız.\
\
&#x20;Daha önce de yaptığımız gibi öncelikle bir akış çizelgesi oluşturmaya çalışalım. Çünkü akış çizelgeleri ile geliştireceğimiz kod arasında sıkı sıkıya bir bağlılık var.

![](/files/-M0_a0VWLNradlodDo1Z)

Bunu akış çizelgesi yardımıyla ifade edelim:

![](/files/-M0_a0VYDqeH_meS8hq6)

2 boyutlu kordinat düzleminde bir noktayı (x,y) ikilisi şeklinde ifade ederiz. Bir noktanın hangi kordinat bölgesinde yer alacağını da bu değerlerin pozitif veya negatif olması belirler.

Şimdi öncelikle akış çizelgesini yorumlamaya çalışalım. Problemi aşama aşama çözmeye çalışalım.

1. Değişkenleri tanımlayalım:

   değişken x = 5\
   değişken y = -2
2. Algoritmamız önce **x** değerinin pozitif mi yoksa negatif mi olduğunu anlamak üzerine olacak,

   eğer(x > 0)\
   {\
   &#x20;// x pozitifse çalışacak bazı komutlar\
   }\
   değilse\
   {\
   &#x20;// x negatifse çalışacak bazı komutlar \
   }
3. Sonrasında bununla alakalı olarak **y** değerine bakacağız. Örnek olarak **x** pozitif olduğu durumdaki koşul ifadelerine bakalım:

   eğer(y > 0)\
   &#x20;    yaz "Birinci Bölge"\
   değilse\
   &#x20;    yaz "Dördüncü Bölge"&#x20;
4. Sonraki bakacağımız kısım **x**'in negatif olduğu durumlara bakmak olacak.

Yukarıdaki akış çizelgesinin tamamını TPD ile şu şekilde kodlayabiliriz:

değişken x = 5\
değişken y = -2\
\
eğer(x > 0)\
{\
&#x20;    eğer(y > 0)\
&#x20;       yaz "Birinci Bölge"\
&#x20;    değilse\
&#x20;       yaz "Dördüncü Bölge"\
}\
değilse eğer(x < 0)\
{\
&#x20;   eğer(y > 0)\
&#x20;       yaz "İkinci Bölge"\
&#x20;   değilse\
&#x20;       yaz "Üçüncü Bölge"\
}

&#x20;Yukarıdaki örnekte akış çizelgesi ile kod arasındaki mükemmel uyuma dikkat edin. Aslında akış çizelgesini kalemle bir kağıda çizerek işe başlamak kodlamada gayet kolaylık sağlıyor.\
Çünkü bunu yapabilmeniz problemin kafanızda daha duru ve anlaşılır hale geldiğini gösterir.

\
function qsa(sel) {\
&#x20;   return Array.apply(null, document.querySelectorAll(sel));\
}\
\
//deneme ismindeki tüm editörler codemirror editorü olacak\
qsa(".deneme").forEach(function (editorEl) {\
&#x20; CodeMirror.fromTextArea(editorEl, {\
&#x20;   mode: "simplemode",\
&#x20;   readOnly: true,\
&#x20;   lineNumbers: true,\
&#x20;   theme: 'eclipse'\
&#x20; });\
});\
\
//deneme ismindeki tüm editörler codemirror editorü olacak\
qsa(".oneline").forEach(function (editorEl) {\
&#x20; CodeMirror.fromTextArea(editorEl, {\
&#x20;   mode: "simplemode",\
&#x20;   readOnly: true,\
&#x20;   lineNumbers: false,\
&#x20;   theme: 'eclipse2'\
&#x20; });\
});\ <br>


---

# 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://mehmet-akif-akkus.gitbook.io/turkce-programlama-diline-giris/secme-komutlari/ic-ice-ifadeler.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.
