Bilgisayar Programlama Dersi KTÜ Jeodezi ve Fotogrametri Müh. Böl Bilgisayar Programlama Dersi KTÜ Jeodezi ve Fotogrametri Müh. Böl. 2008/2009 Bahar Dönemi Doç. Dr. Temel BAYRAK, tbayrak@ktu.edu.tr Yrd. Doç. Dr. Emine TANIR,etanir@ktu.edu.tr Yrd. Doç. Dr. Faruk YILDIRIM, yfaruk@ktu.edu.tr
Dersin Amacı: *Programlama becerisini geliştirmek, *Algoritmik düşünme yeteneği kazandırmak, *Jeodezik problemleri çözmeye yönelik olarak MATLAB yazılımını öğretmek
DERS KAYNAKLARI Gürol Banger, Bilgisayar Programlamanın Temel Bilgileri; KTÜ Mühendislik Mimarlık Fakültesi Yayınları; Cilt 1 ve Cilt 2. Mehmet Uzunoğlu, Ali Kızıl, Ömer Çağlar Onar, Her Yönü ile MATLAB, Genişletilmiş 2. Baskı, Türkmen Kıtabevi,ISBN 975-6392-07-X, İstanbul 2003. İbrahim Yüksel, MATLAB ile Mühendislik Sistemlerinin Analizi ve Çözümü, Genişletilmiş 3. Baskı, Paradigma Kitabevi, Nobel Yayın Dağıtım, ISBN 975-591-656-3. Bilgisayar Programlamaya Giriş Ders Notları, A. Oral, www.mfyz.com/dosyalar/Pascal_Dersleri_PDF/bolum01.pdf
Programlama becerisi ne demektir? Bilgisayara belirli bir işlemi yaptırabilmektir. Programlama bir tekniktir. Programcı belli temel bilgilere ve özelliklere sahip olmalıdır. Programlama herkes tarafından öğrenilebilecek bir bilgidir.
Programlamaya neden gerek duyulur? Problemin elle çözülmesi çok uzun süre olması. Problemin çözümünün çok kere tekrarlanıyor olması. Problemin bilgisayar aracılığı ile çözüme uygun olması. Örnek: parsel alan hesabı Örnek: adres takibi, kargo şirketleri Programlamaya sonuç olarak; verinin büyüklüğüne, amaçlanan işlem hızına ve işlem sayısına bakılarak karar verilmelidir.
Bilgisayar yazılımının oluşturulması adımları Problemin tanımı Çözüm yönteminin belirlenmesi Programın kodlanması Programın çalışır duruma getirilmesi Belgeleme ve güncelleştirme Bilgisayar programlaması sırasında izlenebilecek bir çok yol ve yöntem vardır. Bilgisayar programcısının probleme ilişkin çözümü ortaya çıkarabilmesi için problem çözümü ile ilgili bilgileri bilmesi gerekir. Bilgisayar programlamasında genel olarak belirli kalıp ve kurallara uyulur. 1. Hafta, 23-27 Şubat 2009
1. Hafta, 23-27 Şubat 2009
Algoritma Kurma Algoritma, verilen herhangi bir sorunun çözümüne ulaşmak için uygulanması gerekli adımların hiç bir yoruma yer vermeksizin açık, düzenli ve sıralı bir şekilde söz ve yazı ile ifadesidir. Algoritmayı oluşturan adımlar özellikle basit ve açık olarak sıralandırılmalıdır. Algoritmik çözüm yöntemlerine ilk örneği günlük yaşantımızdan verelim. 1. Hafta, 23-27 Şubat 2009
ya kişi otobüsü kaçırmışsa! bir sorunun çözümü için birbirinden farklı birden fazla sayıda algoritma hazırlanabilir, ve birbirinden farklı yüzlerce program yazılabilir!!! 1. Hafta, 23-27 Şubat 2009
Algoritma Kurmada dikkat edilecek hususlar Adımlar sıralı ve açık bir biçimde Bittikten sonra dikkatlice incelenmeli ve yanlışlar düzeltilmeli Sonuca ulaşacak birden çok algoritma sayısı olabilir Birbirinden farklı yüzlerce algoritma yazılabilir Eksik bir nokta bırakmaksızın gerekli tüm adımlar açık ve düzenli olarak belirtilmelidir Bilgilerin nereden alınacağı, nerede saklanacağı ve çözümün kullanıcıya nasıl ulaşacağı belirtilmelidir. 1. Hafta, 23-27 Şubat 2009
Algoritma örnekleri Sözcüklerin ortaya çıkaracağı yanlış anlamaların ortadan kaldırmak amacıyla semboller ve matematik dilini gerektiren bazı kısaltmalar kullanmak daha uygun olacaktır. Bir algoritma yazılırken şu metot izlenmelidir: 1. Hafta, 23-27 Şubat 2009
1. Hafta, 23-27 Şubat 2009
1. Hafta, 23-27 Şubat 2009
1. Hafta, 23-27 Şubat 2009
Bu algoritmada 1. adımda X 'e 0 ve Fak değişkenine 1 değeri atanıyor. 2. adımda Y değeri giriliyor ve 3. adımda Y değerinin 0 dan küçük bir değer olup olmadığı denetlenerek, sonuca göre gerekli komut veriliyor. 4. adımda X'in değeri 1 arttırılıyor ve 5. adımda X için Fak değeri hesaplanıyor. 6. adımda X in değerinin faktöriyeli hesaplanacak sayıdan küçük olması durumunda 4. adımdan itibaren işlemlerin tekrarlanması komutu veriliyor, X' in değerinin Y'ye eşit olması durumunda işlemler tamamlanarak hesaplanan değerin yazdırılması işleminden sonra programın çalışması sona ermektedir. 1. Hafta, 23-27 Şubat 2009
Akış Diyagramları Geliştirilecek olan yazılımın genel yapısının şematik gösterimine akış diyagramı adı verilir. Akış diyagramları, yazılım oluşturacak program parçalarını ve bu parçaların birbirleri ile olan ilişkilerini belirler. Bir bilgisayar programının oluşturulmasında akış diyagramlarının hazırlanması, algoritma oluşturma aşamasından sonra gelmektedir. Bilgisayar programının oluşturulması sırasında algoritma aşaması atlanarak, doğrudan akış diyagramlarının hazırlanmasına başlanabilir. Programlama tekniğinde önemli ölçüde yol almış kişiler bu aşamayı da atlayarak direkt olarak programın yazımına geçebilirler. Akis diyagramlarının algoritmadan farkı, adımların simgeler seklinde kutular içinde yazılmış olması ve adımlar arasındaki ilişkilerin (iş akışı) oklar ile gösterilmesidir. Akış diyagramlarında kullanılan semboller, anlamları ve kullanış amaçları aşağıdaki tabloda verilmiştir. 2. Hafta, 02-07 Mart 2009
İş akış diyagramlarında kullanılan temel semboller ve anlamları 2. Hafta, 02-07 Mart 2009
Bir bilgisayar programının geliştirilmesinde kullanılan programlama dili ne olursa olsun bu programların akış diyagramlarında genel olarak yalnız üç basit mantıksal yapı kullanılır. Bu mantıksal yapılardan en basiti sıralı yapıdır. Sıralı yapı, hazırlanacak programdaki her işlemin mantık sırasına göre nerede yer alması gerektiğini vurgular. Bu yapı sona erinceye kadar ikinci bir işlem başlayamaz. 2. Hafta, 02-07 Mart 2009
Mantıksal yapılardan ikincisi Karar Verme yapısıdır Mantıksal yapılardan ikincisi Karar Verme yapısıdır. Programlama sırasında If...Then... Else yapısı ile tanıyacağımız bu mantıksal yapılar, birden fazla sıralı yapı seçeneğini kapsayan modüllerde, hangi şartlarda hangi sıralı yapının seçileceğini belirler. 2. Hafta, 02-07 Mart 2009
Üçüncü mantıksal yapı çeşidini tekrarlı yapılar oluşturmaktadır Üçüncü mantıksal yapı çeşidini tekrarlı yapılar oluşturmaktadır. Bu yapılara For , While ve Repeat..Until, yapısı adı da verilir. Şartlara göre değişik işlem gruplarının yapılmasını sağlar. Bu yapı yukarıda sözü edilen iki yapının çeşitli kombinezonların tekrarlanmasından oluşmuştur. Söz konusu üç değişik yapı, değişik kombinezonlarda kullanılarak istenilen işlevleri yerine getirecek programlar hazırlanabilir. Programların bu üç basit yapı ile sınırlandırılması program modüllerinin daha kolay tasarlanmasını sağlar. 2. Hafta, 02-07 Mart 2009
Akış Diyagramı Örnekleri 2. Hafta, 02-07 Mart 2009
2. Hafta, 02-07 Mart 2009
2. Hafta, 02-07 Mart 2009
2. Hafta, 02-07 Mart 2009
2. Hafta, 02-07 Mart 2009
2. Hafta, 02-07 Mart 2009
2. Hafta, 02-07 Mart 2009
2. Hafta, 02-07 Mart 2009
2. Hafta, 02-07 Mart 2009
2. Hafta, 02-07 Mart 2009
Ödevler (Akış Diyagramları) 1- Verilen bir sayının tek veya çift olduğunu bulunuz. 2- 1 ile 25 arasındaki tamsayılardan 2 ve 3 ile bölünebilenleri bulunuz. 3- Uç noktalarının koordinatları ile iki doğrunun kesim noktasının koordinatlarını hesaplayınız. 4- A ve B tamsayıları (A<B) klavyeden girilmek üzere; A sayısı ile B sayısı arasında (A ve B dahil) olan tamsayıların ortalamasını hesaplayınız. 5- 30 kişilik bir sınıfın , öğrenci numarası(NUM) ve sınav notu (NOT) girilecektir. Sınavdan 70 ve üzeri not alanların sayısını hesaplayınız. 2. Hafta, 02-07 Mart 2009