Eğitimde Bilişim Teknolojileri-II Dersi ALGORİTMA VE PROGRAMLAMAYA GİRİŞ, SCRATCH UYGULAMALARI

Benzer belgeler
VERİ YAPILARI VE ALGORİTMALAR DERS NOTU

Algoritmalar ve Programlama. Algoritma

Algoritma ve Programlamaya Giriş

GÖRSEL PROGRALAMA HAFTA 3 ALGORİTMA VE AKIŞ DİYAGRAMLARI

BLG 1306 Temel Bilgisayar Programlama

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

4. Animasyonumuzda karakterimizin harekete başlaması duyurusu yapıldığında çalışan komut aşağıdakilerden hangisidir?

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

1. Yandaki kuş karakterini domuz karakterine ulaştırmak için doğru kod bloğu hangisidir?

4- ALGORİTMA (ALGORITHM)

6.SINIF ÇALIŞMA SORULARI

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

4- ALGORİTMA (ALGORITHM) M.İLKUÇAR - 1

BÖLÜM 2: ALGORİTMALAR

Algoritmalar. 3. Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli.

Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal)


Programlama Temelleri. Ders notları. Öğr.Gör. Hüseyin Bilal MACİT 2017

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

Yrd. Doç. Dr. Fatih YÜCALAR YZM Celal Bayar Üniversitesi Teknoloji Fakültesi

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Algoritma ve Akış Şemaları

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

BMT 101 Algoritma ve Programlama I 2. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

4. Animasyonumuzda karakterimizin harekete başlaması duyurusu yapıldığında çalışan komut aşağıdakilerden hangisidir?

Algoritma ve Akış Şemaları

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

PROBLEM ÇÖZME PROGRAMLAMA ve ÖZGÜN ÜRÜN GELİŞTİRME

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA. Yazılım Nedir Algoritma Akış Seması Örnekler

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

bunları biliyor muydunuz? primo Bill Gates Mark Zuckerberg oyuncak robot codie code.org bulmacalar NEDIR

Algoritma ve Akış Diyagramları

KBÜ. TBP101 Programlama Temelleri. Öğr. Gör. Dr. Abdullah ELEN KARABÜK ÜNİVERSİTESİ.

PROGRAMLAMA EĞĠTĠMĠ. Scratch ile Programlama, Elektronik Uygulamalar ve Robotik Eğitimi

C++ Dilinde Bazı Temel Algoritmalar

ALGORİTMA NEDİR? (Adım adım işlem basamaklarının yazılmasıdır.)

Dr. Musa KILIÇ Öğretim Görevlisi

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır.

3. Bölüm Algoritmalar

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

Ünite 01 Algoritma Geliştirme

BİLGİSAYAR PROGRAMLAMA MATLAB

HSancak Nesne Tabanlı Programlama I Ders Notları

Bilgisayar II Dersi. Bölüm-2

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

BİLGİSAYAR PROGRAMLAMA DERSİ

ALGORİTMA HAZIRLAMA. Temel tanımlar ve işleyiş. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Algoritma Hazırlama. Programlama. nereden başlamalı? ALGORİTMA VE PROGRAMLAMA Öğr.Gör.Günay TEMUR

ALGORİTMAYA GİRİŞ. Program: Belirli bir işi gerçekleştirmek için gerekli komutlar dizisi olarak tanımlanabilir.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

C SHARP UYGULAMA ÇALIŞMASI

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

.. ORTAOKULU EĞİTİM ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIFLAR ÜNİTELENDİRİLMİŞ YILLIK PLANI

EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

PROGRAMLAMA NEDİR? Kullanıcıların isteklerini karşılayacak alt yapıyı(kodları) hazırlamaktır.

BİLGİSAYAR PROGRAMLAMA DERSİ

Hafta 4 Döngü Yapıları

5S4 NESNELER KONUŞUYOR

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-4 Döngü Yapıları. Yrd. Doç. Dr. Ümit ATİLA

BİL1002 Bilgisayar Programlama PROF.DR.TOLGA ELBİR

ALGORİTMA VE PROGRAMLAMA II

TEMEL BİLGİSAYAR BİLİMLERİ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Akış Diyagramı)

ÖRNEK ALGORİTMA VE AKIŞ ŞEMALARI. Örnek 1: Klavyeden girilen 2 sayının toplamını bulan programın algoritma ve akış şemasını yapınız.

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Algoritma ve Programlama I

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

Bilgisayar Programlama. Giriş

BLG 1306 Temel Bilgisayar Programlama

I=[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1] % 4x4 lük birim matris

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Bilgisayar Programı Nedir?

Algoritmanın Hazırlanması

ALGORİTMA KAVRAMI. Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir.

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

ALGORİTMA VE AKIŞ ŞEMALARI

EXCEL de her bir çalışma alanı bir sayfa olarak adlandırılırken, birden fazla sayfa ise kitap olarak adlandırılır.

BÖLÜM 3 OPERAT A ÖRLER

Erzurum Teknik Üniversitesi Mühendislik Mimarlık Fakültesi Bilgisayar Programlama Dersi Ödevi Soru

AVRASYA UNIVERSITY. Dersin Verildiği Düzey Ön Lisans (X ) Lisans ( ) Yüksek Lisans( ) Doktora( )

BİLGİSAYAR PROGRAMLAMA DERSİ

İşletme Fakültesi Bil. Kullanımı Ders notları 2

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

.. ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

HSancak Nesne Tabanlı Programlama I Ders Notları

Transkript:

ÖMER HALİSDEMİR ÜNİVERSİTESİ Eğitim Fakültesi Bilgisayar ve Öğretim Teknolojileri Eğitimi Bölümü Eğitimde Bilişim Teknolojileri-II Dersi ALGORİTMA VE PROGRAMLAMAYA GİRİŞ, SCRATCH UYGULAMALARI Ad SOYAD Ataberk MORALA Mahmut TEKELİOĞLU Oğuzhan UYGUR Resul İLHAN 28 Mayıs, 2017 1

İÇİNDEKİLER 1 ŞEKİLLER TABLOSU... 3 2 ÖNSÖZ... 4 3 ÖZET... 5 4 PROGRAMLAMA NEDİR?... 6 4.1 Program :... 6 4.2 Programlama Dili :... 6 5 ALGORİTMA NEDİR?... 6 6 ALGORITMALARIN SAHIP OLMASI GEREKEN GENEL ÖZELLIKLER... 7 6.1 Giriş/Çıkış Bilgisi:... 7 6.2 Sonluluk:... 7 6.3 Kesinlik:... 7 6.4 Etkinlik:... 7 6.5 Başarım ve Performans:... 8 7 AKIŞ DİYAGRAMLARI... 8 8 VERİ VE ALGORİTMA İLİŞKİSİ... 9 9 SABİTLER... 10 10 DEĞİŞKENLER... 10 10.1 Değişken Tanımlama Kuralları... 10 11 MANTIKSAL SINAMALAR... 11 12 DÖNGÜLER... 13 13 ALGORİTMA ÖRNEKLERİ... 14 13.1 Kurt, Kuzu, Ot Algoritması... 14 13.2 Sayı Tahmin Oyunu... 15 13.3 Sayaçlı Sayı Tahmin Oyunu... 15 13.4 Fıbonaccı Algoritması... 15 13.5 Hastalık Belirleme Algoritması... 16 14 SCRATCH... 17 14.1 Scratch Hareket Sekmesi... 17 14.2 Scratch Kontrol Sekmesi... 18 14.3 Scratch Görünüm Sekmesi... 18 15 SCRATCH SORULAR... 19 16 KAYNAKÇA... 21 17 PROĞRAM LİNKİ... 21 2

1 ŞEKİLLER TABLOSU Şekil 1 AKIŞ DİYAGRAMLARI... 8 Şekil 2 AKIŞ DİYAGRAMI ÖRNEĞİ... 9 Şekil 3 DÖNGÜLER ÖRNEK BİR... 13 Şekil 4 DÖNGÜLER ÖRNEK İKİ... 14 Şekil 5 SCRATCH... 17 Şekil 6 SCRATCH HAREKET SEKMESİ... 17 Şekil 8 SCRATCH KONTROL SEKMESİ... 18 Şekil 9 SCRATCH GÖRÜNÜM SEKMESİ... 18 3

2 ÖNSÖZ Çalışmamızda scratch kullanımı, programlama temelleri, algoritmalar, akış diyagramları öğrenmek amaçlanmıştır. Çalışmamızda planlanmasında, araştırılmasında, yürütülmesinde ve oluşumunda ilgi ve desteğini esirgemeyen, engin bilgi ve tecrübelerinden yararlandığımız, yönlendirme ve bilgilendirmeleriyle çalışmamıza bilimsel temeller ışığında şekillendiren sayın hocamız Yrd. Doç. Dr. Nezih ÖNAL a sonsuz teşekkürlerimizi sunarız. Tüm eğitim hayatımız boyunca bizden maddi ve manevi desteklerini esirgemeyen her zaman yanımızda olan sevgili ailemize teşekkürlerimizi bir borç biliriz. 4

3 ÖZET Kabul etmeliyiz ki; bilgisayarların günlük yaşamımızda girmediği alan kalmadı. İletişim, ticaret, bankacılık, tıp, elektrik, elektronik gibi akılımıza gelen birçok alanda önemini ortaya koymuştur. Dolayısıyla, bilgisayarlar çok çeşitli işlemleri veya problemleri çözme konusunda, milisaniyelerle ifade edilebilen bir süre içinde sonuca ulaşabilmektedirler. Bilgisayarların, işlem yapabilme yada problem çözme becerileri, genel anlamda, yazılım (software) diye adlandırdığımız, ifadeler aracılığı ile kazandırılmaktadır. İfadeler topluluğunu program diye isimlendirebiliriz. Programlar ise, bilgisayar dili dediğimiz diller, makine ile insanoğlu arasındaki iletişimini sağlayan ve ne yapılması veya yapılmaması gerektiğini anlatan yoldur. Algoritma bilgisayarlarla ilgili değildir. Nasıl müzik insan ruhuna hitap eden evrensel bir dilse, algoritma da meselelerin çözümü için kullanılan evrensel bir dildir. Algoritma düşünüş adımlarının ortaya konmasıdır. Bir algoritmanın geliştirilmesi ya da değiştirilmesi için o algoritmayı tasarlayan kişinin kültürüne, diline ya da hayat anlayışına bakmak gerekmez. Çünkü yapısı gereği algoritma insan düşüncesini ifade etmek için kullanılan bilgisayar geometrisidir. 5

4 PROGRAMLAMA NEDİR? Bilgisayarların isteğe uygun özel işlemler yapması için programlanması gerekir. Örneğin, bir şirkette kullanılan stok uygulaması, sipariş uygulaması ya da değişik iş takipleri, hastane otomasyonları yada eğitim kurumlarının kullandığı öğrenci otomasyonları gibi. Programlamaya çok fazla örnek vermek mümkündür. 4.1 PROGRAM : Günlük hayattaki bir sorunu bilgisayarla çözmek, rutin işlemleri kolaylaştırmak için bilgisayarların isteğe uygun olarak özel bir takım işlemleri gerçekleştirmesi için programlanması gerekmektedir. İşte yazılan bu yazılımlar ile ortaya çıkan ürün bir programdır. Bilgisayar oyunu, muhasebe işlem programları ve ticari şirketlerde kullanılan paket programlar birer programdır. 4.2 PROGRAMLAMA DİLİ : Bilgisayarda çözülecek bir sorun için çözümün bilgisayara adım adım yazılmasını sağlayan biçimsel kuralları olan ve bu kurallara sıkı sıkıya bağımlılığı gerektiren bir tanımlar kümesidir. Yani, programcı ile bilgisayar arasında bir tercüman durumundadır. 5 ALGORİTMA NEDİR? Algoritma kelimesi matematik, astronomi ve coğrafya alanlarında çalışmış Türk düşünür Ebu Abdullah Muhammed bin Musa el-harezmi (Abū Abdullāh Muhammad ibn Mūsā al- Khwārizmī) Latince (Algoritmi) isminden türetilmiştir. IX. yüzyılda Bağdat ta yaşamış olan El-Harezmi dijital elektroniğin temelini oluşturan ikilik sayma sistemini (binary) ve sıfırı bulmuştur. Algoritma kısaca çözüm adımlarıdır. Farkında olmasak da hayatın her anında algoritma kullanırız. Evden okula ulaşmak için ulaşım algoritmasını, açlığımızı gidermek için yemek algoritmasını tercih ederiz. Amaç okula ulaşmak ya da doymak ise algoritmadaki bir hata oldukça can sıkıcı olabilir. Okula ulaşma algoritmasını ele alalım. Her algoritmada Başla ve Bitir ifadelerine yer verilir. 1. Başla 2. Otobüs durağına git. 3. Üniversiteye giden otobüsü bekle. 4. Otobüse bin. 5. Biletini okut. 6. Üniversite durağında in. 7. Okula gir. 8. Bitir Basit gibi görünen bu algoritma üzerinde bir hata yapalım. Örneğin 3 numaralı adımı atlayalım. Eğer yeterince şanslı isek doğru sonuca ulaşabiliriz (Yani üniversiteye giden otobüse 6

binebiliriz). Ama büyük ihtimalle ilk gelen otobüse bindiğimiz için şehrin üniversiteden uzak bir semtine gideceğimizden sonuncu adımı asla gerçekleştiremeyeceğiz. Hergün yaptığımız ama yaparken düşünmediğimiz birkaç eylem için algoritmayı yukarıdaki gibi kurmak algoritma kurma prensiplerini anlamayı kolaylaştıracaktır. Algoritma kurulurken dikkat edilecek hususlar şunlardır; 1. Mutlaka bir başlangıcı ve sonu olmalıdır. Sonu olmayan bir algoritmanın test edilmesinin mümkün olmadığı açıktır. 2. Bir algoritmadaki ifadeler kesin olmalıdır. Belirsizlikler algoritma ile ulaşılmak istenen sonucun elde edilememesine neden olur. 3. Algoritma sınırlı sayıda belirli kurallarla kurulmalıdır. Ve bu belirli kurallar takip edecekleri bir sıraya sahip olmalıdırlar. 6 ALGORITMALARIN SAHIP OLMASI GEREKEN GENEL ÖZELLIKLER Hayatın ve bilimin hemen her alanında var alan algoritmaların sahip olması gereken genel özellikler aşağıdaki gibidir: 6.1 GİRİŞ/ÇIKIŞ BİLGİSİ: Algoritmalarda giriş ve çıkış bilgileri olmalıdır. Dışarıdan gelen verilere giriş bilgisi denir. Bu veriler algoritmada işlenir ve çıkış bilgisini oluşturur. Çıkış bilgisi her algoritmada mutlaka vardır. Algoritmaların temel amacı giriş bilgisini işleyerek çıkış bilgisi oluşturmaktır. Ancak her durumda bir algoritmanın çıkış bilgisi istenenleri tam olarak karşılayamaz. Böyle durumlarda ilk algoritmanın ürettiği çıkış bilgisi başka bir algoritmaya giriş bilgisi olarak gönderilir ve böylece kullanıcı istediği bilgiye sahip olmuş olur. 6.2 SONLULUK: Her türlü olasılık için algoritma sonlu adımda bitmelidir. Algoritma sonsuz döngüye girmemelidir. 6.3 KESİNLİK: Her komut kişinin kalem ve kâğıt ile yürütebileceği kadar basit olmalıdır. Algoritmanın her adımı anlaşılır, basit ve kesin bir biçimde ifade edilmiş olmalıdır. Kesinlikle yorum gerektirmemeli ve belirsiz ifadelere sahip olmamalıdır. 6.4 ETKİNLİK: Yazılan algoritmalar etkin ve dolayısıyla gereksiz tekrarlardan uzak oluşturulmalıdır. Bu algoritmanın temel özelliklerinden birisidir. Ayrıca algoritmalar genel amaçlı yazılıp yapısal bir ana algoritma ve alt algoritmalardan oluşturulmalıdır. Böylece daha önce yazılmış bir algoritma daha sonra başka işlemler için de kullanılabilir. Buna örnek vermek gerekirse eğer elimizde, verilen n adet sayının ortalamasını bulmakta kullandığımız algoritma varsa bu algoritma, bir sınıfta öğrencilerin yaş ortalamasını bulan bir algoritma için de kullanılabilmelidir. 7

6.5 BAŞARIM VE PERFORMANS: Amaç donanım gereksinimi (bellek kullanımı gibi), çalışma süresi gibi performans kriterlerini dikkate alarak yüksek başarımlı programlar yazmak olmalıdır. Gereksiz tekrarlar ortadan kaldırılmalıdır. Bir algoritmanın performans değerlendirmesinde aşağıdaki temel kriterler göz önünde bulundurulur. 1. Birim İşlem Zamanı 2. Veri Arama ve Getirme Zamanı 3. Kıyaslama Zamanı 4. Aktarma Zamanı 7 AKIŞ DİYAGRAMLARI Akış Diyagramı; bir algoritmanın belirli bir anlamı olan şekillerle ifade edilmesidir. Önceki konuda eğer dikkat edildiyse algoritmaların, doğal dille yazıldığı için herkes tarafından anlaşılamayabilir ya da istenmese de başka anlamlar çıkarılabilir oluşudur. Ancak akış diyagramlarında her bir şekil standart belli bir anlam taşıdığı için farklı yorumlanıp anlaşılması olası değildir. Bir algoritmanın ifade edilebilmesi için sıklıkla kullanılan şekiller ve anlamları şunlardır: Şekil 1 AKIŞ DİYAGRAMLARI Başlarda akış şemasını çizmeden önce mutlaka algoritmanın ortaya konması gerekir. İş akış şemasını yazmada ustalaştıkça algoritmanın ayrıca yazılmasına gerek kalmayabilir Girilen iki sayıyı büyüklük küçüklük yönünden karşılaştıran algoritma ve akış diyagramı: 1. Başla 2. Birinci sayıyı gir.(x), İkinci sayıyı gir.(y) 3. Eğer x>y ise ekrana Birinci sayı büyüktür yaz. 4. Eğer x<y ise ekrana Birinci sayı küçüktür yaz. 5. Ekrana sayılar birbirine eşittir yaz. 6. Bitir 8

Şekil 2 AKIŞ DİYAGRAMI ÖRNEĞİ 8 VERİ VE ALGORİTMA İLİŞKİSİ Ortada bir sorun ya da amaç yoksa insanın düşünmesine de gerek yoktur. Bu iddialı ifade algoritmalar için de geçerlidir. Bir sorunu çözmek ya da herhangi bir amaca ulaşmak için algoritma kurarız. Veri algoritmanın hammaddesidir ve algoritmanın girdisidir. Çözüm ya da beklenen amaç ise algoritmanın çıktısıdır. Algoritmada iş akışı sürecine sokulan her veri mutlaka bir işlemin tetikleyicisi olur. Veri algoritmaya ya elle girilir ya da önceden dijital ortama girilmiş verilerden faydalanılır. Çoğu zaman birkaç veri çeşitli işlemlerden sonra bir araya getirilerek süreç boyunca kullanılacak yeni bir veri elde edilir. Algoritma içindeki verilerin hangi türe ait olduğunun en başta bildirilmesi iş akış sürecinin ilerdeki safhalarında karışıklıkların ortadan kaldırılmasına yardımcı olacaktır. Temel matematik kuralı algoritmalar için de geçerlidir. Sadece aynı tür veriler ile işlem yapılabilir. Bazı özel durumlarda farklı türler 9

birbirine çevrilebilir. Hangi tür veri türü ile ilgili işlem yapılmışsa sonuç aynı türdür. Yani iki metin üzerinde işlem yapılmışsa sonuç yine metindir. İki zaman üzerinde işlem yapılmışsa sonuç zamandır. İki sayı üzerinde işlem yapılmışsa sonuç sayıdır vs. 9 SABİTLER Algoritma içindeki her tür alfabetik, sayısal ya da zamansal değerlere sabit denir. Alfabetik sabitlere alfa sayısal sabit de denir. Alfa sayısal sabitler tırnak içinde gösterilirler. Alfa sayısal sabitlerle aritmetik işlem yapılamaz. Bir sayı algoritma içinde tırnaklar içinde gösterilmişse artık sayı niteliği taşımaz. Sadece sayıya benzeyen alfa sayısal bir değerdir ve aritmetik işlem içinde kullanılamaz. Her sabit algoritmaya dâhil edeceğiniz bir veridir. Buradan her sabitin algoritma için bir girdi olduğu sonucuna ulaşmanız yanlış olmayacaktır. 10 DEĞİŞKENLER En basit tanımıyla değişken, bir değerin saklanması için hafızada ayrılan yerdir. Daha açık ifadeyle bir değeri gösterin semboldür. Değişken kullanımı matematikle aynıdır. Bir değişkenin değeri hangi tür veriyi içeriyorsa değişkende o tür bir değişkendir. Yani metin içeren bir değişken için metin değişken, sayı içeren bir değişken için sayı değişken, tarih ya da zaman içeren bir değişken içinse tarih ya da zaman değişken isimleri kullanılır. 10.1 DEĞİŞKEN TANIMLAMA KURALLARI Aslında kendi oluşturduğumuz dilde böyle kurallara ihtiyaç yoktur. Ancak kurulacak algoritmanın bir şekilde programa dönüştürülmesi gerekir. Alışkanlık haline gelmesi bakımından kendi uyduracağımız dil için yaşayan programlama dillerinde kullanılan değişken tanımlama kurallarını kullanmak faydalı olacaktır. Değişken tanımlama kuralları şunlardır; 1. Değişkenler isimlendirilirken rakam ile başlanmaz. Değişken isminin ilk karakteri mutlaka bir harf olmalıdır. Daha sonra rakamlar kullanılabilir. 2. Değişkenler İngiliz alfabesinin karakterleri kullanılarak adlandırılırlar. Türkçe alfabede yer alan ç, Ç, Ö, ö, Ş, ş, Ğ, ğ, ü, Ü, İ, ı harfleri değişken ismi içinde yer alamazlar. 3. Değişken isimlerinde boşluk ve :, *, /, +, }, ],! vs. gibi özel karakterler bulunmaz. Üç sayının ortalamasını almak için kullandığımız algoritmada bu tür kurallara dikkat edilmemişti. Şimdi açıkladığımız bu kurallara göre algoritmamızı yeniden yazalım. 1. Başla 2. Gir; BirinciSayi 3. Gir; IkinciSayi 4. Giri; UcuncuSayi 5. Hesapla ve Ortalama Diye Adlandır {(BirinciSayi+İkinciSayi+UcuncuSayi)/3} 6. Ekrana Ortalama değerini yaz 10

Algoritmayı gerçekleştirmek için kullanacağımız programlama diline göre kurallarda ufak tefek değişiklikler olabilir. Ancak üst düzey programlama dillerinin genelinde yukarıda bahsettiğimiz değişken tanımlama kurallarına uymanız gereklidir. Algoritmada kurma mantığı gereği belirsizlikten özellikle kaçınılır. Bundan dolayı algoritma içinde kullanılacak değişkenler daha adımların en başında türleriyle birlikte belirtilir (deklare edilir). Üç sayının ortalamasını alan algoritmamızı bu kurala uygun hale getirelim. 1. Başla 2. BirinciSayi, IkinciSayi, UcuncuSayi, Ortalama sayı içerecek değişkenlerdir. 3. Gir; BirinciSayi 4. Gir; IkinciSayi 5. Giri; UcuncuSayi 6. Hesapla ve Ortalama Diye Adlandır {(BirinciSayi+İkinciSayi+UcuncuSayi)/3} 7. Ekrana Ortalama değerini yaz 8. Bitir Bir değişken içine mutlaka bir sabit yerleştirilir. Bu işe atama işlemi denir ve genellikle = işareti kullanılarak gerçekleştirilen bir işlemdir. Örneğin renk değişkenine, yeşil ifadesini atamak istiyorsak; renk= yeşil yazmamız genellikle yeterlidir. 1. Başla Algoritmamızı bu yeni kuralara göre yeniden düzenleyelim; 2. BirinciSayi, IkinciSayi, UcuncuSayi, Ortalama sayı içerecek değişkenlerdir. 3. Gir; BirinciSayi 4. Gir; IkinciSayi 5. Giri; UcuncuSayi 6. Ortalama= {(BirinciSayi+IkinciSayi+UcuncuSayi)/3} 7. Ekrana Ortalama değerini yaz 8. Bitir 11 MANTIKSAL SINAMALAR Algoritmanın temelini mantıksal sınamalar oluşturur. Mantıksal sınamalar değişkenler arasında büyüklük, küçüklük, eşitlik sınaması yapmak için kullanılır. Sınamanın sonucu ya doğrudur ya da yanlıştır. İş akış şemasında sınama sonucu doğruysa Evet okunun gösterdiği yöne, yanlışsa Hayır okunun gösterdiği yöne doğru ilerlenir. Algoritmamıza bir mantıksal sınamalar yerleştirelim. 11

1. Başla 2. BirinciSayi, IkinciSayi, UcuncuSayi, Ortalama sayı içerecek değişkenlerdir. 3. Gir; BirinciSayi 4. Gir; IkinciSayi 5. Giri; UcuncuSayi 6. Ortalama= {(BirinciSayi+IkinciSayi+UcuncuSayi)/3} 7. Eğer Ortalama değeri 1 den büyükse ekrana sayıların toplamı 3 den büyük değilse Sayıların toplamı 3 den küçük yaz. 8. Eğer Ortalama değeri 1 e eşitse Sayıların toplamı 3 tür 9. Ekrana Ortalama değerini yaz 10. Bitir Algoritmamızı basitleştirmek için matematikte kullanılan çeşitli operatörlerden faydalanmak doğru olacaktır. > işareti sağdakinin soldakinden büyük olup olmadığını sınamak için kullanılır. < işareti sağdakinin soldakinden küçük olup olmadığını sınamak için kullanılır. = işareti eşitlik durumu olup olmadığını kontrol etmek için kullanılır. Eşittir işaretinin aynı zamanda bir değişkene değer atamak gibi bir görevi vardır. Mantıksal sınama içinde ise eşitlik testi yapmak içindir. >= Büyük eşittir. <= Küçük eşittir. <> Eşit değildir. 12

1. Başla Algoritmamızı yeniden düzenleyelim. 2. BirinciSayi, IkinciSayi, UcuncuSayi, Ortalama sayı içerecek değişkenlerdir. 3. Gir; BirinciSayi 4. Gir; IkinciSayi 5. Giri; UcuncuSayi 6. Ortalama= {(BirinciSayi+IkinciSayi+UcuncuSayi)/3} 7. Eğer Ortalama > 1 ise ekrana sayıların toplamı 3 den büyük değilse Sayıların toplamı 3 den küçük yaz. 8. Eğer Ortalama = 1 ise Sayıların toplamı 3 tür 9. Ekrana Ortalama değerini yaz 10. Bitir Yukarıdaki algoritmanın 6. Satırında eşittir işareti ortalama değişkenine değer atamak için kullanılmıştır. 8. Satırda ise mantıksal sınamanın içinde kullanılan = işaretinin eşitlik testi yapmak için kullanıldığına dikkat ediniz. İkisi de aynı işaret gibi görünse de amaçları tamamen farklıdır. 12 DÖNGÜLER Algoritma içindeki bir adımın ya da adımlar grubunun istenilen sayıda tekrar tekrar yapılmasını sağlayan yapılardır. Kullanımlarına dikkat edilmelidir. Eğer bir şekilde döngüden çıkılamıyorsa bu büyük bir hatadır ve kurulan algoritma asla sonuç vermez. Bu duruma da kısır döngü denir. İşlemlerin kesin olarak belirli bir sayıda yapılması isteniyorsa döngü içinde sayaç değişken adını verdiğimiz değişkenler kullanılır. Bu değişkenler döngü içerisinde mutlaka değişikliğe maruz kalırlar. Eğer sayaç değişkenlerde bir değişiklik olmazsa döngü kısır döngü haline gelir. Şekil 3 DÖNGÜLER ÖRNEK BİR 13

Örnek: 100 e kadar olan sayıların toplamını alan bir akış diyagramını ve algoritmasını yapınız? Şekil 4 DÖNGÜLER ÖRNEK İKİ 13 ALGORİTMA ÖRNEKLERİ 13.1 KURT, KUZU, OT ALGORİTMASI Sizden kurt, kuzu ve otu, sadece bir tanesini yanınıza alabileceğiniz bir sandalla nehrin öbür yakasına geçirmeniz isteniyor. Siz olmadan kurtla kuzu yan yana kalamıyor kuzu ile de ot yan yana kalamıyor. Dolayısıyla kuzu ile otu, kurt ile kuzuyu tek başlarına nehrin herhangi bir yakasında bırakamazsınız. İlgili algoritmayı yazalım. 1. Başla 2. Kuzuyu al karşıya geçir. 3. Nehrin diğer yakasına dön. 4. Kurt u al karşıya geçir. 5. Kuzuyu yanına al nehrin diğer yakasına dön. 6. Kuzuyu bırak otu al nehrin karşı yakasına geçir. 7. Nehrin diğer yakasına dön. 8. Kuzuyu al karşıya geçir. 9. Bitir. 14

13.2 SAYI TAHMİN OYUNU 1. Başla 2. tahmin, z değişkenleri tam sayı içeren değişkenlerdir. 3. z değişkeni için 1 ile 100 arasında rastgele bir sayı oluştur (Bilgisayar tarafından yapılıyor) 4. Gir; tahmin 5. Eğer z > tahmin ise ekrana Tuttuğum sayı daha büyük yaz ve dördüncü adıma git. 6. Eğer z < tahmin ise ekrana Tuttuğum sayı daha küçük yaz ve dördüncü adıma git. 7. Ekrana Tebrikler tuttuğum sayı buydu yaz. 8. Bitir 13.3 SAYAÇLI SAYI TAHMİN OYUNU 1. Başla 2. tahmin, z, sayac tamsayı içeren değişkenlerdir. 3. Kafadan z değişkeni için 1 ile 100 arasında bir sayı tut 4. Sayac değişkenin değerini 0 olarak belirle. 5. Gir; tahmin 6. Sayac değişkenin değerini 1 artır. 7. Eğer z > tahmin ise ekrana Tuttuğum sayı daha büyük yaz ve beşinci adıma git. 8. Eğer z < tahmin ise ekrana Tuttuğum sayı daha küçük yaz ve beşinci adıma git. 9. Ekrana Tebrikler tuttuğum sayı buydu yaz. Sayac değişkenin değerini ekrana yaz ve peşine denemede bildiniz yazısını ekle. 10. Bitir 13.4 FIBONACCI ALGORİTMASI Fibonacci dizisi sayıları: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, şeklinde devam eder. Her sayı kendisinden önce gelen iki sayının toplamıdır. Klavyeden girilen n ci fibonacci sayısını bulmak için bir algoritma kuralım. 1. Başla 2. a, ad, sayac, n, x tam sayılı değişkenlerdir. 3. a=1, ad=0, sayac=0 4. Gir; n 5. x=a+ad 6. ad=x 7. a=x-a 8. sayac=sayac+1 9. Eğer sayac<>n ise 5. Satıra git 10. Ekrana x değerini yaz. 11. Bitir 15

13.5 HASTALIK BELİRLEME ALGORİTMASI Aşağıda bazı hastalıkların belirtileri verilmiştir. Bu belirtilerden faydalanarak hangi hastalığa kişinin yakalandığını bulan algoritmayı kurunuz. a) Verem; Öksürük, Yüksek Ateş, Halsizlik, Yorgunluk, kusma. b) Nezle; Öksürük, Halsizlik c) Tansiyon; Baş dönmesi, Yıldızlar görüyor musunuz? d) Zehirlenme; Kusma, Halsizlik. 1. Başla 2. oksuruk, yuksekates, halsizlik, yorgunluk, kusma, basdonmesi, yildiz, hastalik metin değişkenlerdir. 3. Ekrana Öksürük var mı? (E/H) yaz, Gir; oksuruk 4. Ekrana Yüksek ateş var mı? (E/H) yaz, Gir; yuksekates 5. Ekrana Halsizlik var mı? (E/H) yaz, Gir; halsizlik 6. Ekrana Yorgunluk var mı? (E/H) yaz, Gir; yorgunluk 7. Ekrana Kusma var mı? (E/H) yaz, Gir; kusma 8. Ekrana Baş dönmesi var mı? (E/H) yaz, Gir; basdonmesi 9. Ekrana Yıldızlar görüyor musunuz? (E/H) yaz, Gir; yildiz 10. Eğer oksuruk = E ve halsizlik= E ve yuksekates<> E ve yorgunluk<> E ve kusma<> E ise hastalik= Nezle 11. Eğer kusma= E ve halsizlik= E yuksekates<> E ve yorgunluk<> E ve oksuruk<> E ise hastalik= Zehirlenme 12. Eğer oksuruk = E ve yuksekates = E ve halsizlik= E ve yorgunluk= E ve kusma= E ise hastalik= Verem 13. Eğer basdonmesi= E ve yildizlar= E ve kusma<> E ve halsizlik<> E yuksekates<> E ve yorgunluk<> E ve oksuruk<> E ise hastalik= Tansiyon 14. Eğer basdonmesi<> E ve yildizlar<> E ve kusma<> E ve halsizlik<> E yuksekates<> E ve yorgunluk<> E ve oksuruk<> E ise hastalik= Teşhis konulamadı 15. Ekrana hastalik değerini yaz. 16. Bitir 16

14 SCRATCH Şekil 5 SCRATCH Scratch, ABD'de bulunan MİT in geliştirdiği, 8-16 yaş arası çocukların kullanımına göre tasarlanmış oldukça basit bir ara yüze sahip programlama ortamıdır. Geleneksel programlama dillerinin aksine kullanıcı, istediği fonksiyonları fare ile tıklayıp sürükleyerek animasyonlar, oyunlar ve hikâyeler yaratabilirsiniz. 14.1 SCRATCH HAREKET SEKMESİ Scratch ın en çok kullanılan sekmelerinden biri hareket sekmesidir. Bu sekmeden animasyon olarak karakterleri yürütebilir, zıplatabilir, döndürebilir ve yerlerini değiştirebilirsiniz. Şekil 6 SCRATCH HAREKET SEKMESİ 17

14.2 SCRATCH KONTROL SEKMESİ Bu sekmeden oyun yazılımınızla ilgili genel kontrol ayarlarınızı yapabilirsiniz. Oyununuzu başlatmak için gerekli komutunu buradan seçebilirsiniz. Karakterlerinizin tekrarlama işlemini, değiştirme işlemini, durdurma işlemini de bu sekmeden yapabilirsiniz. Şekil 7 SCRATCH KONTROL SEKMESİ 14.3 SCRATCH GÖRÜNÜM SEKMESİ Bu sekmeden karakterlerinizin kostüm geçişlerini ayarlayabilirsiniz. Genellikle hareketli animasyonlu oyun yazılırken bu komut kullanılır. Ayrıca bu sekmeden karakterlerinizi konuşturabilir, boyutlarını değiştirebilir, renklerini değiştirebilirsiniz. Şekil 8 SCRATCH GÖRÜNÜM SEKMESİ 18

15 SCRATCH SORULAR 1-Scratch programında hazırlanan çalışmaları kaydetmek için hangi menü kullanılır? A. Dosya > Kaydet B. Düzenle > Bir adımlık kurulum C. Dosya > Yeni D. Paylaş > Bu projeyi internette paylaş 2-Aşağıdakilerden hangisi yanlıştır? A. Sahnede birden fazla karakter olabilir. B. Her karakterin sadece 1 kostümü vardır. C. Sahnedeki karakterler bloklar yardımıyla hareketlendirilir. D. Scratch programıyla oyunlar oluşturabiliriz. 3-Scratch karakteri olan kedi, hangi (x,y) noktasına geldiği zaman sahneden kaybolur? A. (400,400) B. (158,0) C. (240,180) D. (-20,20) 4-Scratch programında sahne ne anlama gelmektedir? A. Kullanılan blokların bulunduğu bölümdür. B. Tasarladığımız karakterin hareketlerini gördüğümüz bölümdür. C. Blokları çekip bıraktığımız yerdir. D. Programın üst kısmında bulunan menü kısmıdır. 5-Scratch programının geliştiricisi hangi üniversitedir? A. Cambridge B. Oxford C. MIT D. Harvard 19

6-Aşağıdaki kod bloğunun açıklaması aşağıdakilerden hangisidir? A. Klavyede sağ yön tuşuna basıldığında sağa doğru dön ve 10 adım git. B. Klavyede boşluk tuşuna basıldığında yukarı doğru dön ve 10 adım git. C. Klavyede boşluk yön tuşuna basıldığında sağa doğru dön ve 10 adım git. D. Klavyede boşluk yön tuşuna basıldığında sola dön ve 10 adım git. 7-Oyunumuzda asıl karakterimizin meyvelere yaklaştığında meyvelerin sahneden kaybolmasını sağlayan komut aşağıdakilerden hangisidir? A. B. C. D. Komutunun işlevi aşağıdakilerden hangisidir? A. Karakterin oyunun başlangıcında sahnedeki konumunu belirler. B. Arı karakterine yaklaşana kadar bekler. C. 1 ile 10 arasında rasgele bir sayı seçer. D. Arı karakterinin gizlenmesini bekler. Komutunun görevi aşağıdakilerden hangisidir? A) Karakterin sahnede resminin çıkmasını sağlar B) Karakteri 180 derece döndürür. C) Bu komut içerisine yerleştirilen komutları çalışmayı durdurana kadar tekrarlar. D) Karakteri kenarda ise zıplatır. Cevaplar: A-B-A-B-C-C-A-B-A 20

16 KAYNAKÇA 1. http://iibf.erciyes.edu.tr/guven/yapi/vya01.pdf 2. http://personel.klu.edu.tr/dosyalar/kullanicilar/m.aslanyurek/dosyalar/dosya_ve_belgel er/programlamaya%20giri%c5%9f%28algoritma%29%281%29.pdf 3. http://w3.gazi.edu.tr/~suatozdemir/teaching/bm218/01.intro.pdf 4. https://evrak.files.wordpress.com/2011/12/02-akisdiyagramlari.pdf 5. http://bilprog.ege.edu.tr/~charmansah/wpcontent/uploads/2014/07/algoritma_06kas2015.pdf 6. http://web.firat.edu.tr/enfders/file/c_programlama/c.pdf 7. https://scratch.mit.edu/ 8. https://algoritmaveprogramlama.wordpress.com/2013/09/19/algoritmalarin-sahipolmasi-gereken-genel-ozellikler/ 17 PROĞRAM LİNKİ 1. https://scratch.tr.uptodown.com/windows 21