BM103 Programlamaya Giri Gz 2016 1 Sunu Yrd
BM-103 Programlamaya Giriş Güz 2016 (1. Sunu) (Yrd. Doç. Dr. Deniz Dal)
BİLGİSAYARLA PROBLEM ÇÖZÜMÜNÜN AŞAMALARI
BİLGİSAYARLA PROBLEM ÇÖZÜMÜNÜN AŞAMALARI (devam) ANALİZ: Çözülmesi istenen problemin tamamen anlaşılmasını sağlayacak ön çalışmalardır. ALGORİTMA GELİŞTİRME: Problemi çözecek adımların sıralı olarak ifade edilmesidir. AKIŞ ŞEMASI ÇİZİMİ: Geliştirilen algoritmanın şekillerle ifade edilmesidir. PROGRAMLAMA DİLİ SEÇİMİ: Geliştirilen algoritmayı kolay bir şekilde bilgisayar ortamına aktaracak bir bilgisayar programlama dilinin seçilmesidir.
BİLGİSAYARLA PROBLEM ÇÖZÜMÜNÜN AŞAMALARI (devam) PROGRAMIN YAZILMASI: Seçilen programlama dilinin kuralları kullanılarak programın yazılması aşamasıdır. DERLEME: Programlama dili komutlarına dönüşmüş çözümün yazım hatalarının olup olmadığının kontrol edilmesi ve programın makina dili komutlarına çevrilmesidir. ÇALIŞTIRMA: Derlenmiş programın işletim sistemi tarafından hard diskten alınarak belleğe taşındığı ve programın ilk komutunun adresinin Merkezi İşlem Birimine bildirildiği aşamadır. TEST: Programın mantıksal olarak test edildiği ve muhtemel her giriş için doğru sonuçlar üretip üretmediğinin kontrol edildiği aşamadır.
PROGRAM (BİLGİSAYAR PROGRAMI) NEDİR? Problem çözümü kısmında anlatılan adımlar uygulandıktan sonra ortaya çıkan ve sorunumuzu bilgisayar ortamında çözen ürüne program denir. PROGRAMLAMA (BİLGİSAYAR PROGRAMLAMA) NEDİR? Problem çözümünde anlatılan adımların tümüne birden programlama denir.
PROGRAMLAMA DİLİ NEDİR? Bir problemin algoritmik çözümünün bilgisayarda yazılmasını sağlayan kurallar dizisidir. BAZI PROGRAMLAMA DİLLERİ • MATLAB, Delphi, Pascal, Fortran, Lisp • C, C++, C#, Visual Basic, Java
ALGORİTMA l Belirli bir problemi çözmek için işletilmesi gereken adımları ve bu adımların hangi sıra ile uygulanacağını belirleyen prosedüre algoritma denir. l “İşine gitmek üzere uyanan birinin yapması gereken işler” algoritması: 1. Yataktan kalk 2. Pijamalarını çıkar 3. Duş al 4. Elbiselerini giy 5. Kahvaltını yap 6. Arabana bin ve işe git l Sıra önemli. 3 ve 4 nolu adımlar yer değiştirirse mesela? (Kim ıslanmak ister? )
Pasta tarifi bir algoritma mıdır?
ALGORİTMA GELİŞTİRMEDE VE BİLGİSAYAR PROGRAMLAMADA KULLANILAN BAZI TEMEL KAVRAMLAR 1–Değişken 2–Atama 3–Fonksiyon 4–Sayaç 5–Döngü
DEĞİŞKEN Değişken denince aklınıza saklama kapları gelmelidir. Bir program içerisinde bilgileri geçici olarak saklamak ve ihtiyaç duyduğumuzda bu bilgiler üzerinde işlem yapmak için değişkenlerden yararlanırız.
ATAMA Herhangi bir değişkenin içine bir değeri veya ifadenin/işlemin sonucunu aktarma işlemine atama denir.
ATAMA (devam) değişken = ifade satırında ‘değişken’ yazan kısım, herhangi bir değişkenin adıdır. ‘ifade’ yazan kısımda ise matematiksel, mantıksal veya alfa-nümerik bir ifade olabilir. Aradaki ‘=’ sembolü, ‘atama operatörü’ olarak adlandırılır ve sağdaki ifadenin/işlemin sonucunu soldaki değişkene aktarır. Bu durumda değişkenin (eğer varsa) bir önceki değeri (eski değeri) silinir. Y=9 X=26 X=3 Y=X+5 işleminin sonucunda Y’nin bir önceki değeri silinerek yerine 8 değeri atanır.
FONKSİYON Bir giriş parametresini(lerini) (argümanlarını) belirli bir işlemden geçirdikten sonra geriye bir çıkış parametresi(leri) döndüren programlara fonksiyon denir. Kıyma makinesi parça eti kıymaya dönüştüren bir fonksiyona sahiptir.
SAYAÇ Programlarımızda bazı işlemlerin belirli sayıda yaptırılması veya işlenen/üretilen değerlerin sayılması gerekebilir. Sayma amacıyla kullanılan bu tür değişkenlere sayaç denir. Örneğin klavyeden girilen bir cümlede kaç sesli harf olduğunu bulan programda, cümlenin her harfi sırayla çağrılır ve sesli harfler kümesine ait olup olmadığı araştırılır. Eğer çağrılan harf bu kümeye ait ise bunları sayacak olan değişkenin değeri bir artırılır.
sayac = sayac + 1 bilgisayar deyimi ile sayac adlı değişkenin eski (önceki) değerine ‘ 1’ eklenmekte; bulunan sonuç yine kendisine, yeni değer olarak aktarılmaktadır. Bu tür değişkenlere, algoritmada “sayaç” veya “sayıcı” (counter) adı verilir. Yani “sayaç” işlem akışı kendisine her geldiğinde, belirtilen adım değeri kadar artan/azalan değişkendir.
‘Sayaç’ kullanımına örnek: sayac=sayac+3 Üçer üçer artan bir sayıcıdır sayac=sayac-5 Beşer beşer azalan bir sayıcıdır
Örnek: Aşağıdaki algoritmada 1 -5 arası sayılar (1 dahil, 5 hariç), sayaç kullanılarak ekrana yazdırılmaktadır. Burada, sayac sayaç değişkenidir. A 1: Başla A 2: sayac=1 A 3: Eğer sayac 5’e eşit ise adım 7 ye git A 4: sayac ı ekrana yaz A 5: sayac=sayac+1 A 6: 3. adım’ a git A 7: Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?
DÖNGÜ Birçok programda bazı işlemler belirli ardışık değerlerle gerçekleştirilmekte veya belirli sayıda yapılmaktadır. Programlardaki belirli işlem bloklarını, belirli sayıda tekrarlayan işlem akış çevrimlerine döngü denir.
Döngü Oluşturma Kuralları: 1 - Döngü değişkeninin başlangıç değeri belirlenir. 2 - Döngü değişkeninin bitiş değeri belirlenir. 3 - Döngü değişkeninin bitiş değerine ulaşıp ulaşmadığı test edilir. 4 - İstenen işlem gerçekleştirilir. 5 - Döngü değişkeni, döngü içinde adım miktarı kadar artırılır ya da azaltılır.
Örnek: Aşağıdaki algoritmada 1 -10 arası tek sayıların toplamı hesaplanmaktadır. (Aşağıdaki algoritmayı çift sayıların toplamına hangi değişikliği yaparak dönüştürebilirsiniz? ) A 1: Başla A 2: toplam=0 A 3: sayac=1 A 4: Eğer sayac>10 ise adım 8 e git A 5: toplam=toplam+sayac Döngü A 6: sayac=sayac+2 A 7: Adım 4 e git A 8: toplam ı ekrana yaz A 9: Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?
Örnek : Dışarıdan girilen iki sayının toplamını bulan programın algoritması aşağıdaki gibidir. A 1 : Başla A 2 : sayi 1 değerini gir A 3 : sayi 2 değerini gir A 4 : toplam= sayi 1+sayi 2 A 5 : toplam ı ekrana yaz A 6 : Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?
Örnek : Dışarıdan girilen 3 sayıdan en büyüğünü bulan algoritmayı geliştiriniz. A 1 : Başla A 2 : sayi 1, sayi 2 ve sayi 3 sayılarını dışarıdan gir A 3 : en. Buyuk=sayi 1 A 4 : Eğer sayi 2>en. Buyuk ise en. Buyuk=sayi 2 yap A 5 : Eğer sayi 3>en. Buyuk ise en. Buyuk=sayi 3 yap A 6 : en. Buyuk değerini ekrana yaz A 7 : Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?
Örnek: 0’dan 100’e kadar olan sayma sayılarının kümülatif toplamını ekrana yazdıran algoritmayı geliştiriniz. A 1 : Başla A 2 : toplam=0; sayac=1 başlangıç değerlerini ata A 3 : Eğer sayac 100’e eşit ise 6. adıma git A 4 : toplam=toplam+sayac A 5 : sayac=sayac+1 yap ve 3. adıma geri dön A 6 : toplam ı ekrana yaz A 4 ile A 5 adımları yer A 7 : Bitir değiştirirse sonuç ne olur? Hangi amaçlarla kaç değişkene ihtiyaç var?
Örnek: Verilen bir sayının faktöriyelini hesaplayan programın algoritmasını yazınız. (Faktöriyeli hesaplanacak sayı negatif girilmişse yeniden giriş istenmelidir. ) Değişkenler: Sayının Faktöriyeli : faktor , Faktöriyel Değişkeni : sayac Faktöriyeli Hesaplanacak Sayı : Y Algoritma: A 1: Başla A 2: faktor =1; sayac =1 A 3: Y’yi gir A 4: Eğer Y<0 ise 3. adima git Anlamlı Değişken İsimleri Seçmek Çok Önemli !!!!!! A 5: Eğer sayac>Y ise adim 8 e git A 6: faktor=faktor*sayac A 7: sayac =sayac+1 yap ve adım 5 e git A 8: faktor degerini ekrana yaz A 9: Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?
Akış Diyagramları (Flow Charts): Akış diyagramları, algoritmaların sembolik olarak gerçekleştirilecek her tür aksiyon ayrı bir sembolle gösterilir. gösterimidir. Bilgisayarda
Örnek: Verilen iki sayının ortalamasını hesaplayan programın algoritmasını geliştiriniz ve akış diyagramını çiziniz. Başla Akış diyagramı: Algoritma: sayi 1=? A 1 : Başla sayi 2=? A 2 : sayi 1 değerini gir A 3 : sayi 2 değerini gir ortalama=(sayi 1+sayi)/2 A 4 : ortalama = (sayi 1+sayi 2)/2 ortalama A 5 : ortalama degerini ekrana yaz A 6 : Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?
Örnek: AX+B=0 şeklinde verilen 1. derece denklemin çözümünü bulan programın algoritmasını geliştiriniz ve akış diyagramını çiziniz. (A=0 girilmiş ise veri girişi yenilenecektir. ) A 1: Başla A 2: A değerini giriniz A 3: Eğer A 0’a eşit ise Adım 2’ye git A=0 Evet Hayır A 4: B değerini giriniz A 5: X=-B/A A 6: Yaz X A 7: Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?
Örnek: 1’den 100’e kadar olan sayıların (100 dahil) toplamını ve ortalamasını bulan algoritmayı geliştiriniz. Algoritma: A 1: Başla A 2: sayac=0 A 3: toplam=0 A 4: sayac=sayac+1 A 5: toplam=toplam+sayac A 6: Eğer sayac 100’e eşit değilse Adım 4’e git A 7: ortalama=toplam/sayac A 8: Yaz toplam, ortalama A 9: Bitir Döngü koşulunun döngü başında veya sonunda olması neyi değiştirir? Hangi amaçlarla kaç değişkene ihtiyaç var?
Uygulama: Daha önce algoritması geliştirilen ve dışarıdan girilen 3 sayıdan en büyüğünü bulan programın akış diyagramını çiziniz. Uygulama: Daha önce algoritması geliştirilen ve dışarıdan girilen bir sayının faktöriyelini hesaplayan programın akış diyagramını çiziniz.
Örnek: f(X) fonksiyonunun degeri X'in aldığı değerlere göre asağıda verilmiştir. X'in değeri 0 -20 arasında 0. 5 aralıklarla arttığına göre her bir X degeri için f(X) fonksiyonunu hesaplayan programın akış diyagramını çiziniz. 0<= X <= 2 f(X)=X 2< X <= 3 f(X)=X-X 3 -22 3< X <=4 f(X)=X 2 -2 X+13 4< X f(X)=X 4 -3 X 2 -43 Algoritma: ? ? ?
Örnek : Ax²+Bx+C=0 şeklinde verilen 2. derece denklemin köklerini bulan programın akış diyagramını çiziniz. (İkinci derece denklem olmadığı uyarısını nasıl verirsiniz? )
Örnek: 10 tane N sayısının faktöriyelini hesaplayan programın akış diyagramını çiziniz. (Yandaki diyagramdaki sorunları bulunuz. )
Örnek : Kenar uzunlukları dışarıdan girilen bir ABC üçgenini kenar uzunluklarına göre inceleyen programın algoritmasını kurunuz. A 1: Başla A 2: A, B, C değerlerini gir A 3: A=B ise A 4’e git değilse A 5’e git A 4: B=C ise A 6’ya git değilse A 8’e git A 5: A=C ise A 8’e git değilse A 7’e git A 6: ‘Üçgen Eşkenardır’ yazdir ve A 10’a git A 7: B=C ise A 8’e git, değilse A 9’a git A 8: ‘Üçgen İkizkenardır’ yazdir ve A 10’a git A 9: ‘Üçgen Çeşitkenardır’ yazdir A 10: Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?
A 1 A 2 H Eşkenar : A=B=C Başla A, B, C Gir Çeşitkenar: A=B=C A 3 E A=B H A 5 A=C A 7 H B=C E İkizkenar: A=B veya A=C veya B=C E H A 4 B=C A 6 E Eşkenar A 8 İkizkenar A 9 Çeşitkenar Bitir A 10
- Slides: 34