ISE 105 Programlamaya Giriş 2022-2023 Güz Özeti PDF
Document Details
Sakarya Üniversitesi
2022
ISE 105
Tags
Related
Summary
Bu belge, Sakarya Üniversitesi'nde verilen 2022-2023 Güz dönemi ISE 105 Programlamaya Giriş dersinde işlenen yazılım geliştirme yaşam döngüsü, algoritma ve akış diyagramları konularını özetlemektedir.
Full Transcript
Programlamaya Giriş HAFTA 2 Yazılım Geliştirme Yaşam Döngüsü, Algoritma ve Akış Diyagramları ISE 105 Programlamaya Giriş 2022-2023 Güz Konu & İçerik Büyük Resim – Algoritmik Problem Yazılım Geliştirme Yaşam Döngüsü ATM Sist...
Programlamaya Giriş HAFTA 2 Yazılım Geliştirme Yaşam Döngüsü, Algoritma ve Akış Diyagramları ISE 105 Programlamaya Giriş 2022-2023 Güz Konu & İçerik Büyük Resim – Algoritmik Problem Yazılım Geliştirme Yaşam Döngüsü ATM Sistemi İçin Yazılım Geliştirme Gereksinim Analizi Modelleme & Tasarım Aşaması UML Dili Kullanım Senaryosu (Use Case Diagram) Etkinlik Şeması (Activity Diagram) Sözde Kod ve Akış Şeması ISE 105 Programlamaya Giriş 2024-2025 Güz Büyük Resim – Algoritmik Problem Gerçek dünya problemlerini bilgisayar yardımıyla çözmek için yazılım (program) geliştirilir ISE 105 Programlamaya Giriş 2024-2025 Güz Yazılım Geliştirme Yaşam Döngüsü 1. Gereksinim Analizi Aşaması 6. Kurulum ve 2. Mimari Bakım Aşaması Aşaması 3. Modelleme/Tasarı 5. Test Aşaması m Aşaması 4. Gerçekleme Aşaması ISE 105 Programlamaya Giriş 2024-2025 Güz ATM Sistemi için Yazılım Geliştirme Yerel bir banka, kullanıcılarının (yani, banka müşterilerine) temel finansal işlemlerini gerçekleştirebilmelerine izin veren yeni bir ATM yazılımı yüklemek istiyor. Her kullanıcının bankada sadece bir hesabı olabilir. ATM, kullanıcıların hesap bakiyelerini görmelerine, hesaplarından para çekmelerine ve hesaplarına para yatırmalarına izin vermelidir. ISE 105 Programlamaya Giriş 2024-2025 Güz ATM Sistemi için Yazılım Geliştirme… Gereksinim Analizi Aşaması ATM makinasının kullanıcı arayüzü aşağıdaki donanım bileşenlerinden oluşmalıdır: Tuş takımı kullanıcının girdiği bilgiyi okur Ekran kullanıcıya mesaj görüntüler Para yatırma bölmesi kullanıcıdan para zarfını alır Para verme bölmesi kullanıcıya para verir ISE 105 Programlamaya Giriş 2024-2025 Güz ATM Sistemi için Yazılım Geliştirme… Gereksinim Analizi Aşaması… ATM ye ilk girişte (şu anda hiç kimsenin kullanmadığı varsayılarak), kullanıcı aşağıdaki işlem adımlarını gerçekleştirir. 1. Ekran bir «Hoşgeldiniz!» mesajı görüntüler ve kullanıcıdan bir hesap numarası girmesini ister. 2. Kullanıcı tuş takımını kullanarak beş basamaklı hesap numarasını girer 3. Ekran, kullanıcıdan ilgili hesap numarası ile ilişkili PIN’i girmesini ister 4. Kullanıcı, tuş takımını kullanarak beş basamaklı PIN’i girer. 5. Eğer kullanıcı geçerli bir hesap numarası ve bu hesap için doğru PIN girdi ise ekranda ana menü görüntülenir. Eğer kullanıcı yanlış hesap numarası ve(ya) PIN girdi ise, ekranda bir mesaj görüntülenir ve ATM kimlik denetimini yeniden başlatmak için ADIM 1’e geri döner. ISE 105 Programlamaya Giriş 2024-2025 Güz ATM Sistemi için Yazılım Geliştirme… Gereksinim Analizi Aşaması… ATM, kullanıcının kimlik denetimini tamamladıktan sonra, ana menü, bakiye sorgulama (seçenek 1), para çekme (seçenek 2) ve para yatırma (seçenek 3) olmak üzere üç tip işlemin her biri için numaralandırılmış bir seçenek sunar. Ayrıca, kullanıcının sistemden çıkabilmesi için de bir seçenek içermelidir (seçenek 4) Kullanıcı, daha sonra gerçekleştireceği işlemi (1, 2 veya 3’ü tuşlayarak ) veya sistemden çıkmayı (4’ü tuşlayarak) seçer. Eğer kullanıcı bakiye görüntülemek için 1’i tuşlarsa, ekran kullanıcının hesabını görüntüler. Bunu gerçekleştirmek için, ATM’nin bankanın veri tabanından hesap bilgilerini alması gerekir. ISE 105 Programlamaya Giriş 2024-2025 Güz ATM Sistemi için Yazılım Geliştirme… Gereksinim Analizi Aşaması… Aşağıdaki adımlar kullanıcının para çekmek için 2’yi tuşlamasından sonra gerçekleşecek olanları tanımlar: 1. Ekranda, standart para çekme miktarlarını seçmek için belirlenen tuşları gösteren bir menü görüntülenir. Menü ayrıca kullanıcının işlemi iptal edebilmesine izin veren bir seçenek (seçenek 6) de içerir. 2. Kullanıcı, tuş takımını kullanarak bir menü seçimi yapar. ISE 105 Programlamaya Giriş 2024-2025 Güz ATM Sistemi için Yazılım Geliştirme… Gereksinim Analizi Aşaması… 3. Eğer, çekilmek istenen para miktarı, kullanıcının hesap bakiyesinden büyükse, ekranda bu durumu belirten ve kullanıcıya daha düşük bir miktar girmesini söyleyen bir mesaj görüntülenir. ATM, daha sonra Adım 1’e döner. Eğer çekilmek istenen para miktarı, kullanıcının hesap bakiyesinden küçük veya eşitse (yani, kabul edilebilir bir miktarsa), ATM, Adım 4’e gider. Eğer kullanıcı, işlemi iptal etmeyi seçerse (seçenek 6), ATM, ana ekranı görüntüler ve kullanıcı girişini bekler. 4. Eğer, bankamatik yeterli para içeriyorsa, ATM, Adım 5’ gider. Aksi halde, ekranda, bankamatikte yetersiz para olduğunu belirten ve kullanıcıya daha düşük bir para çekme miktarı girmesini söyleyen bir mesaj görüntülenir. ATM, Adım 1’e geri döner. ISE 105 Programlamaya Giriş 2024-2025 Güz ATM Sistemi için Yazılım Geliştirme… Gereksinim Analizi Aşaması… 5. ATM, çekilen para miktarını bankanın veritabanındaki kullanıcı hesabından düşer (yani, kullanıcının hesap bakiyesinden çekilen para miktarını çıkartır). 6. Bankamatik, hesaplanan para miktarını kullanıcıya verir. 7. Ekranda, kullanıcıya para almasını hatırlatan bir mesaj görüntülenir. ISE 105 Programlamaya Giriş 2024-2025 Güz ATM Sistemi için Yazılım Geliştirme… Gereksinim Analizi Aşaması… Aşağıdaki adımlar kullanıcı para yatırmak amacıyla 3’ü tuşlayınca gerçekleşen adımları tanımlar: 1. Ekran, kullanıcının yatıracağı para miktarını sorar veya iptal etmek için 0’ı tuşlamasını ister. 2. Kullanıcı, tuş takımını kullanarak yatırılacak para miktarını girer veya 0’ı tuşlar. 3. Eğer kullanıcı yatırılacak parayı girerse, ATM, Adım 4’e gider. Eğer kullanıcı işlemi iptal etmeyi seçerse (0 tuşlayarak), ATM ana ekranı görüntüler ve kullanıcı girişi için bekler. 4. Ekran, yatırılacak parayı yerleştirmesini söyleyen bir mesaj görüntüler. 5. Eğer, para yatırma bölmesi iki dakika içerisinde parayı alırsa, ATM , para miktarını bankanın veritabanındaki kullanıcının hesabına ekler. Eğer para yatırma bölmesi bu zaman diliminde yatırılacak parayı alamazsa, ekran, sistemin eylemsizlikten dolayı işlemi iptal ettiğini belirten bir mesaj görüntüler. ATM, daha sonra ana menüyü görüntüler ve kullanıcı girişi için bekler. ISE 105 Programlamaya Giriş 2024-2025 Güz ATM Sistemi için Yazılım Geliştirme… Gereksinim Analizi Aşaması… Sistem, başarılı şekilde bir işlemi gerçekleştirdikten sonra, ana menüye dönmelidir ki kullanıcı başka işlemler de yapabilsin. Eğer kullanıcı sistemden çıkarsa, ekran bir teşekkür mesajı görüntüler ve daha sonra sonraki yeni kullanıcı için bir hoş geldin mesajı görüntüler. ISE 105 Programlamaya Giriş 2024-2025 Güz Yazılım Geliştirme Yaşam Döngüsü Yazılım Geliştirme Yaşam Döngüsü 1. Gereksinim Analizi Aşaması 6. Kurulum ve 2. Mimari Bakım Aşaması Aşaması 3. Modelleme/Tasarı 5. Test Aşaması m Aşaması 4. Gerçekleme Aşaması ISE 105 Programlamaya Giriş 2024-2025 Güz Modelleme/Tasarım Aşaması… Yazılımlar iki temel amaç için modellenirler: Modelden kodlamaya geçmek daha kolaydır. Farklı aktörlerin (yazılım geliştiriciler, kullanıcılar, proje yöneticileri, şirket yöneticileri v.s.) haberleşebilmeleri kolaylaşır. Günümüzdeki yazılımları (özellikle de nesne yönelimli olarak geliştirilenleri) modellemek için UML (Unified Modelling Language – Birleşik Modelleme Dili) kullanılır. ISE 105 Programlamaya Giriş 2024-2025 Güz Modelleme/Tasarım Aşaması… Kullanım Senaryoları (Use Case Diagram) Bir kullanıcı ve bir sistem arasındaki etkileşimi anlatan senaryo topluluğu Davranışsal şemalardandır. Aktör belirli bir görev için olayları başlatan nesnedir. (Banka müşterisi, operatör, banka v.s.) Kullanım senaryolarında sistem aktör açısından ne yapar ile ilgilenir. Nasıl yapar ile ilgilenmez. Senaryo; aktör sistem ile etkileşime girdiğinde neler olduğunu anlatır. Use case; tek bir görev ya da hedef için senaryonun özetlenmiş halidir. Use case’ler birleşerek senaryoyu oluşturur. (Para cekme bir use case dir) Use-case diyagramları, sistemin ne yaptığını dışarıdan bakan bir gözlemcinin bakış açısıyla anlatan diyagramlardır. ISE 105 Programlamaya Giriş 2024-2025 Güz Modelleme/Tasarım Aşaması… Etkinlik Şeması (Activity Diagram) Sistemin dinamik görünümünün modellendiği diyagramlar Para çekme senaryosuyla ilgili şema ISE 105 Programlamaya Giriş 2024-2025 Güz Modelleme/Tasarım Aşaması… Etkinlik Şeması (Activity Diagram) Sistemin dinamik görünümünün modellendiği diyagramlar Para yatırma senaryosuyla ilgili şema ISE 105 Programlamaya Giriş 2024-2025 Güz Modelleme/Tasarım Aşaması… Sözde kod ve akış şemaları da yazılımların algoritmalarını ifade etmek için kullanılan kısıtlı modelleme yaklaşımlarıdır. Akış şemaları, UML’deki etkinlik şemaları gibidir. Etkinlik şeması, yapısal programlamadaki modelleme standartlarından olan veri akış şemaları (dfd – data flow diagram) ve akış şemalarının birleşiminden oluşur. ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma, Sözde Kod ve Akış Diyagramı ISE 105 Programlamaya Giriş 2020-2021 Güz Konu & İçerik Algoritma Nedir? İyi Bir Algoritmada Neler Olmalıdır? Büyük Resim – Algoritma Farklı Şekillerde İfadeleri Algoritma, Sözde Kod, Akış Diyagramı Algoritma Tasarımında Temel Kavramlar/Yapılar/İşlemler Değişken, Sabit, Sayaç Sorgu, Döngü Matematiksel, Mantıksal ve Karşılaştırma İşlemleri Algoritma Örnekleri Akış Diyagramlarında Kullanılan Geometrik Semboller Akış Diyagramı Örnekleri Kaynaklar ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Nedir? Gerçek hayattaki "plan" kelimesinin karşılığı olarak düşünülebilir. Bir problemin çözümüne yönelik işlem basamaklarının sıralı biçimde ve sonlu olarak ifade edilmesi Bilgisayar dilinde “ bir sorunun çözümü için öngörülen işlemlerin mantıksal ve sembolik anlatımı” 9. yüzyılda yaşamış Türk-İslam matematikçi ve astronomu Harzemli Mehmet, toplama, çıkarma, ikiye bölme, bir sayının iki katını bulma, denklem çözümü, vb. gibi cebirsel işlemleri açıklayan bir çalışma yaptı. Batılılar, onun bu çalışmalarına Latince "algorismus" yani bugünkü adı ile algoritma dediler ve algoritma kavramı ilk defa burada kullanılmış oldu. Bir algoritma yazmak için mutlaka bir dile bağımlı kalma zorunluluğu yoktur. Önemli olan yazılan algoritmanın herhangi bir programlama diline uyarlanabilir olmasıdır. ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritmanın etkin bir şekilde oluşturulması Program yazma adımından çok daha önemlidir. Tasarlanan algoritma iyi değilse kullanılan programlama dilinin önemi yoktur. (C, Java, Python, C++) Bir problemin çözümü için birbirinden farklı birden fazla sayıda algoritma hazırlanabilir. Herhangi bir problemin çözümü için birbirinden farklı yüzlerce bilgisayar programı yazılabilir. ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma… İyi Bir Algoritmada Neler Olmalıdır? Etkinlik Sonluluk Kesinlik Giriş/Çıkış Başarım/Performans ISE 105 Programlamaya Giriş 2024-2025 Güz Etkinlik Yazılan algoritmalar gereksiz tekrarlardan uzak oluşturulmalıdır. Algoritmalar genel amaçlı yazılıp diğer algoritmalar içerisinde de kullanılabilir olmalıdır. Örn: Verilen n adet sayının ortalamasını bulmakta kullandığımız algoritma varsa bu algoritma, bir sınıfta öğrencilerin yaş ortalamasını bulan bir algoritma için de kullanılabilmelidir ISE 105 Programlamaya Giriş 2024-2025 Güz Sonluluk Her algoritma bir başlangıçtan oluşmalı, belirli işlem adımı içermeli ve bir bitiş noktasına sahip olmalıdır. Olasılıklar değerlendirilerek algoritma sonlu adımda bitmelidir. Kısır bir döngüye girmemelidir. ISE 105 Programlamaya Giriş 2024-2025 Güz Kesinlik İşlem sonucu kesin olmalı, her yeni çalıştırmada aynı sonucu üretmelidir. 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. ISE 105 Programlamaya Giriş 2024-2025 Güz 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. Algoritmaların temel amacı giriş bilgisini işleyerek çıkış bilgisi oluşturmaktır. Bazı durumlarda bir algoritmanın çıkış bilgisi başka bir algoritmanın giriş bilgisi olarak kullanılabilir. ISE 105 Programlamaya Giriş 2024-2025 Güz Başarım/Performans Amaç, donanım gereksinimi (bellek kullanımı, vs.), çalışma süresi, vs. gibi performans kriterlerini dikkate alarak yüksek başarımlı programlar yazmak olmalıdır. Gereksiz tekrarlar ortadan kaldırılmalıdır. Bir algoritmanın performans değerlendirmesinde aşağıdaki temel kriterler göz önünde bulundurulur. Birim İşlem Zamanı Veri Arama ve Getirme Zamanı Kıyaslama Zamanı Aktarma Zamanı ISE 105 Programlamaya Giriş 2024-2025 Güz Çay demleme algoritması? Pilav yapma algoritması? Zeka Küpü ISE 105 Programlamaya Giriş 2024-2025 Güz Çay Yapma Algoritması Mutfakta değilsen mutfağa git. Çayı kontrol et, çay yoksa markete git Çaydanlığa bak, dolu değilse su doldur. Ocağı yak ve çaydanlığı ateşin üstüne koy. Suyun kaynamasını bekle. Su kaynadıktan sonra çayı bırak ve üstüne suyu dök. Yine demliğe biraz daha su ilave ederek bekle. Su kaynadığında biraz dinlendirerek ateşi kapat. Çay bardağını al çayını doldur. Çayına istediğin kadar şeker at (ya da atma) ve karıştır. Geldiğin odaya geri dön. Ve çayı iç. ISE 105 Programlamaya Giriş 2024-2025 Güz Zeka Küpü niz? misi ir abil l ay a m tam e kild ir şe b o ğru d ünü küp ka Ze ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Algoritmalar Farklı Şekillerde İfade Edilebilir mi? Algoritmanın metin olarak yazılması Çözülecek problem, adım adım metin olarak yazılır. Sözde/Kaba Kod (Pseudo Code) Algoritmanın sözde kodlarla yazılmasıdır. Problemin çözüm adımları komut benzeri anlaşılır metinlerle ifade edilir. Yarı kod yarı metin olarak da adlandırılır. Sözde kod, programlar gibi derlenmez ve işlenmez. Akış Diyagramı Problemin çözüm adımları geometrik şekiller ile ifade edilir. ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma… Sözde Kod Algoritmaların ifade edilmesinde akış diyagramlarının yanı sıra, konuşma dili ile programlama dili arasında, sözde kod (pseudo-code) adı verilen bir araç kullanılır. Programlama dilinden bağımsız olarak yazılan kodlardır, yani programlar gibi derlenmez veya işlenmezler. Her programcı kendi sözde kodunu geliştirebilir. Fakat kişisel sözde kodlar başkaları tarafından anlaşılabilir bir biçimde açık olmalıdır. ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma… ÖRNEK Problem: Klavyeden girilen sayının karesini hesaplayarak ekrana yazdıran programın algoritmasını yazınız. Algoritma: Başla Sayıyı (A) gir Sayının karesini hesapla (Kare = A*A işlemini yap) Sonucu (Kare) yaz Dur ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma… ÖRNEK… Problem: Klavyeden girilen sayının karesini hesaplayarak ekrana yazdıran programın sözde kodunu yazınız. Sözde Kod: cin >> A kare=A*A cout ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan Terimler… Tanımlayıcı Programcı tarafından oluşturulan/verilen ve programdaki değişkenleri, sabitleri (değişmez), sınıf, nesne, özel bilgi tiplerini, alt programları vb. adlandırmak için kullanılan kelimelerdir. Tanımlayıcı, yerini tutacağı ifadeye çağrışım yapmalıdır. Tanımlayıcı kelimeler oluşturulurken uyulması gereken kurallar: İngiliz alfabesindeki A-Z veya a-z arası 26 harf kullanılabilir 0-9 arası rakamlar kullanılabilir Simgelerden sadece alt çizgi ( _ ) kullanılabilir Tanımlayıcı isimleri, harf veya alt çizgi ile başlayabilir Rakam ile başlayamaz veya sadece rakamlardan oluşamaz Kullanılan programlama dilinin komutu ya da saklı kelimelerinden olamaz ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan Terimler… Değişken Verilerin saklandığı bellek alanlarına verilen simgesel isimlerdir. Programın her çalıştırılmasında, farklı değerler alabilen/aktarılabilen bilgi/bellek alanlarıdır. Bir programda birbirinden farklı kaç tane veri tutulacak ise o kadar değişken tanımlanmalıdır. Değişkenleri adlandırma, tamamen programcının isteğine bağlıdır. Değişken adlandırmada tanımlayıcı isimlendirme kuralları geçerlidir. Değişken adının, yerini aldığı ifadeyi çağrışım yapması programın anlaşılırlığı açısından önemlidir. Örnek: Bir kişinin adını tutmak için ad , telefonunu tutmak için telNo ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan Terimler Sabit Programlardaki değeri değişmeyen ifadelere sabit denir. Sabit adlandırmalarında da tanımlayıcı kuralları geçerlidir. Sabitlere değer aktarma Sayısal veriler doğrudan aktarılır. Örnek: SabitKomutu pi = 3.14 Alfasayısal (karakter) veriler ise tek/çift tırnak içerisinde aktarılır. Örnek: SabitKomutu ilkharf = ‘A’ Örnek: SabitKomutu okulAdi = “Sakarya” ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan Terimler Aktarma Bir bilgi alanına, veri yazma Bir ifadenin sonucunu başka bir değişkende gösterme vb. görevlerde aktarma “ = ” operatörü kullanılır. Kullanım şekli: C=5 Örnek: Aktar Sayısal ifade olarak ❑ A= 2, B= 3 C="Sakarya" Değişken = ifade / işlem ❑ C=A+B Alfasayısal ifade olarak Sabit ya da Sayısal ya da ❑ A = “Sak” , B = “arya” değişken Alfasayısal ❑ C = A+B ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan Terimler… Sayaç / Sayıcı Belirli sayıda yapılması istenen işlemleri takip etmek için İşlenen ya da üretilen değerlerin sayılması gerektiği durumlarda kullanılır. Örnek: Rasgele oluşturulmuş bir dizideki tek sayıların tespitinde tek sayıların adedini belirlemek için sayaç kullanılır. Kullanım şekli: Örnek: sayaç değişkeni= sayaç değişkeni ± adım Say = Say + 1 Sayacın Artma ya da Sayacın Yeni Değeri Eski/Mevcut Azalma Miktarı Değeri ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler Matematiksel (Aritmetik) İşlemler İşlem Matematik Bilgisayar Toplama a+b a+b Çıkarma a-b a-b Çarpma a.b a*b Bölme a÷b a/b Üs Alma ab a^b ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler Matematiksel (Aritmetik) İşlemler… Matematiksel Yazılım Bilgisayara Kodlanması a+b-c+2abc-7 a+b-c+2*a*b*c-7 a+b2-c3 a+b^2-c^3 𝑏 2 𝑎− + 2𝑎𝑐 − a-b/c+2*a*c-2/(a+b) 𝑐 𝑎+𝑏 2 𝑎+𝑏− 2 (a+b)^(1/2)-2/(b^2-4*a*c) 𝑏 − 4𝑎𝑐 𝑎2 + 𝑏 2 (a^2+b^2)/(2*a*b) 2𝑎𝑏 ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler… Matematiksel (Aritmetik) İşlemler… Sıra İşlem Bilgisayar 1 Sayıların Negatifliği -… 2 Parantezler ( ….. ) 3 Matematiksel Fonksiyonlar cos, sin, log, … 4 Üs alma a ^ b, pow, … 5 Çarpma ve Bölme a * b ve a/b 6 Toplama ve Çıkarma a + b ve a - b Örnek: ❑ Matematiksel ifade : 𝒙 = 𝒂. 𝒃 /𝒄 + 𝒅. 𝒆𝒇 − 𝒈 ❑ Bilgisayar ifadesi: 𝒙 = 𝒂 ∗ 𝒃/𝒄 + 𝒅 ∗ 𝒆^𝒇 − 𝒈 7 2 3 5 4 1 6 ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler… Karşılaştırma İşlemleri İki büyüklükten hangisinin büyük veya küçük olduğu, İki değişkenin birbirine eşit olup olmadığı gibi konularda karar verebilir. Karşılaştırma İşlemlerinin Bilgisayar Dilindeki Karşılıkları Sembol Anlamı == Eşittir Veya != Eşit Değildir > Büyüktür < Küçüktür >= veya => Büyük eşittir B ise Yaz “ A sayısı B’den büyüktür ” ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler… Karşılaştırma İşlemleri… Sayısal karşılaştırmalarda doğrudan değerler karşılaştırılır. Örnek: 25 > 15 “25 sayısı 15 ten büyüktür” Karakter olarak karşılaştırmalarda ise karşılaştırma işlemine ilk karakterlerden başlanılarak sıra ile karşılaştırılır. Not: Karakter karşılaştırma işlemlerinde, karşılaştırma karakterler arasında değil, karakterlerin ASCII kodları arasında yapılır. Örneğin, A nın ASCII kod karşılığı 65 tir. a nın ise ASCII kod karşılığı 97 dir. Büyük ve küçük harfler arasındaki ASCII kod farkı ise 32’dir. ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler… Mantıksal İşlemler Temel Mantıksal İşlem Karşılıkları İşlem Komut Anlamı VE AND Koşulların hepsi doğru ise sonuç doğrudur VEYA OR Koşullardan en az biri doğru ise sonuç doğrudur DEĞİL NOT Sonuç koşulun tersidir. 1 ise 0 dır Mantıksal İşlemlerde Öncelik Sıraları Sıra İşlem Komut 1 Parantez İçindeki İşlemler ( ….. ) 2 DEĞİL NOT 3 VE AND 4 VEYA OR ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler… Mantıksal İşlemler… Örnek: Bir işyerinde çalışan işçiler arasından yalnızca yaşı 23 üzerinde olup, maaş olarak asgari ücret alanların isimleri istenebilir. Burada iki koşul vardır ve bu iki koşulun da doğru olması gerekir. Yani; EĞER Yaş>23 VE maaş=asgari ücret ise YAZ 1.KOŞUL 2.KOŞUL YAZ komutu 1. ve 2.koşulun her ikisi de sağlanıyorsa çalışır ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler… Mantıksal İşlemler… Örnek: Bir sınıfta Programlama dersinden 65 in üzerinde not alıp, Türk Dili veya Yabancı Dil derslerinin herhangi birinden 65 in üzerinde not alanların isimleri istenmektedir. Burada 3 koşul vardır. Programlama dersinden 65 in üzerinde not almış olmak temel koşuldur. Diğer iki dersin notlarının herhangi birinin 65 in üzerinde olması gerekir. EĞER Prog_not>65 VE (TDili_not>65 VEYA YDil_not>65) ismi YAZ ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler/Yapılar Sorgu / Seçme Algoritmada, işlemler genellikle sıralı adımlardan oluşur. Bazı koşul/şart durumlarında işlem sıralarının değiştirilmesi ve diğer bir işlem sırasının seçilmesi yada programın yeni işlem sırasından devam etmesi gerekebilir. İşlem sıralarının değiştirilmesi ya da bazı koşulların sorgulanması için ‘EĞER’ sorgu deyimi kullanılır. Örnek: EĞER ORT > 50 GİT ADIM 7 KOŞUL Gidilecek İşlem Sırası ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler/Yapılar Sorgu / Seçme Örnek: Dışarıdan girilen iki sayıyı kıyaslayan programın algoritmasını çıkarınız? ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler/Yapılar Sorgu / Seçme Örnek: Dışarıdan girilen iki sayıyı kıyaslayan programın algoritmasını çıkarınız? Başla OKU X, Y Eğer X > Y ise YAZ ‘‘X BÜYÜK’’ Git 6 Eğer X Y ise YAZ ‘‘X KÜÇÜK’’ Git 6 YAZ ‘‘EŞİT’’ Dur ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler/Yapılar Sorgu / Seçme… Örnek: Dışarıdan 10’dan büyük 20’den küçük sayı girilene kadar programı devam ettiren algoritmayı yazınız. ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler/Yapılar Sorgu / Seçme… Örnek: Dışarıdan 10’dan büyük 20’den küçük sayı girilene kadar programı devam ettiren algoritmayı yazınız. Başla OKU X Eğer ( X > 10 VE X 20 ) ise Git 6 YAZ ‘‘ SAYI 10 İLE 20 ARASINDA DEĞİLDİR’’ GİT 2 YAZ ‘‘SAYI 10 İLE 20 ARASINDADIR’’ Dur ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler/Yapılar Döngü Bazı işlemleri belirli sayıda tekrar etmede, Belirli bir aralıktaki ardışık değerler ile işlem yapmada döngü kullanılır. Diğer bir deyişle, programdaki belirli işlem bloklarını, verilen sayıda gerçekleştiren işlem akış çevrimlerine DÖNGÜ denir. Örnek: 1’den 5’e kadar sayıların toplamı Ard arda ekrana 4 defa SAKARYA yazdırma 1 ile 100 arasındaki çift sayıların ya da tek sayıların toplamı ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler/Yapılar Döngü… Döngü oluşturma kuralları Döngü değişkenine başlangıç değeri verilir Döngünün artma ya da azalma miktarı belirlenir Döngünün bitiş değeri belirlenir Eğer Döngü karar ifadeleriyle oluşturulduysa; döngü değişkeni, döngü içinde adım miktarı kadar arttırılmalı/azaltılmalıdır. Örnek: Başla T=0 J=1 Eğer J > 10 ise Git 8 T=T+J J=J+2 Git 4 Yaz T Dur ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Tasarımında Kullanılan İşlemler/Yapılar Döngü… Döngü oluşturma kuralları Döngü değişkenine başlangıç değeri verilir Döngünün artma ya da azalma miktarı belirlenir Döngünün bitiş değeri belirlenir Eğer Döngü karar ifadeleriyle oluşturulduysa; döngü değişkeni, döngü içinde adım miktarı kadar arttırılmalı/azaltılmalıdır. Örnek: 1-10 arası tek sayıların toplamı hesaplayan programın algoritmasını çıkarınız? Başla T=0 J=1 Eğer J > 10 ise Git 8 T=T+J J=J+2 Git 4 Yaz T Dur ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Örnekleri - 1 Problem: Klavyeden okunan bir reel sayının karekökünü bulup sonucu ekrana yazan bir algoritmanın tasarlanması. Tasarım: öncelikle problemin çözümünün matematiksel olarak ifade edilmesi gerekmektedir; a, karekökü bulunmak istenen sayı olsun, x değeri a’nın tahmini karekökü ve b değeri ise a’nın gerçek karekökü ile tahmin edilen karekökü arasındaki fark olsun. Bu durumda a aşağıdaki şekilde ifade edilebilir; a = (x+b)2 a = x2+2xb+b2 Küçük olması beklenen b2 değeri ihmal edilirse, b değeri yaklaşık olarak hesaplanabilir; b (a-x2)/2x ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Örnekleri – 1… Hesaplanan b değeri kullanılarak a’nın kareköküne daha yakın yeni bir tahmin yapılabilir; xi+1 = xi + b Burada xi önceki tahmin, xi+1 ise kareköke yakın yeni tahmin değeridir Bu şekilde a’nın karekökü girilerek yakınsayan bir iterasyon (tekrarlama) ile bulunabilir. a’nın karekökünü yakınsayarak bulan bu iteratif (mutlak hata b, hata değerinden küçük eşit olana kadar işlem tekrar edilecek). ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Örnekleri – 1… Algoritma sözde kodlar ile ifade edildiğinde aşağıdaki şekilde yazılabilir (ifade kolaylığı için xi yerine x ve xi+1 yerine y kullanılmıştır) A1: Başla A2: Oku (a) // karekökü bulunacak sayıyı a değişkenine oku A3: Oku (x) // ilk tahmini karekökü x değişkenine oku A4: Oku () // kabul edilebilir hata değerini değişkenine oku A5: b=(a-x2)/2x // fark (hata) değeri olan b’ yi hesapla A6: y=x+b // daha yakın yeni karekök değerini (y) hesapla A7: Eğer b ise A10’a git // b ise iterasyonu durdurmak için A10’a git A8: x=y // y yeni karekök değerini x değişkenine ata A9: A5’e git // işlemi yeni x tahmini ile tekrarlamak için A5’e git A10: Yaz (y) // en son hesaplanan karekök değerini (y) ekrana yaz A11: Dur // programı sonlandır ISE 105 Programlamaya Giriş 2024-2025 Güz Algoritma Örnekleri – 1… Bu algoritmada işlemlerin bir çevrimin içinde tekrarlandığı ve istenilen hassasiyete ulaşıldığında çevrimin dışına çıkılarak işlemin tamamlandığı görülmektedir. Bilgisayar da program işletilirken bir değişkene yeni bir değer verildiğinde eski taşıdığı değerin kaybolacağı not edilmelidir. Aşağıda bu algoritmanın nasıl çalıştığı, işlemlerin her tekrarında (çevrimin her adımında) değişkenlerin aldığı değerler bir çizelgede verilerek açıklanmıştır. a, x ve değerlerinin sırası ile 31.8, 5.0 ve 0.005 olarak okunduğu kabul edilsin. Üçüncü çevrim adımında b değeri değeri olan 0.005’ den küçük olduğu için yeni karekök değeri hesaplanmaz en son hesaplanan karekök değeri y=5.64 olarak kalır ve işlem sonlandırılır. ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramı Akış diyagramı, algoritmaların geometrik şekillerle ortaya konulmasıdır. Akış diyagramı, problemin çözümü için yapılması gerekenlerin, başından sonuna kadar geometrik şekillerden oluşan semboller ile ifade edilmesidir. Her simge genel olarak yapılacak bir işi veya komutu gösterir. Algoritma doğal dille yazıldığı için herkes tarafından anlaşılmayabilir ancak akış diyagramlarında her bir şekil standart bir anlam taşıdığı için farklı yorumlanmaz. ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramında Kullanılan Semboller Başla Programın nereden başlayacağını belirtir. Standart olarak BAŞLA her bağımsız algoritmada bir tane bulunur Dur Programın nerede sonlanacağını belirtir. Birden fazla DUR olabilir. Mümkün ise sadece bir tane dur simgesi kullanılmalıdır. Giriş Bilgisayara dışarıdan bilgi girişini temsil eder. Bu sembolün a,b,c içine dışarıdan girilen bilgilerin aktarılacağı değişkenler yazılır. ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramında Kullanılan Semboller… Çıkış Ekrana veya yazıcıya bilgi göndermeyi temsil eder Ekran Kağıt İşlem Programın işlemesi sırasında yapılacak işlemleri ifade İşlem etmek için kullanılır Karşılaştırma (sorgu) Karşılaştırma Verilen koşulun sonucuna göre farklı işlem yapılacağını ifade etmek için kullanılır. ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramında Kullanılan Semboller… Döngü Belirli bir işin veya bir grup işin birden çok yinelenmesi gerektiğinde kullanılır. Döngüdeki çevrim sayısı, döngü Döngü sayacı ve sayaç artırımı açıkça yazılır. Fonksiyon Çağırma Daha önce oluşturulmuş bir algoritmanın yazılan Fonksiyon algoritma içerisine konulmadan çağrılarak Çağırma kullanılmasını ifade eder. Dosyaya Saklama Sakla Sıralı Erişimli Elde edilen bilgilerin bir dosyada saklanması veya dosyadan okunmasını simgeler. Doğrudan Erişimli Veri Tabanı ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramında Kullanılan Semboller… Akış Yönü Bir işlem bittikten sonra akışın nereye yönleneceğini belirler. Bağlantı Aynı sayfaya Akış diyagramı çizilirken sayfaya sığmama durumunda çizimin başka bir yerden devam etmesi için kullanılır. İç Ayrı sayfaya Dış ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramı ile Karar / Karşılaştırma Yapısı Algoritma tasarımındaki EĞER yapısının gerçekleştirilmesi Giriş Doğru Yanlış Koşul İşlem 1 İşlem 2 Çıkış ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramı ile Tekrar (Döngü) Yapısı Algoritma tasarımındaki Döngü yapısının gerçekleştirilmesi Giriş Giriş döngü_sayacı=1, N Doğru Yanlış İşlemler Koşul Çıkış İşlemler Çıkış ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramı Örnekleri - 1 Problem: Klavyeden okunan bir reel BAŞLA sayının karekökünü bulup sonucu ekrana yazan programın akış a, x, ε diyagramını çiziniz. 𝑏 = 𝑎 − 𝑥 2 Τ2𝑥 Görüldüğü gibi akış diyagramlarında işlem sırası oklarla gösterildiği için x=y 𝑦 =𝑥+𝑏 deyimlerin (işlemlerin) A1, A2, vb. etiketlendirilmesine gerek yoktur. Fakat Hayır Evet istenirse bu etiketler kutuların dışında 𝑏 ≤𝜀 sol üst köşeye yazılabilir. y Not: Bu örneğin algoritma tasarımı önceki slaytlarda verilmektedir. DUR ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramı Örnekleri - 1 Algoritma sözde kodlar ile ifade edildiğinde aşağıdaki şekilde yazılabilir (ifade kolaylığı için xi yerine x ve xi+1 yerine y kullanılmıştır) A1: Başla A2: Oku (a) A3: Oku (x) A4: Oku () A5: b=(a-x2)/2x A6: y=x+b A7: Eğer b ise A10’a git A8: x=y A9: A5’e git A10: Yaz (y) A11: Dur ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramı Örnekleri - 2 Problem: 1’den N’ye kadar olan sayıların toplamını hesaplayan programın akış diyagramını çizelim. ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramı Örnekleri - 2 Problem: 1’den N’ye kadar olan sayıların toplamını hesaplayan programın akış diyagramını çizelim. 1’den N’ye kadar, N adet sayı vardır. Birer artan döngü içinde sayıları toplayabiliriz. Döngü artışını kontrol edeceğimiz değişken i olsun. Toplam değerini de T değişkeni ile ifade edelim. Döngü değişkeni i, 1’den başlayacak ve birer artarak N ye ulaşacak. T başlangıçta 0 ile başlayacak ve döngü içerisinde 1’den N’ye değişen i değeri ilave edilecek. ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramı Örnekleri – 2… Problemin Algoritması: Algoritma sözde kodlar ile ifade edildiğinde aşağıdaki şekilde yazılabilir: Adım 1: Başla Adım 2: Oku (N) Adım 3: T = 0, i = 0 Adım 4: T = T + i Adım 5: i = i + 1 Adım 6: Eğer iN ise Adım 4’ye git Adım 7: Yaz (T) Adım 8: Dur ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramı Örnekleri – 2… i N işlem T BAŞLA N T=0 i=1; i≤N; i++ T = T+ i T DUR ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramı Örnekleri – 2… i N işlem T BAŞLA - 10 - - - 10 T=0 0 N 1 10 T=0+1 1 2 10 T=1+2 3 T=0 3 10 T=3+3 6 4 10 T=6+4 10 i=1; i≤N; i++ T = T+ i 5 10 T=10+5 15 6 10 T=15+6 21 T 7 10 T=21+7 28 8 10 T=28+8 36 DUR 9 10 T=36+9 45 10 10 T=45+10 55 ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramı Örnekleri – 3 Problem: NxM boyutlu iki matrisin toplamını hesaplayan bir algoritmanın akış diyagramını çizelim. Matrislerin elemanlarını ifade eden indisleri i ve j ile gösterelim (i=1,...,N, j=1,...,M). Bu durumda A matrisinin her bir elemanı matematiksel olarak 𝐴𝑖,𝑗 veya programlama açısından A[i][j] şeklinde ifade edilebilir. Elemanları toplanacak matrisler A ve B matrisleri ve toplam sonucunda oluşacak matris ise C matrisi olsun. Bilindiği gibi matris toplamında birinci matrisin [i][j] indeksli elemanı ile ikinci matrisin [i][j] indeksli elemanı karşılıklı olarak toplanarak toplam matrisin [i][j] indeksli elemanını elde edilir. ISE 105 Programlamaya Giriş 2024-2025 Güz Akış Diyagramı Örnekleri – 3… BAŞLA 1 3 2 1 [ A] = [B] = [A], [B], N, M 1 2 3 0 matrisleri ve N=M=2 değerleri için i=1; i≤N; i++ i j işlem C[i][j] j=1; j≤M; j++ 1 1 C=1+2 3 1 2 C=3+1 4 [C] C[i][j] = A[i][j] + B[i][j] 2 1 C=1+3 4 2 2 C=2+0 2 DUR 3 4 [C ] = 4 2 ISE 105 Programlamaya Giriş 2024-2025 Güz Programlamaya Giriş Algoritma, Sözde Kod ve Akış Diyagramı ÖRNEKLERİ ISE 105 Programlamaya Giriş 2020-2021 Güz ÖRNEK Ekrana "Merhaba Dünya" yazan programın algoritmasını yazınız. ISE 105 Programlamaya Giriş 2024-2025 Güz ÖRNEK Ekrana "Merhaba Dünya" yazan programın algoritmasını yazınız. 1. BAŞLA 2. YAZ "Merhaba Dünya" 3. DUR ISE 105 Programlamaya Giriş 2024-2025 Güz ÖRNEK İki sayıyı toplayıp sonucunu ekrana yazdıran programın algoritmasını yazınız ve akış diyagramını çiziniz. 1. BAŞLA 2. s1=10, s2=20 3. YAZ s1+s2 4. DUR ISE 105 Programlamaya Giriş 2024-2025 Güz ÖRNEK İki sayıyı toplayıp sonucunu ekrana yazdıran yazan programın algoritmasını yazınız ve akış diyagramını çiziniz. 1. BAŞLA BAŞLA 2. s1=10, s2=20 3. YAZ s1+s2 4. DUR s1=10, s2=20 s1+s2 DUR ISE 105 Programlamaya Giriş 2024-2025 Güz ÖRNEK Klavyeden girilen iki sayıyı toplayıp sonucunu ekrana yazdıran yazan programın algoritmasını yazınız ve akış diyagramını çiziniz. ISE 105 Programlamaya Giriş 2024-2025 Güz ÖRNEK Klavyeden girilen iki sayıyı toplayıp sonucunu ekrana yazdıran yazan programın algoritmasını yazınız ve akış diyagramını çiziniz. 1. BAŞLA 2. OKU s1, s2 3. YAZ s1+s2 4. DUR ISE 105 Programlamaya Giriş 2024-2025 Güz ÖRNEK Klavyeden girilen iki sayıyı toplayıp sonucunu ekrana yazdıran yazan programın algoritmasını yazınız ve akış diyagramını çiziniz. 1. BAŞLA BAŞLA 2. OKU s1, s2 3. YAZ s1+s2 4. DUR s1, s2 s1+s2 DUR ISE 105 Programlamaya Giriş 2024-2025 Güz ÖRNEK Klavyeden girilen 𝑥 ve 𝑦 değerlerine göre 𝑥 2 + 𝑦 denkleminin sonucunu hesaplayıp ekrana yazdıran yazan programın algoritmasını yazınız ve akış diyagramını çiziniz. ISE 105 Programlamaya Giriş 2024-2025 Güz ÖRNEK Klavyeden girilen 𝑥 ve 𝑦 değerlerine göre 𝑥 2 + 𝑦 denkleminin sonucunu hesaplayıp ekrana yazdıran yazan programın algoritmasını yazınız ve akış diyagramını çiziniz. 1. BAŞLA 2. OKU x, y 3. sonuc = x^2 + y 4. YAZ sonuc 5. DUR ISE 105 Programlamaya Giriş 2024-2025 Güz ÖRNEK Klavyeden girilen 𝑥 ve 𝑦 değerlerine göre 𝑥 2 + 𝑦 denkleminin sonucunu hesaplayıp ekrana yazdıran yazan programın algoritmasını yazınız ve akış diyagramını çiziniz. BAŞLA 1. BAŞLA 2. OKU x, y x, y 3. sonuc = x^2 + y 4. YAZ sonuc 5. DUR sonuc = x^2+y sonuc DUR ISE 105 Programlamaya Giriş 2024-2025 Güz ÖRNEK Klavyeden girilen 𝑥 değerlerinin toplamı 100’den büyük oluncaya kadar kullanıcıdan değer alan programın algoritmasını yazınız ve akış diyagramını çiziniz. ISE 105 Programlamaya Giriş 2024-2025 Güz ÖRNEK Klavyeden girilen 𝑥 değerlerinin toplamı 100’den büyük oluncaya kadar kullanıcıdan değer alan programın algoritmasını yazınız ve akış diyagramını çiziniz. 1. BAŞLA 2. toplam = 0 3. OKU x 4. toplam = toplam + x 5. EĞER toplam