BİLGİSAYAR PROGRAMLAMAYA GİRİŞ ALGORİTMA GELİŞTİRME (devamı) Kaynak: Dr.Deniz DAL ders sunumları BİLGİSAYARLA PROBLEM ÇÖZÜMÜNÜN AŞAMALARI PROBLEM 1. ANALİZ 2. ALGORİTMA GELİŞTİRME 3. AKIŞ ŞEMASI ÇİZİMİ 4. PROGRAMLAMA DİLİ SEÇİMİ 5. PROGRAMIN YAZILMASI 6. DERLEME/YORUMLAMA 7. ÇALIŞTIRMA 8. TEST/HATA AYIKLAMA PROBLEMİ ÇÖZEN BİLG PROGRAMI 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 Bir program içerisinde bilgileri geçici olarak saklamak ve ihtiyaç duyduğumuzda bu bilgiler üzerinde işlem yapabilmek için değişkenlerden faydalanırız. Saklama kabı ATAMA Herhangi bir değişkenin içerisine bir değeri veya ifadenin/işlemin sonucunu aktarma operasyonu ‘’=‘’ degisken=ifade FONKSİYON Bir giriş parametresini belirli bir işlemden geçirdikten sonra geriye bir çıkış parametresi döndüren programlar kıyma makinesi SAYAÇ Programlarımızda bazı işlemlerin belirli sayıda yaptırılması veya işlenen/üretilen değerlerin sayılması 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Ç’ KULLANIMINA Ö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. A1: Başla A2: sayac=1 A3: Eğer sayac 5’e eşit ise adım 7 ye git A4: sayac ı ekrana yaz A5: sayac=sayac+1 A6: 3. adım’ a git A7: Bitir Hangi amaçlarla kaç değişkene ihtiyaç var? DÖNGÜ Birçok uygulamada bazı işlemlerin istenilen sayıda tekrar ettirilmesi gereken durumlarda kullanılan programlama yapıları DÖNGÜ OLUŞTURMA KURALLARI 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 yada 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?) A1: Başla A2: toplam=0 A3: sayac=1 A4: Eğer sayac>10 ise adım 8 e git A5: toplam=toplam+sayac A6: sayac=sayac+2 A7: Adım 4 e git A8: toplam ı ekrana yaz A9: Bitir Döngü 2 Ax +Bx+C=0 Adım 1: Başla Adım 2: A,B,C sabitlerini değişkenlere ata Adım 3: Deltayı hesapla Adım 4: Delta<0 ise Adım ..’e, değilse Adım ..’a geç Adım 5: Ekrana ‘’Kökler sanaldır’’ yaz Adım ..’a geç Adım 6: 1. kökü hesapla, x1 değişkenine ata Adım 7: 2. kökü hesapla, x2 değişkenine ata Adım 8: x1 ve x2 değişkenlerini ekrana yaz Adım 9: Bitir AKIŞ DİYAGRAMI (FLOWCHART) AKIŞ DİYAGRAMI SEMBOLÜ KULLANIM AMACI BAŞLANGIÇ VE BİTİŞ BİLGİ GİRİŞİ HESAPLAMA VE ATAMA KARŞILAŞTIRMA BİLGİ ÇIKIŞI OKLAR 2 Ax +Bx+C=0 BAŞLA A,B,C değerlerini al Delta’yı hesapla Delta<0 EVET HAYIR x1 kökünü hesapla x2 kökünü hesapla x1 ve x2 değerlerini ekrana yaz BİTİR Ekrana ‘’Kökler sanaldır’’ yaz Örnek : Dışarıdan girilen iki sayının toplamını bulan programın algoritması aşağıdaki gibidir. A1 : Başla A2 : sayi1 değerini gir A3 : sayi2 değerini gir A4 : toplam= sayi1+sayi2 A5 : toplam ı ekrana yaz A6 : Bitir Örnek : Dışarıdan girilen 3 sayıdan en büyüğünü bulan algoritmayı geliştiriniz. A1 : Başla A2 : sayi1, sayi2 ve sayi3 sayılarını dışarıdan gir A3 : enBuyuk=sayi1 A4 : Eğer sayi2>enBuyuk ise enBuyuk=sayi2 yap A5 : Eğer sayi3>enBuyuk ise enBuyuk=sayi3 yap A6 : enBuyuk değerini ekrana yaz A7 : Bitir Örnek: Verilen iki sayının ortalamasını hesaplayan programın algoritmasını geliştiriniz ve akış diyagramını çiziniz. Başla Akış diyagramı: sayi1=? Algoritma: A1 : Başla A2 : sayi1 değerini gir sayi2=? ortalama=(sayi1+sayi)/2 A3 : sayi2 değerini gir A4 : ortalama = (sayi1+sayi2)/2 ortalama A5 : ortalama degerini ekrana yaz A6 : Bitir Bitir Ö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.) A1: Başla A2: A değerini giriniz A3: Eğer A 0’a eşit ise Adım 2’ye git A4: B değerini giriniz A5: X=-B/A A6: Yaz X A7: Bitir Ö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: A1: Başla A2: faktor =1; sayac =1 A3: Y’yi gir A4: Eğer Y<0 ise 3. adima git A5: Eğer sayac>Y ise adim 8 e git A6: faktor=faktor*sayac A7: sayac =sayac+1 yap ve adım 5 e git A8: faktor degerini ekrana yaz A9: Bitir Örnek: 1’den 100’e kadar olan sayıların (100 dahil) toplamını ve ortalamasını bulan algoritmayı geliştiriniz. Algoritma: A1: Başla A2: sayac=0 A3: toplam=0 A4: sayac=sayac+1 A5: toplam=toplam+sayac A6: Eğer sayac 100’e eşit değilse Adım 4’e git A7: ortalama=toplam/sayac A8: Yaz toplam, ortalama A9: Bitir Ö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-X3-22 3< X <=4 f(X)=X2-2X+13 4< X f(X)=X4-3X2-43 Akış Şeması Örnek : Kenar uzunlukları dışarıdan girilen bir ABC üçgenini kenar uzunluklarına göre inceleyen programın algoritmasını kurunuz. A1: Başla A2: A,B,C değerlerini gir A3: A=B ise A4’e git değilse A5’e git A4: B=C ise A6’ya git değilse A8’e git A5: A=C ise A8’e git değilse A7’e git A6: ‘Üçgen Eşkenardır’ yazdir ve A10’a git A7: B=C ise A8’e git, değilse A9’a git A8: ‘Üçgen İkizkenardır’ yazdir ve A10’a git A9: ‘Üçgen Çeşitkenardır’ yazdir A10: Bitir A1 A2 H Eşkenar : A=B=C Başla A,B,C Gir A3 A=B A5 H A=C A7 H İkizkenar: A=B veya A=C veya B=C E H Çeşitkenar: A=B=C E A4 B=C A6 E Eşkenar A8 B=C E İkizkenar A9 Çeşitkenar Bitir A10 TEŞEKKÜR Kitap ve ders notlarından yararlandığım Değerli Hocamız Dr. Deniz DAL’a teşekkürlerimle…
© Copyright 2024 Paperzz