hafta 2: akış diyagramlarılevent.tc/courses/blm103/blm103_hafta2_akis_diyagramlari.pdfadım adım...
TRANSCRIPT
![Page 1: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/1.jpg)
Algoritmalar ve Programlama I – BLM 103
Fenerbahçe Üniversitesi
Hafta 2: Akış Diyagramları
![Page 2: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/2.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
2. Hafta İçeriği
• Derleyici ve Yorumlayıcı
• Programlama Süreci• Problemin Tanımlanması
• Program Tasarımı
• Kodlama Süreci
• Test ve Hata Ayıklama
• Sözdekod
• Akış Diyagramları
2/53
![Page 3: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/3.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Bilgisayar Programları
• Bilgisayarlar tam olarak ne kodlarsanız o işlemi gerçekleştirirler
• Bir bilgisayar programında, bir işi gerçekleştirmek için ilgili komutlar bulunur.
• Günümüzde bir onlarca bilgisayar programlama dili mevcuttur.
3/53
![Page 4: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/4.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Bilgisayar Programı Nedir?
• Farklı türlerde yazılımlar mevcuttur. Bunlara örnek olarak:
• İşletim Sistemleri (Win 10, Linux, Ubuntu, …).• Derleyici ve Yorumlayıcı (Visual Studio, Dev C++, ...).• Uygulamalar (Ödeme Sistemleri, Muhasebe Yazılımları…).• Gömülü Sistem (Televizyon, Telefon).
4/53
![Page 5: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/5.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Programcı Kimdir?
• Bir programcı, kendisine verilen genellikle doğal dilde olan bir problemi bilgisayarın anlayacağı dile dönüştürüp, yazan kişiye denir.
• Yazdığı programı derleyici ve yorumlayıcı araçları ile makinanın anlayacağı dile çevirir ve yürütür.
5/53
![Page 6: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/6.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Derleyici (Compiler) ve Yorumlayıcı (Interpreter)
• Derleyici, kendisine verilen insanın anlayabileceği kaynak kodu (source code), obje kodu (object code)’a dönüştüren bir yazılımdır. Obje kodu makinanın anlayabileceği yapıdadır.
• Yorumlayıcı, kendine verilen kaynak kodu obje koduna dönüştürerek satır satırçalıştırırlar. Derleyiciden farkı ise, derleyici bir uygulamanın tamamını dönüştürürken, yorumlayıcılar ise kaynak kodun her satırını dönüştürür, çalıştırır ve bir sonraki satıra geçer.
6/53
![Page 7: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/7.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Programın Yürütülmesi
Derleyici Kullanımı
Kaynak Kod DerleyiciObje Kodu
Yorumlayıcı Kullanımı
Kaynak Kod Yorumlayıcı
Programın Yürütülmesi
Programın Yürütülmesi
7/53
![Page 8: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/8.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
İyi Tasarlanmış Programlar
• İyi tasarlanmış programlar:
• Beklenen sonuçları üretmeli
• Kolay anlaşılır olmalı
• Bakım ve güncelleme kolay olmalı
• Verilmli olmalı (Kaynak kullanımı)
• Güvenli (Hata ve saldırılara karşı koruma mekanizmaları)
• Esnek (Yeniden kullanılabilirlik)
olmalıdır.
8/53
![Page 9: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/9.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Programlama Süreci
1. Problemin Tanımlanması• Programın ne yapması gerekiyor?• Programın çıktıları ne olacak ve nasıl bir formatta olacak?• Programın girdileri ne olacak ve nasıl bir formatta olacak?
Örnek: İki sayıdan büyük olan sayıyı bulan bir program yazın• İki sayı girişi al, karşılaştır ve maksimum değeri yazdır.• Giriş ve çıkışlar tamsayılar• Girişler klavyeden olacak• Çıkış monitörden gösterilecek
9/53
![Page 10: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/10.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Programlama Süreci
2. Program Tasarımı:
Algoritma tasarım sürecidir. Bilgisayarın gereken çıktıları vermesi için adım adım gereken işlemlerin tasarlanmasıdır.
Yukarıdan Aşağıya (Top-Down) Tasarım Yöntemi• Ana problem alt küçük problemlere bölünür.• Her bir bölünmüş daha basit problemler çözülerek bir araya getirilir.
10/53
![Page 11: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/11.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Programlama Süreci
3. Kodlama Süreci:
Geliştirilen bir algoritmanın bir programlama dilinde ifade edilmesidir.
#include <stdio.h>
int main(){
int number1, number2;int maximum;
printf("Please, enter two numbers: ");scanf("%d %d", &number1, &number2);
if (number1 >= number2)maximum = number1;
elsemaximum = number2;
printf(“%d is maximum\n“, maximum);
return 0;}
11/53
![Page 12: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/12.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Programlama Süreci
• Derleme (Compilation): Bir kaynak kodunun obje koduna dönüştürülme işlemidir.
• Bağlama (Linking) üretilmiş olan ve bir uygulama için gerekli olan tüm obje kodlarını alıp, çalıştırılabilir bir uygulama çıkarma işlemidir.
• Derleme ve Bağlama işleminin 2 adımlı olmasının avantajları:• Kaynak kod çok uzun olabilir, kod birden çok parçaya bölünebilir. • Bölünmüş kodlar birbirinden bağımsız çalıştırılabilirler.• İstendiğinde tek bir çalıştırılabilir dosyada (Windows için EXE) saklanabilirler.
12/53
![Page 13: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/13.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Programlama Süreci
4. Program Testi ve Hata Ayıklama
• Bir program yazıldığında ilk denemede, genellikle hatalar barındırır.
• Bu hataları gidermek için deneme girişleri ile uygulamanın test edilmesi gerekmektedir.
• Hata ayıklama (Debugging ), hataların tespiti ve giderilmesi sürecidir.
13/53
![Page 14: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/14.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Hata Türleri
• Sözdizimi (Syntax) Hataları: Programlama dilinin kurallarına uyulmayarak yazılmış bir ifadeden kaynaklı hatalardır.
• Bu hata gerçekleştiğinde, derleyici yazılımı, hata verip derleme işlemini gerçekleştirmez.
• Anlamsal (Semantic) Hatalar: Kaynak kodda anlamsal yani mantık hatasının gerçekleşmesidir.
• Derleme işlemi gerçekleşir ancak programın üretmesi gereken sonuçlardan farklı sonuçlar ortaya çıkar.
• Çalışma Zamanı (Run-time) Hataları: Program çalışırken meydana gelmektedir. Beklenenden farklı bir formatta veri girişi veya bellekte programın erişemeyeceği bir yere erişmeye çalışması gibi sorunlar nedeniyle yaşanır.
• Gerçekleştiğinde program patlar (Crash) ve kapanır.
14/53
![Page 15: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/15.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Programlama
Programlama iki aşamaya ayrılabilir.
1. Problem Çözme Aşaması• Problemin çözümü için adım adım yapılması gerekenlerin tarif edilmesidir.• Adım adım çözüm yöntemine algoritma denir.
2. Gerçekleme Aşaması• Algoritmanın bir programlama dilinde gerçeklenmesidir.
15/53
![Page 16: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/16.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Algoritmanın genel akışının çıkartılması (Sözde Kod/ pseudocodekullanılabilir)
• Algoritmayı programlama diline yakın olacak bir biçimde adım adım detaylandırılır.
• Sözde Kod (Pseudocode), doğal dilde ifade edilip, algoritmanın bir yazılım diline geçmesi sürecinde ara aşamadır.
Problem Çözme Aşamaları
16/53
![Page 17: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/17.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Örnek 1: Öğrencilerin dersten geçme durumlarını hesaplayan bir uygulama yazın. Geçme durumu 4 sınavın ortalamasına göre yapılacaktır. Geçme notu 50’dir.
Sözde Kod ve Algoritmalar
17/53
![Page 18: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/18.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Sözde Kod:
• 4 notu giriş olarak al
• Bu notları topla ve 4’e böl
• Eğer 50’nin altında ise
Yazdır “Kaldı”
Değilse
Yazdır “Geçti”
Sözde Kod ve Algoritmalar
18/53
![Page 19: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/19.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Detaylı Algoritma
• Adım 1: Giriş M1,M2,M3,M4
Adım 2: Not (M1+M2+M3+M4)/4
Adım 3: Eğer (NOT < 50)
Bastır “Kaldı”
Değilse
Bastır “Geçti”
Sözde Kod ve Algoritmalar
19/53
![Page 20: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/20.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Bir bilgisayar programının veya bir fabrikadaki üretim sürecindeki akışın, şematik olarak gösterim biçimidir.
• Algoritmalar, akış diyagramları şeklinde ifade edilebilirler. Algoritmadaki komutların akışının görselleştirilmesinde faydalıdırlar.
Akış Diyagramları (Flowcharts)
20/53
![Page 21: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/21.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Bir akış diyagramı
• Algoritmanın akışını gösterir
• Adımları ve bağlantıları vurgular (kontrol yapıları, bir sonraki aşamanın ne olacağı gibi …)
Akış Diyagramları (Flowcharts)
21/53
![Page 22: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/22.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Akış Diyagramları (Flowcharts) Sembolleri
22/53
![Page 23: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/23.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Basır“Geçti”
Başla
GirişM1,M2,M3,M4
NOT(M1+M2+M3+M4)/4
EğerNOT<50
Bastır“Kaldı”
Bitir
DY
Örnek 1
• Detaylı Algoritma
• Adım 1: Giriş M1,M2,M3,M4
Adım 2: Not (M1+M2+M3+M4)/4
Adım 3: Eğer (NOT < 50)
Bastır “Kaldı”
Değilse
Bastır “Geçti”
23/53
![Page 24: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/24.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Girilen bir feet birimindeki girişi cm’e dönüştüren bir uygulama geliştirin.
Sözde Kod:
• Feet (LFT) girişini al
• CM (LCM) olarak hesaplamak için LFT’i 30 ile çarp
• Ekrana LCM’i bastır.
Örnek 2
24/53
![Page 25: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/25.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Algoritma
• Adım 1: Giriş LFT
• Adım 2: LCM LFT x 30
• Adım 3: Bastır LCM
Başla
GirişLft
Lcm Lft x 30
BastırLcm
Bitir
Akış Diyagramı
Örnek 2
25/53
![Page 26: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/26.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Bir dikdörtgen iki kenarını giriş alıp, alanını hesaplayan bir uygulama yazınız.
Sözde kod
• Eni (E) ve boyunu (B) al.
• Alanı (A) E ve B’i çarparak hesapla
• A’ı bastır
Örnek 3
26/53
![Page 27: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/27.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Algoritma
• Adım 1: Giriş E,B
• Adım 2: A E x B
• Adım 3: Bastır A
Başla
GirişE, B
A E x B
BastırA
Bitir
Örnek 3
27/53
![Page 28: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/28.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Örnek 4
• Aşağıdaki denklemin köklerini bulan bir uygulama geliştirin.
• İpucu: d = karekök ( ) denklemi ile kökler bulunabilir:
x1 = (–b + d)/2a
x2 = (–b – d)/2a
𝑎𝑥2 + 𝑏𝑥 + 𝑐 = 0
𝑏2 − 4𝑎𝑐
28/53
![Page 29: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/29.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Örnek 4
Sözde Kod:
• Denklemin a, b,c katsayılarını al
• d’i hesapla
• x1’i hesapla
• x2’i hesapla
• x1 ve x2’i bastır
29/53
![Page 30: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/30.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Örnek 4
• Algoritma: • Adım 1: Giriş a, b, c
• Adım 2: d karekök ( )
• Adım 3: x1 (–b + d) / (2 x a)
• Adım 4: x2 (–b – d) / (2 x a)
• Adım 5: Bastır x1, x2
Başla
Girişa, b, c
d karekök(b x b – 4 x a x c)
Bastırx1 ,x2
Bitir
x1(–b + d) / (2 x a)
X2 (–b – d) / (2 x a)
𝑏 × 𝑏 − 4 × 𝑎 × 𝑐
30/53
![Page 31: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/31.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• A>B ifadesi, bir mantıksal bir ifadedir, sonucu doğru veya yanlıştır
• Test edilmek istenen bir durumu ifade eder.
Örnek:
• Eğer A>B İfadesi doğru ise (Yani A, B’den daha büyük ise) • A’nın değerini Bastır
• Eğer A>B ifadesi yanlış ise (Yani A, B’den daha büyük değil ise) • B’nin değerini bastır
Kontrol Yapıları
31/53
![Page 32: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/32.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
?A>B
Bastır B
BastırA
Kontrol Yapıları
D Y
32/53
![Page 33: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/33.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Yapı şu şekildedir:
eğer durum
doğru olduğu durumdaki aksiyon
değilse
yanlış olduğu durumdaki aksiyon
Eğer, Değilse (if, else) Yapıları
33/53
![Page 34: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/34.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Algoritmanın akış diyagramı şu şekildedir:
Eğer A>B
bastır A
Değilse
bastır B
Eğer, Değilse (if, else) Yapıları
?A>B
Bastır B
BastırA
D Y
34/53
![Page 35: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/35.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Kontrol Yapıları
Kontrol Operatörleri
Operatör Açıklama
> Büyüktür
< Küçüktür
= Eşittir
Büyüktür veya Eşittir
Küçüktür veya Eşittir
Eşit Değildir
35/53
![Page 36: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/36.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• İki sayı girişi alıp, en büyük sayının ne olduğunu ekrana gösteren bir uygulama geliştirin.
Algoritma
Adım 1: Girişler girdi1, girdi2
Adım 2: Eğer (girdi1 > girdi2)
max girdi1
Değilse
max girdi2
Adım 3: Bastır “En büyük değer: ”, max
Örnek 5
36/53
![Page 37: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/37.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
max girdi1
Bastır“En büyük değer: ”, max
Bitir
D Y
Başla
Girişlergirdi1,girdi2
max girdi2
?girdi1>girdi2
Örnek 5
37/53
![Page 38: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/38.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Bir eğer, değil (if, else) mekanizması birden çok eğer, değil mekanizması içerebilir.
Örnek:
• Kullanıcıdan 3 sayı alıp, en büyüğünü bulan bir uygulama geliştirin.
İç İçe Kontrol Mekanizmaları
38/53
![Page 39: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/39.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Adım 1: Giriş N1, N2, N3
Adım 2: Eğer (N1>N2){
Eğer (N1>N3) {
MAX N1
}
Değilse{
MAX N3
}
}
Değilse{
Eğer (N2>N3){
MAX N2
}
Değilse{
MAX N3
}
}
Adım 3: Bastır “En büyük sayı: ”, MAX
Örnek 6
39/53
![Page 40: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/40.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Ödev 1 – Soru 1: Yandaki algoritmanın akış diyagramını çiziniz
Örnek 6
Adım 1: Giriş N1, N2, N3
Adım 2: Eğer (N1>N2){
Eğer (N1>N3) {
MAX N1
}
Değilse{
MAX N3
}
}
Değilse{
Eğer (N2>N3){
MAX N2
}
Değilse{
MAX N3
}
}
Adım 3: Bastır “En büyük sayı: ”, MAX
40/53
![Page 41: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/41.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Bir çalışanın ismini (isim), kaç saat fazla çalıştığı (fSaat) ve kaç saat şirkete gelmediğini isteyip (gsaat), ek mesai ücretinin ne kadar olacağını bulan bir program yazınız.
Örnek 7
Bonus Tablosu
fSaat – (2/3)*gSaat Ödenecek Bonus
>40 Saat
>30 ve 40 hours
>20 ve 30 hours
>10 ve 20 hours
10 hours
$50
$40
$30
$20
$10
41/53
![Page 42: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/42.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Adım 1: Girişler isim, fSaat, gSaat
Adım 2: Eğer (fSaat–(2/3)*gSaat > 40)
ödeme 50
Değilse Eğer (fsaat–(2/3)*gsaat > 30)
ödeme 40
Değilse Eğer (fsaat–(2/3)* gsaat > 20)
ödeme 30
Değilse Eğer (fsaat–(2/3)* gsaat > 10)
ödeme 20
Değilse
ödeme 10
Adım 3: Bastır isim, “ kişisi için $”, ödeme," ödeme yapılacak."
Örnek 7
• Ödev 1 – Soru 2:Yandaki algoritmanın akış diyagramını çiziniz
42/53
![Page 43: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/43.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Bir uygulamada, aynı işlem birçok kez tekrar ediyorsa, bu işlem için döngü (loop) yapıları kullanılır.
• Döngü yapılarının kullanılması, uygulamanın karmaşıklığı ve boyutunu azaltmaktadır.
Döngüler
43/53
![Page 44: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/44.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Örnek 8
• Algoritma:
• Adım 1: sayi 2
• Adım 2: carpim sayi
• Adım 3: carpim carpim * sayi
• Adım 4: carpim carpim * sayi
• Adım 5: carpim carpim * sayi
• Adım 6: Bastır carpim
44/53
![Page 45: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/45.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Başla
carpim sayi
Bastircarpim
Bitir
carpim carpim * sayi
carpim carpim * sayi
carpim carpim * sayi
Örnek 8
sayi 2
45/53
![Page 46: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/46.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• 24 sayısını döngü yöntemi ile hesaplayan bir yazılım geliştirin.
Örnek 9
46/53
![Page 47: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/47.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Adım 1: sayi 2 Adım 2: kuvvet 4Adım 3: sonuc sayiAdım 4: sayac 1 Adım 5: Dongu sayac < kuvvet
sonuc sonuc * sayisayac sayac +1
Adım 8: Bastır sonuc
Örnek 9
47/53
![Page 48: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/48.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Başla
sonuc sayi
sayac 1
Bastırsonuc
Bitir
D
?sayac < kuvvet
sonuc sonuc * sayi
sayac sayac + 1
Y
Örnek 9
sayi <- 2
kuvvet <- 4
48/53
![Page 49: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/49.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Sırayla 3 sayı alıp, en büyük sayıyı bulan programı yazınız.
Örnek 10
49/53
![Page 50: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/50.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Adım 1: Giriş N1
• Adım 2: Max N1
• Adım 3: Giriş N2
• Adım 4: Eğer (N2>Max)
Max = N2
• Adım 5: Giriş N3
• Adım 6: Eğer (N3>Max)
Max = N3
• Adım 7: Bastır “En büyük sayı: ”, Max
Örnek 10
N1 N2 N3 Max N2>Max N3>Max
Adım 1: 5 ? ? ? ? ?
Adım 2: 5 ? ? 5 ? ?
Adım 3: 5 7 ? 5 T ?
Adım 4: 5 7 ? 7 T ?
Adım 5: 5 7 3 7 F F
Adım 6: 5 7 3 7 F F
Adım 7: Bastır → En Büyük sayı 7
5, 7, 3 girişleri için:
50/53
![Page 51: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/51.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• N adet sayı girişi alıp, en büyüğünü bastıran bir program yazınız. Sayı girişleri teker teker olacaktır.
Örnek 11
51/53
![Page 52: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/52.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
• Adım 1: Giriş N
• Adım 2: Giriş sayi
• Adım 3: Max sayi
• Adım 4: sayac1
• Adım 5: Dongu (sayac < N)
sayac sayac + 1
Giriş sayi
Eğer (sayi > Max)
Max sayi
• Adım 6: Bastır Max
Örnek 11
52/53
![Page 53: Hafta 2: Akış Diyagramlarılevent.tc/courses/blm103/BLM103_hafta2_akis_diyagramlari.pdfadım adım gereken işlemlerin tasarlanmasıdır. Yukarıdan Aşağıya (Top-Down) Tasarım](https://reader030.vdocuments.net/reader030/viewer/2022040319/5e3f73e4cd8d324eb650b348/html5/thumbnails/53.jpg)
Algoritmalar ve Programlama I – BLM103Dr. V. E. Levent
Başla
GirişN, sayi
Max sayi
BastırMax
Bitir
D
sayac < NY
sayac1
sayac sayac +1
Girişsayi
sayi>Max
D
Y
Max sayi
Örnek 11
53/53