Dersin Amacı:

31
Bilgisayar Programlama Dersi Bilgisayar Programlama Dersi KTÜ Jeodezi ve Fotogrametri Müh. Böl. KTÜ Jeodezi ve Fotogrametri Müh. Böl. 2008/2009 Bahar Dönemi 2008/2009 Bahar Dönemi Doç. Dr. Temel BAYRAK, [email protected] Doç. Dr. Temel BAYRAK, [email protected] Yrd. Doç. Dr. Emine TANIR,[email protected] Yrd. Doç. Dr. Emine TANIR,[email protected] Yrd. Doç. Dr. Faruk YILDIRIM, [email protected] Yrd. Doç. Dr. Faruk YILDIRIM, [email protected]

description

Bilgisayar Programlama Dersi KTÜ Jeodezi ve Fotogrametri Müh. Böl. 2008/2009 Bahar Dönemi Doç. Dr. Temel BAYRAK, [email protected] Yrd. Doç. Dr. Emine TANIR,[email protected] Yrd. Doç. Dr. Faruk YILDIRIM, [email protected]. Dersin Amacı:. - PowerPoint PPT Presentation

Transcript of Dersin Amacı:

Page 1: Dersin Amacı:

Bilgisayar Programlama DersiBilgisayar Programlama DersiKTÜ Jeodezi ve Fotogrametri Müh. Böl. KTÜ Jeodezi ve Fotogrametri Müh. Böl.

2008/2009 Bahar Dönemi2008/2009 Bahar Dönemi

Doç. Dr. Temel BAYRAK, [email protected]ç. Dr. Temel BAYRAK, [email protected]. Doç. Dr. Emine TANIR,[email protected]. Doç. Dr. Emine TANIR,[email protected]

Yrd. Doç. Dr. Faruk YILDIRIM, [email protected]. Doç. Dr. Faruk YILDIRIM, [email protected]

Page 2: Dersin Amacı:

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

Page 3: Dersin Amacı:

DERS KAYNAKLARIDERS 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

Page 4: Dersin Amacı:

Programlama becerisi ne demektir?Programlama becerisi ne demektir?

Bilgisayara belirli bir işlemi yaptırabilmektir.Bilgisayara belirli bir işlemi yaptırabilmektir. Programlama bir tekniktir.Programlama bir tekniktir. Programcı belli temel bilgilere ve özelliklere Programcı belli temel bilgilere ve özelliklere

sahip olmalıdır.sahip olmalıdır. Programlama herkes tarafından öğrenilebilecek Programlama herkes tarafından öğrenilebilecek

bir bilgidir.bir bilgidir.

Page 5: Dersin Amacı:

Programlamaya neden gerek duyulur?Programlamaya neden gerek duyulur?

Problemin elle çözülmesi çok uzun süre olması.Problemin elle çözülmesi çok uzun süre olması. Problemin çözümünün çok kere tekrarlanıyor Problemin çözümünün çok kere tekrarlanıyor

olması.olması. Problemin bilgisayar aracılığı ile çözüme uygun Problemin bilgisayar aracılığı ile çözüme uygun

olması.olması.Örnek: parsel alan hesabı Örnek: parsel alan hesabı Örnek: adres takibi, kargo şirketleriÖrnek: adres takibi, kargo şirketleri Programlamaya sonuç olarak; verinin Programlamaya sonuç olarak; verinin

büyüklüğüne, amaçlanan işlem hızına ve işlem büyüklüğüne, amaçlanan işlem hızına ve işlem sayısına bakılarak karar verilmelidir.sayısına bakılarak karar verilmelidir.

Page 6: Dersin Amacı:

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

Page 7: Dersin Amacı:

1. Hafta, 23-27 Şubat 2009

Page 8: Dersin Amacı:

1. Hafta, 23-27 Şubat 2009

Algoritma KurmaAlgoritma, verilen herhangi bir sorunun çözümüne ulaşmak için Algoritma, verilen herhangi bir sorunun çözümüne ulaşmak için uygulanması gerekli adımların hiç bir yoruma yer vermeksizin 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. 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 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 sıralandırılmalıdır. Algoritmik çözüm yöntemlerine ilk örneği günlük yaşantımızdangünlük yaşantımızdanverelim.verelim.

Page 9: Dersin Amacı:

1. Hafta, 23-27 Şubat 2009

ya kişi otobüsü kaçırmışsa!ya kişi otobüsü kaçırmışsa!

bir sorunun çözümü için birbirinden farklı birden fazla sayıda algoritma bir sorunun çözümü için birbirinden farklı birden fazla sayıda algoritma hazırlanabilir,hazırlanabilir,ve birbirinden farklı yüzlerce program yazılabilir!!!ve birbirinden farklı yüzlerce program yazılabilir!!!

Page 10: Dersin Amacı:

Adımlar sıralı ve açık bir biçimdeAdımlar sıralı ve açık bir biçimde Bittikten sonra dikkatlice incelenmeli ve yanlışlar Bittikten sonra dikkatlice incelenmeli ve yanlışlar

düzeltilmelidüzeltilmeli Sonuca ulaşacak birden çok algoritma sayısı olabilirSonuca ulaşacak birden çok algoritma sayısı olabilir Birbirinden farklı yüzlerce algoritma yazılabilirBirbirinden farklı yüzlerce algoritma yazılabilir Eksik bir nokta bırakmaksızın gerekli tüm adımlar Eksik bir nokta bırakmaksızın gerekli tüm adımlar

açık ve düzenli olarak belirtilmelidiraçık ve düzenli olarak belirtilmelidir Bilgilerin nereden alınacağı, nerede saklanacağı ve Bilgilerin nereden alınacağı, nerede saklanacağı ve

çözümün kullanıcıya nasıl ulaşacağı belirtilmelidir.çözümün kullanıcıya nasıl ulaşacağı belirtilmelidir.

1. Hafta, 23-27 Şubat 2009

Algoritma Kurmada dikkat edilecek hususlar

Page 11: Dersin Amacı:

1. Hafta, 23-27 Şubat 2009

Algoritma örnekleri

Sözcüklerin ortaya çıkaracağı yanlış anlamaların ortadan kaldırmak amacıyla Sözcüklerin ortaya çıkaracağı yanlış anlamaların ortadan kaldırmak amacıyla semboller ve matematik dilini gerektiren bazı kısaltmalar kullanmak daha uygun semboller ve matematik dilini gerektiren bazı kısaltmalar kullanmak daha uygun olacaktır. Bir algoritma yazılırken şu metot izlenmelidir:olacaktır. Bir algoritma yazılırken şu metot izlenmelidir:

Page 12: Dersin Amacı:

1. Hafta, 23-27 Şubat 2009

Page 13: Dersin Amacı:

1. Hafta, 23-27 Şubat 2009

Page 14: Dersin Amacı:

1. Hafta, 23-27 Şubat 2009

Page 15: Dersin Amacı:

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 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, 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 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 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 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 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.yazdırılması işleminden sonra programın çalışması sona ermektedir.

Page 16: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Akış DiyagramlarıGeliştirilecek olan yazılımın genel yapısının şematik gösterimine akış Geliştirilecek olan yazılımın genel yapısının şematik gösterimine akış diyagramı adı verilir. diyagramı adı verilir.

Akış diyagramları, yazılım oluşturacak program parçalarını ve bu Akış diyagramları, yazılım oluşturacak program parçalarını ve bu parçaların birbirleri ile olan ilişkilerini belirler. parçaların birbirleri ile olan ilişkilerini belirler.

Bir bilgisayar programının oluşturulmasında akış diyagramlarının Bir bilgisayar programının oluşturulmasında akış diyagramlarının hazırlanması, algoritma oluşturma aşamasından sonra gelmektedir. hazırlanması, algoritma oluşturma aşamasından sonra gelmektedir.

Bilgisayar programının oluşturulması sırasında algoritma aşaması Bilgisayar programının oluşturulması sırasında algoritma aşaması atlanarak, doğrudan akış diyagramlarının hazırlanmasına başlanabilir. 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 Programlama tekniğinde önemli ölçüde yol almış kişiler bu aşamayı da atlayarak direkt olarak programın yazımına geçebilirler.atlayarak direkt olarak programın yazımına geçebilirler.

Akis diyagramlarının algoritmadan farkı, adımların simgeler seklinde 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 kutular içinde yazılmış olması ve adımlar arasındaki ilişkilerin (iş akışı) oklar ile gösterilmesidir.ile gösterilmesidir.

Akış diyagramlarında kullanılan semboller, anlamları ve kullanış amaçları Akış diyagramlarında kullanılan semboller, anlamları ve kullanış amaçları aşağıdaki tabloda verilmiştir.aşağıdaki tabloda verilmiştir.

Page 17: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

İş akış diyagramlarında kullanılan temel semboller ve anlamlarıİş akış diyagramlarında kullanılan temel semboller ve anlamları

Page 18: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Bir bilgisayar programının geliştirilmesinde kullanılan Bir bilgisayar programının geliştirilmesinde kullanılan programlama dili ne olursa olsun bu programların akış programlama dili ne olursa olsun bu programların akış diyagramlarında genel olarak yalnız üç basit mantıksal yapı diyagramlarında genel olarak yalnız üç basit mantıksal yapı kullanılır. kullanılır.

Bu mantıksal yapılardan en basiti sıralı yapıdır. Sıralı yapı, 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 hazırlanacak programdaki her işlemin mantık sırasına göre nerede yer alması gerektiğini vurgular. Bu yapı sona erinceye nerede yer alması gerektiğini vurgular. Bu yapı sona erinceye kadar ikinci bir işlem başlayamaz.kadar ikinci bir işlem başlayamaz.

Page 19: Dersin Amacı:

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 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 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 modüllerde, hangi şartlarda hangi sıralı yapının seçileceğini belirler.belirler.

Page 20: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Üçüncü mantıksal yapı çeşidini tekrarlı yapılar oluşturmaktadır. Bu yapılara Üçü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. 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 Ş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ü 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 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 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ı yapı ile sınırlandırılması program modüllerinin daha kolay tasarlanmasını sağlar.sağlar.

Page 21: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Akış Diyagramı Örnekleri

Page 22: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Page 23: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Page 24: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Page 25: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Page 26: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Page 27: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Page 28: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Page 29: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Page 30: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Page 31: Dersin Amacı:

2. Hafta, 02-07 Mart 2009

Ödevler (Akış Diyagramları)Ödevler (Akış Diyagramları)

1- Verilen bir sayının tek veya çift olduğunu bulunuz.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 3- Uç noktalarının koordinatları ile iki doğrunun kesim noktasının koordinatlarını hesaplayınız.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 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 notu (NOT) girilecektir. Sınavdan 70 ve üzeri not alanların sayısını hesaplayınız.sayısını hesaplayınız.