23
Algoritma ve Programlama Şeyhmus AYDOĞDU

Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

  • Upload
    others

  • View
    40

  • Download
    11

Embed Size (px)

Citation preview

Page 1: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

Algoritma ve ProgramlamaŞeyhmus AYDOĞDU

Page 2: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

Dr. Öğr. Üyesi Şeyhmus AYDOĞDU

ALGORİTMA VE PROGRAMLAMA

ISBN 978-625-7880-27-5DOI 10.14527/9786257880275

Kitap içeriğinin tüm sorumluluğu yazarına aittir.

© 2020, PEGEM AKADEMİ

Bu kitabın basım, yayım ve satış hakları Pegem Akademi Yay. Eğt. Dan. Hizm. Tic. A.Ş.ye aittir. Anılan kuruluşun izni alınmadan kitabın tümü ya da bölümleri, kapak tasarımı; mekanik, elektronik, fotokopi, manyetik kayıt ya da başka yöntemlerle çoğaltılamaz, basılamaz, dağıtılamaz. Bu kitap T.C. Kültür ve Turizm Bakanlığı bandrolü ile satılmaktadır. Okuyucularımızın bandrolü olmayan kitaplar hakkında yayınevimize bilgi vermesini ve bandrolsüz yayınları satın almamasını diliyoruz.

Pegem Akademi Yayıncılık, 1998 yılından bugüne uluslararası düzeyde düzenli faaliyet yürüten uluslararası akademik bir yayınevidir. Yayımladığı kitaplar; Yükseköğretim Kurulunca tanınan yükseköğretim kurumlarının kataloglarında yer almaktadır. Dünyadaki en büyük çevrimiçi kamu erişim kataloğu olan WorldCat ve ayrıca Türkiye’de kurulan Turcademy.com ve Pegemindeks.net tarafından yayınları taranmaktadır, indekslenmektedir. Aynı alanda farklı yazarlara ait 1000’in üzerinde yayını bulunmaktadır. Pegem Akademi Yayınları ile ilgili detaylı bilgilere http://pegem.net adresinden ulaşılabilmektedir.

1. Baskı: Haziran 2020, Ankara

Yayın-Proje: Şehriban TürlüdürDizgi-Grafik Tasarım: Hilal Sultan Kılınç

Kapak Tasarım: Pegem Akademi

Baskı: Ay-bay Kırtasiye İnşaat Gıda Pazarlama ve Ticaret Ltd. Şti.Çetin Emeç Bulvarı 1314. Cadde No: 37A-B Çankaya/ANKARA

Tel: (0312) 472 58 55

Yayıncı Sertifika No: 36306Matbaa Sertifika No: 46661

İletişim

Karanfil 2 Sokak No: 45 Kızılay/ANKARAYayınevi: 0312 430 67 50 - 430 67 51Dağıtım: 0312 434 54 24 - 434 54 08

Hazırlık Kursları: 0312 419 05 60İnternet: www.pegem.netE-ileti: [email protected]

WhatsApp Hattı: 0538 594 92 40

dizgi
Sticky Note
Marked set by dizgi
dizgi
Sticky Note
Marked set by dizgi
dizgi
Sticky Note
Marked set by dizgi
dizgi
Sticky Note
Marked set by dizgi
Page 3: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

ÖN SÖZ

Günümüzde, teknolojik araçların yaygın kullanımıyla birlikte programlama becerilerinin geliştirilmesi önemli bir hale gelmiştir. Bireylere bu becerinin kazan-dırılması için “niye” ve “nasıl” sorularının problem çözme sürecinde sorulması gerekmektedir. Ancak bu şekilde kopyala yapıştır yapmak yerine belirli bir prob-lemin çözümüne yönelik algoritma tasarlayan ve bu algoritmaları kodlayabilen bireyler yetiştirilebilir.

Bu kitabın amacı, ele alınan bir problem için yukarıda belirtilen çerçevede nasıl program yazılacağına rehberlik etmektir. Kitaptaki problemlerin çözümün-de, Python programlama dilinin kullanımı tercih edilmiştir. Çünkü, Python prog-ramlama dili öğrenilmesi kolay, veri türleri konusunda esneklik sağlayan ve yay-gın olarak kullanılan bir programlama dilidir. Buna ek olarak, gelecekte de yaygın olarak ihtiyaç duyulacak yapay zeka, makine öğrenmesi ve derin öğrenme ile ilgili alanlarda Python programlama dili araştırmalarda kolaylıkla kullanılabilmektedir. Bu açıdan, bu kitap programlamaya sıfırdan başlayan öğrencilerden, ileri düzeyde uygulama geliştirmek isteyen araştırmacılara kadar kaynak olabilecek niteliktedir.

Kitap içerisinde geliştirilen uygulama örneklerine https://www.pegem.net/ adresinden erişilebilmekte ve ücretsiz olarak indirilebilmektedir.

Kitabın yazımı sürecinde beni sürekli destekleyen eşim Yıldız Özaydın Ay-doğdu’ya ve sevgili dostum Dr. Öğretim Üyesi Ufuk Akbaş’a, programlama konu-sunda derin tecrübelerini bana aktaran ve bu alanda çalışmamı teşvik eden değerli hocam Prof. Dr. Tolga Güyer’e ve akademik çalışmalar konusunda destek veren Prof. Dr. Ali Meydan’a teşekkür ederim.

Dr. Öğr. Üyesi Şeyhmus Aydoğdu

dizgi
Sticky Note
Marked set by dizgi
Page 4: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin
Page 5: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

İÇİNDEKİLER

1. BÖLÜM

TEMEL KAVRAMLAR VE EDİTÖR KURULUMU

Kazanımlar ............................................................................................................................1Giriş ........................................................................................................................................1Program, programcı ve programlama kavramları ...........................................................1Programlama ile ilgili temel kavramlar .............................................................................2Thonny Editörünün Kurulumu ..........................................................................................8Thonny Uygulamasını Tanıyalım .....................................................................................12Konsoldan Komut Yazma İşlemi ......................................................................................13İlk Uygulamamızı Geliştirelim .........................................................................................14Özet ......................................................................................................................................14Alıştırma Soruları ...............................................................................................................15

2. BÖLÜM

ALGORİTMA GELİŞTİRME VE PYTHON PROGRAMLAMANIN TEMELLERİ

Kazanımlar .........................................................................................................................17Giriş ......................................................................................................................................17Algoritma Nedir? ................................................................................................................17Algoritma Tasarlanması ve Geliştirilmesinde Hangi Aşamalar İzlenmektedir? ........20Örnek Bir Algoritma: Kabarcık Sıralama Algoritması ..................................................21Python Programlama Dili .................................................................................................22Değişkenler .........................................................................................................................22Yazım Standardı ..................................................................................................................23Açıklama Satırları ...............................................................................................................24Operatörler ..........................................................................................................................24Aritmetik Operatörler ........................................................................................................25Atama operatörleri .............................................................................................................26Karşılaştırma operatörleri .................................................................................................28Mantıksal operatörler.........................................................................................................30

dizgi
Sticky Note
Marked set by dizgi
Page 6: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

vi Algoritma ve Programlama

Temel Veri Türleri...............................................................................................................32Sayı (int) Veri Türü .............................................................................................................32Boolean Veri Türü ..............................................................................................................33Metin (str) Veri Türü .........................................................................................................33None veri tipi ......................................................................................................................34Veri türleri arasında dönüşüm ..........................................................................................34int() fonksiyonu ..................................................................................................................35float() fonksiyonu ...............................................................................................................35str() fonksiyonu ..................................................................................................................35Girdi ve Çıktı İşlemleri ......................................................................................................36Girdinin Okunması ............................................................................................................36Çıktının Yazdırılması .........................................................................................................36str.format kullanımı ...........................................................................................................37f-strings kullanımı ..............................................................................................................38Özet ......................................................................................................................................39Alıştırma Soruları ...............................................................................................................39

3. BÖLÜM

KOŞUL VE DÖNGÜ İŞLEMLERİ

Kazanımlar ..........................................................................................................................41Giriş ......................................................................................................................................41Koşullar ................................................................................................................................41Tek bir durumu kontrol etme ...........................................................................................42Durumun gerçekleşmesini ve gerçekleşmemesini kontrol etme .................................44Birbirine bağlı birden fazla durumu kontrol etme .........................................................46İç içe kontrollerin yapılması ..............................................................................................49Örnek Uygulamalar............................................................................................................52Döngüler ..............................................................................................................................58Belirli bir aralıkta işlemleri tekrarlama (for kullanımı).................................................59Bir koşul sağlandığı sürece işlemleri tekrarlama (while kullanımı) ............................64Döngülerden çıkış veya sonraki adıma geçme işlemi (break ve continue kullanımı) 67Döngülerin ve koşulların birlikte kullanıldığı uygulama örnekleri .............................70Özet ......................................................................................................................................82Alıştırma Soruları ...............................................................................................................82

Page 7: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

İçindekiler vii

4. BÖLÜM

FONKSİYONLAR

Kazanımlar ..........................................................................................................................85Fonksiyon nedir ve neden kullanılır? ..............................................................................85Hazır fonksiyonlar ve kullanım örnekleri .......................................................................86Fonksiyon tanımlama ve çalıştırma .................................................................................90Fonksiyondan değer döndürme .......................................................................................94Özyinelemeli fonksiyonlar ................................................................................................96Örnek Uygulamalar............................................................................................................99Özet ....................................................................................................................................105Alıştırma Soruları .............................................................................................................105

5. BÖLÜM

METİNLER

Kazanımlar ........................................................................................................................107Metin değişkenler ve len fonksiyonu .............................................................................107Metinlerdeki karakterlere erişim ....................................................................................110Döngüler ile metin içerisinde karakterlere erişim .......................................................112Metinleri birleştirme ........................................................................................................114Metinleri biçimlendirme .................................................................................................115Metin Uygulama Örnekleri .............................................................................................116Özet ....................................................................................................................................120Alıştırma Soruları .............................................................................................................121

6. BÖLÜM

LİSTELER

Kazanımlar ........................................................................................................................123Listelerin kullanımı ..........................................................................................................123Listelerde kullanılan temel fonksiyonlar .......................................................................126Liste içerisindeki elemanlara erişim...............................................................................126Döngüler ile liste elemanlarına atama ve erişim ..........................................................128Liste uygulama örnekleri .................................................................................................131Özet ....................................................................................................................................136Alıştırma Soruları .............................................................................................................137

KAYNAKLAR ...................................................................................................................138

Page 8: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin
Page 9: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

Kazanımlar

Bu bölümü başarıyla bitiren bir öğrenci,

• Algoritma kavramını açıklayabilir.• Koşul, döngü ve fonksiyon kavramları arasındaki farklılıkları açıklaya-

bilir.• Thonny editör uygulamasının kurulumunu yapabilir.• Thonny editörü kullanabilir.Anahtar kelimeler: algoritma, programlama, thonny editör

Giriş

Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin okuyucu tarafından anlaşılır hale gelmesi için bu bölümün programlamaya yeni başlayanlar için özenli bir şekilde çalışması öne-rilir. Temel kavramlara öncelikle program, programcı, programlama kavramları tanımlanarak başlanacaktır. Daha sonra bir program geliştirilirken temel kavram niteliğinde olan aynı zamanda ilerleyen bölümlerde ele alınan algoritma, değişken, döngü, koşul ve fonksiyon kavramları ele alınacaktır.

Program, programcı ve programlama kavramları

Program kavramı sözlükte, bilgisayar bilimlerinde, bilgisayara bir işlemi yap-tırmak için yazılan komutlar dizisi olarak tanımlanmaktadır. Burada, bilgisayara yaptırılacak bir işlem ile iki adet sayının toplamından yapay zeka uygulamalarına kadar geniş bir yelpazeden bahsetmek mümkündür. Bazı programlar sadece kendi bilgisayarımızda kişisel işlemlerimizi gerçekleştirme amacıyla kullanılırken, bazı programlar uzak bilgisayarlarda insanlarla iletişim kurmamızı sağlamak amacıyla kullanılabilmektedir. Bilgisayara belirtilen bu işlemleri yaptırmak için komutlar

1. BÖLÜM

TEMEL KAVRAMLAR VE EDİTÖR KURULUMU

Page 10: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

dizisini oluşturan kişiler programcı, programcılar tarafından yapılan bu işe prog-ramlama denir.

Programlama ile ilgili temel kavramlar

Programlamaya bu alanda yer alan en temel ve sık kullanılan algoritma kav-ramı ile başlayalım. Algoritma, sözlükte “bir problemin çözümüne yönelik iyi tanımlanmış kuralların ve işlemlerin adım adım uygulanması” olarak tanımlan-maktadır. Tanımdan yapılabilecek bir çıkarım algoritmada kesin, açık ve anlaşılır belirli sayıda komut bulunması gerektiğidir. Algoritmalarda, bir problemin çözü-müne yönelik olarak yazılır, problemler de verilen bilgilere (girdi) göre istenen bilgiler (çıktı) olur. Dolayısıyla algoritmalar, bir veya birden fazla girdiye göre belli miktarda tanımlanmış işlemler gerçekleştirilerek bir çıktı veya çıktı seti oluşturma süreci olarak tanımlanabilir. Kitabın ikinci bölümünde algoritma geliştirme konu-su detaylı bir şekilde ele alınmıştır.

İlk algoritmayı yazmadan önce, programın işlem basamaklarında değerle-rin kaydedilmesi için kullanılan değişken kavramını ele almakta yarar olacaktır. Değişkenler, en basit tanımı ile bir program içerisinde değerleri saklamak için kullanılan ifadelerdir. Örneğin, kullanıcı tarafından girilen bir sayının hafızada saklanması için değişken kullanabiliriz. Bunun yanı sıra çalışma esnasında hesap-lanan sonuçların kaydedilmesi için de değişkenleri kullanabiliriz. Değişken kav-ramı ikinci bölümde detaylı bir şekilde açıklanmıştır. Şimdi, kullanıcı tarafından girilen iki sayının toplamını ekrana yazdıracak algoritmayı yazalım. Bunun için aşağıdaki işlem basamaklarını izleyebiliriz:

1. Programın başladığını belirt.

2. İlk sayıyı iste.

3. Girilen sayıyı kaydet.

4. İkinci sayıyı iste.

5. İkinci sayıyı kaydet.

6. Girilen sayıların toplamını hesapla.

7. Toplamı ekrana yaz.

8. Programı bitir.

Yukarıda iki sayının toplanması için girdilerin istenmesi, toplamın hesap-lanması ve toplam değerinin ekrana yazdırılması adımları ile algoritma oluştu-rulmuştur. Algoritmaların herhangi bir programlama diline çevrilmeden önce programcının anlayacağı şekilde yazdığı komutlar sözde kod olarak adlandırıl-

2 Algoritma ve Programlama

Page 11: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

maktadır. Yukarıda belirtilen aşamaları sözde koda yani sıralı komutlara çevirecek olursak aşağıdaki gibi bir sonuç elde ederiz. Algoritmanın sözde kodunda, ekrana bir şey yazdırmak için YAZ ve kullanıcı tarafından verilen girdilerin değişkende saklanması için OKU komutu kullanılmıştır.

1. BAŞLA

2. YAZ(“İLK SAYIYI GİRİNİZ”)

3. OKU(SAYI1)

4. YAZ(“İKİNCİ SAYIYI GİRİNİZ”)

5. OKU(SAYI2)

6. TOPLAM = SAYI1 + SAYI2

7. YAZ(TOPLAM)

8. BİTİR

Yukarıdaki örnekte dikkat edilmesi gereken noktalardan biri 6. satırda TOPLAM değerinin hesaplanması için “SAYI1 + SAYI2 = TOPLAM” yerine “TOPLAM=SAYI1 + SAYI2” ifadesinin kullanılmasıdır. Programlama dillerinde değer aktarımı sağdan sola doğru gerçekleştiğinden, bu örnekte aktarımda böyle bir ifade kullanılmıştır. Farklı kaynaklar incelendiğinde atama işlemi için ß ka-rakterinin kullanılacağı görülecektir.

Yukarıdaki işlem basamaklarını incelersek girilen sayıların herhangi bir kontrolü yapılmadan doğrudan hafızaya alınarak toplam değerini hesaplamada kullanılmıştır. Tabi her program yukarıdaki gibi tek bir işlemi gerçekleştirmeye yönelik çalışmayabilir. Başka bir deyişle, bir programın her durumda aynı sonucu üretmesi yerine belirli koşullar altında farklı sonucu üretmesi istenebilir. Örneğin, girilen bir sayının tek veya çift olduğunu ekrana yazan bir uygulama geliştirmek istiyoruz. Bu örnekte olduğu gibi sayının tek veya çift olması gibi birden fazla du-rumun kontrolünün gerekli olduğu durumlarda koşullar kullanılmaktadır. Şimdi, örnek üzerinde biraz düşünelim. Mesela 56’nın çift, 71’in tek olduğunu hemen ifade edebiliyoruz. Peki bunu nasıl yapıyoruz, yani bir sayının tek veya çift oldu-ğunu nasıl anlayabiliriz? Çift sayıların 2’nin katı olduğunu, tek sayıların ise 2’nin katı olmadığını biliyoruz. Dolayısıyla, zihnimiz hesaplanacak sayının sadece 2 ile tam bölünüp bölünmediğine bakarak karar vermektedir. Peki bir sayının 2’ye tam bölünüp bölünmediğini nasıl anlarız? Bu noktada iki yöntemden herhangi birini tercih edebiliriz.

Temel Kavramlar ve Editör Kurulumu 3

Page 12: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

1. Birinci yöntemde sayının 2 ile bölümünden kalanına bakıp 1 ise tek, değilse çift diyebiliriz. Eğer sayının 2 ile bölümünden kalanı bulmamız gerekli ise sayının 2’ye göre modu sonucunu kullanabiliriz.

2. İkinci yöntemde, sayının 2 ile bölümüne bakıp bölüm tamsayı ise çift, değilse tek diyebiliriz. Bu durumda, bu probleme yönelik algoritmayı iki farklı şekilde yazabiliriz.

5

1

2 5

0

2

2,5

1. BAŞLA

2. OKU(SAYI)

3. EĞER SAYI MOD 2 = 1 İSE

3.1. YAZ(“SAYI TEK”)

4. AKSİ HALDE

4.1. YAZ(“SAYI ÇİFT”)

5. BİTİR

1. BAŞLA

2. OKU(SAYI)

3. EĞER SAYI / 2 TAMSAYI İSE

3.1. YAZ(“SAYI ÇİFT”)

4. AKSİ HALDE

4.1. YAZ(“SAYI TEK”)

5. BİTİR

Birinci Yöntem İkinci Yöntem

Yukarıda verilen her iki yöntemde işlem basamaklarını incelediğimizde kul-lanıcı tarafından girilen bir sayının tek veya çift olmasına yönelik geri bildirim vereceğini görüyoruz. Birinci yöntemde, 3. satırdaki “EĞER SAYI MOD 2 = 1 İSE” komutu ile sayının 2 ile bölümünden kalan incelenmekte ve bu değer 1 ise ekra-na “SAYI TEK” ifadesi yazdırılmaktadır. İkinci yöntemde, 3. satırda “EĞER SAYI / 2 TAMSAYI İSE” komutu ile sayının 2 ile bölümünün tamsayı olup olmadığı kontrol edilmekte ve bu değer tamsayı ise (yani ondalık kısım 0 ise) bu durumda ekrana “SAYI ÇİFT” ifadesi yazdırılmaktadır. Dolayısıyla bir problemin birden fazla çözüm yöntemi olabilir.

Şimdi, 1’den 5’e kadar olan sayıları ekrana yazdırmak istediğimiz bir proble-mi ele alalım. Bu durumda aşağıdaki gibi bir algoritma problemimizin çözümü olabilir.

4 Algoritma ve Programlama

Page 13: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

1. BAŞLA

2. YAZ(1)

3. YAZ(2)

4. YAZ(3)

5. YAZ(4)

5. YAZ(5)

6. BİTİR

Peki, 1’den 1000’e kadar olan sayıları ekrana yazdırmamız gereken bir algorit-mayı nasıl yazarız? Önceki problemde, 5 adet sayı bulunduğu için yazımı kolaydı fakat bu problemde ilk 1000 satırı tek tek yazmak oldukça zaman alıcı olacak gibi görünüyor. Bu durumda, koşul kullanımı içerisinde adıma yönlendirme kullana-rak bu problemi kolaylıkla çözebiliriz. Aşağıdaki algoritmayı inceleyelim:

1. BAŞLA

2. SAYI = 1

3. YAZ(SAYI)

4. EĞER SAYI < 1000 İSE

4.1. SAYIYI 1 ARTIR

4.2. 3. ADIMA GİT

5. AKSİ HALDE

5.1. 6. ADIMA GİT

6. BİTİR

Algoritmanın 2. adımında ekrana yazdırılacak SAYI değişkenimiz ilk yazı-lacak değer olan 1’e eşitlenmekte ve 3. adımda SAYI değişkeni içerisindeki değer (dolayısıyla ilk aşamada 1) ekrana yazdırılmaktadır. 4. adımda SAYI içerisindeki değer (ilk aşamada 1), yazdırılacak son değer olan 1000’den küçük ise 4.1. ve 4.2. adımlar çalışmaktadır. İlk aşamada 1 < 1000 olduğundan SAYI değeri 1 artacak (yani 2 olacak) ve ardından 4.2. de verilen komut ile tekrar 3. adıma (ekrana sayı yazdırmaya) yönlendirilecektir. Tekrar 4. Adım işleme alınacak ve SAYI değeri 1000’den küçük olduğu sürece bu işlem tekrarlayacaktır. Sondan bir önceki adım olan 999 değerine odaklanalım. SAYI değeri 999 olduğundan 999<1000 olduğun-dan SAYI değeri 1 artırılacak ve 3. Adıma geçilecek ve 1000 değeri ekrana yazdı-rılacaktır. SAYI değeri 1000 olduğunda, 1000 kendisinden küçük olmadığından 5. Adımda bulunan AKSİ HALDE koşulu çalışacak ve 5.1. de belirtildiği gibi 6.

Temel Kavramlar ve Editör Kurulumu 5

Page 14: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

Adıma geçilecek ve uygulama sonlandırılacaktır. Dolayısıyla adıma yönlendirme işlemiyle istediğimiz gibi ekrana 1’den 1000’e kadar tüm sayıları yazdırabileceğiz.

Uygulamanın geliştirilmesi sürecinde araya yeni komutların eklenmesi ko-mutların bulunduğu adım numarasının değişimini beraberinde getirecektir. Elbet-te bu problemin çözümü için adım numarası yerine etiket kullanımı bulunmakta-dır fakat bu şekilde adıma veya etikete yönlendirme algoritmanın anlaşılmasını ve kontrol edilebilmesini zorlaştırmaktadır. Algoritma içerisinde bu şekilde tekrarlı işlemlerin gerçekleştirilmesi için kullanılan kavram ise döngülerdir. Bazı durum-larda programlarda belirli bir aralıkta veya belirli bir koşul sağlandığı sürece işlem gerçekleştirmesi istenebilir, işte böyle bir durumda döngüler kullanılabilmektedir. Aynı problemi DÖNGÜ kullanarak aşağıdaki gibi çözebiliriz.

1. BAŞLA

2. DÖNGÜ(SAYI=1’DEN 1000’E KADAR, +1)

2.1. YAZ(SAYI)

3. BİTİR

Döngü kullanımı örneğinde görüldüğü gibi daha anlaşılır bir durum söz ko-nusudur. 2. Adımda belirtilen ifadeyle 1’den 1000’e kadar 1 artış miktarı ile sayı ek-rana yazdırılmıştır. Döngü kullanımı uygulamayı, adıma yönlendirme işleminden daha kullanışlı ve anlaşılır hale getirmektedir. Döngüler içerisinde farklı döngüler yazılabileceği gibi koşullar da yazılabilmektedir. Örneğin, 1000 den küçük asal sayıların listesinin oluşturulacağı bir uygulamada 2’den 1000’e kadar her bir sayı için kendisinden önceki sayılara bölünme kontrolünün yapılması ayrı bir döngü oluşturmayı ve bunun içerisinde kontrollerin yapılmasını gerektirecektir. Koşul ve döngüler 3. bölümde detaylı olarak ele alınmıştır.

Programlamada bulunan temel kavramlardan bir diğeri ise fonksiyonlardır. Fonksiyonlar, genellikle yazılan bir programın farklı bölümlerinde tekrarlayan iş-lemler için kodların tekrar tekrar yazımını önlemek amacıyla kullanılırlar. Örne-ğin, kullanılan bir öğrenci bilgi sistemini ele alalım. Bu sistemde öğrencilerin vize ve final puanlarına göre harf notlarının anlık olarak hesaplandığını varsayalım. Böyle bir sayfada not dökümünde her ders için harf notu hesaplanacağından he-saplama formülünün tekrar tekrar yazılması yerine bir fonksiyon kullanılabilir. Ayrıca öğretmen, öğrenci ve diğer kullanıcı tiplerinde de ortalamanın hesapla-nacağı düşünülürse tüm bu işlemler için tek bir hesaplama fonksiyonu yazılması program yazma sürecini hızlandıracağı gibi, kullanıcı tipleri arasında tutarlılığın sağlanması ve hesaplama yöntemini güncelleme kolaylığını beraberinde getirecek-tir. Fonksiyonlar, 4. bölümde detaylı bir şekilde ele alınmıştır.

6 Algoritma ve Programlama

Page 15: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

Programda, girdiler her zaman sayılar olmayabilir. Kullanıcıdan girdi olarak metin değerleri istenebilir ve metinler üzerinde işlemler yapılması gerekebilir. Bu durumda metin değişkenleri kullanmak gereklidir. Her ne kadar değişkenler me-tin olsa da metin değişkenlerdeki karakterlere erişmek için indeks numaralarını kullanmak gereklidir. Metinlerin oluşturulması ve metinler üzerinde işlemlerin nasıl gerçekleştirileceği 5. Bölümde detaylı olarak açıklanmıştır.

Geliştirdiğimiz programlarda kaç tane değişken kullanacağımız belli olma-yabilir veya başka bir deyişle kullanılması gereken değişken sayısı kullanıcıdan istenen girdi değerine göre belirlenebilir. Örneğin, rasgele girilen 5 tane sayının küçükten büyüğe doğru sıralamasının istenildiği bir problemde 5 tane değişken kullanarak girdi değerleri hafızaya alınabilir ve karşılaştırılabilir. Bu karşın, rasgele girilen n tane sayının küçükten büyüğe doğru sıralanmış şeklinin istenildiği bir problemde kullanılacak değişken sayısı n değerine bağlıdır. Çünkü programda n tane değer saklanmalıdır. Bunun gibi girdi sayısının belli olmadığı ve girdilerin hafızada saklanması gerektiği durumlarda listeler kullanılmaktadır. Listeler bura-da açıklanan problemlerde kullanıldığı gibi değişkenlerin fazla olduğu problem-lerde de etkili bir şekilde kullanılabilmektedir. Listeler, 6. Bölümde detaylı olarak açıklanmıştır.

Geliştirdiğimiz algoritmaların uygulamaya konulduğu dil programlama dili olarak adlandırılmaktadır. İnternette küçük bir araştırma yapıldığında oldukça fazla sayıda programlama dili olduğu görülmektedir. Hangi programlama dilinin seçileceği ise geliştirilecek uygulamanın kullanım amacına, ortamına ve sürecine göre farklılık göstermektedir. Her ne kadar programlama dilleri arasında farklı-lıklar (avantajlar-dezavantajlar) olsa da problemin çözümüne yönelik algoritma ortak nokta olarak kalmaktadır. Bu kitapta belirlenen problemlerin çözümüne yönelik geliştirilen algoritmaları Python programlama dilinde uygulayacağız. Ki-tabın ikinci bölümünde Python programlama dilinin temelleri ve özellikleri açık-lanmıştır.

Bu bölümde son bahsedeceğimiz kavram derleyicidir. Derleyici geliştirilen bir programın makine diline dönüştürülmesi için kullanılan uygulamadır. Her ne kadar programcıların bilgisayar başında 1 ve 0 yazdıkları gibi bir algı bulunsa da aslında böyle bir durum söz konusu değildir. Programcılar yukarıda bahsetmiş olduğumuz programlama dillerini kullanarak anlaşılabilir kodlar yazmaktadırlar. Yazılan bu programlar ise derleyiciler aracılığıyla makine diline dönüştürülür. Bundan dolayı bilgisayarımızda program geliştirebilmek için derleyicinin kuru-lumu gerekmektedir.

Temel Kavramlar ve Editör Kurulumu 7

Page 16: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

Uygulama geliştirmek için bilgisayarımızda not defteri gibi bir editörü kul-lanabileceğimiz gibi kodları daha anlaşılır olarak görüntülememizi ve kolaylıkla çalıştırmamızı sağlayan editörleri de kullanabiliriz. Python programlama dilinde uygulama geliştirmek için birçok editör bulunmaktadır. Kullanım kolaylığı, içeri-sinde python derleyici barındırması ve başlangıç düzeyine uygunluğundan dolayı bu bölümde Thonny uygulamasının indirme ve kurulum aşamaları açıklanmıştır.

Thonny Editörünün Kurulumu

Adım 1: Thonny editörü thonny.org adresinden indirelim (Şekil 1). Bu adım-da ekranın sağ üst bölümünde kullandığımız işletim sistemine uygun sürümü seç-memiz gerekmektedir.

Şekil 1. Thonny.org web sayfası

8 Algoritma ve Programlama

Page 17: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

Adım 2: İndirdiğimiz dosyayı çalıştıralım (Şekil 2). Bu adımda karşılama ek-ranı görüntülenmektedir. Next (İleri) butonuna tıklayarak sonraki adıma geçelim.

Şekil 2. Thonny kurulumu ilk adımAdım 3: Lisans sözleşmesinin kabul edilmesi (Şekil 3). İndirdiğimiz uygula-

manın lisans sözleşmesini kabul ettiğimizi belirten “I accept the agreement” ifade-sini seçerek Next (İleri) butonuna tıklayalım.

Şekil 3. Lisans sözleşmesi ekranı

Temel Kavramlar ve Editör Kurulumu 9

Page 18: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

Adım 4: Kurulum klasörünü bu ekrandan seçebiliriz (Şekil 4). Bu adımda “Browse…” butonunu kullanarak farklı bir dizin seçebileceğimiz gibi varolan dizi-ne de kurulum işlemini gerçekleştirebiliriz.

Şekil 4. Kurulum dizininin seçilmesiAdım 5: Masaüstü simgesi oluşturma seçeneği ile masaüstünde kısayol oluş-

turabiliriz (Şekil 5).

Şekil 5. Masaüstü simgesi oluşturma

10 Algoritma ve Programlama

Page 19: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

Adım 6: Kurulum işlemini başlatmak için “Install” butonuna tıklayalım (Şekil 6).

Şekil 6. Kurulum başlatma ekranıAdım 7: Tebrikler kurulum başarıyla tamamladı. Kurulumun tamamlanması

sonrasında karşınıza aşağıdaki ekran gelecektir (Şekil 7).

Şekil 7. Kurulumun tamamlanması

Temel Kavramlar ve Editör Kurulumu 11

Page 20: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

Adım 8: İlk başlatma seçenekleri Şekil 8 de verilmiştir. Bu ekranda “Langua-ge” kısmından Türkçe seçeneğini seçerek “Let’s go!” butonuna tıklayın. Böylelikle editörümüzü Türkçe olarak kullanabileceğiz.

Şekil 8. Dil seçimi

Thonny Uygulamasını Tanıyalım

Thonny uygulamasını çalıştırdığımızda karşımıza Şekil 9 da görülen arayüz gelecektir. Şimdi bu arayüzü tanıyalım.

Şekil 9. Thonny editörü arayüzüŞekil 9 da verilen 1 numaralı bölümdeki kontroller yeni kod oluşturmak, kod

yüklemek, kaydetmek, çalıştırmak veya durdurmak amacıyla kullanılmaktadır. Kullanacağımız kontrollerin açıklamaları Tablo 1 de verilmiştir.

12 Algoritma ve Programlama

Page 21: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

Tablo 1. Thonny editörü kontrolleri

Kontrol Açıklama Kontrol AçıklamaYeni bir kod dosyası oluşturma

Kodu çalıştırma

Kod dosyasını açma Kod dosyasını kaydetme

Hata ayıklama modunda tekrar başlatma işlemi

Çalışan kod bloğunu dur-durma

Uygulamanın çalışma esna-sında değişken değerlerini takip etme

Bir problemin çözümüne yönelik kodları Şekil 9 da verilen 2 numaralı bölüme yazacağız. 3 numaralı bölümden geliştirdiğimiz uygulamaların çıktılarını görün-tüleyebilir veya doğrudan konsolda komutlarımızı çalıştırabiliriz. 4 numaralı bö-lümden uygulamada kullanılan değişkenler içerisindeki değerleri takip edebiliriz.

Konsoldan Komut Yazma İşlemi

Thonny uygulamasında yazdığımız kodları bir dosya olarak kaydedip tama-mını derleyebilir veya konsol bölümünü kullanarak bu komutları satır satır çalış-tırabiliriz. Komut satırında bu aşamada dört işlemlerin sonuçlarını görüntüleyen örnekler aşağıda verilmiştir.

>>> 3+58>>> 3-5-2>>> 3*515>>> 3/50.6>>> 3+6/26.0

Temel Kavramlar ve Editör Kurulumu 13

Page 22: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

Yukarıda toplama, çıkarma, çarpma ve bölme işlemi örnekleri verilmiştir. 3+6/2 işleminde ise herhangi bir parantez kullanılmadığı için bölme işleminin toplama işlemine göre önceliği olduğundan öncelikle 6/2 değeri hesaplanmakta daha sonra bu işlemin sonucu 3 değeri ile toplanmaktadır. Konsolda işlem değer-lerinin görüntüleme örnekleri İkinci bölümde Operatörler başlığı altında detaylı bir şekilde açıklanmıştır.

İlk Uygulamamızı Geliştirelim

Bu uygulamada ekrana “merhaba dünya” çıktısı vereceğiz. Bunun için ön-celikle Thonny uygulamasını başlatınız. Gelen ekranda kod bölümüne aşağıdaki komutu yazınız.

print(“merhaba dünya”)

Bu komut ile ekrana merhaba dünya yazdırılmaktadır. Uygulamayı çalıştır-

madan önce kaydetmelisiniz. Bunun için butonunu kullanarak uygulamayı

kaydedin ve ardından butonuna tıklayarak uygulamayı çalıştırınız. Çalıştır-

ma sonucunda aşağıdaki sonucu elde edeceksiniz.

merhaba dünya

Bu uygulamada ekrana “merhaba dünya” metnini yazdırarak ilk uygulama-mızı geliştirdik.

Özet

Bu bölümde algoritma kavramının açık, anlaşılır ve belirli adımlardan oluş-tuğu belirtilmiştir. Algoritmaların işleyişi esnasında bellekte verilerin depolanma-sı için değişkenleri kullanırız. Ele alınan bir problemin çözümü için algoritmayı öncelikle anlayabileceğimiz bir taslak formatında yazarız ve bu format sözde kod olarak adlandırılır. Geliştirdiğimiz bir uygulamanın farklı durumlarda farklı şekil-de çalışmasını isteyebiliriz. Bu durumda koşulları kullanırız. Eğer geliştirdiğimiz uygulamada belirli bir aralıkta veya belirli bir durum sağlandığı sürece tekrar-lanmasını istediğimiz adımlar varsa bu durumda döngüleri kullanırız. Koşullar ve döngüler problemin çözümüne göre birlikte kullanılabileceği gibi birbirinden bağımsız da kullanılabilirler. Problem içerisinde tekrar eden işlemler varsa bu durumda fonksiyonlar kullanılmaktadır. Problemin çözümü için hazırladığımız sözde kodları bir programlama diline dönüştürmemiz gerekmektedir. Seçeceği-miz programlama dili uygulamayı yayınlamayı amaçladığımız platform, sahip

14 Algoritma ve Programlama

Page 23: Algoritma ve Programlama...algoritma, programlama, thonny editör Giriş Bu bölümde programlama ile ilgili temel kavramlar ele alınmıştır. Kitap içerisinde anlatılan içeriklerin

olduğumuz zaman, yeteneklerimiz gibi değişkenlere göre belirlenebilir. Bu kitap içerisinde sahip olduğu esnek yapısı, anlaşılabilirliği, gelecekte makine öğrenme-si uygulamalarının geliştirilmesindeki etkililiği ve kodlama kolaylığı açısından Python programlama dili tercih edilmiştir. Geliştirdiğimiz uygulamanın makine diline dönüştürülmesi için derleyiciler kullanılmaktadır. Kodlama için herhangi bir metin editörü kullanılabileceği gibi geliştirilecek programlama diline özgü otomatik tamamlama özelliği bulunan ve kodları daha anlaşılır hale gelmesi için renklendirmeler yapan editörler de tercih edilebilir. Bundan dolayı bu bölümde Thonny editörü kurulum süreci açıklanmıştır.

Alıştırma Soruları

1. Algoritma nedir? Açıklayınız.

2. Program yazarken koşullara neden ihtiyaç duyarız?

3. Programlamada döngüler neden kullanılır?

4. Derleyici ve programlama dili kavramlarını açıklayınız.

5. Thonny editör olmadan Python programı yazılabilir mi? Thonny editö-rün görevi nedir?

Temel Kavramlar ve Editör Kurulumu 15