forked from mehmetakifakkus/turkceprogramlamadili
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rehber.html
541 lines (392 loc) · 26.6 KB
/
rehber.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="author" content="Mehmet Akif AKKUŞ (mehmetakifakkus@gmail.com)">
<meta name="copyright" content="Copyright © 2017 Mehmet Akif AKKUŞ">
<meta name="keywords" content="parser generator, PEG, JavaScript">
<meta name="description" content="Türkçe Programlama Dili Türk Dilinde Çevirimiçi kodlamaya imkan sağlayan bir dil.">
<title>Rehber » Türkçe Programlama Dili</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.2/codemirror.css" rel="stylesheet">
<link rel="stylesheet" href="./documentation/common.css">
<link rel="stylesheet" href="./documentation/layout-default.css">
<link rel="stylesheet" href="./documentation/content.css">
<link rel="shortcut icon" href="css/tr.ico">
<link href="css/eclipse.css" rel="stylesheet">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.2/codemirror.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.2/mode/javascript/javascript.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.2/addon/edit/closetag.js"></script>
</head>
<body>
<div id="main">
<header id="header">
<h1><a href="http://turkceprogramlamadili.org">Çevrimiçi Türkçe Programlama Dili</a></h1>
<h2>Yeni başlayanlar için kolay, pratik programlama öğrenme aracı</h2>
</header>
<!-- <nav id="menu">-->
<nav id="menu" style="width: 100%; margin-top: 40px; margin-bottom: 40px; padding: 10px">
<!-- <a href="http://turkceprogramlamadili.org">Ana Sayfa</a>-->
<a href="index.html">Kodlama Sayfası</a>
<a class="current" href="rehber.html">Kodlama Rehberi</a>
<a href="hakkinda.html">Hakkında</a>
</nav>
<div id="content">
<h1>Kodlama Rehberi</h1>
Programlamaya Giriş Kitabı için <a href="https://mehmetakifakkus.gitbooks.io/turkce-programlama-diline-giris" target="_blank"> tıklayın.</a>
<h2 id="table-of-contents">İçerik Listesi</h2>
<div style="width: 40%; float: left;">
<ul>
<li><a href="#intro">Programlamaya Giriş</a></li>
<li><a href="#variables">1. Değişkenler</a>
<ul>
<li><a href="#variableOperations">Değişken İşlemleri</a></li>
<li><a href="#assignmentOperations">Atama Komutları</a></li>
</ul>
</li>
<li><a href="#operations">2. İşleçler (Operatörler)</a>
<ul>
<li><a href="#mathematicalOperations">Matematik İşleçleri (+, -, *, /)</a></li>
<li><a href="#comperativeOperations">İlişkisel İşleçler (küçük, büyük, eşit)</a></li>
<li><a href="#logicalOperations">Mantıksal İşleçler (ve, veya, değil)</a></li>
</ul>
</li>
<li><a href="#inputOutputCommand">2. Girdi ve Çıktı Komutları</a></li>
<li><a href="#selectionCommand">3. Seçme Komutları</a></li>
<li><a href="#repetitionCommand">4. Döngü Komutları</a>
<ul>
<li><a href="#yineleKomutu">yinele Komutu</a></li>
<li><a href="#sayarakYineleKomutu">sayarakYinele Komutu</a></li>
</ul>
</li>
</ul>
</div>
<div style="width: 60%; float: left;">
<img src="images/intro.png" style="border-radius: 25px; margin:0px 0px 20px 20px;" alt="Matematik Operasyonlari" width="520" height="440">
</div>
<h2 id="intro">Programlamaya Giriş</h2>
<p>Bu sayfayı ziyaret ettiğinize göre <strong>programlama</strong> işine meraklısınız demektir. Bu platform, diğerlerinden farklı olarak programlamanın mantığını <strong>Türk</strong>'lerin ana dili olan <strong>Türkçe</strong> anlatmayı amaçlamaktadır.
</p>
<p>Öncelikle bir bilgisayar programını çalıştırmak için programı bir yazı editöründe yazmış olmamız gerekmektedir (burada editör web sayfasıdır). Sonrasında ise, program derleyiciler ya da yorumlayıcılar ile çalıştırılabilir hale dönüşür. Bu site çalıştırılabilir dosya üretmekten daha çok <strong>programın çalışma mantığını</strong> görselleştirerek anlatmaya yönelik olarak hazırlanmıştır.</p>
<p>Aşağıdaki bir dizi konuyu okuyup uygulayarak ilk programlarınızı geliştirebilirsiniz. Bu arada burada yer alan tüm programlar Kodlama Sayfası kısmında çalışmaktadır. Kopyala-Yapıştır yapabilir nasıl çalıştığını gözlemleyebilirsiniz. </p>
<h2 id="variables">1. Değişkenler</h2>
<p>Programlama yaparken <strong>değişken</strong> isimli yapılar bizim değerlerimizi sakladığımız ve program ilerlerken farklı değerleri de saklaması mümkün olabilen temel nesnelerdir. Program boyunca farklı tipteki veriler bellekte tutulmalıdır.</p>
<p>İşte, verilerin bellekteki yerlerine ulaşmak <strong>değişken</strong> denilen bu isimleri kullanmakla mümkündür. Değişkenlere bu ismin verilmesinin nedeni bellekte saklanılan değerlerin programın çalışması esnasında değiştirilebilmesinden kaynaklanır.
</p>
<h3 id = "variableOperations"> Değişken İşlemleri</h3>
<textarea class="deneme">değişken puan = 90</textarea>
<p>Şeklinde bir kod ile program <variable>puan</variable> isminde bir değişken oluşturur ve içerisinde 90 sayı değerini saklar. Bu kod çalıştıktan sonra, bilgisayarın belleğinde bu sayının tutulması için bir hücre oluşturulur ve bu değer biz değiştirene veya program bitene kadar bu hücrede saklanır.</p>
<div style="width: 60%; float: left;">
<p>Değişkenlerin nasıl kullanıldığını bir kaç örnek kod inceledikten sonra anlıyor olacaksınız.</p>
<p>Varsalım ki dolabımız açtık, birtakım meyveler var. Bunların kaç tane olduğunu programımız ile bulalım. Haydi, sahip olduğumuz toplam meyvelerin sayısını bulan programı yazalım beraber.</p>
</div>
<div style="width: 40%; float: left;">
<img src="images/elmaArmutMuz.png" style="border-radius: 25px; margin:0px 0px 20px 20px;" alt="Matematik Operasyonlari" width="334" height="240">
</div>
<textarea class="deneme">değişken elma = 2
değişken armut = 1
değişken muz = 3
yaz elma + armut + muz</textarea>
<p>Gördüğünüz gibi elimizde 3 çeşit meyve var. 1-3 satırlarında kodlar ile her bir meyvenin miktarını "=" işareti kullanarak meyve isminde saklıyoruz. 4. satırda ise toplam meyve sayımızı bulabilmek için bunları toplayıp "yaz" isimli komutu kullanarak ekrana yazırıyoruz.</p>
<p>Tebrikler! İlk programınızı yazmış oldunuz. </p>
<h3 id = "assignmentOperations">Atama Komutları</h3>
<div style="width: 56%; float: left;">
<p>Bir önceki programımızda da aslında farkettiğiniz üzere, 3 farklı meyve isminde değişkenler oluşturduk. Bunlar sırasıyla her bir meyveden kaç adet olduğunu içlerinde sakladılar. Değişkenler tanımlandığı anda değerler verdik ve toplama işlemine alındıklarında bu değerler ile işlem gördüler.</p>
Atama işleminin belli bir kuralı vardır ve buna programlama dilinde söz dizimi (syntax) adını veririz. Atama işlemi söz dizimi şu şekildedir:
</div>
<div style="width: 44%; float: left;">
<img src="images/assignment.png" style="border-radius: 25px; margin:0px 0px 20px 20px;" alt="Matematik Operasyonlari" width="340" height="240">
</div>
<pre><code>değişken değişken = değer </code></pre>
<p>Bu ifade tarzı biraz kafa karıştırabilir. Matematiksel eşitlik (=) anlamına gelen atama işlemi programlamada sağdaki al, bunu solda gördüğün ifadenin (değişkenin) içine koy demektir. </p>
<p>Gelin işleri biraz daha karmaşık hale getirelim. Örneklerle devam ediyoruz.</p>
<textarea class="deneme">değişken a = 5
değişken b = a + 3
değişken c = a - b
yaz c</textarea>
<p>Burada ne yaptık? Yine 3 farklı değişken oluşturduk, ama bu sefer değişkenler sabit değerlerle başlamadılar, aksine bir önce tanımlanan değişkenin değerine bağlı bir değerle başladılar. <variable>a</variable> değişkeni 5 değeri ile başladı. Ardından <variable>b</variable> bunun 3 fazlası olan 8 değerini aldı. <variable>c</variable> ise bunların farkına sahip oldu.</p>
<h2 id = "operations">Temel İşleçler (Operatörler)</h3>
<h3 id="mathematicalOperations">Matematik İşleçleri (+, -, *, /)</h3>
<div>
<div style="width: 60%; float: left;">
<p>Aritmetik işleçler matematiksel işlemleri yapmamıza yarayan temel işleçlerdir. Yukarıdaki programlarda gördüğünüz üzere toplama (+) ve çıkarma (-) işlemlerini zaten kullanmıştık. Matematiksel işleçlerin nasıl çalıştığını örneklemek üzere gelin farklı bir program yazalım.</p>
</div>
<div style="width: 34%; float: left;">
<img src="images/pisagorKurali.png" style="border-radius: 25px; margin:0px 0px 20px 20px;" alt="Metematik Operasyonlari" width="340" height="240">
</div>
</div>
<br>
<p><strong>Örnek1: </strong>Yurtdışından dolar para birimi üzerinden satılan bir kaç ürün almak isteyelim. Bunların TL karşılığında neye tekabül ettiğini bulalım. Tabiki doların TL karşılığını değişken değeri olarak vereceğiz. Almak istediğimiz ürünlerin de dolar cinsinden tutarına sahibiz.</p>
<textarea class="deneme">değişken dolarKuru = 3.45
değişken saatFiyati = 60
değişken telefonFiyati = 300
değişken toplam = saatFiyati * dolarKuru + telefonFiyati * dolarKuru
yaz toplam</textarea>
<p><variable>saatFiyati</variable> adlı değişken almak istediğimiz saatin dolar para birimi cinsinden tutarını, <variable>telefonFiyati</variable> değişkeni ise almak istediğimiz telefonun dolar para birimi cinsinden tutarını içerisinde tutmaktadır. </p>
<p>Programımız yurtdışından almak istediğimiz bu iki ürün için o günkü dolar kuru olan 3.45 TL karşılığı ile alışveriş sonrasında toplam harcamamız gereken toplam tutarı hesapladı. </p>
<hr>
<p><strong>Örnek2: </strong>Kendi arabamız ya da aile arabamızın ne kadar yaktığını hesaplayalım. Varsayalım ki babanız sizden böyle bir program yazmanızı istedi. Genel yaklaşım -ya da algoritma diyelim- şu şekilde olabilir: Bir miktar yol katederiz, bunun bir şekilde kaydını tutarız, o sırada ne kadar tutarda yakıt harcadığımızı tespit ederiz. Örneğin, 236 km yol aldık ve 75 TL yakıt harcadık. Hadi 1 km yolu ne kadarlık yakıtla katettiğimizi bulalım. </p>
<textarea class="deneme">değişken toplamYol = 236
değişken toplamTutar = 75
değişken fiyat = toplamTutar / toplamYol
yaz fiyat</textarea>
<p>Kodumuz katettiğimiz toplam yolu adlı <variable>toplamYol</variable> değişkende, bu yol katedildiğinde harcanan tutarı ise <variable>toplamTutar</variable> adlı değişkende saklamakta ve
<pre><code>toplamTutar / toplamYol</code></pre> ile
bölme işlemini yapıp <variable>fiyat</variable> değişkeninde saklamaktadır. Her zamanki gibi bunu da <keyword>yaz</keyword> komutu ile yazdırmaktayız.</p>
<h2 id="comperativeOperations">İlişkisel İşleçler (eşit, küçük, büyük) </h2>
<p>Aslında ortaokuldan beri aşina olduğumuz bir konudur ilişkisel işleçler. Öncelikle, 6. sınıftan itibaren denklem çözmeyi öğrenmeye başlarız. Denklem çözerken denklemin 2 tarafın (eşitlik <strong>=</strong> ifadesininin sağı ve solu) birbirine eşit olduğunu kabul ederiz, denklemimizin bilinmeyenlerini bulmaya çalışırız. Sonrasında 7. ve 8. sınıfta da eşitsizlikler konusunu öğreniriz. <strong> < </strong>, <strong>></strong>, <strong>>= </strong> sembollerle de eşitsizlik denklemlerini çözmeye çalışırız. Denklemlerin çözüm yolları benzerlik gösterse de, denklemler ve eşitsizlikler farklı yorumlanır. Ortaokul yıllarına kısa bir gezinti yaptıktan sonra bu ifadelerin kodlama açısından neler ifade ettiğine bakalım.</p>
<div class="isa_info">
<i class="fa fa-info-circle"></i>
Kodlamada <strong>=</strong> sembolü çok farklı bir mana ifade ediyor. <strong>x</strong> leri bir tarafta bırakıp <strong>x</strong> 'in değerini bulmak gibi bir durum kodlamada söz konusu değil! Programlamaya yeni başlayanlar bu yanılgıya maalesef çok düşüyorlar.
</div>
<h3> Eşit "==" </h3>
<p>İlişkisel eşitlik sembolü, sağındaki ve solundaki ifadelerin eşitliğini kontrol eder. Eğer eşitlik varsa <em>doğru</em> döndürür.</p>
<p>Şimdi bununla alakalı olarak bir kodlama denemesi yapalım.</p>
<textarea class="deneme">
değişken yaş = 18
yaş == 18 </textarea>
Bir <strong>yaş</strong>strong> değişkeni oluşturalım ve şu komutu deneyelim. Çalıştırdığımızda değişken değeri kısmında _doğru_ veya _yanlış_ şeklinde ibareler göreceğiz. Eğer <strong>yaş</strong> değeri 18'e eşit ise doğru diğer durumda ise yanlış yazdığını göreceğiz. Farklı değerlerle deneyelim ve bu işlecin nasıl çalıştığını anlayalım.
<div class="isa_warning">
<i class="fa fa-warning"></i>
İlişkisel eşitlik ise programlamada farklı bir gösterimle yapılıyor. Tek eşitlik olan = sembölü değer ataması ya da değişken tanımlamasında kullanılırken ilişkisel eşitlik için çift eşittir sembolü kullanılıyor. Yani == olarak.
</div>
<h3> Eşit değil "!=" </h3>
<p>Bazende iki ifadenin birbirine eşit olmadığını sorgulamak isteyebiliriz. Bu durumda eşittir sembolünün sol tarafında bir "!" işareti koyarız.
</p>
<p>Sırada ilişkisel küçük var. Burada da bir karşılaştırma söz konusu.
</p>
<h3> Küçük " < " </h3>
<p>Soldaki ifadenin sağdakinden küçük olup olmadığını kontrol eder. Doğru ya da yanlış değerini döndürür.
</p>
<textarea class="deneme">
değişken yaş = 18
yaş < 18 </textarea>
<h3> Büyük " > " </h3>
<p>Soldaki ifadenin sağdakinden büyük olup olmadığını kontrol eder. Doğru ya da yanlış
değerini döndürür.</p>
<textarea class="deneme">
değişken yaş = 18
yaş > 18 </textarea>
<h3> İlişkisel Büyük Eşit " >= " ve Küçük Eşit "<=" </h3>
<p>Bazı durumlarda hem büyüklük hem de eşitlik önemli olabilir. Örneğin bir kişinin yaşının 18'den büyük ya da eşit olduğunu kontrol etmek istersek bunu önce küçük sonra eşittir işareti ile yapabiliriz. Şöyle:</p>
<textarea class="deneme">
değişken yaş = 18
yaş >= 18</textarea>
<h3> İlişkisel ifadelerin Seçme Komutları'nda kullanımı </h3>
İlişkisel komutlar tek başına doğru ya da yanlış değerini döndürür. Bu bilgi seçme ya da döngü komutlarında daha işe yarar hale bürünür. Nasıl mı? O zaman aşağıdaki örnek koda bakalım. Bu nasıl çalıştığı hakkında az bir bilgi verecektir. Bununla alakalı detaylı bilgiyi [5. Seçme Komutları](secme-komutlari.md) 'nda görüyor olacağız.
<textarea class="deneme">
değişken no = 21
eğer(no > 10) // burası büyüklüğü kontrol eder
no = no + 3
değilse
no = no + 1</textarea>
<div class="isa_info">
<i class="fa fa-info-circle"></i>
Kodlamadaki bütün ilişkisel işleçler doğru ya da yanlış sonucunu verirler.
</div>
Özetleyecek olursak:
<table>
<thead>
<tr>
<th style="text-align:center">İşleç</th>
<th style="text-align:left">Anlamı</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center"><</td>
<td style="text-align:left">küçük</td>
</tr>
<tr>
<td style="text-align:center">></td>
<td style="text-align:left">büyük</td>
</tr>
<tr>
<td style="text-align:center">==</td>
<td style="text-align:left">eşit</td>
</tr>
<tr>
<td style="text-align:center">>=</td>
<td style="text-align:left">büyük eşit</td>
</tr>
<tr>
<td style="text-align:center">>=</td>
<td style="text-align:left">küçük eşit</td>
</tr>
<tr>
<td style="text-align:center">!=</td>
<td style="text-align:left">eşit değil</td>
</tr>
</tbody>
</table>
<h2 id="mantıksal-i̇şleçler-ve-veya-değil">Mantıksal İşleçler (ve, veya, değil)</h2>
<p>İlişkisel ifadeleri mantık işleçleri ile birbirine bağlayabiliriz. İsterseniz öncelikle basit mantık kurallarını bir hatırlayalım:</p>
<table>
<thead>
<tr>
<th style="text-align:center">İşleç</th>
<th style="text-align:center">Sembolü</th>
<th style="text-align:left">Anlamı</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">ve</td>
<td style="text-align:center"><img src="../assets/veya.gif" alt=""></td>
<td style="text-align:left">Her iki ifade birlikte doğru olunca doğru olur</td>
</tr>
<tr>
<td style="text-align:center">veya</td>
<td style="text-align:center"><img src="../assets/ve.gif" alt=""></td>
<td style="text-align:left">İki ifadeden birisinin doğru olması yeterli</td>
</tr>
<tr>
<td style="text-align:center">değil</td>
<td style="text-align:center"><img src="../assets/degil.gif" alt=""></td>
<td style="text-align:left">Doğruysa yanlış, yanlışsa doğruya dönüşür</td>
</tr>
</tbody>
</table>
<p>Bir de kod örnekleri ve bunların anlamına bakalım:</p>
<table>
<thead>
<tr>
<th style="text-align:center">İşleç</th>
<th style="text-align:center">Örnek kullanımı</th>
<th style="text-align:left">Anlamı</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">ve</td>
<td style="text-align:center">yaş >= 18 <strong>ve</strong> para >= 2000</td>
<td style="text-align:left">Yaş en az 18 <strong>ve</strong> en az 2000 TL para</td>
</tr>
<tr>
<td style="text-align:center">veya</td>
<td style="text-align:center">yaş >= 18 <strong>veya</strong> öğrenim_türü >= 3</td>
<td style="text-align:left">Yaş en az 18 <strong>veya</strong> en az lise mezunu</td>
</tr>
<tr>
<td style="text-align:center">değil</td>
<td style="text-align:center"><strong>!</strong>(yaş >= 18)</td>
<td style="text-align:left">Yaş 18'den küçük</td>
</tr>
</tbody>
</table>
<p>Kodlarımızı <a href="http://turkceprogramlamadili.org" target="_blank">TPD editörü</a> üzerinde aşağıdaki kod bölütünü kopyala yapıştır yaparak deneyebiliriz:</p>
<textarea class="deneme">
değişken yaş = 20
değişken para = 2500
yaş >= 18 ve para >= 2000</textarea>
<p>Editörün son satırdaki ifade için <em>doğru</em> ya da <em>yanlış</em> değerleri ürettiğine dikkat edelim. <strong>Yaş</strong> ya da <strong>para</strong> değerleri üzerinde değişiklik yapabilir, sonuçları gözlemleyebiliriz.</p>
<p>Diğer bir örnek: Kişinin yaşının 20 ile 30 arasında olup olmadığını anlayan programı geliştirelim:</p>
<textarea id="sorunlu" class="deneme">
değişken yaş = 20
yaş >= 20 ve yaş <= 30</textarea>
<p>Burada 2. satırda <strong>ve</strong> mantıksal işlecini kullanarak bunu başarabiliriz. Bu işleç sağdaki ve soldaki iki ifadenin de birden doğru olması durumunda <em>doğru</em> sonucunu üretecektir. Aksi durumda, yani en az birisinin hatalı olması (yaşın 10, ya da 40 olması gibi) durumunda <em>yanlış</em> sonucunu alıyor olacağız.</p>
<h2 id="inputOutputCommand">2. Girdi ve Çıktı Komutları</h2>
<p>Elbette programlar çalışırken etraflarındaki insanlar ile iletişim halinde yer alırlar. Bazen onlardan veri alırlar. Bazen de değişik iletişim araçları ile kullanıcıya veri çıktı ederler. Örneğin klavye, fare gibi çevre birim araçları ile bilgisayarlar bizden veri alırken; ekran, hoparlör ya da titreşim kaynağı gibi çevre birimleri ile de bize veri aktarırlar.</p>
<h3 id="inputCommand">Girdi Komutları</h3>
<p>Bu kısım geliştirme aşamasındadır. </p>
<h3 id="outputCommand">Çıktı Komutları</h3>
<p>Çıktı komutu olan <keyword>yaz</keyword> komutu aldığı değişken ismini konsol ekranına yansıtır. Aşağıdaki gibi bir söz dizimi vardır.</p>
<pre><code>yaz değişken</code></pre>
Hali hazırdaki program çalışma düzeninde bir değişkene değer atandığında sağ taraftaki çıktılar bölmesinde zaten değeri görüntülenmekte, ama bazı değişkenlerin konsol kısmında görüntülenmesi daha uygun olabileceğinden yaz komutu geliştirilmiştir.
<h2 id="selectionCommand">3. Seçme Komutları</h2>
<p>Programımızın bazen olası kodlar arasında seçim yapmasını isteyebiliriz. Yani yukarıdan aşağı doğru bütün kodların çalışması, istediğimiz bir program çalışma düzeni olmayabilir. Dolayısıyla <keyword>eğer</keyword> ve <keyword>değilse</keyword> komutları bu noktada aradığımız komutlardır. <keyword>eğer</keyword> komutunun ardından gelen parantezlerin arasına doğruluğu kontrol edilecek olan ilişkisel komut yazılır. Doğruysa <keyword>eğer</keyword>in ardındaki kısım yanlışsa <keyword>değilse</keyword> kısmı çalışır. Zaten adı üzerinde gayet anlaşılır değil mi?</p>
<p>Şöyle bir söz dizimi kuralını verelim:</p>
<pre><code>eğer(ilişkisel komut)
doğruysa çalışacak komut
değilse
yanlışsa çalışacak komut</code></pre>
<p>Yine örnekler üzerinden gidelim. Hatırlatmak gerekirse; bu kodları kodlama sayfasına kopyala yapıştır yapıp nasıl çalıştığını gözlemleyebiliriz.</p>
<hr>
<p><strong>Örnek1: </strong> Öğretmeniz bize bir sınav yapsın. Sınavdan önce şöyle bir şey desin: "80 den fazla not alanları ödüllendireceğim ve 10 puan ekstra vereceğim, altında alan her kişiden ise ceza amaçlı 5 puan kıracağım." Kişinin son puan durumunu hesaplayan kodu yazalım. </p>
<textarea class="deneme">değişken puan = 75
eğer(puan > 80)
puan = puan + 10
değilse
puan = puan - 5
yaz puan</textarea>
<hr>
<p><strong>Örnek2: </strong>Ehliyet kursu yönetiyoruz. Öğrenciler bize ehliyet alabilmek için başvuruyor. Kodumuz ehliyet başvuru sisteminde çalışıyor varsayalım. Kişinin yaş bilgisine göre, "ehliyet alabilirsiniz" ya da "yaşınız ehliyet almaya yeterli değildir" gibi durum mesajlarını yazdırmak istiyoruz.</p>
<textarea class="deneme">değişken yaş = 19
eğer(yaş > 18)
yaz "Ehliyet alabilirsiniz"
değilse
yaz "Yaşınız ehliyet almaya yeterli değildir"</textarea>
<hr>
<p><strong>Örnek3: </strong>3 sayıdan en büyüğünü bulan programı yazalım. İş biraz da karmaşıklaşıyor...</p>
<textarea class="deneme">değişken num1 = 12
değişken num2 = 10
değişken num3 = 15
değişken no = num1
eğer(num2 > no)
no = num2
eğer(num3 > no)
no = num3
yaz no</textarea>
<p>Bu 3 sayıyı 3 değişken ile başlatıyoruz. İsimleri hatırlaması ve kullanması kolay olsun diye <variable>num1</variable> gibi bir isim verdik. Diğerleri de bunun ismiyle ilişkili olarak değer aldı. -Unutmayın iyi bir programcı değişken isimlerini anlamlı seçer- Sırasıyla değerlerini veriyoruz.</p>
<p>Bu kodu kodlama sayfasındaki yere kopyalarak programın nasıl çalıştığına bakalım. Değişkenlerin ilk değerini farklılaştırarak kodun nasıl çalıştığına bakalım. Alternatif çözümler elbette var. Bunlar üzerine düşünelim. </p>
<h2 id="repetitionCommand">4. Döngü Komutları</h2>
<h3 id="yineleKomutu">yinele Komutu</h3>
<p>Bu komut kodlarımzı yineleyerek, diğer bir ifadeyle tekrarlayarak çalışmasını sağlar. Bu yüzden adı da <keyword>yinele</keyword>. Bu komut; <keyword>eğer</keyword> komutunda olduğu gibi çalışma şartı komutun parantez içindeki ilişkisel komut kısmın doğru olması şartıdır. Burası belli bir zaman sonra yanlış olacak ve döngümüz sonlanacaktır.</p>
<p>Şöyle bir söz dizimi kuralını verelim:</p>
<pre><code>yinele(ilişkisel komut)
doğru olduğu sürece çalışacak komut
</code></pre>
<p><strong>Uyarı: </strong>Unutmayalım ki; döngümüz mutlaka sonlanmalıdır. Sonlanmayan döngü istenmeyen bir durumdur.</p>
<p>Bu kodları Kodlama Sayfasına yapıştırıp deneyebiliriz. Kod görselleştirici kodları görsel hale getirip çalışma mantığının daha iyi anlaşılmasını sağlayacaktır.</p>
<textarea class="deneme">değişken no = 2
yinele(no < 10)
no = no + 1
yaz no</textarea>
<h3 id="sayarakYineleKomutu">sayarakYinele Komutu</h3>
<p>Eğer geçici bir değişkenle sayarak bir döngü kurmak istersek <keyword>sayarakYinele</keyword> aradığımız komuttur.</p>
<p>Şöyle bir söz dizimi kuralını verelim:</p>
<pre><code>sayarakYinele(komut1, ilişkisel komut, komut2)
doğru olduğu sürece çalışacak komut</code></pre>
<p><strong>komut1</strong> geçici değişken oluşturma komutudur. Bir sayı değeri ile ilklendirme yaparız. <strong>komut2</strong> ise her döngü sonunda çalıştırılan komuttur. Aşağıdaki kodları görsel olarak görmek için denemeyi unutmayın. </p>
<p>Örnek kodumuz da şu şekilde:</p>
<textarea class="deneme">değişken no = 2
sayarakYinele(değişken t = 0, t < 3, t = t+1)
{
no = no + 1
yaz t
}
yaz t</textarea>
<p>Burada süslü parantez var bunlar ne diye soracak olabilirsiniz. Bunları bir sonraki konumuzda işleyeceğiz. Ama mantığını siz yakaladınız sanırım...</p>
<footer id="footer" style = "margin-top:50px;">
Copyright © 2016 - 2017 <a href="https://mehmetakifakkus.github.io/turkceprogramlamadili/">Türkçe Programlama Dili</a>
•
<a href="https://github.com/mehmetakifakkus/turkceprogramlamadili">Kaynak Kod</a>
•
<a href="https://twitter.com/turkceprogramlamadili" title="Twitter'da takip edin">Twitter</a>
<br>
</footer>
</div>
<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103667062-1', 'auto');
ga('send', 'pageview');
</script>
<script src='js/addon/simple.js'></script>
<script src="js/mode/custom-mode.js"></script>
<script type="text/javascript">
function qsa(sel) {
return Array.apply(null, document.querySelectorAll(sel));
}
//deneme ismindeki tüm editörler codemirror editorü olacak
qsa(".deneme").forEach(function (editorEl) {
CodeMirror.fromTextArea(editorEl, {
mode: "simplemode",
lineNumbers: true,
styleActiveLine: true,
matchBrackets: true,
theme: 'eclipse',
});
});
</script>
</body>
</html>