tikla-indir
Transkript
tikla-indir
Bilgisayar Programlama 2012-13 / Bahar Program ve programlama dili nedir? 2 Program ve programlama dili nedir? • İnsanla bilgisayar arasındaki iletişim aracı • Programlama dili, programcı ile bilgisayar arasındaki iletişimi sağlayan bir araç olup programların yazılımında kullanılan bir notasyondur (simgeler ve özel komutlar, komut parçacıkları). 3 Program dönüşümü • Düşük seviyeli diller (assembly : MOV AL, 61h) • Orta seviyeli diller (PIC programlama: SUBWF f,d [d = f − W]) • Yüksek seviyeli diller (C/C++, Pascal, QBasic : printf(), writeln(), PRINT) 4 Bilgisayarda problem çözme aşamaları: • • • • • • • Problemin tanımı Çözüm yolunun tespiti Algoritmanın hazırlanması Akış diyagramının çizilmesi Programın hazırlanması Hazırlanan programın test edilmesi Uygulama 5 ALGORİTMA Bilgisayar, sadece programcının kendisine söylediği şeyi nasıl yapacağını bilir. Bundan dolayı programcı bilgisayara problemi nasıl çözeceğini bildirmelidir. Bilgisayara nasıl iş yaptıracak, nasıl iletişim kuracaksınız? Bir “Program” ile. Bilgisayarlar program olmadan çalışmazlar. Bilgisayarın dili makine dilidir. Onunla makine mantığı ile iletişim kurabiliriz. Bu da algoritma (talimat, rutin, reçete) ile olur. Program yazma, çözülmüş bir problemin bir bilgisayar dili ile kodlarını yazmaktır (coding). Bu, en son iştir. Kodlamadan önce algoritma yazılmalıdır. Algoritma • Algoritma,herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir.Çözüm için yapılması gereken işlemler hiçbir alternatif yoruma izin vermeksizin sözel olarak ifade edilir. Diğer bir deyişle algoritma, verilerin, bilgisayara hangi çevre biriminden girileceğinin, problemin nasıl çözüleceğinin, hangi basamaklardan geçirilerek sonuç alınacağının, sonucun nasıl ve nereye yazılacağının sözel olarak ifade edilmesi biçiminde tanımlanabilir. • 9. yüzyılda El Harezmî Al-Khowarizmi (Al-Harezmi) tarafından bulunmuş ve onun adında türetilmiştir. El Harezmî • Tam adı; Ebu Abdullah Muhammed İbni Musa El Harezmî (Farsça: - خوارزمی khvârâzmi, Arapça: أبو عبد هللا محمد ابن موسى الخوارزميAbū Abdullāh Muhammad ibn Mūsā al-Khwārizmī); matematik, gökbilim ve coğrafya alanlarında çalışmış bir bilim adamıdır. Fars veya Türk olduğu düşünülmektedir. Genel itibariyle Ortaçağ İslam dünyasının en büyük bilimsel yeteneklerindendir. Batı Türkistan’da Aral gölü güneyinde bulunan Harezim bölgesinde 780 yılında dünyaya gelmiş, 850 ‘de Bağdat’ta vefat etmiştir. • Harezmî, çağına göre üstün özellikler taşıyan eserler meydana getirmiştir. Bu eserlerin günümüz matematikçilerini bile hayrete düşüren yönleri vardır. Mesela, açıların ‘’Sinüs’’ gibi trigonometrik fonksiyonlarla ifade edildiğini gösteren tabloları oluşturmuştur. 10. yüzyılda yaşayan ve tüm dünyaya isminin (El Harezmî – Al Khrawarizmi) Latince telaffuzunu “Algoritma” olarak söylettiren bu Müslüman Türk âlimi, cebir matematiğinin de kurucusudur. Zaten, cebir kelimesi de Harezmî’nin ( El Kitab’ül Muhtasar Fi Hisab’il Cebri ve’l Mukabele ) “Cebir ve denklem hesabı üzerine özet kitap” adlı eserinden gelir. Algoritma Problem çözmek için geliştirilen Adım – adım çözüm yöntemidir. Verilen bir problemi çözmek için tasarlanan talimatlar bütünüdür. Bir sorunun çözümü için sunulan mantıksal ve sembolik anlatımdır. Algoritma Algoritma sadece bilgisayar programlamada kullanılmaz. Bir fabrika üretiminin algoritması, bir büro çalışma düzeninin algoritması, bir planlı gezinin algoritması... Algoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak ayrıntılı bir biçimde tanımlanmalıdırlar. Örnek 1: Verilen iki sayının toplamının bulunmasının algoritması aşağıdaki gibi yazılır. Algoritmaya dikkat edilirse işlemlerin sıralanmasında, işlem önceliklerinin göz önünde bulundurulduğu görülür. Algoritma Adım 1 – Başla Adım 2 – Birinci Sayıyı Oku Adım 3 – İkinci Sayıyı Oku Adım 4 – İki Sayıyı Topla Adım 5 – Dur Ayrıca algoritma yazımı sorun çözümünün başladığını gösteren “Başla” ifadesi ile başlamakta ve işlemlerin bittiğini belirten “Dur” ifadesi ile sona ermektedir. Algoritmadan Beklentiler • Etkinlik: Bilgisayarlar düşünemez. Bu yüzden algoritmanın her adımı anlaşılır, basit ve kesin bir biçimde ifade edilmiş olmalıdır. Yorum gerektirmemeli ve belirsiz ifadelere sahip olmamalıdır. Gereksiz tekrarlarda bulunmayan diğer algoritmalar içerisinde de kullanılabilir olmalıdır. • Sonluluk: Her algoritmanın bir başlangıç noktası, belirli işlem adımı ve bir bitiş noktası içermelidir. Sonsuz döngüye girmemelidir. • Kesinlik: İşlem sonucu kesin olmalı, aynı veri için her yeni çalıştırmada aynı sonucu üretmelidir. • Giriş/Çıkış: Algoritma giriş (üzerinde işlem yapılacak değerler) ve çıkış (yapılan işlemler neticesinde üretilen sonuç değerler) değerlerine sahip olmalıdır. • Başarım/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. Algoritmaları bilgisayar programına çeviren üç Bunlar, kullanılacak programlama diline bağlı teknik vardır: değildir. • Sözde Kod (Pseudocode) – Programın ana hatlarını ve adımlarını gösteren kısa komutlar. •Akış diyagramı (Flowchart)- Bir işi yapan mantıksal adımları ve adımlar arası geçişlerin grafiksel gösterimi. • • Sıradüzeni grafiği (Hierarchy charts) - Programın farklı parçalarının birbirleriyle ilişkilerini gösterir. Pseudo Code (Sözde/Kaba Kod) • • Sözde programlar, doğrudan konuşma dilinde ve programlama mantığı altında, eğer, iken gibi koşul kelimeleri ve > = < gibi ifadeler ile beraber yazılır. İyi bir biçimde yazılmış, sözde koddan programlama diline kolaylıkla geçilebilir. • ÖRNEK Problem: Verilen bir sıcaklık derecesine göre suyun durumunu belirten bir sözde program (pseudo kod) yazınız. • • • • • • • • İstenilen programın Pseudo Kodu: 1. Program açıklama mesajı yaz. 2. Kullanıcın sıcaklığı girmesi için bir uyarı mesajı yaz. 3. Girilen Sıcaklığı Oku. 5. Eğer Sıcaklık < 0 ise Durum=“Buz” 6. Eğer Sıcaklık>= 100 ise Durum=“Buhar” 7. Değilse Durum =“Su” 8. Sonucu Yaz. Algoritma çalışmasında iki önemli görev vardır: 1. Belirli bir problemi çözmek için bir algoritma tasarlamak 2. Verilen bir algoritmayı analiz etmek – – Bu iki görev birbiriyle ilişkilidir. Algoritmanın analizi yeni algoritmaların tasarlanmasını sağlar. Program geliştirme yöntemi • Bilgisayar programcılarının program geliştirme yöntemi aşağıdaki adımlardan oluşur: 1. 2. 3. 4. 5. 6. Problem Analiz Tasarım Uygulama Sınama Bakım 1.Problem • Bu ilk adımda programcı, problemi anlamaya çalışır. • Problemin ne olduğunu, çözümde nelerin gerekli olduğunu, lazım olan ön bilgileri belirler. • Problemi anlamanın çözümün yarısı olduğu unutulmamalıdır! Problem çözme sırası (Problem Solving Cycle) 1. Problemi anlama (Understanding, Analyzing), 2. Bir çözüm yolu geliştirme 3. Algoritma ve program yazma 4. Tekrar tekrar test etme (Designing), (Writing), (Reviewing) Polya, George (1957) ‘How To Solve It’, Princeton University Press, 2nd Edition Problem Çözmenin Adımları (Steps in Solving a Problem) 1. İstenenler analizi (Requirements Analysis): Problemi bütün boyutları ile tanıma ve ne yapılması istendiğini net olarak anlama, problem çözülebilir mi? 2. Çözüm yolu bulma (Design): Bir çözüm yolu geliştirme ve algoritmasını yazma. 3. Uygulama (Implementation): Çözüm algoritmasını uygun bir program diline çevirme 4. Test etme, hatalardan ayıklama, kurma ve bakımını yapma (Testing, debugging, installing and maintenance) •Sonunda ne elde etmek istiyorsun (Çıktı-Output) •Elinde hangi ham veriler var (GirdiInput) •Girdileri istediğin Çıktıya dönüştürecek işlemi (process) belirle Örnek: 2 saatte 190 km yol alan arabanın ortalama hızı nedir? •Output: saatte ortalama hız •Input: gidilen mesafe ve süre •Process: orthız = mesafe/süre Problem çözme olgusunun grafiksel gösterimi Girdi İşlem Çıktı (Input) (Processing) (Output) Girdi-İşlem-Çıktı türüne en iyi örnekler yemek tarifleridir. Malzemeler ve miktarları, hazırlama pişirme ve sonuda istenen yemek! Monopoly oyununda zar attıkça sizi yönlendiren talimatlar (2 tur bekle, para öde, 5 geri, 3 ileri git vs birer algoritmadır. 2. Analiz • Bu adımda problemi çözüm için verilen değerler ile programın elde etmesi gereken değerlerin ne olduğu belirlenmelidir. • Girdiler ve çıktılar madde madde yazılır. • Bu girdi ve çıktı arasındaki ilişki belirlenir. • Belirlenen ilişki formüller ile açıklanabilir. • Problem adımı başarılı bir şekilde gerçekleşmeden analiz adımına geçilmemelidir. • Problem çözümünde ilk iki adım çok önemlidir. • Çözüm için bir fikir bulunamamışsa problem tekrar gözden geçirilmelidir. ÖRNEK: Taban ve yükseklik değerleri verilen üçgenin alanını hesaplayınız. PROBLEM: • Bu problemde üçgen alanını bulmak için gerekli olan formülün bulunması zorunludur. • Formül olduğunu düşünmek çözüm yöntemi hakkında bir fikir oluştuğu anlamına gelir. ÖRNEK: Taban ve yükseklik değerleri verilen üçgenin alanını hesaplayınız. ANALİZ – Girdiler: • Taban ve Yükseklik – Çıktılar: • Alan ÖRNEK: Taban ve yükseklik değerleri verilen üçgenin alanını hesaplayınız. • Verilen değerler ile çıktı arasındaki formüle edilmiş ilişkiyi belirlemek gerekir. • Gerekli olan girdileri ve birbirleri arasındaki ilişkileri belirleyerek bir problemi modelleme işlemine soyutlama (abstraction) adı verilir. Alan=(Taban X Yukseklik)/2 3. Tasarım • Problemin çözümü için gerekli olan çözüm aşamalarını mantıksal sıra içerisinde yazılması aşamasıdır. • Yapılan işleme algoritma adı verilir. • İyi bir algoritmanın iki şartı vardır. – Bütün adımlar mantıksal bir düzen ve sıra içerisinde verilmeli – Verilen adımların tamamı çalıştırılabilir olmalıdır. Tasarım • Algoritma tasarlanırken bütün problem parçaları aynı anda çözülmeye çalışılmaz. • Problem kendi içinde önemli parçalara ya da alt problemlere ayrılır ve sonra bu alt problemler çözülerek esas problemin çözümüne gidilir. • Bu yönteme yukarıdan aşağı tasarım (top-down design) veya böl ve yönet (divide&conquer) adı verilir. • Algoritma bütün tanımlamaları içerecek şekilde adım adım yazılır. • İlk adım "BAŞLA", son adımda her zaman "DUR" olur. Böl ve Yönet Metodu (Divide-and-conquer) • Çok büyük problemleri parçalara ayırarak daha kolay çözeriz. • Çözülecek kadar küçülttüğün parçaları mantıklı bir sıraya koy. • Her parçayı ayrı modüller olarak çöz ve birbirine bağla (entegre olsun) Tasarım • Algoritma tasarımının önemli bir parçası da algoritmanın doğru çalışıp çalışmadığının adım adım izlenerek kontrol edilmesidir. • Bu kontrol etme esnasında erkenden fark edilen hatalar programcıya hem zaman kazandıracak, hem de boş yere enerji harcamasına engel olacaktır. Aşağıda örnek bir algoritma çalışması verilmiştir. • Örnek: Problem “tahtaya adını yazma" işidir. • Algoritma aşağıdaki gibi yazılabilir. Tahtaya adını yazma 1. BAŞLA 2. Yerinden kalk 3. Yönün tahtaya doğru mu? Hayırsa Tahtaya Dön Evetse adım 4 e git 4. Tahtaya doğru yürü 5. Tahtaya geldin mi? Hayırsa adım 4‘e Evetse adım 6'ya git 6. Kalemi al 7. Adını yaz 8. DUR Tahtaya adını yazma • Burada emirler, belli sorgulamalar yapılarak ve mantıksal bir sıra içinde verilmiştir. • Yerinden kalk emri verilmeden ondan yürümesi istenemez. • Kalemi almadan adını yaz emrinin verilmesi doğru olmaz. • Sorgulamalarla da işlemi yapıp yapmadığı kontrol edilmiştir. Tahtaya adını yazma • Bu örnek, sadece adımların tutarlılığını ve mantıksal sırasını göstermek içindi. • Yoksa bilgisayar bu tür işleri yerine getiremez. • Esasında kullanıcılar bilgisayarlara belli girdiler verir. • Onlarda programcının verdiği adımlara göre bu girdiler üzerinde matematiksel ve mantıksal işlemler yaparak bir çıktı üretirler. Örnek: Üçgenin Alanı • Yukarıdaki verilen üçgen alanını hesaplama işlemi için gerekli olan algoritma, sözde kod (pseudocode) kullanarak aşağıdaki gibi oluşturulabilir. 1. 2. 3. 4. 5. 6. BAŞLA Taban değerini al Yükseklik değerini al Taban ile yüksekliği çarp sonucu ikiye böl Sonucu yaz DUR Üçgenin Alanı • Önceki algoritma kendi içerisinde tutarlı ve mantıksal sıra ile yazılmıştır. • Değerler verilmeden alan hesabı işlemini yaptırmak doğru olmazdı. • Fakat algoritmalarda daha öncede belirtildiği gibi kısa ve basit kelimelerle emirler verilecektir. • Böylece uygulama yapılacak program kodlarına adapte olmak kolaylaşacaktır. Üçgenin Alanı 1. 2. 3. 4. 5. 6. BAŞLA OKU taban OKU yükseklik alan= (Taban X Yükseklik)/2 YAZ alan DUR Üçgenin Alanı • Uzun cümleler yazmak yerine kısa basit kelimelerle ve formülize edilmiş işlemlerle çözüm sağlanmış oldu. • Her algoritma BAŞLA emri ile başlar ve DUR emriyle de biter. • Dışarıdan verilmesi gereken bilgiler için OKU, sonuçları göstermek içinde YAZ emri kullanılabilir. Örnek: İki sayıyı toplamak için gerekli programa ait algoritmanın oluşturulması. Algoritma: Başla Birinci sayıyı gir İkinci sayıyı gir İki sayının toplamını yap 5. Toplamın değerini yaz 6. Bitir 1. 2. 3. 4. 1. 2. 3. 4. 5. 6. Başla X değerini gir Y değerini gir toplam = X+Y toplam’ ı yaz Bitir Örnek : • Beş sayının toplamını ve ortalamasını veren programa ait algoritmanın oluşturulması • Toplam adı için Toplam • Ortalama adı için Ort • Girilen sayılar için X • Arttırma için Sayac kullanılırsa Algoritma: 1. 2. 3. 4. 5. 6. 7. 8. 9. Başla Toplam = 0, Sayac = 0 X’i gir Toplam= Toplam+X Sayac = Sayac +1 Eğer Sayac <5 ise 3’e git Ort= Toplam/5 Toplam ve Ort değerlerini yaz Bitir 4. Uygulama • Algoritması oluşturulan programın herhangi bir dilin (Basic, C, Fortran…) kurallarına uyarak ve komutlarını kullanarak yazılma aşamasıdır. • Sözde kod (Pseudocode), kullanılan programlama diline dönüştürülür. 5. Sınama • Program yazıldıktan sonra, uygun aşamalardan geçirilip, verilen girdilere göre uygun çıktıları üretip üretmediği kontrol edilir. • Bu aşamada program girdi olarak verilebilecek tüm değerlere göre; özellikle de uç değerlere göre sınanır. • Örneğin girdi olarak bir tamsayı girilmesi gereken programda, girilen sayının negatif olması halinde yapılacak işlemler tanımlanmamış olabilir. • Bu gibi durumlar bu aşamada gözden geçirilmelidir. 6. Bakım • Sınama aşamasından sonra ortaya çıkan aksaklıklar varsa bunlar giderilir. Akış Şemaları Akış Şemaları (Diyagramları) • Herhangi bir sorunun çözümü için izlenmesi gerekli olan aritmetik ve mantıksal adımların söz veya yazı ile anlatıldığı algoritmanın, görsel olarak simge ya da sembollerle ifade edilmiş şekline “akış şemaları” veya FLOWCHART adı verilir. Akış şemalarının algoritmadan farkı, adımların simgeler şeklinde kutular içine yazılmış olması ve adımlar arasındaki ilişkilerin ve yönünün oklar ile gösterilmesidir. • Programın saklanacak esas belgeleri olan akış şemalarının hazırlanmasına, sorun çözümlenmesi sürecinin daha kolay anlaşılır biçime getirilmesi, iş akışının kontrol edilmesi ve programın kodlanmasının kolaylaştırılması gibi nedenlerle başvurulur. Uygulamada çoğunlukla, yazılacak programlar için önce programın ana adımlarını (bölümlerini) gösteren genel bir bakış akış şeması hazırlanır. Daha sonra her adım için ayrıntılı akış şemalarının çizimi vardır • En basit şekliyle dikdörtgen kutulardan ve oklardan oluşur. Akış şeması sembolleri ANSI (American National Standards Institute) standardı olarak belirlenmiş ve tüm dünyada kullanılmaktadır. Akış Şemaları (Diyagramları) • Bir süreci belirleme veya bir projenin adımlarını planlama için görsel bir sunum oluşturur. • Proje ve süreç ile ilgili kişilere ortak bir dil veya bir referans noktası sağlar. • Algoritmadaki ifadeler şekillerin içerisine yazılır. • BAŞLA ve DUR şekilleri hariç her bir şeklin anlamı belli olduğundan içlerine tekrar anlamla aynı olacak kelime ve ifadeler yazılmaz. Akış Şeması Şekilleri Başlama ve bitiş işlemleri Atama ve hesaplama işlemleri giriş – okutma işlemleri Araç belirtemeden giriş ya da çıkış yapılacağını gösterir. görüntüleme – yazdırma işlemleri Akış Şeması Şekilleri Karar ve kontrol işlemleri {eğer (koşul bildirimi veya karar)} Bağlantı işlemleri Akış yönünü belirten işlemler Akış Şeması Şekilleri Örnek Ekrana "Merhaba" yazdıran program 1-Başla 2-Merhaba yaz 3-Dur BAŞLA Merhaba DUR Program-1 Uyarılar... • Akış şemalarında tek bir başlangıç simgesi olmalıdır • Bitiş simgesi birden çok olabilir. • Karar simgesinin haricindeki simgelere her zaman tek giriş ve tek çıkış yolu bulunur. • Bağlaç simgesi sayfanın dolmasından ötürü parçalanan akış şemasının öğelerini birleştirmede kullanılır. • Simgeler birbirleri ile tek yönlü okla bağlanırlar. • Okların yönü algoritmanın mantıksal işlem akışını tanımlar. Akış Diyagramları (Şemaları) Akış Diyagramları (Şemaları) Akış Diyagramları (Şemaları) Akış Diyagramları (Şemaları) Akış şemaları içerik ve biçimlerine göre genel olarak üç grupta sınıflandırılabilirler. > Doğrusal Akış Şemaları > Mantıksal Akış Şemaları > Döngüsel (iteratif, çevrimli, yineli) Akış Şemaları Doğrusal Akış Şemaları İş akışları giriş, hesaplama, çıkış biçiminde olan akış şemaları bu grup kapsamına girer. Örnek 1: İki sayının çarpımının bulunmasıyla ilgili algoritma aşağıdaki gibidir. Değişkenler: A: Birinci sayıyı B: İkinci sayıyı C: İki sayının çarpımını (A*B) göstersin Algoritma: Adım 1 – Başla Adım 2 – A’yı oku Adım 3 – B’yi oku Adım 4 – C=A*B’yi hesapla Adım 5 – C’yi yaz Adım 6 - Dur Doğrusal Akış Şemaları • Örnek 2: Klavyeden girilen İki sayının toplamını hesaplayıp yazan algoritma ve akış şemasını hazırlayınız. (X: Birinci sayı, Y: İkinci sayı, Z: toplam) A1 : Başla A2 : Klavyeden oku X A3 : Klavyeden oku Y A4 : Hesapla Z = X + Y A5 : Yaz Z A6 : Dur Örnek 2 – Akış Şeması BAŞLA OKU X OKU Y Z=X+Y YAZ Z DUR ÖRNEK: Taban ve yükseklik değerleri verilen üçgenin alanını hesaplayınız. ALGORİTMA 1. BAŞLA 2. OKU taban AKIŞ ŞEMASI BAŞLA Taban 3. OKU yukseklik 4. alan= (Taban X Yükseklik Yukseklik)/2 alan = (taban X yukseklik)/2 5. YAZ alan 6. DUR alan DUR Mantıksal Akış Şemaları • Geniş ölçüde mantıksal kararları içeren akış şemalarıdır. Hesap düzenleri genellikle basittir. Örnek 3: Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit olma durumunu hesaplayıp yazdıran algoritma ve akış şemasını hazırlayınız. (S : Sayı) A1 : Başla A2 : Oku S A3 : Eğer S > 0 ise “Pozitif” yaz, A4 : Eğer S < 0 ise “Negatif” yaz, A5 : Eğer S = 0 ise “Sıfıra eşit” yaz, A6 : Dur Örnek 3 – Mantıksal Akış Şemaları BAŞLA OKU S S<0 S>0 YAZ “Pozitif” YAZ “Negatif ” S:0 S=0 YAZ “Sıfıra eşit” DUR Döngüsel Akış Şemaları • Sorunun çözümü için, çözümde yer alan herhangi bir adım ya da aşamanın birden fazla kullanıldığı akış şemalarına denir. İş akışları genel olarak giriş ya da başlangıç değeri verme, hesaplama, kontrol biçiminde olmaktadır. Döngüsel Akış Şemaları • Örnek 4: Klavyeden girilen bir yazıyı 5 kez yazdıran algoritma ve akış şemasını oluşturunuz. ( Y : Yazı, S : Sayaç ) A1 : Başla A2 : Oku Y A3 : Yaz Y A4 : S = S + 1 A5 : Eğer S < 5 ise A3 e git A6 : Dur Örnek 4 – Döngüsel Akış Şemaları BAŞLA OKU Y S = 0 , 5, 1 Sayısı bilinen döngülerde; başlangıç değeri, son değer, artış sayısı YAZ Y S Döngünün çalıştığı bölüm DUR Algoritma ve Akış Şemaları ile ilgili Ek Bilgiler Algoritmalarda kullanılan Operatörler Algoritmalarda Matematiksel işlemler Algoritmalarda Matematiksel işlemler Algoritmalarda Matematiksel işlemler Algoritmalarda Matematiksel işlemler Algoritmalarda Kullanılan Terimler 1) Tanımlayıcı 2) Değişken 3) Sabit 4) Aktarma 5) Sayaç 6) Döngü 7) Ardışık Toplama 8) Ardışık Çarpma Algoritmalarda Kullanılan Terimler 1) Tanımlayıcı – Programcı tarafından oluşturulur. – Programdaki değişkenleri, sabitleri, kayıt alanlarını, özel bilgi tiplerini vb. adlandırmak için kullanılan kelimeler – Tanımlayıcılar, yerini tuttukları ifadelere çağrışım yapacak şekilde seçilmelidir. – İngiliz alfabesindeki A-Z veya a-z arası 26 harften – 0-9 arası rakamlar kullanılabilir – Sembollerden sadece alt çizgi (_) kullanılabilir. – Tanımlayıcı isimleri harfle veya alt çizgiyle başlayabilir. – Tanımlayıcı ismi, rakamla başlayamaz veya sadece rakamlardan oluşamaz. Algoritmalarda Kullanılan Terimler 2-)Değişken • Programın her çalıştırılmasında, farklı değerler alan bilgi/bellek alanlarıdır. • Değişken isimlendirilmeleri, yukarıda sayılan tanımlayıcı kurallarına uygun biçimde yapılmalıdır. Örneğin ; • Bir ismin aktarıldığı değişken ; ad • Bir isim ve soy ismin aktarıldığı değişken; adsoyad • Ev telefon no sunun aktarıldığı değişken; evtel • Ev adresinin aktarıldığı değişken; evadres • İş adresinin aktarıldığı değişken; isadres 3-) Sabit Programdaki değeri değişmeyen ifadelere “sabit” denir. “İsimlendirme kuralları”na uygun olarak oluşturulan sabitlere, sayısal veriler doğrudan; Algoritmalarda Kullanılan Terimler Algoritmalarda Kullanılan Terimler 4-) Aktarma Algoritmalarda Kullanılan Terimler 5-) Sayaç Algoritmalarda Kullanılan Terimler Algoritmalarda Kullanılan Terimler 6-) Döngü •Bir çok programda bazı işlemler, belirli ardışık değerlerle gerçekleştirilmekte veya belirli sayıda yaptırılmaktadır. Programlardaki belirli işlem bloklarını, verilen sayıda gerçekleştiren işlem akış çevrimlerine “döngü” denir. •Örneğin 1 ile 1000 arasındaki tek sayıların toplamını hesaplayan programda T=1+3+5 …. yerine 1 ile 1000 arasında ikişer artan bir döngü açılır ve döngü değişkeni ardışık toplanır. Algoritmalarda Kullanılan Terimler Algoritmalarda Kullanılan Terimler 7-) Ardışık Toplama Programlarda, aynı değerin üzerine yeni değerler eklemek için kullanılır. Toplam değişkeni=Toplam değişkeni + Sayı Örnek: Klavyeden girilen 5 sayısının ortalamasını bulan programın algoritması. 1. Başla 2. T=0 3. S=0 4. Eğer S>4 ise git 9 5. S=S+1 6. Sayıyı (A) gir 7. T=T+A 8. Git 4 9. Ortalama=T/5 10. Yaz Ortalama 11. Dur Algoritmalarda Kullanılan Terimler 8-) Ardışık Çarpma Ardışık veya ardışıl çarpma işleminde; aynı değer, yeni değerlerle çarpılarak eskisinin üzerine aktarılmaktadır. Çarpım değişkeni=Çarpım değişkeni * Sayı Örnek: Klavyeden girilen N sayısının faktöriyelini hesaplayan programın algoritmasını yazınız. 1. Başla 2. N sayısını gir 3. Fak=1 4. S=0 5. Eğer S>N-1 ise git 9 6. S=S+1 7. Fak=Fak*S 8. Git 5 9. Yaz Fak 10. Dur Akış Diyagramlarında Kullanılan Temel Şekiller Akış Diyagramlarında Kullanılan Temel Şekiller Akış Diyagramlarında Kullanılan Temel Şekiller ÖRNEK UYGULAMALAR ÖRNEK : • Çalıştığı gün sayısı ve yevmiyesi girilen işçinin maaşını hesaplayan algoritmayı ve akış diyagramını yapınız. PROBLEM • Bu program çalıştığı gün sayısı ve günlük yevmiyesi verilen işçinin maaşını bulacaktır. • Maaş hesaplanırken işçinin çalıştığı gün sayısı ile günlük yevmiyesi çarpılarak maaş hesaplanabilir. ANALİZ • Girdiler: – Gün – Yevmiye • Çıktılar: – Maaş • İlişki – Maas=Gun X Yevmiye TASARIM ALGORİTMA 1. 2. 3. 4. 5. BAŞLA OKU gun, yevmiye maas=gun x yevmiye YAZ maas DUR AKIŞ ŞEMASI BAŞLA Gun, yevmiye maas = gun X yevmiye maas DUR Örnek: Klavyeden girilen 3 sayının aritmetik ortalamasını bulan programın algoritma ve akış şemasını yazın. BAŞLA Algoritma; 1. Oku S1,S2 ve S3 2. Toplam=S1+S2+S3 3. Ort =Toplam/3 4. Yaz “Ortalama=”;Ort 5. Dur Yerine Ort = (S1+S2+S3)/3 yazılabilir. 10,15,8 değerleri için bellekteki durum ve ekran çıktısı: S1 S2 S3 Toplam Ort 10 15 8 33 11 S1,S2,S3 Toplam =S1+S2+S3 Ort = Toplam/3 Ort DUR Ekran Çıktısı Ortalama=11 Örnek:Ekrana 5 defa “Pamukkale” yazdıran programın algoritma ve akış şemasını yazın? BAŞLA Algoritma; 1. Basla 2. sayac=0 3. YAZ “Pamukkale”, sayac 4. sayac=sayac+1 5. Eğer sayac<5 GİT 3 6. DUR Sayac=0 Pamukkale sayac=sayac+1 sayac<5 mi? E H DUR Örnek: Klavyeden girilen 2 sayıyı karşılaştırıp sonucu ekrana yazdıran algoritma ve akış şemasını yazın? Algoritma; 1. BAŞLA 2. OKU sayi1,sayi2 3. EĞER sayi1>sayi2 İSE YAZ “Sayi1 sayi2’den büyüktür” 4. Değilse EĞER sayi2>sayi1 İSE YAZ “Sayi2 sayi1’den büyüktür” 5. DEĞİL İSE YAZ “Sayi1 sayi2’ye eşittir” 6. BİTİR Örnek: Klavyeden girilen 2 sayıyı karşılaştırıp sonucu ekrana yazdıran algoritma ve akış şemasını yazın? Başla Sayi1, Sayi2 Sayi1> Sayi2 E Sayi1> Sayi2 mi? H Sayi2> Sayi1 E Sayi2> Sayi1 mi? H Sayi2= Sayi1 Bitir Örnek: Bir öğrencinin numarası, adı ve soyadı, vize notu ve final notu girilmektedir. Verilere göre vize notunun %30'ü ile final notunun %70'i alınarak ortalaması hesaplanmak isteniyor. Algoritmayı maddeler halinde yazınız. Çözüm: Örnek: Klavyeden girilen herhangi bir N sayısının faktöriyelini bulan programın algoritmasını ve çalışmasını inceleyelim.. Çözüm: Ev Ödevi 1: Klavyeden girilen 1-1000 arasındaki asal sayıları ve kaç adet olduğunu bulup bunları ekrana yazdıran programın algoritmasını maddeler halinde yazınız. Klavyeden 3 kenarı da girilen bir üçgenin çeşidini (eşkenar, ikizkenar, çeşitkenar) bulan programın algoritmasını maddeler halinde yazınız. 1-100 arasındaki 1. 2. 3. i. ii. iii. Tüm sayıların toplamını Çift sayıların toplamını Tek sayıların toplamını bulan programın algoritmasını maddeler halinde yazınız. Ev Ödevi 1: (devam) Girilen sıcaklık değerine göre bir suyun katı, sıvı ve gaz olma durumunu gösteren algoritmanın akış şemasını çiziniz. 5. Bankaya aylık getirisi %8 ile 1000 TL yatırılmıştır. Buna göre; a) 10 ay sonrasında paranın ne kadar olacağını ve aynı zamanda her ay sonunda ne kadar olduğunu ekrana yazan algoritmanın akış şemasını çiziniz. b) Paranın kaç ay sonra 5000 TL olacağını hesaplayan algoritmanın akış şemasını çiziniz. 6. Dışarıdan girilen n adet sayının karesinin toplamını alan algoritmanın akış şemasını çiziniz. 7. Dışarıdan girilen 20 adet sayıdan çift olanları toplayan algoritmanın akış şemasını çiziniz. 4.
Benzer belgeler
algoritma ve akış şemaları
tüm değerlere göre; özellikle de uç değerlere
göre sınanır.
• Örneğin girdi olarak bir tamsayı girilmesi
gereken programda, girilen sayının negatif
olması
halinde
yapılacak
işlemler
tanımlanmamış o...