{"id":10546,"date":"2018-01-02T10:09:16","date_gmt":"2018-01-02T15:09:16","guid":{"rendered":"https:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=10546"},"modified":"2018-07-06T23:57:46","modified_gmt":"2018-07-07T03:57:46","slug":"1-tr-degiskenler","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/1-tr-degiskenler\/","title":{"rendered":"1: De\u011fi\u015fkenler"},"content":{"rendered":"<!-- Please retain this notice and add more notes if you create a new version. Original lesson author: David Pritchard, daveagp@gmail.com, http:\/\/cscircles.ca License: http:\/\/creativecommons.org\/licenses\/by-nc-sa\/3.0\/-->\n<p>De\u011fi\u015fken (variable) bir program i\u00e7indeki verinin \"depoland\u0131\u011f\u0131 yer\" g\u00f6revi yapar. Bir bilgiye, daha sonra \u00e7a\u011f\u0131rabilmek i\u00e7in verdi\u011fimiz isimdir. Her de\u011fi\u015fkenin ad\u0131 vard\u0131r; \u00f6rne\u011fin myLuckyNumber bir de\u011fi\u015fken ad\u0131 olabilir. Bir de\u011fi\u015fkene bir bilgiyi depolamak i\u00e7in, e\u015fittir i\u015fareti ile bir komut sat\u0131r\u0131 yazar\u0131z:<\/p>\n<pre>\u00abde\u011fi\u015fken ad\u0131\u00bb\u00a0= \u00abdepolamak istedi\u011finiz de\u011fer\u00bb<\/pre>(\u0130fadelerin \u00f6zel b\u00f6l\u00fcmlerini belirtmek i\u00e7in, derslerimizde yukar\u0131daki gibi \"\u00e7ift a\u00e7\u0131l\u0131 ayra\u00e7lar\" kullan\u0131yoruz.) \u00d6rne\u011fin, a\u015fa\u011f\u0131daki Python sat\u0131r\u0131<\/p>\n<pre>benim\u015eansl\u0131Say\u0131m = 13<\/pre><code>13<\/code> de\u011ferini benim\u015eansl\u0131Say\u0131m de\u011fi\u015fkeninde depolar. B\u00f6ylece, benim\u015eansl\u0131Say\u0131m de\u011fi\u015fken ad\u0131n\u0131 her yazd\u0131\u011f\u0131n\u0131z yerde Python, bu de\u011fi\u015fkene ba\u015fta atad\u0131\u011f\u0131m\u0131z de\u011feri kullan\u0131r. A\u015fa\u011f\u0131da, de\u011fi\u015fkenleri kullanma ile ilgili k\u0131sa bir \u00f6rnek verilmi\u015ftir. Birden fazla y\u00f6nerge sat\u0131r\u0131 vard\u0131r: Python, \u00f6nce ilk sat\u0131r\u0131, ard\u0131ndan ikinci sat\u0131r\u0131 \u00e7al\u0131\u015ft\u0131r\u0131r ve son sat\u0131ra gelene kadar bu \u015fekilde devam eder.\u00a0<strong>\u00c7al\u0131\u015ft\u0131r<\/strong> d\u00fc\u011fmesine basarak i\u015flemi g\u00f6rebilirsiniz.\u00a0<form class=\"pbform\" action=\"#\" id=\"pbform0\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox0'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Bir \u00f6rnek de\u011fi\u015fkenin kullan\u0131l\u0131\u015f\u0131.<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 136px;'><textarea wrap='off' name='usercode0' id='usercode0'  cols=10 rows=5 readonly='readonly'  style = 'height : 136px;'  class='pyboxCode RO'>\nbenim\u015eansl\u0131Say\u0131m = 13\nprint(benim\u015eansl\u0131Say\u0131m + 1)\nprint(benim\u015eansl\u0131Say\u0131m )\nbenim\u015eansl\u0131Say\u0131m = 5 + 2\nprint(benim\u015eansl\u0131Say\u0131m )<\/textarea><\/div>\n<div id='pbhistory0' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit0' value=' '\/><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse0\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"0\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"0d710b2ff8dd2e6eddd3cfcd01f44982\"\/>\n<div id='pbresults0' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit0\").value = \"Run program\";document.getElementById(\"inputInUse0\").value = \"N\";<\/script>\n Programdaki s\u0131ras\u0131yla 5 sat\u0131r\u0131 ve \u00e7\u0131kt\u0131yla (output) nas\u0131l kar\u015f\u0131l\u0131kl\u0131 oldu\u011funu inceleyin. G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, <code><code>benim\u015eansl\u0131Say\u0131m<\/code><\/code>\u00a0de\u011fi\u015fkeni\u00a0ilk 2\u00a0<code>print<\/code>\u00a0c\u00fcmlesinde\u00a0<code>13<\/code>\u00a0de\u011ferini \u00a0korudu, sonra de\u011feri\u00a0\u00a0<code>7<\/code>\u00a0oldu. Ayr\u0131ca burada, <em>toplama<\/em>\u00a0(<code>+<\/code>) operat\u00f6r\u00fcn\u00fc kullanarak 2 say\u0131y\u0131 toplad\u0131k. Ayn\u0131 \u015fekilde \u00e7\u0131karma (<code>-<\/code>), \u00e7arpma(<code>*<\/code>) ve b\u00f6lme (<code>\/<\/code>) operat\u00f6rleri de var ve bunlara ileride tekrar d\u00f6nece\u011fiz. Bir bilgisayar\u0131n bellek saklama alan\u0131n\u0131, k\u00e2\u011f\u0131t kalemle bir tablodaki de\u011fi\u015fkenleri, de\u011ferlerini ifade edecek \u015fekilde kullanarak taklit edebilirsiniz. \u0130\u015fte bir \u00f6rnek; unutmay\u0131n (*) Python'da \u00e7arpma i\u015flemi yapmakta kullan\u0131l\u0131r.<\/p>\n<p><strong>Hedef:<\/strong> Program\u0131n sonunda t\u00fcm de\u011fi\u015fkenlerin son de\u011ferlerini belirleyin.<\/p>\n<div class=\"pybox\">\n<pre>first = 2\r\nsecond = 3\r\nthird = first * second\r\nsecond = third - first\r\nfirst = first + second + third\r\nthird = second * first<\/pre><b>Fikir<\/b>: Bir tablo \u00fczerinde nas\u0131l de\u011fi\u015ftiklerini takip edelim. \u0130\u015flemlerin en sonunu g\u00f6rmek \u00fczere \u00e7ubu\u011fu kayd\u0131r\u0131n.<\/p>\n<table style=\"margin-bottom: 0px; padding-right: 20px;\">\n<colgroup>\n<col width=\"55%\" \/> <\/colgroup>\n<colgroup>\n<col width=\"15%\" \/>\n<col width=\"15%\" \/>\n<col width=\"15%\" \/> <\/colgroup>\n<tbody>\n<tr align=\"center\">\n<th>ifade<\/th>\n<th colspan=\"3\">ifadelerin i\u015flenmesinin ard\u0131ndan de\u011ferler<\/th>\n<\/tr>\n<tr class=\"mono\" align=\"center\">\n<th><\/th>\n<th>FIRST<\/th>\n<th>SECOND<\/th>\n<th>THIRD<\/th>\n<\/tr>\n<\/tbody>\n<\/table>\n<div style=\"margin-top: 0px; overflow-y: scroll; max-height: 100px;\">\n<table class=\"mono\" style=\"margin-bottom: 5px;\">\n<colgroup>\n<col width=\"55%\" \/> <\/colgroup>\n<colgroup>\n<col width=\"15%\" \/>\n<col width=\"15%\" \/>\n<col width=\"15%\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td>first = 2<\/td>\n<td><strong>2<\/strong><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>second = 3<\/td>\n<td>2<\/td>\n<td><strong>3<\/strong><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>third = first * second<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td><strong>6<\/strong><\/td>\n<\/tr>\n<tr>\n<td>second = third - first<\/td>\n<td>2<\/td>\n<td><span style=\"text-decoration: line-through;\">3<\/span> <strong>4<\/strong><\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>first = first + second + third<\/td>\n<td><span style=\"text-decoration: line-through;\">2<\/span> <strong>12<\/strong><\/td>\n<td>4<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>third= second * first<\/td>\n<td>12<\/td>\n<td>4<\/td>\n<td><span style=\"text-decoration: line-through;\">6<\/span> <strong>48<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Program\u0131n sonunda first de\u011fi\u015fkeninin de\u011feri\u00a0<code>12<\/code>, second adl\u0131 de\u011fi\u015fkenin de\u011feri\u00a0<code>4 ve third ad\u0131n\u0131 verdi\u011fimiz de\u011fi\u015fkenin de\u011feri<\/code>\u00a0<code>48 oldu<\/code>.<\/p>\n<\/div>\n<\/div>\n<p>B\u00f6yle bir tablo \u00e7izerek de\u011fi\u015fkenlerin durumunu takip etmek yazd\u0131\u011f\u0131n\u0131z kodu anlamak ve hata oldu\u011funda onarmak i\u00e7in iyi bir yoldur. Bu gibi programlarda yap\u0131lan i\u015flemlerin her ad\u0131m\u0131n\u0131 g\u00f6rmemize olanak sa\u011flayan bir <a href=\"\/visualize\">Python3 g\u00f6r\u00fcnt\u00fcleme arac\u0131<\/a>\u00a0kurduk (yukar\u0131daki men\u00fcden de ula\u015fabilirsiniz). Ayn\u0131 program\u0131 g\u00f6r\u00fcnt\u00fcleyicide \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda b\u00f6yle g\u00f6rece\u011fiz.\u00a0<em><strong>\u0130leri &gt;<\/strong>\u00a0d\u00fc\u011fmesine veya klavyenizde ok tu\u015funa basarak her seferinde bir ad\u0131m ileri (veya geri) gidebilirsiniz. <\/em>Her sat\u0131r i\u015fleme kondu\u011funda de\u011fi\u015fkenin nas\u0131l de\u011fi\u015fti\u011fine dikkat edin.<em>\u00a0<\/em>\u00a0<iframe width='100%' height='480' frameborder='0' scrolling='no' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/OnlinePythonTutor3-cemc\/iframe-embed.html#code=first+%3D+2%0Asecond+%3D+3%0Athird+%3D+first+%2A+second%0Asecond+%3D+third+-+first%0Afirst+%3D+first+%2B+second+%2B+third%0Athird+%3D+second+%2A+first&cumulative=false&heapPrimitives=false&drawParentPointers=false&textReferences=false&showOnlyOutputs=false&py=3&curInstr=0&resizeContainer=true&highlightLines&width=400&rightStdout=1'><\/iframe> De\u011fi\u015fkenlerle ilgili k\u0131sa bir al\u0131\u015ft\u0131rma. <div class='pybox modeNeutral' id='pybox1'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Short Answer Exercise: <\/span><span class='title'><code>x<\/code> G\u00f6sterdi\u011fim Yerde<\/span><\/div> Bu sat\u0131rlar i\u015fleme konduktan sonra x'in de\u011feri ka\u00e7 olur?<\/p>\n<pre>x = 10\r\nx = x + x\r\nx = x - 5<\/pre><label for=\"pyShortAnswer1\">Your answer (enter a number): <\/label><input type=\"text\" onkeypress=\"{if (event.keyCode==13) pbShortCheck(1)}\" id=\"pyShortAnswer1\"><div class=\"pyboxbuttons\"><input type=\"hidden\" name=\"type\" value=\"number\"\/><input type=\"hidden\" name=\"correct\" value=\"15\"\/><input type=\"hidden\" name=\"slug\" value=\"1.plusminus\"\/><input type=\"hidden\" name=\"lang\" value=\"\"\/><input type='submit' style='margin:5px;' value='Check answer' onClick = 'pbShortCheck(1)'\/><\/div><div class=\"pbresults\" id=\"pyShortResults1\"><\/div><div class=\"epilogue\">Correct!<\/div><\/div>\n<h2>\u0130ki Yayg\u0131n Hata<\/h2>\n<p>E\u011fer daha \u00f6nce tan\u0131mlamad\u0131\u011f\u0131n\u0131z bir de\u011fi\u015fkeni \u00e7a\u011f\u0131r\u0131rsan\u0131z Python hata (error) verir. <form class=\"pbform\" action=\"#\" id=\"pbform2\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox2'>\n<div class=\"heading\"><span class='type'>Example: <\/span><span class='title'>Tan\u0131mlanmam\u0131\u015f De\u011fi\u015fken<\/span><\/div> <div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 32px;'><textarea wrap='off' name='usercode2' id='usercode2'  cols=10 rows=1 readonly='readonly'  style = 'height : 32px;'  class='pyboxCode RO'>\nprint(sorun)<\/textarea><\/div>\n<div id='pbhistory2' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit2' value=' '\/><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse2\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"2\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"92a89b360a601b72942a15e4b0b0cda4\"\/>\n<div id='pbresults2' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit2\").value = \"Run program\";document.getElementById(\"inputInUse2\").value = \"N\";<\/script>\n G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi hata verdi:\u00a0<code>NameError: name 'sorun' is not defined<\/code>. Bazen bu gibi hatalar\u0131 k\u00fc\u00e7\u00fck yaz\u0131m yanl\u0131\u015flar\u0131 y\u00fcz\u00fcnden de al\u0131rs\u0131n\u0131z: Mesela\u00a0<code>address=32<\/code>, diye bir de\u011fi\u015fken tan\u0131mlad\u0131n\u0131z, ve daha sonra\u00a0<code>print(adress)<\/code>, yazd\u0131\u011f\u0131nda ayn\u0131 hatay\u0131 al\u0131rs\u0131n\u0131z. Ba\u015fka bir hata da, bir = ifadesinde de\u011fi\u015fkenle de\u011ferin yerini de\u011fi\u015ftirmekten kaynaklan\u0131r. <form class=\"pbform\" action=\"#\" id=\"pbform3\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox3'>\n<div class=\"heading\"><span class='type'>Example: <\/span><span class='title'><code>SyntaxError: can't assign to literal<\/code><\/span><\/div> <div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 58px;'><textarea wrap='off' name='usercode3' id='usercode3'  cols=10 rows=2 readonly='readonly'  style = 'height : 58px;'  class='pyboxCode RO'>\nx = 4\n4 = x<\/textarea><\/div>\n<div id='pbhistory3' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit3' value=' '\/><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse3\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"3\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"130cb3846431645709a90d52b640f87e\"\/>\n<div id='pbresults3' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit3\").value = \"Run program\";document.getElementById(\"inputInUse3\").value = \"N\";<\/script>\n \u0130lk sat\u0131rda sorun yok ama ikinci sat\u0131r hataya yol a\u00e7ar: Python, ikinci sat\u0131rdaki\u00a0<code>4 = x<\/code>\u00a0ile <code>4<\/code>'e yeni bir de\u011fer tan\u0131mlamaya \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z\u0131 d\u00fc\u015f\u00fcn\u00fcr, ama sadece de\u011fi\u015fkenlere de\u011fer tan\u0131mlayabilirsiniz ve\u00a0\u00a0<code>4<\/code>\u00a0bir de\u011fi\u015fken de\u011fildir (rakamlar de\u011fi\u015fken olarak tan\u0131mlanamaz).\u00a0\u00a0<code>A = B<\/code> ile\u00a0<code>B = A<\/code>\u00a0matematikte ayn\u0131 \u015feydir, ama programlama yaparken bunlar ayn\u0131 de\u011fildir ve hataya yol a\u00e7ar.<\/p>\n<h2>Al\u0131\u015ft\u0131rma<\/h2>\n<p>De\u011fi\u015fkenlere ba\u015flarken bir \u0131s\u0131nma egzersizi yapal\u0131m. <form class=\"pbform\" action=\"#\" id=\"pbform4\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox4'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Coding Exercise: <\/span><span class='title'>Ba\u015flar, Omuzlar, Dizler ve Parmaklar<\/span><\/div> Bir kod <em>fragman\u0131<\/em>\u00a0(bir Python program\u0131n\u0131n k\u0131sa bir b\u00f6l\u00fcm\u00fc) yazarak bir partiye gelen insanlar\u0131n ba\u015f, omuz, diz ve parmak say\u0131lar\u0131n\u0131 hesaplay\u0131n. D\u00fczenleyici otomatik olarak sizin i\u00e7in partideki insan say\u0131s\u0131n\u0131 i\u00e7erecek\u00a0<code>people<\/code>\u00a0de\u011fi\u015fkenini tan\u0131mlayacak. Siz de program\u0131 yazmak i\u00e7in gereken 4 de\u011fi\u015fken ve bunlar\u0131n de\u011ferlerini tan\u0131mlay\u0131n, ba\u015flar i\u00e7in\u00a0\u00a0<code>heads<\/code>, omuzlar i\u00e7in\u00a0<code>shoulders<\/code>, dizler i\u00e7in\u00a0<code>knees<\/code>, ayak parmaklar\u0131 i\u00e7in <code>toes<\/code>, de\u011fi\u015fkenlerini tan\u0131mlay\u0131n. Bu de\u011fi\u015fkenlere partideki ki\u015fi say\u0131s\u0131na oranla de\u011fer atamal\u0131s\u0131n\u0131z. Program\u0131n\u0131z\u0131n \u00e7\u0131kt\u0131y\u0131 (output) yazd\u0131rmas\u0131na gerek yok. <em>D\u00fczenleyici program\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda\u00a0<\/em><span style=\"color: #222222; font-family: Monaco, Consolas, 'Andale Mono', 'DejaVu Sans Mono', monospace;\"><span style=\"font-size: 13px; background-color: #e9ebec;\">people\u00a0<\/span><\/span><em>\u00a0de\u011fi\u015fkeni i\u00e7in farkl\u0131 bir de\u011fer atayacak<\/em>. <br\/> <a class=\"hintlink\"  id=\"hintlink5\">Ba\u015flarken ipucuna ihtiyac\u0131n\u0131z olursa buraya t\u0131klay\u0131n<\/a> <div class=\"helpOuter\" style=\"display: none;\"><div class=\"helpInner\"><div style=\"text-align: center\">You need to create an account and log in to ask a question.<\/div><\/div><\/div><div class='pyboxTextwrap pyboxCodewrap RW resizy'  style='height: 526px;'><textarea wrap='off' name='usercode4' id='usercode4'  cols=10 rows=20   class='pyboxCode RW'>\n<\/textarea><\/div>\n<div id='pbhistory4' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit4' value=' '\/><\/td>\n<td><input type='button' name='history' value=\"History\" onclick=\"historyClick(4,'1.heads')\" ><\/td>\n<td><input type='button' name='help' value=\"Help\" onclick=\"helpClick(4);\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse4\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"4\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"c21ec1776122efdad0c9ea424726ccce\"\/>\n<div id='pbresults4' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit4\").value = \"Run program\";document.getElementById(\"inputInUse4\").value = \"N\";<\/script>\n<\/p>\n<h2>Kod S\u00fcr\u00fckleme<\/h2>\n<p>Bu derste, \u015fimdiki \u00e7al\u0131\u015fma yeni bir programlama al\u0131\u015ft\u0131rmas\u0131 olacak, programlama yapmayaca\u011f\u0131n\u0131z bir program. Size, do\u011fru yaz\u0131lm\u0131\u015f bir program verece\u011fiz, ancak sat\u0131rlar\u0131n s\u0131ras\u0131 kar\u0131\u015ft\u0131r\u0131lm\u0131\u015f olacak. Yapman\u0131z gereken sat\u0131rlar\u0131 s\u00fcr\u00fckleyip do\u011fru yere b\u0131rakarak sat\u0131rlar\u0131n s\u0131ras\u0131n\u0131 yeniden d\u00fczenlemek. <form class=\"pbform\" action=\"#\" id=\"pbform6\" method=\"POST\">\n<div class='pybox modeNeutral scramble' id='pybox6'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Scramble Exercise: <\/span><span class='title'>H\u0131z Hesaplay\u0131c\u0131s\u0131<\/span><\/div>Bir tepede yoku\u015f a\u015fa\u011f\u0131, yoku\u015f yukar\u0131 bir bisiklet yar\u0131\u015fmas\u0131ndas\u0131n\u0131z. D\u00fczenleyici \u00f6nceden \u015fu de\u011fi\u015fkenleri tan\u0131mlad\u0131: <code>uphillDistance<\/code>\u00a0yoku\u015f yukar\u0131 mesafe ve\u00a0\u00a0<code>downhillDistance<\/code>\u00a0yoku\u015f a\u015fa\u011f\u0131 mesafe (km olarak) yar\u0131\u015f\u0131n 2 b\u00f6l\u00fcm\u00fcn\u00fc olu\u015fturuyor.\u00a0<code>uphillTime<\/code> yoku\u015f yukar\u0131 zaman\u0131 ve\u00a0\u00a0<code>downhillTime<\/code>\u00a0yoku\u015f a\u015fa\u011f\u0131 zaman\u0131 (dakika olarak) da her b\u00f6l\u00fcm\u00fcn ka\u00e7 dakikada tamamland\u0131\u011f\u0131n\u0131 g\u00f6steriyor.\u00a0 Yazaca\u011f\u0131n\u0131z program t\u00fcm yar\u0131\u015fta ortalama h\u0131z\u0131 (km\/dakika) yazd\u0131rmal\u0131 (print).<br\/><em>Sat\u0131rlar\u0131 d\u00fczenlemek i\u00e7in farenizle tutup s\u00fcr\u00fckleyin.<br\/><\/em><a class=\"hintlink\"  id=\"hintlink7\">\u00c7\u0131k\u0131\u015f yolu bulam\u0131yorsan\u0131z ipucu i\u00e7in t\u0131klay\u0131n<\/a>\u00a0<ul class=\"pyscramble\" name=\"pyscramble\" id=\"pyscramble6\">\n <li class=\"pyscramble\">totalDistance = uphillDistance + downhillDistance<\/li>\n <li class=\"pyscramble\">print(averageSpeed)<\/li>\n <li class=\"pyscramble\">averageSpeed = totalDistance \/ totalTime<\/li>\n <li class=\"pyscramble\">totalTime = uphillTime + downhillTime<\/li>\n<\/ul>\n<input type='hidden' id='usercode6' name='usercode6'\/>\n<div id='pbhistory6' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit6' value=' '\/><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse6\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"6\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"3744d05f14a630d96e63a68b8534a948\"\/>\n<div id='pbresults6' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit6\").value = \"Run program\";document.getElementById(\"inputInUse6\").value = \"N\";<\/script>\n<\/p>\n<h2>De\u011fi\u015fim Program\u0131<\/h2>\n<p>Bu dersin son al\u0131\u015ft\u0131rmas\u0131. <form class=\"pbform\" action=\"#\" id=\"pbform8\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox8'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Coding Exercise: <\/span><span class='title'>De\u011fi\u015fim Program\u0131<\/span><\/div>Bir program yazarak iki de\u011fi\u015fkenin de\u011ferlerini <strong>de\u011fi\u015f toku\u015f<\/strong>\u00a0(swap) edin.\u00a0D\u00fczenleyici\u00a0\u00a0<code>x<\/code>\u00a0ve\u00a0<code>y<\/code>\u00a0de\u011fi\u015fkenlerini say\u0131sal de\u011ferler atayarak tan\u0131mlayacak. Siz yazaca\u011f\u0131n\u0131z kodla de\u011fi\u015fkenlerin de\u011ferlerini de\u011fi\u015f toku\u015f etmelisiniz: <code>x<\/code>\u00a0sizin kodunuzu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda\u00a0<code>y<\/code>\u00a0'nin ilk ba\u015ftaki de\u011ferini ta\u015f\u0131mal\u0131;\u00a0\u00a0<code>y<\/code>\u00a0de sizin kodunuz i\u015flendikten sonra\u00a0\u00a0<code>x<\/code>\u00a0'in d\u00fczenleyici taraf\u0131ndan belirlenmi\u015f ilk de\u011feri ta\u015f\u0131mal\u0131. Program\u0131n\u0131z\u0131n \u00e7\u0131kt\u0131 (output) yazd\u0131rmas\u0131 (print) gerekmiyor. <br\/><em>En yayg\u0131n \u00e7\u00f6z\u00fcm \u00e7ok k\u0131sa, ama bulmas\u0131 zor. \u0130pucunu okumak isterseniz buraya t\u0131klay\u0131n.\u00a0<\/em> <div class=\"accordion\"> <div class='collapseContain hiding'>\n<div class='collapseHead'><span class='icon'><\/span>\n\u0130pucu, b\u00f6l\u00fcm 1\n<\/div>\n<div class='collapseBody'>Sorunu \u00e7\u00f6zmek i\u00e7in aritmetik yapman\u0131za gerek yok (<code>+-*\/<\/code>) . Yapman\u0131z gereken tek \u015fey de\u011fi\u015fkenleri ve\u00a0de\u011fi\u015fken tan\u0131mlama i\u015faretini\u00a0<code>=<\/code> kullanmak. \u0130stedi\u011finiz isimle yeni de\u011fi\u015fken tan\u0131mlayabilirsiniz. <\/div><\/div><div class='collapseContain hiding'>\n<div class='collapseHead'><span class='icon'><\/span>\n\u0130pucu, b\u00f6l\u00fcm 2\n<\/div>\n<div class='collapseBody'>\u0130ki amac\u0131m\u0131z var:\u00a0<code>y<\/code>\u00a0'nin ilk de\u011ferini\u00a0<code>x<\/code>'e; <code>x<\/code>'in ilk de\u011ferini\u00a0\u00a0<code>y<\/code>\u00a0de\u011fi\u015fkenine atamak. E\u011fer sadece ilk\u00a0 \u015fart\u0131 yerine getirmek isteseydik (di\u011fer bir deyi\u015fle sadece\u00a0<code>y<\/code>\u00a0'nin ilk de\u011ferini\u00a0<code>x<\/code>'e atamak isteseydik), 1 sat\u0131rl\u0131k bir program yapard\u0131k.<\/p>\n<pre>x = y<\/pre>Pekiyi ama iki \u015fart\u0131 birden nas\u0131l yerine getirebiliriz? <\/div><\/div><div class='collapseContain hiding'>\n<div class='collapseHead'><span class='icon'><\/span>\n\u0130pucu, b\u00f6l\u00fcm 3\n<\/div>\n<div class='collapseBody'> Bu program umut vadediyor,<\/p>\n<pre>x = y\r\ny = x<\/pre>fakat bir problem var. Mesela d\u00fczenleyici\u00a0\u00a0<code>x<\/code> i\u00e7in 10 ve\u00a0<code>y<\/code> i\u00e7in 99 de\u011ferini tan\u0131mlasayd\u0131, ve biz yukar\u0131daki 2 sat\u0131rl\u0131k program\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda, ilk sat\u0131rdan itibaren\u00a0\u00a0<code>x<\/code> ve\u00a0<code>y<\/code>\u00a0 99 de\u011ferini ta\u015f\u0131yacak ve ikinci sat\u0131r\u0131n hi\u00e7bir etkisi olmayacakt\u0131. <em>Bu \u00e7\u00f6z\u00fcm\u00fc d\u00fczenleyiciye g\u00f6ndererek ne olaca\u011f\u0131na bakabilirsiniz.\u00a0<\/em><code>x<\/code>\u00a0'in orijinal de\u011ferini saklayabilece\u011fimiz bir yer olmal\u0131 ki o de\u011feri daha sonra\u00a0\u00a0<code>y<\/code> i\u00e7in tan\u0131mlayabilelim? <\/div><\/div><div class='collapseContain hiding'>\n<div class='collapseHead'><span class='icon'><\/span>\n\u0130pucu, b\u00f6l\u00fcm4\n<\/div>\n<div class='collapseBody'>\u0130lk sat\u0131r\u0131m\u0131z \u015f\u00f6yle bir \u015fey olursa\u00a0<code>xOriginal = x<\/code>,\u00a0 daha sonras\u0131 i\u00e7in\u00a0<code>x<\/code>\u00a0'in ilk de\u011ferini saklam\u0131\u015f oluruz. Ard\u0131ndan yapmam\u0131z gereken\u00a0<code>x = y<\/code>. Ve en sonunda <code>y<\/code>,\u00a0<code>x<\/code>\u00a0i\u00e7in ilk tan\u0131mlanan de\u011feri y\u00fcklenmi\u015f olur.<\/div><\/div><div class='collapseContain hiding'>\n<div class='collapseHead'><span class='icon'><\/span>\n\u0130pucu, b\u00f6l\u00fcm 5\n<\/div>\n<div class='collapseBody'> <a href=\"http:\/\/en.wikipedia.org\/wiki\/Swap_(computer_science)#Using_a_temporary_variable\">Buraya t\u0131klayarak wikipedia'n\u0131n<\/a>\u00a0 de\u011fi\u015f toku\u015f i\u00e7in verdi\u011fi pseudocode'u g\u00f6rebilirsiniz (ba\u015fka bir dilde). Ayn\u0131 sorunu aritmetik yolla kurnazca \u00e7\u00f6zen\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Swap_by_addition_and_subtraction#Variations\">ikinci metodu burada<\/a>\u00a0g\u00f6rebilirsiniz, ama bu metot yaln\u0131z say\u0131larla \u00e7al\u0131\u015f\u0131r, metinlerle kullan\u0131lamaz.<\/div><\/div><\/div> <div class=\"helpOuter\" style=\"display: none;\"><div class=\"helpInner\"><div style=\"text-align: center\">You need to create an account and log in to ask a question.<\/div><\/div><\/div><div class='pyboxTextwrap pyboxCodewrap RW resizy'  style='height: 526px;'><textarea wrap='off' name='usercode8' id='usercode8'  cols=10 rows=20   class='pyboxCode RW'>\n<\/textarea><\/div>\n<div id='pbhistory8' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit8' value=' '\/><\/td>\n<td><input type='button' name='history' value=\"History\" onclick=\"historyClick(8,'1.swap')\" ><\/td>\n<td><input type='button' name='help' value=\"Help\" onclick=\"helpClick(8);\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse8\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"8\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"bf67bccdb67f5dbae3da02bc847ef6c8\"\/>\n<div id='pbresults8' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit8\").value = \"Run program\";document.getElementById(\"inputInUse8\").value = \"N\";<\/script>\n E\u011fer bu al\u0131\u015ft\u0131rmay\u0131 yapmay\u0131 ba\u015fard\u0131ysan\u0131z sonraki derse ge\u00e7meye haz\u0131rs\u0131n\u0131z demektir. A\u015fa\u011f\u0131da bulunan <b>Sonraki<\/b>\u00a0d\u00fc\u011fmesine bas\u0131n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>De\u011fi\u015fken (variable) bir program i\u00e7indeki verinin \"depoland\u0131\u011f\u0131 yer\" g\u00f6revi yapar. Bir bilgiye, daha sonra \u00e7a\u011f\u0131rabilmek i\u00e7in verdi\u011fimiz isimdir. Her de\u011fi\u015fkenin ad\u0131 vard\u0131r; \u00f6rne\u011fin myLuckyNumber bir de\u011fi\u015fken ad\u0131 olabilir. Bir de\u011fi\u015fkene bir bilgiyi depolamak i\u00e7in, e\u015fittir i\u015fareti ile bir komut sat\u0131r\u0131 &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/1-tr-degiskenler\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-10546","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/10546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/comments?post=10546"}],"version-history":[{"count":12,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/10546\/revisions"}],"predecessor-version":[{"id":11002,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/10546\/revisions\/11002"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=10546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}