{"id":1624,"date":"2020-02-07T12:22:46","date_gmt":"2020-02-07T12:22:46","guid":{"rendered":"http:\/\/mikrobotik.com\/wp2\/?p=1624"},"modified":"2023-03-31T15:38:03","modified_gmt":"2023-03-31T12:38:03","slug":"algoritma-ve-programlamaya-giris","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2020\/02\/07\/algoritma-ve-programlamaya-giris\/","title":{"rendered":"ALGOR\u0130TMA VE PROGRAMLAMAYA G\u0130R\u0130\u015e"},"content":{"rendered":"<p><strong>Algoritma :<\/strong> K\u0131sa bir tan\u0131m gerekirse \u015fu \u015fekilde tan\u0131mlayabiliriz. <strong>Algoritma<\/strong>, belli bir problemi \u00e7\u00f6zmek veya belirli bir amaca ula\u015fmak i\u00e7in tasarlanan yol. Kendime g\u00f6re anlatmak istesem D\u00fc\u015f\u00fcnceyi g\u00f6rmek diyebilirim. D\u00fc\u015f\u00fcn\u00fcrken insanlar bir \u00e7ok \u015feyi atlad\u0131klar\u0131n\u0131 fark etmezler. D\u00fc\u015f\u00fcncelerini bir ka\u011f\u0131da d\u00f6k\u00fcp, mant\u0131k s\u0131ras\u0131na sokunca problemleri daha kolay g\u00f6rebilirler.<\/p>\n<p>Bu \u015fekilde bakt\u0131\u011f\u0131m\u0131zda, sadece programc\u0131 olmak gerekmiyor diye d\u00fc\u015f\u00fcnebiliriz. <strong>Do\u011frudur.<\/strong> Hayat\u0131m\u0131z\u0131n her alan\u0131nda fark\u0131nda olsak da olmasak da, ad\u0131na algoritma desek ya da demesek de, biz bunu kullan\u0131yoruz. <strong>Yeni bir \u015fey de\u011fil<\/strong>.<\/p>\n<p>Belirli amaca giden yol demi\u015ftik. Mesela birisi size adres sordu. Siz de buradan d\u00fcz git sonra bakkal\u0131 g\u00f6rd\u00fc\u011f\u00fcnde oradan sa\u011fa d\u00f6n ve 3-5 d\u00fckkan sonra sa\u011fda g\u00f6receksin dersiniz. <span style=\"color: #ff6600;\"><strong>\u0130\u015eTE S\u0130ZE B\u0130R ALGOR\u0130TMA \u00d6RNE\u011e\u0130<\/strong>.<\/span><br \/>\n<strong><br \/>\nBaz\u0131lar\u0131 ise bu tarifi yaparken, bilmem ne bakkal\u0131n\u0131 biliyor musun der. Amac\u0131 oradan tarif etmektir. Fakat bunun ba\u015far\u0131 \u015fans\u0131 kar\u015f\u0131s\u0131ndakinin o bakkal\u0131 bilmesine ba\u011fl\u0131d\u0131r. Bilmiyorsa programlar\u0131n\u0131z gibi sonsuz d\u00f6ng\u00fcye girer cevap veremez.<br \/>\nProgramlar\u0131n\u0131z\u0131 yaparken, programlad\u0131\u011f\u0131n\u0131z cihaza her veriyi vermelisiniz ya da nereden alaca\u011f\u0131n\u0131 bildirmelisiniz. Sonras\u0131nda do\u011fru veriyle karar a\u015famas\u0131na gelip do\u011fru soruyu sorup, cevab\u0131n\u0131 da tam vermelisiniz. Ancak bu \u015fekilde program \u00e7al\u0131\u015f\u0131rken istedi\u011finiz gibi \u00e7al\u0131\u015f\u0131r. <\/strong><\/p>\n<p><strong>Algoritman\u0131n bir ad\u0131m \u00f6tesi o program\u0131n beyninizde \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131d\u0131r. <\/strong><span style=\"color: #ff6600;\">Programlad\u0131\u011f\u0131n\u0131z cihaz ancak sizin kadar ak\u0131ll\u0131 olabilir. Sizden daha h\u0131zl\u0131 hesaplama yapabilir. Bu sizden zeki oldu\u011funu g\u00f6stermez.<\/span><\/p>\n<p>Bunu hayat\u0131m\u0131z\u0131n her alan\u0131nda kullan\u0131yoruz kullanmam\u0131z da gerekir. Mesela yemek tarifi veriyorsunuz. Bu tarifte malzemeleri girdi olarak s\u0131ral\u0131yorsunuz, sonras\u0131nda ise nas\u0131l yap\u0131laca\u011f\u0131n\u0131 ad\u0131m, ad\u0131m tarif ediyorsunuz. <strong>Bu da algoritma.<\/strong><\/p>\n<p>K\u0131sacas\u0131 algoritma illa ki ak\u0131\u015f diyagram\u0131 gibi resimlerle olu\u015fturulacak de\u011fildir. \u00a0Ak\u0131\u015f diyagram\u0131 dedi\u011fimiz kavram ise, Algoritman\u0131n belirli resimlerle bir s\u0131raya dizilmesi demektir.<\/p>\n<p><strong>Herkes hayat\u0131nda kodlama \u00f6\u011frenmek zorunda de\u011fildir. Fakat Algoritma \u00f6\u011frenip bunu hayat\u0131na uygulayabilir. <\/strong><\/p>\n<p>D\u00fcnya da baz\u0131 matematik\u00e7ilerin ve programc\u0131lar\u0131n olu\u015fturdu\u011fu standart algoritmalar vard\u0131r. Bize yol g\u00f6sterirler. Mesela program\u0131m\u0131zda kelimeleri ilk harfine g\u00f6re s\u0131ralama yapmak isteriz. Bu durumda nas\u0131l yapabiliriz diye d\u00fc\u015f\u00fcn\u00fcp, bir \u015feyler yapabiliriz. Tabii ki bazen bu i\u015flemi nas\u0131l yapaca\u011f\u0131m\u0131z konusunda fikrimiz de olmayabilir. Bu konudaki \u00f6rneklere bakar\u0131z ya da yay\u0131nlanm\u0131\u015f standart s\u0131ralama algoritmas\u0131n\u0131 okuyup, anlad\u0131ktan sonra program\u0131m\u0131za ekleme yapar\u0131z.<br \/>\n<strong><span style=\"color: #ff6600;\">Algoritma, bir program par\u00e7ac\u0131\u011f\u0131 de\u011fildir.<\/span> Ba\u015fta da dedi\u011fimiz gibi o i\u015fin nas\u0131l yap\u0131laca\u011f\u0131n\u0131 g\u00f6steren listedir.<\/strong><\/p>\n<p>Genelde sorulan sorulardan biri, programlamaya ba\u015flayaca\u011f\u0131m nereden ba\u015flayay\u0131m ya da hangi kitab\u0131 almal\u0131y\u0131m. Verilen cevaplar \u00e7ok farkl\u0131 olacakt\u0131r. Kimisi kendi kulland\u0131\u011f\u0131 programlama dilinin kitab\u0131n\u0131 \u00f6nerecektir. Kimisi algoritma kitab\u0131n\u0131 \u00f6nerecektir.<br \/>\nSizler bu konuyu bitirdikten sonra <strong>DO\u011eRU SORUYU SORMASINI \u00d6\u011eREN\u0130P<\/strong>, sorumuzu do\u011fru bir \u015fekilde sorup, uygun cevaplar\u0131 alabilmelisiniz.<\/p>\n<p>Do\u011fru soru nedir. ( <span style=\"color: #ff6600;\">Bunu irdelememiz gerekir. Sorunun faydal\u0131 bir \u015fekilde cevaplanmas\u0131n\u0131 istiyorsan\u0131z kar\u015f\u0131 tarafa do\u011fru veriyi vermelisiniz.<\/span>)<\/p>\n<p><strong>A\u015fa\u011f\u0131daki \u015f\u0131klar\u0131 irdeleyip, nas\u0131l bir soru soraca\u011f\u0131m\u0131za karar vermeliyiz.<\/strong><\/p>\n<p>1-) Programlamaya ba\u015flayaca\u011f\u0131m ama ne program\u0131 yapmak istiyorum.<\/p>\n<p style=\"padding-left: 30px;\">a-) web programlama<br \/>\n<strong>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Se\u00e7eneklerinizden baz\u0131lar\u0131<\/strong><\/p>\n<p style=\"text-align: left; padding-left: 60px;\">aa-) java<br \/>\nbb-) php<br \/>\ncc-) asp<br \/>\ndd-) html \u2026<\/p>\n<p style=\"padding-left: 30px;\">b-) Android programlama<br \/>\n<strong>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Se\u00e7eneklerden baz\u0131lar\u0131<\/strong><\/p>\n<p style=\"padding-left: 60px;\">aa-) android studio<br \/>\nbb-) B4A<br \/>\ncc-) Mit app inventor<\/p>\n<p style=\"padding-left: 30px;\">c-) Mikrokontrolc\u00fc programlama (PIC,Arduino,Atmega serisi,STM,vs\u2026)<\/p>\n<p>2-) Hangi programlama dilini kullanabilirim ya da k\u0131sa zaman da \u00f6\u011frenebilirim.<\/p>\n<p>3-) Bunlarla ilgili ek donan\u0131ma ihtiya\u00e7 olacak m\u0131?<\/p>\n<p><strong>Bu d\u00fc\u015f\u00fcncelerin do\u011frultusunda sorumuzu \u015f\u00f6yle sorabiliriz<\/strong>.<\/p>\n<p>1-) \u201cWeb programlamaya ba\u015flayaca\u011f\u0131m, ilk izlenimlerimde genelde bu programlar (\u2026) \u00a0kullan\u0131l\u0131yormu\u015f bu konuda bilgi verebilir misiniz ve kaynak \u00f6nerebilir misiniz?<\/p>\n<p>2-) Android programlama yapmak istiyorum. App inventordan bahsediliyor, ba\u015flang\u0131\u00e7 i\u00e7in bu yeterli mi siz ne \u00f6nerirsiniz.<\/p>\n<p>3-) Mikrokontrolc\u00fc \u00a0programlamak istiyorum. PIC kullanmay\u0131 d\u00fc\u015f\u00fcn\u00fcyorum. Hangi programlama dili ile ba\u015flayabilirim.\u00d6nerinizi destekleyecek kaynak bilgisi verebilir misiniz?<\/p>\n<p>4-) Masa\u00fcst\u00fc program olu\u015fturmak istiyorum, VB.net kullan\u0131ld\u0131\u011f\u0131n\u0131 biliyorum. Bunun d\u0131\u015f\u0131nda \u00f6nerebilece\u011finiz program var m\u0131?<\/p>\n<p>Gibi sorular sorulabilir. Bunlar daha da detayland\u0131r\u0131labilir. <strong><span style=\"color: #ff6600;\">Fakat bu sorularda ortak bir nokta var.<\/span><\/strong> Asl\u0131nda bu nokta t\u00fcm programlar\u0131n\u0131zda olmas\u0131 gereken b\u00f6l\u00fcm\u00fc olu\u015fturuyor.<\/p>\n<p><strong>Ortak nokta <\/strong><span style=\"color: #ff6600;\"><strong>VER\u0130\u00a0<\/strong><\/span>dir. Siz veriyi kar\u015f\u0131 tarafa vermeden bir \u015feyler istedi\u011finizde, bir \u00e7\u00f6p da\u011f\u0131 gibi gelen cevaplar aras\u0131nda bo\u011fu\u015fursunuz. Do\u011fru veriyi verdi\u011finizde kar\u015f\u0131 taraftaki ki\u015filer de size do\u011fru bir \u015fekilde cevap vereceklerdir.<br \/>\nKar\u015f\u0131n\u0131zdaki ki\u015filer siz veri vermeseniz de, bir \u015feyler s\u00f6ylerler sorunuzu cevaplarlar. Ama do\u011fru ama yanl\u0131\u015f. Yoruma a\u00e7\u0131k cevaplard\u0131r.<\/p>\n<p><strong>Bilgisayar ve bu gibi programlanabilir sistemlerde,<\/strong> <span style=\"color: #ff6600;\">soruyu soran da siz olacaks\u0131n\u0131z, cevab\u0131 verecek olan da siz olacaks\u0131n\u0131z.<\/span><\/p>\n<p>Mesela \u015fu iki say\u0131y\u0131 topla dedi\u011finizde kar\u015f\u0131n\u0131zdaki ki\u015fi size <span style=\"color: #ff6600;\">hangi iki say\u0131 der<\/span>. Programc\u0131 olarak siz kendi program\u0131n\u0131za \u015fu iki say\u0131y\u0131 topla deseniz program sizden veri beklemeye ge\u00e7er ve sonsuz d\u00f6ng\u00fcye girer. Size yan\u0131t vermez.<\/p>\n<p><strong>ALGOR\u0130TMA tam da bu durumlar i\u00e7in uygun bir \u00e7al\u0131\u015fmad\u0131r. <\/strong><\/p>\n<p>Algoritmay\u0131, bir toplama i\u015flemi i\u00e7in yazacaksan\u0131z a\u015fa\u011f\u0131daki \u015fekilde yazabilirsiniz.<br \/>\n1. Say\u0131y\u0131 kullan\u0131c\u0131dan al<br \/>\n2. Say\u0131y\u0131 kullan\u0131c\u0131dan al.<br \/>\n3. Bu ikisini topla.<br \/>\n4. Sonucu g\u00f6ster.<\/p>\n<p>Buraya kadar bunu siz anlad\u0131n\u0131z. Birine s\u00f6yleseniz zaten bunu yapacakt\u0131r. <span style=\"color: #ff6600;\"><strong>Bunu bilgisayara s\u00f6yledi\u011finizde anlamayacakt\u0131r.<\/strong><\/span><\/p>\n<p>Bu istedi\u011fimiz s\u0131ray\u0131 komutlara \u00e7evirecek olursak ( <span style=\"color: #ff6600;\">Burada genel anlamda yaz\u0131yorum bir\u00e7ok dilde farkl\u0131 komut kullan\u0131labilir.<\/span>)<br \/>\nG\u0130R 1.say\u0131<br \/>\nG\u0130R 2. Say\u0131<br \/>\n1.sayi+2.Say\u0131=3. Sayi<br \/>\nG\u00d6STER 3. Say\u0131<\/p>\n<p>Bu \u015fekilde program\u0131n\u0131z\u0131 olu\u015fturdu\u011funuzda <span style=\"color: #ff6600;\">\u00e7al\u0131\u015facakt\u0131r.<\/span><\/p>\n<p><strong>\u015eimdi daha karma\u015f\u0131k durumlara ge\u00e7ebiliriz.<br \/>\n<\/strong>Algoritmay\u0131 iyi \u00f6\u011frendi\u011fimizde karma\u015f\u0131k durumlarda bile ba\u015flang\u0131\u00e7 ve biti\u015f aras\u0131ndaki \u00e7izgiyi do\u011fru olu\u015fturabilirsiniz. Fakat hi\u00e7bir zaman <span style=\"color: #ff6600;\">evdeki hesap \u00e7ar\u015f\u0131ya uymayacakt\u0131r.<\/span> Mant\u0131k hatas\u0131 olmasa bile, komut kullan\u0131m\u0131nda her \u015fey istedi\u011fimiz gibi gitmeyebilir. Elbette ki program yap\u0131l\u0131p \u00e7al\u0131\u015ft\u0131r\u0131l\u0131rken baz\u0131 hatalar olu\u015fabilecektir. Bunlar ise <strong>debug denilen hata ay\u0131klama<\/strong> yollar\u0131yla d\u00fczeltilecektir.<\/p>\n<p><strong>Bir oyun vard\u0131r.<\/strong> Tuttu\u011fum say\u0131y\u0131 bil diye. Bu oyunu, bilgisayarla oynayabilece\u011finiz bir program haline getirebiliriz.<\/p>\n<p><strong>Algoritmas\u0131na ba\u015flayal\u0131m.<\/strong><br \/>\n1-) PC bir say\u0131 tutsun.<br \/>\n2-) Kullan\u0131c\u0131 tahminini PC ye girsin.<br \/>\n3-) PC tutulan say\u0131 girilen say\u0131dan b\u00fcy\u00fckse b\u00fcy\u00fck yazs\u0131n. K\u00fc\u00e7\u00fck ise k\u00fc\u00e7\u00fck yazs\u0131n.<br \/>\n4-) 2 nolu se\u00e7ene\u011fe git.<\/p>\n<p>Yukar\u0131daki algoritma da PC yi bir insan olarak d\u00fc\u015f\u00fcn\u00fcrseniz hata olmayacakt\u0131r.<br \/>\nFakat <span style=\"color: #ff6600;\">PC de hata<\/span> verecektir.<br \/>\nNedeni ise, PC,\u00a0 her durumu g\u00f6rmeli ve her duruma g\u00f6re cevap verebiliyor olmal\u0131d\u0131r.<br \/>\n3. Se\u00e7enek de kar\u015f\u0131la\u015ft\u0131rma sadece b\u00fcy\u00fck m\u00fc k\u00fc\u00e7\u00fck m\u00fc kar\u015f\u0131la\u015ft\u0131rmas\u0131d\u0131r. Fakat burada girilen say\u0131n\u0131n da e\u015fit mi diye kar\u015f\u0131la\u015ft\u0131r\u0131lmas\u0131 ve do\u011fru cevap da 5. Ad\u0131ma gidip cevab\u0131 g\u00f6ster se\u00e7ene\u011fine sahip olmas\u0131 gerekir.<br \/>\n<span style=\"color: #ff6600;\">PC kelimesi her ne kadar bilgisayar olarak kullan\u0131lsa da programlama ortam\u0131n\u0131 belirtmektedir. Arduino, stm gibi ortamlar olarak da d\u00fc\u015f\u00fcnebilirsiniz.\u00a0<\/span><\/p>\n<p><strong>Algoritmay\u0131 yeniden yazal\u0131m<\/strong><br \/>\n1-) PC iki karakterli bir say\u0131 tutsun.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (rastlansal say\u0131 tut)<br \/>\n2-) Kullan\u0131c\u0131 tahminini PC ye girsin. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (kullan\u0131c\u0131dan say\u0131 al)<br \/>\n3-) PC tutulan say\u0131 ile girilen say\u0131y\u0131 kar\u015f\u0131la\u015ft\u0131rs\u0131n. Girilen say\u0131dan b\u00fcy\u00fckse b\u00fcy\u00fck yazs\u0131n. K\u00fc\u00e7\u00fck ise k\u00fc\u00e7\u00fck yazs\u0131n. E\u015fit ise 5. Ad\u0131ma git \u00a0 \u00a0 \u00a0(if then else)<br \/>\n4-) 2 nolu se\u00e7ene\u011fe git.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (goto)<br \/>\n5-) Tutulan say\u0131y\u0131 g\u00f6ster.\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (print)<\/p>\n<p>Bunu bir de ak\u0131\u015f diyagram\u0131 ile g\u00f6sterelim. Ak\u0131\u015f diyagram\u0131 basit i\u015flerde gereksiz olsa da, daha kapsaml\u0131 i\u015flerde, ak\u0131\u015f \u015femas\u0131 kullan\u0131ld\u0131\u011f\u0131nda, takip etmek ve anlamak \u00e7ok daha kolay olacakt\u0131r.<br \/>\n<span style=\"color: #ff6600;\">Ak\u0131\u015f diyagram sembolleri i\u00e7in<\/span> <a href=\"http:\/\/dalbilisim.com\/yazilim\/akis-diyagrami-sembol-ve-anlamlari\/\" target=\"_blank\" rel=\"noopener\"><strong>bu sayfaya bakabilirsiniz.<\/strong><\/a><\/p>\n<p><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/02\/akis_semasi-1.png\" rel=\"lightbox[1624]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-2466 size-medium lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/02\/akis_semasi-1.png\" alt=\"\" width=\"300\" height=\"292\" data-srcset=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/02\/akis_semasi-1.png 823w, https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/02\/akis_semasi-1-300x292.png 300w, https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2020\/02\/akis_semasi-1-768x748.png 768w\" data-sizes=\"(max-width: 300px) 100vw, 300px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 300px; --smush-placeholder-aspect-ratio: 300\/292;\" \/><\/a><\/p>\n<p><strong>Programlamaya ba\u015flamak.<\/strong><\/p>\n<p>Programlama i\u00e7in \u00f6ncelikle ne yapmak istedi\u011finize veya hangi programlama dilinde \u00e7al\u0131\u015fmak istedi\u011finize karar verdi\u011finizi d\u00fc\u015f\u00fcnerek, anlatmaya devam edece\u011fim. Yukar\u0131daki bilgiler ister web sitesi yap\u0131n, ister masa\u00fcst\u00fc programc\u0131l\u0131k yap\u0131n, isterse mikrokontrolc\u00fc programlamas\u0131 yap\u0131n, <span style=\"color: #ff6600;\">Ortak bilinmesi gereken bilgilerdir.<\/span><\/p>\n<p>Algoritman\u0131z\u0131 haz\u0131rlad\u0131n\u0131z. Sonras\u0131nda bunun programa d\u00f6k\u00fclmesi gerekiyor. Bu durumda kulland\u0131\u011f\u0131n\u0131z dilin komutlar\u0131n\u0131 da \u00f6\u011frenmeniz gerekiyor. <strong>Komutlar hi\u00e7bir zaman d\u00fcz bir yaz\u0131 gibi ezberlenmez.<\/strong> Program yap\u0131ld\u0131k\u00e7a ihtiya\u00e7 olduk\u00e7a bu komutlara ula\u015f\u0131p uygun olanlar\u0131 kullan\u0131rs\u0131n\u0131z. \u00d6nemli olan komut uygulamas\u0131d\u0131r.\u00a0 Standart olan baz\u0131 yap\u0131lar vard\u0131r. Mesela Arduino programl\u0131yorsan\u0131z sat\u0131r sonunda ( <strong>; <\/strong>) \u00a0konulmas\u0131 gerekir. Her fonksiyon void ile ba\u015flamal\u0131 gibi temel bilgilerdir.<br \/>\nBu gibi temel i\u015flevleri ezberlemeniz gerekir. Mesela UART komutlar\u0131 nelerdir ve yaz\u0131l\u0131m\u0131 nas\u0131ld\u0131r. Bu komutu ezberlemek biraz zor olabilir. Fakat kullanmaya ba\u015flad\u0131\u011f\u0131n\u0131zda, program i\u00e7erisinde bir kez kulland\u0131ktan sonra bunu haf\u0131zaya zaten yerle\u015ftirmi\u015f oldu\u011funuzdan, art\u0131k di\u011fer sat\u0131rlarda rahatl\u0131kla kullanacaksan\u0131z. Bir kez daha bakman\u0131za gerek kalmaz. \u015eayet 15 g\u00fcn sonra yeni den program yapacaksan\u0131z komutu hat\u0131rlars\u0131n\u0131z, aradaki noktay\u0131 hat\u0131rlamayabilirsiniz. Program i\u00e7erisinde hata ay\u0131klama k\u0131sm\u0131 \u00e7al\u0131\u015ft\u0131\u011f\u0131nda, size burada hata var der. Siz de hemen hatay\u0131 anlay\u0131p d\u00fczeltirsiniz.<\/p>\n<p><strong>Tavsiyem \u015fudur.<\/strong> Kulland\u0131\u011f\u0131n\u0131z dilin komut sistemine bak\u0131n, hatta birka\u00e7 \u00f6rnek de inceleyin fakat hepsini ezberlemek yerine, <strong><span style=\"color: #ff6600;\">ne i\u015fe yarad\u0131klar\u0131n\u0131 ya da nerelerde kullan\u0131labilece\u011fini d\u00fc\u015f\u00fcn\u00fcn yeter.<\/span><\/strong> Algoritmada bir sat\u0131ra kar\u015f\u0131l\u0131k gelen komutu yazarken, zaten komut k\u0131sm\u0131na yeniden d\u00f6n\u00fcp, komutun kullan\u0131m\u0131n\u0131 ara\u015ft\u0131rarak \u00f6\u011freneceksiniz ve uzun s\u00fcre bu akl\u0131n\u0131zda kalacakt\u0131r. <span style=\"color: #ff6600;\">Okuyarak kolayl\u0131kla ezberleyemedi\u011finiz bilgileri, sorarak %50 ezberleyebiliyorsan\u0131z, kendiniz ara\u015ft\u0131rarak bulduktan sonra bir ka\u00e7 \u00f6rnekle peki\u015ftirerek, %100 e yak\u0131n \u015fekilde ezberleyebilirsiniz.\u00a0<\/span><\/p>\n<p><strong>\u015eimdi algoritmay\u0131 program \u015fekline \u00e7evirelim<\/strong>. ( <span style=\"color: #ff6600;\">Bunu yaparken basit olmas\u0131 i\u00e7in PYTHON dilini kullanaca\u011f\u0131z. PYTHON konusunda benim de hi\u00e7bir tecr\u00fcbem yok. Sizlerle beraber yeni \u00f6\u011freniyormu\u015fum gibi olacak<\/span> <strong>Bunu videoda gayet net g\u00f6receksiniz.<\/strong> )<\/p>\n<p><strong>Son verdi\u011fimiz oyun algoritmas\u0131n\u0131 programlayal\u0131m.<\/strong><br \/>\n1-) PC bir say\u0131 tutsun. (1-99 aras\u0131)<br \/>\n2-) Kullan\u0131c\u0131 tahminini PC ye girsin.<br \/>\n3-) PC tutulan say\u0131 girilen say\u0131dan b\u00fcy\u00fckse b\u00fcy\u00fck yazs\u0131n. K\u00fc\u00e7\u00fck ise k\u00fc\u00e7\u00fck yazs\u0131n. E\u015fit ise 5. Ad\u0131ma git<br \/>\n4-) 2 nolu se\u00e7ene\u011fe git.<br \/>\n5-) Tutulan say\u0131y\u0131 g\u00f6ster<\/p>\n<p><strong>Komut \u015fekline getirilmi\u015f durum<\/strong><\/p>\n<p>1-)\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #ff6600;\"><strong>Bu b\u00f6l\u00fcm 2 karakterli bir say\u0131n\u0131n se\u00e7ilmesini sa\u011flar.<\/strong><\/span><\/p>\n<p><strong>import random<br \/>\ntutsay=random.randint(1,99)<br \/>\nprint(&#8220;maksimum 2 karakterli tutulan say\u0131 &#8220;,tutsay)<\/strong><\/p>\n<p>2-) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong><span style=\"color: #ff6600;\">Kar\u015f\u0131la\u015ft\u0131rma yaparak sonuca g\u00f6re davran\u0131r.<\/span><br \/>\n<\/strong><br \/>\n<strong>print (&#8220;tuttu\u011fum say\u0131y\u0131 bil oyunu&#8221; )<\/strong>\u00a0\u00a0 # ekrana yazd\u0131rma<br \/>\n<strong>while True:<\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #ff6600;\"># devaml\u0131 bir d\u00f6ng\u00fc sa\u011flar. Say\u0131 bulunamazsa yeni say\u0131 istenir. En alt sat\u0131ra<\/span><br \/>\n<span style=\"color: #ff6600;\"># gidildi\u011finde say\u0131 bulunamam\u0131\u015fsa while k\u0131sm\u0131ndan tekrar ba\u015flar.<\/span><br \/>\n<strong>x = input (&#8220;Bir say\u0131 giriniz:&#8221;)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #ff6600;\"> # bir say\u0131 girilmesini sa\u011flar<\/span><br \/>\n<strong>if int(x)==int(tutsay):<\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #ff6600;\"># kar\u015f\u0131la\u015ft\u0131rma yapar.<\/span><br \/>\n<strong>print(int(tutsay))<\/strong><br \/>\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break<\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0<span style=\"color: #ff6600;\">\u00a0 # program\u0131 bitirir.<\/span><br \/>\n<strong>\u00a0\u00a0\u00a0 if int(x)&gt; int(tutsay):\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0<span style=\"color: #ff6600;\"> # kar\u015f\u0131la\u015ft\u0131rma yapar.<\/span><br \/>\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print (&#8220;B\u00dcY\u00dcK&#8221;)<br \/>\nif int(x)&lt; int(tutsay):\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #ff6600;\">\u00a0 # kar\u015f\u0131la\u015ft\u0131rma yapar.<\/span><br \/>\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print (&#8220;K\u00dc\u00c7\u00dcK&#8221;)<\/strong><\/p>\n<p><strong>Burada ki programa bakarak kendi programlama dilinize \u00e7evirebilirsiniz. <\/strong><strong>Fakat???<\/strong><br \/>\n<strong>Not:<\/strong> \u015eunu da unutmayal\u0131m. Biz Arduino programlama bilmiyorsak sat\u0131r, sat\u0131r yaz\u0131lan programa bakarak program\u0131n nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131 anlay\u0131p kendi programlama dilimize \u00e7evirmemiz zor olacakt\u0131r. Mutlaka program sat\u0131rlar\u0131nda ne oldu\u011funu anlamam\u0131z gerekir. Bunun i\u00e7in de Arduino komut yap\u0131s\u0131n\u0131 \u00f6\u011frenmemiz laz\u0131m ki bu da gereksiz bir zaman kayb\u0131d\u0131r.<br \/>\nBUNDAN DOLAYI, YAZILAN PROGRAMIN ALGOR\u0130TMASINA BAKMAK, HER ZAMAN \u0130\u00c7\u0130N KEND\u0130 PROGRAMLAMA D\u0130L\u0130M\u0130ZE \u00c7EV\u0130RMEK \u0130\u00c7\u0130N EN KOLAY YOLDUR.<\/p>\n<p><strong>\u00c7e\u015fitli Algoritmalar var dedik.<\/strong> Bunlar bize program\u0131n nas\u0131l yap\u0131laca\u011f\u0131n\u0131 de\u011fil mant\u0131\u011f\u0131n\u0131 anlatmak i\u00e7in yard\u0131mc\u0131 olacakt\u0131r. Algoritmalar t\u00fcm programlama dillerinde ortak kullan\u0131m alan\u0131 bulur. \u00c7\u00fcnk\u00fc programdan ba\u011f\u0131ms\u0131z, yapman\u0131z gereken i\u015fe en uygun yolu bulman\u0131z\u0131 sa\u011flarlar. Sadece yol g\u00f6sterirler, program\u0131n\u0131 sizin yapman\u0131z gerekir.<\/p>\n<p><span style=\"color: #ff6600;\">Baz\u0131 algoritma \u00f6rneklerine buradan ula\u015fabilirsiniz. Algoritmay\u0131 anlama a\u00e7\u0131s\u0131ndan \u00f6nemlidir.<\/span><\/p>\n<p><strong>Arama algoritmas\u0131 <a href=\"https:\/\/tr.wikipedia.org\/wiki\/Arama_algoritmas%C4%B1\" target=\"_blank\" rel=\"noopener\">https:\/\/tr.wikipedia.org\/wiki\/Arama_algoritmas%C4%B1<\/a><\/strong><\/p>\n<p><strong>S\u0131ralama algoritmas\u0131 : <a href=\"https:\/\/tr.wikipedia.org\/wiki\/S%C4%B1ralama_algoritmas%C4%B1\" target=\"_blank\" rel=\"noopener\">https:\/\/tr.wikipedia.org\/wiki\/S%C4%B1ralama_algoritmas%C4%B1<\/a><\/strong><\/p>\n<p><span style=\"color: #ff6600;\">Daha bir\u00e7ok algoritma vard\u0131r ve zaman i\u00e7erisinde \u00e7e\u015fitli algoritmalar bulunmaya devam etmektedir.<\/span><\/p>\n<p><span style=\"color: #ff6600;\"><strong>Python online editor kullanmak i\u00e7in, bu linkleri kullanabilirsiniz.<\/strong> <\/span><strong><a href=\"https:\/\/www.programiz.com\/python-programming\/online-compiler\/?ref=b507ca15\" target=\"_blank\" rel=\"noopener\">https:\/\/www.programiz.com\/python-programming\/online-compiler\/?ref=b507ca15<\/a><\/strong><\/p>\n<p><a href=\"https:\/\/www.programiz.com\/python-programming\/online-compiler\/\" target=\"_blank\" rel=\"noopener\"><strong>https:\/\/www.programiz.com\/python-programming\/online-compiler\/<\/strong><\/a><\/p>\n<p><strong><span style=\"color: #ff6600;\">W3schools tutorial page + online editors:<\/span>\u00a0 PYTHON ve di\u011fer dilleri \u00f6\u011frenmek i\u00e7in k\u0131lavuz web site.\u00a0 \u00a0\u00a0<a href=\"https:\/\/www.w3schools.com\/Python\/python_user_input.asp\" target=\"_blank\" rel=\"noopener\">https:\/\/www.w3schools.com\/Python\/python_user_input.asp<\/a><\/strong><\/p>\n<p><strong><span style=\"color: #ff6600;\">Python online editor 2 :<\/span> <a href=\"https:\/\/repl.it\/languages\/python3\" target=\"_blank\" rel=\"noopener\">https:\/\/repl.it\/languages\/python3<\/a><\/strong><\/p>\n<p><strong><span style=\"color: #ff0000;\">Python rastlant\u0131sal say\u0131\u00a0 \u00fcret.<\/span><\/strong>\u00a0 \u00a0<strong><a href=\"https:\/\/www.programiz.com\/python-programming\/examples\/random-number\" target=\"_blank\" rel=\"noopener\">https:\/\/www.programiz.com\/python-programming\/examples\/random-number<\/a><\/strong><br \/>\n<a href=\"https:\/\/www.yazilimkodlama.com\/programlama\/python-rastgele-sayi-uretme\/\" target=\"_blank\" rel=\"noopener\"><strong><span style=\"color: #ff0000;\">Python rastlant\u0131sal say\u0131\u00a0 \u00fcret.<\/span><\/strong>\u00a0 <strong>https:\/\/www.yazilimkodlama.com\/programlama\/python-rastgele-sayi-uretme\/<\/strong><\/a><\/p>\n<p><strong><span style=\"color: #ff0000;\">Python veri giri\u015fi :\u00a0<\/span> <a href=\"https:\/\/www.programiz.com\/python-programming\/methods\/built-in\/input\" target=\"_blank\" rel=\"noopener\">https:\/\/www.programiz.com\/python-programming\/methods\/built-in\/input<\/a><\/strong><\/p>\n<p><strong><span style=\"color: #ff0000;\">Python karar verme:\u00a0<\/span><\/strong>\u00a0\u00a0\u00a0 <strong><a href=\"https:\/\/www.programiz.com\/python-programming\/if-elif-else\" target=\"_blank\" rel=\"noopener\">https:\/\/www.programiz.com\/python-programming\/if-elif-else<\/a><\/strong><\/p>\n<p><strong><span style=\"color: #ff0000;\">Sonu\u00e7 yazd\u0131rma. python yazd\u0131r:\u00a0<\/span><\/strong>\u00a0\u00a0\u00a0<strong> <a href=\"https:\/\/www.yazilimbilimi.org\/python-print-fonksiyonu-ve-formatlama\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.yazilimbilimi.org\/python-print-fonksiyonu-ve-formatlama\/<\/a><\/strong><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"height-set:true height:300 lang:python decode:true\" title=\"Say\u0131 bulmaca \u00f6rne\u011fi\">import random\r\n# print(random.randint(1,9))\r\ntutsay=random.randint(1,99)\r\nprint(\"maksimum 2 karakterli tutulan say\u0131 \",tutsay)\r\n\r\nprint (\"tuttu\u011fum say\u0131y\u0131 bil oyunu\" )\r\n\r\nwhile True:\r\n    x = input (\"Bir say\u0131 giriniz:\")\r\n    if int(x)==int(tutsay):\r\n        print(int(tutsay))\r\n        break\r\n    if int(x)&gt;int(tutsay):\r\n        print (\"B\u00dcY\u00dcK\")\r\n    if int(x)&lt; int(tutsay):\r\n        print (\"K\u00dc\u00c7\u00dcK\")\r\n<\/pre>\n<p><iframe data-src=\"https:\/\/www.youtube.com\/embed\/L-02xsgd0uw\" width=\"900\" height=\"506\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Algoritma : K\u0131sa bir tan\u0131m gerekirse \u015fu \u015fekilde tan\u0131mlayabiliriz. Algoritma, belli bir problemi \u00e7\u00f6zmek veya belirli bir amaca ula\u015fmak i\u00e7in tasarlanan yol. Kendime g\u00f6re anlatmak istesem D\u00fc\u015f\u00fcnceyi g\u00f6rmek diyebilirim. D\u00fc\u015f\u00fcn\u00fcrken&#8230; <\/p>\n","protected":false},"author":1,"featured_media":1638,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-1624","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pcprog"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/comments?post=1624"}],"version-history":[{"count":3,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1624\/revisions"}],"predecessor-version":[{"id":2469,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1624\/revisions\/2469"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/1638"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=1624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=1624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=1624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}