BÖLÜM 6. ÇEŞİTLİ KONULARDA ALGORİTMA VE AKIŞ ŞEMALARI



Benzer belgeler
BÖLÜM 1 GİRİŞ. Kitapta, daha çok örneklere yer verilerek konunun anlaşılırlığını arttırmak amaçlanmıştır.

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

PASCAL PROGRAMLAMA DİLİ YAPISI

Algoritmalar ve Karmaşıklık

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları


C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

Pascal Programlama Dili

ALGORİTMA VE PROGRAMLAMA I

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

Algoritmalar ve Programlama. Algoritma

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

Alıştırma 1: Yineleme

ALT PROGRAMLAR BÖLÜM Giriş Alt Programlar Hakkında Genel Bilgiler

KAYITLAR BÖLÜM Giriş

Yrd. Doç. Dr. Ümit ATİLA

HÜPP PYTHON I.HAFTA ALGORİTMA MANTIĞI, AKIŞ DİYAGRAMLARI VE PYTHON'A GİRİŞ

Pascal Programlama Dili (2. hafta)

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

TEKRARLAMA DEYİMLERİ BÖLÜM Giriş. 9.2 For-Do

Veri Yapıları ve Algoritmalar

Algoritma ve Programlamaya Giriş

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

ALGORİTMA VE PROGRAMLAMA I

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

7- Turbo Pascal Programlamada Alt Programlar (Procedure)

BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

Algoritma ve Akış Diyagramları

HSancak Nesne Tabanlı Programlama I Ders Notları

SAYILAR DOĞAL VE TAM SAYILAR

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

Olimpiyat Soruları. sonuçları tekrar fonksiyonda yerine koyup çıkan tüm sonuçları toplayan program (iterasyon sayısı girilecek)

YZM 2105 Nesneye Yönelik Programlama

Algoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

BİL-142 Bilgisayar Programlama II

Bireylerin yaşadığı çevreye uyum sağlaması durumunda ortaya çıkan olumsuzluklara PROBLEM denir.

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

Algoritmanın Hazırlanması

C++ Dilinde Bazı Temel Algoritmalar

PASCAL ARŞİVİ BÖLÜM Giriş. 7.2 Sistem Birimi ve Katarlar Chr

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

BİLGİSAYAR PROGRAMLAMA DERSİ

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi

3. Bölüm Algoritmalar

3- Turbo Pascal Programlamada Giriş Çıkış İşlemleri

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

Dr. Fatih AY Tel: fatihay@fatihay.net

DOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Algoritma ve Akış Şemaları

BÖLÜM 2: ALGORİTMALAR

F(A, N, K) // A dizi; N, K integer if N<0 then return K; if A[N]>K then K = A[N]; return F(A, N-1, K);

Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR

Belli sayıda eleman ekleme; type ip=^t; t=record data:integer; next:ip; end; listem=ip; var op,list:listem; c:char; i,a,el:integer;

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

ÖRNEK 1: Verilen iki sayının toplamının bulunmasının algoritması aşağıdaki gibi yazılır:

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal)

DİZİLER. Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştür.

Göstericiler (Pointers)

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

ÜNİT E ÜNİTE KONTROL DEYİMLERİ KARAR YAPILARI. IF Deyimi GİRİŞ

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

4- ALGORİTMA (ALGORITHM)

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

Algoritma ve Akış Diyagramları

YZM 2116 Veri Yapıları

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

Bölüm 1 PROGRAMLAMAYA GİRİŞ. Bölüm 2 ALGORİTMA

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ALGORİTMA VE AKIŞ ŞEMALARI

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

C SHARP UYGULAMA ÇALIŞMASI

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Matlab da Dizi ve Matrisler. Mustafa Coşar

PROGRAMLAMA TEMELLER. C Program Yap s

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

Algoritma kelimesinin kökeni:

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Algoritma ve Programlama I

Bölüm 8, Yrd. Doç. Dr. A. Kadir YALDIR PAÜ Bilgisayar Mühendisliği Bölümü BÖLÜM 8: DİZİLER

BİLGİSAYAR PROGRAMLAMA DERSİ

Örnek...3 : Aşağıdaki ifadelerden hangileri bir dizinin genel terim i olabilir?

ALGORİTMA (ALGORITHM) M.İLKUÇAR -

Veritabanı. SQL (Structured Query Language)

Transkript:

BÖLÜM 1. GİRİŞ BÖLÜM 2. ALGORİTMALARA GENEL BAKIŞ BÖLÜM 3. ALGORİTMALAR BÖLÜM 4. ALGORİTMA VE AKIŞ ŞEMALARI BÖLÜM 5. DOSYALAMA SİSTEMLERİ BÖLÜM 6. ÇEŞİTLİ KONULARDA ALGORİTMA VE AKIŞ ŞEMALARI

ALGORİTMALARA GENEL BAKIŞ Algoritmanın Tanımı Algoritmanın Yapısı Algoritmanın Dili

ALGORİTMANIN TANIMI Algoritmalar, problemleri çözmek için adım adım procedürlerdir. Algoritma, bilgisayarda problemlerin bir sınıfını çözmek için bir metottur. Algoritma, bir mekanik kural veya otomatik metod veya bazı matematiksel işlemlerin düzenlenmesi için programdır. Algoritma, soruların herhangi verilen bir sınıfına cevaplar bulmakta kullanılabilen bir hesaplama prosedürü için etkili komutların kümesidir. Algoritma, açık olarak tanımlanmış olan ve herhangi bir bilgisayara icra edilen bir prosedürdür.

ALGORİTMANIN YAPISI Atama adımları (Bir değişkene bazı değerlerin atanması gibi) Aritmetik adımlar (Toplama,bölme,çıkarma,çarpma gibi) Mantıki adımlardır (İki sayının karşılaştırılması gibi)

: = atama sembolüdür. örnek : Max : = a (a nın değeri max değişkenine atanır.) örnek : b := 5 (b değişkenine 5 değeri atanır.)

ARİTMETİK ADIMLAR ( + ) Toplama İşlemi ( - ) Çıkarma İşlemi ( * ) Çarpma İşlemi ( / ) Bölme İşlemi ( = ) Aktarma ve Eşitlik ( ^ ) Üs Alma İşlemi (<>) Eşit Değil (Farklı) İşlemi ( < ) Küçüktür İşlemi ( > ) Büyüktür İşlemi (<=) Küçük ya da Eşit İşlemi (>=) Büyük ya da Eşit İşlemi

MANTIKİ ADIMLAR örnek : 5 < 3 false 6 > 2 true örnek : a := 4 6 > a true a < 2 false

ALGORİTMANIN DİLİ Kodlama Şartlı Yapılar Döngü Yapıları

KODLAMA 1 ) Procedure = Bir algoritmanın kodlanmasına başlanan ilk ifadedir. Bu ifadede ; örnek: Procedure max(l = list of integers) Burada algoritmanın adı max iken tamsayıların listesinin maksimumunu bulur (L). 2) Assignments = Atamalar ve ifadelerin diğer tipleri Assigments ifadesi değişkenlere değer atamada kullanılır. Bu ifadede sol taraf değerin adını alırken sağ taraf ise prosedürlerle tanımlanan fonksiyonları, değerleri atanan değişkenleri, sabitleri içeren bir ifade yada deyimdir. Sağ tarafta ayrıca aritmetik işlemlerin herhangi biri de bulunabilir. örnek: Max : = a örnek: b := 5 + 3

IF THEN VE IF THEN - ELSE Genel Yazılımı : If kontrol ifadesi Then ifade1; If kontrol ifadesi Then ifade1 else ifade2; Açıklama : Kontrol ifadesi sonucu doğruysa ifade1 ile belirtilen ifade ya da ifade grubunun yapılmasını sağlayan deyimdir. Bazı durumlarda karşılaştırma yanlışsa, hiçbir işlem yapmaya gerek yoktur. Böyle durumlarda else kısmına gerek kalmaz ve if de- yimi, Then kısmından sonraki ifade ile bitirilir. Örnek 1: If Ort > 50 then Writeln( Geçti ); writeln( ne olacak şimdi ); Örnek 2: If Ort > 50 then Writeln( Geçti ) else writeln( ne olacak şimdi ); Tek Dallanma Çift Dallanma

Balık elimde olduğu sürece dolan 5 kez dön WHILE - DO FOR - DO Topu yakalayıncaya kadar dön REPEAT - UNTIL

Balık elimde olduğu sürece dolan Genel Yazılımı WHILE - DO : While kontrol ifadesi Do tek veya blok ifade; Açıklama : Do kelimesinden sonraki tek veya blok ifadeyi, Kontrol ifadesi doğru olduğu müddetçe işletir. Buradaki kontrol ifadesi, mantıksal ifade veya mantıksal değişkendir. Tek veya blok ifadeyi işletmeden önce, kontrol ifadesini test eder ve yanlışsa ifadeleri hiç işletmeden döngüden çıkar. Örnek Program : Var k:integer; Begin k:=1; while k < 27 do begin write(k+5); k:=k*2; end; writeln; writeln(k); End. k Kontrol ifadesi (k<27) Çıktı 1 1 < 27 doğru 6 2 2 < 27 doğru 7 4 4 < 27 doğru 9 8 8 < 27 doğru 13 16 16 < 27 doğru 21 32 32 < 27 yanlış - 32-32

Topu yakalayıncaya kadar dön REPEAT - UNTIL Genel Yazılımı : Repeat komut veya komutlar Until şart ; Açıklama : Program akışı döngü içerisine girdiği anda, Until komutunda belirtilen şart sağlanıncaya kadar iki komut arasındaki işlemler sürekli olarak tekrarlanır. While döngüsünün Repeat den en önemli farkı, önce kontrol ifadesine bakılır, sonra döngü bloğu işletilir. Repeat ise sonradan kontrollü döngüdür. Yani, önce döngü bloğu işletilir, sonra kontrol ifadesine bakılır. Önceki ifadeler Önceki ifadeler Döngü Bloğu Konrol İfadesi E H Repeat Döngüsü While Döngüsü Konrol İfadesi H Sonraki İfadeler E Döngü Bloğu Sonraki İfadeler

FOR - DO 5 kez dön Genel Yazılımı : For değişken:= başlangıç To\DownTo bitiş Do değeri değeri Açıklama : Belirlenen işlem ya da işlemleri istenilen sayıda tekrarlamak veya istenen iki aralıkta değer elde etmek için kullanılır. Örnek Program : 1 den 100 e kadar olan sayıların toplamını bulan program. Var k, toplam:integer; Begin toplam:=0; for k:=1 to 100 do toplam:=toplam+k; writeln(toplam); End. k Toplam:=Toplam+k Açıklama? 0 Toplam değişkenine 0 değerini ver 1 0 + 1 = 1 k ya 1 değeri ver ve toplama ekle 2 1 + 2 = 3 k yı 1 artır ve toplama ekle 3 3 + 3 = 6 k yı 1 artır ve toplama ekle......... 100 4950 + 100 = 5050 k yı 1 artır ve toplama ekle

AKIŞ ŞEMALARI Başlama, Bitiş ve bağlantı İşlemleri Giriş ve Okutma İşlemleri Atama ve Hesaplama İşlemleri Yazdırma İşlemleri Akış şemalarında kullanılacak şekiller ve bunların anlamı Karar ve Kontrol İşlemleri Akış yönünü belirten işlemler

ALGORİTMALAR Algoritmaların Oluşturulması Algoritmaların Özellikleri Arama Algoritmaları Sıralı Arama (Sequential Search) Algoritması İkili Arama (Binary Search) Algoritması Sıralama Algoritmaları Bubble Sort Shell Sort Selection Sort Quick Sort Şifreleme Algoritmaları Simetrik (Gizli) Anahtar Algoritmaları Asimetrik Kripto-Algoritmalar

Algoritmaların Özellikleri Giriş : Bir algoritma açıkça belirtilen bir kümeden giriş değerlere sahiptir. Çıkış : Bir algoritmanın her bir giriş değerinin kümesinden, çıkış değerinin kümesi üretilir. Çıkış değerleri problemin sonucunu içerir. Tanımlılık : Algoritmanın adımları tam olarak tanımlanmalıdır. Sonluluk : Bir algoritma herhangi bir giriş kümesi için sonlu sayıdaki adımlardan sonra istenilen sonucu üretmelidir. Etkinlik : Algoritmanın her bir adımı tam olarak ve sınırlı bir zamanda gerçekleşebilmelidir. Genellik : Prosedür, sadece belli giriş değerleri için değil istenilen formdaki bütün problemler için uygulanabilir olmalıdır.

Bubble Sort Dizide her bir eleman, sırasıyla kendisinden sonraki eleman ile karşılaştırılır ve gerektiğinde yer değiştirme yapılabilir. Bu sıralama işlemi, yer değiştirme olduğu sürece devam edecektir. 1. Tarama 2. Tarama 3. Tarama k. Tarama 1. 2. 3. (n-2). (n-1). n....????? 1. 2. 3. (n-2). (n-1). n....????? 1. 2. 3. (n-2). (n-1). n....????? : : : : : : : : 1. 2. 3. (n-k). (n-k+1). (n-1). n....????... Sırasız Sayılar 25 12 35 10 18 1. 2. 3. 4. 5. 1. Tarama 1.1 25 12 35 10 18 1.2 12 25 35 10 18 1.3 12 25 35 10 18 1.4 12 25 10 35 18 12 25 10 18 35 2. Tarama 2.1 12 25 10 18 35 2.2 12 25 10 18 35 2.3 12 10 25 18 35 12 10 18 25 35 3. Tarama 3.1 12 10 18 25 35 3.2 10 12 18 25 35 3.3 10 12 18 25 35 Örnek : 4. Tarama 4.1 10 12 18 25 35 10 12 18 25 35

Selection Sort Sırasıyla her bir eleman kendisinden sonraki elemanlardan minumum olanı ile yer değiştirir. Bu sıralamada geçerli olan minimum ile yer değiştirme, artan düzen içindir. Azalan düzende yapılacak sıralama için, her eleman kendisinden sonraki maksimum eleman ile yer değiştirilir. 1. Tarama 2. Tarama 3. Tarama (n-1). Tarama 1. 2. 3. (n-1). n.... Min 1 1. 2. 3. (n-1). n. Min 1... Min 2 1. 2. 3. (n-1). n. Min 1 Min 2... Min 3 : : : : : : : 1. 2. 3. (n-1). n. Min 1 Min 2 Min 3... Sırasız Sayılar 25 12 35 10 18 1. 2. 3. 4. 5. 1. Tarama 25 12 35 10 18 Min=D=10 2. Tarama 10 12 35 25 18 3. Tarama 10 12 35 25 18 4. Tarama 10 12 18 25 35 Sıralı Sayılar 10 12 18 25 35?? X? Min=D=18 Min=D=18? X Min=D=18

Shell Sort Elemanlar dizisi ikiye bölünür. Bunun sol ve sağındaki elemanlar karşılıklı taraflar arası kontrol edilip yer değiştirilir. Bu işlem daha küçük ikili bölmelere ayırarak devam eder. 1. Tarama Aralık=(n+1) / 2 1. 2. (n+1)/2 n. 1 2... 1. Tarama Aralık=(n+1) / 4 1. 2. (n+1)/4 3(n+1)/4 n. 1 2... 1 2 1 2 : : : : : : : k. Tarama Aralık=1...... 1. 2. 3. (n-1). n.... 1. 2. 3. 4. 5. 6. 7. 8. 1. Tarama 25 10 19 46 65 35 8 32 Aralık:(1+8)/2=4 2. Tarama 25 10 8 32 65 35 19 46 Aralık:4/2=2 3. Tarama 8 10 25 32 19 35 65 46 Aralık:2 4. Tarama 8 10 19 32 25 35 65 46 Aralık:2/2=1 8 10 19 25 32 35 46 65

Quick Sort Dizi ikiye bölünüp bir orta eleman alınır. Sol taraftaki bir bölmenin sıra düzenine uymayan orta değerden büyük ilk elemanı ile, sağ taraftaki bölmenin sıra düzenine uymayan orta değerden küçük ilk elemanı ile yer değiştirilir. Sollu ve sağlı her bölme tekrar kendi içinde ikiye bölünüp, taraflar arası yer değiştirmelere devam edilir. Hızlı Sıralama(1,n) orta 1. Tarama 1. 2. 3. 4. 5. 6. 7. 8. Hızlısırala(1,8) 25 12 48 36 55 28 51 42 Ara1=1 < < < > > > Ara2=8 2. Tarama orta Hızlısırala(1,3) 25 12 28 36 55 48 51 42 Ara1=1 < > > Ara2=3 12 25 28 36 55 48 51 42 1. 2. (n+1)/2 (n-1). n. Ara1... Hızlı Sıralama(1,((n+1)/2)-1)... < < > > Ara2 Hızlı Sıralama(((n+1)/2)1,n) 4. Tarama orta Hızlısırala(5,8) 12 25 28 36 55 48 51 42 Ara1=5 < > Ara2=8 12 25 28 36 42 48 51 55 1. (n+1)/4 (n+1)2-1....... < < > > Ara1 Ara2 (n+1)/2-1. 3(n+1)/4 n....... < < > > Ara1 Ara2

Sıralı Arama Bu metodun uygulanmasında, arama yapılan dizinin sıralı ya da sırasız düzende olması önemli değildir. Aranılan eleman, dizinin ilkinden başlanıp bulunana kadar, teker teker karşılaştırılır. Bulunduğunda arama işlemine son verilir. Aranılan elemanın yok olduğu, ancak dizinin baştan sona taranması ile anlaşılabilir. Aranan: k. 1. 2. 3. k. (n-1). n.......?x?x?x? Aranan: 35 1. 2. 3. 4. 5. 6. 7. 8. 45 83 21 49 69 12 35 40?X?X?X?X?X?X? Bulundu Sıra: 7 Aranan: 25 1. 2. 3. 4. 5. 6. 7. 8. 45 83 21 49 69 12 35 40?X?X?X?X?X?X Bulunamadı Sıra: 0

Alt 1. Arama 1. 2. 3. (n / 2). (n-5). ( n-1). n.... Orta... aranan Eğer D(n/2)= Aranan ise bulundu. Değilse 2. arama 2. Arama İkili Arama Bu metodun uygulanmasında arama yapılan dizinin sıralı düzende olması gerekir. İstenilen eleman, dizinin ortasından başlanarak aranır. Bu eleman, orta elemandan küçükse ilk yarısı, büyükse son yarısı, daha dar arama kesimi olarak ele alınır. Bu şekilde arama işlemi aranan bulununcaya yada daralmakta olan kesimin bitimine kadar sürer....... Üst 1. 2. 3. (n / 2). (n-5). ( 3n/4). n. Alt... Aranan Eğer D(3n/2)= Aranan ise bulundu. Değilse 3. arama 3. Arama...... orta 1. 2. 3. (n / 2). (5n/4). 3 n/4. n. Alt... Orta... Eğer D(5n/8)= Aranan ise bulundu. Değilse bulunamadı Üst... Üst Aranan : 35 1. 2. 3. 4. 5. 6. 7. 8. 12 21 35 40 45 49 69 83 alt orta üst 1. 2. 3. 4. 5. 6. 7. 8. 12 21 35 40 45 49 69 83 alt orta üst 1. 2. 3. 4. 5. 6. 7. 8. 12 21 35 40 45 49 69 83 alt orta üst

Program : Verilen dizideki elemanları büyükten küçüğe doğru sıralayan program Program Bubble_Sort; Uses crt; Type Stip = Array[1..10] of integer; Const S:Stip = (27, 3, 4, 5, 32, 56, 33, 33, 63, 1); N=10; Var i, j: byte; Procedure Degis(var a,b: integer); Var c:integer; Begin c:=a; a:=b; b:=c; end; Procedure Bubble (var s:stip; N:integer); Begin For i:=2 to n do For j:=n downto i do İf s[j-1] < s[j] then degis (s[j-1], s[j]); End; Begin Bubble(s,n); Clrscr; For i:=1 to n do writeln(s[i]); Readln; End.

Program Çıktısı :

Örnek...:10 elemanlı bir sayı dizisinin elemanlarının toplamını bulan algoritma ve akış şemasının oluşturulması. B I=1 TOPLAM=0 A(I) TOPLAM=TOPLAM+A(I) A1. Başla, A2. I=1,TOPLAM=0 al, A3. A(I) yı gir, A4. TOPLAM=TOPLAM+A(I) al, A5. Eğer I=10 ise A7. adıma git, A6. I=I+1 al ve A3. adıma geri dön, A7. TOPLAM ı yaz, A8. Dur. I=10 I=I+1 TOPLAM DUR akış şeması

Algoritmanın Pascal Dilindeki Karşılığı: Program dizi_toplamı; Var Toplam,i:integer; A:=array[1..10] of integer; Begin Toplam:=0; For i:=1 to 10 do begin write( dizi elemanlarını gir : ); readln(a[i]); toplam:=toplam+a[i]; end; writeln( toplam =,toplam); end. Verilen örnekte A2. adımda, bir I indisi ve TOPLAM değişkeni tanımlamıştır. Burada tanımlanan I indisi 1 den 10 a kadar artırılarak A dizisinin elemanlarının girişi yapılmaktadır ve girilen her eleman TOPLAM değişkene ilave edilerek toplatılmaktadır. A3. adımda A dizisinin I yıncı elemanı girilerek A4. Adımda bu eleman TOPLAM değişkene ilave edilmektedir. Bu işlem I indisi 10 a kadar devam etmektedir. Sorgulama işlemi A5. adımda yapılarak bu doğrultuda algoritma yönlendirilmektedir.

Program Çıktısı :

DOSYALAMA SİSTEMLERİ Dosyalama Sistemleri Sırasal Erişimli Dosyalar Doğrudan Erişimli Dosyalar Sırasal Erişimli Dosyalara İlişkin Algoritma ve Akış Şemaları Doğrudan Erişimli Dosyalara İlişkin Algoritma ve Akış Şemaları

DOSYALAMA SİSTEMLERİ Dosyalama sistemlerini, bilgilerin kalıcı olmalarını sağlamak amacıyla, verilerin disk, disket ve kaset gibi manyetik yüzeylerde saklanarak gerektiğinde kullanılabilmesini sağlayan sistemler olarak adlandırılabilirler. Diğer bir ifade ile, genel olarak birbirleriyle ilişkili verilerin birer kayıt biçiminde saklandıkları ortam olarak da tanımlanabilir.

Sırasal Erişimli Dosyalar: Bilgiler kaydediliş sırasına göre dosya içerisinde yer alırlar. Bu yüzden istenilen bir bilgiye ulaşmakta sırasallık gerekmektedir. Ulaşılmak istenilen kayda ilişkin herhangi bir bilgi verilerek dosya baştan itibaren taranmak suretiyle istenilen bilgiye ulaşmak mümkün olmaktadır. Sırasal erişimli dosyalarda istenilen bir kaydın silinebilmesi için geçici bir dosyanın oluşturulması gerekir. Silinecek kişiye ait herhangi bir bilgi girildikten sonra bu bilgiye göre dosya taranarak silinmesi istenilen kaydın dışındaki diğer kayıtlar geçici olarak adlandırılan dosyaya yazılır. Daha sonra ana dosya olarak adlandırılan ilk dosya silinerek geçici olarak oluşturulan dosya ana dosya olarak yeniden tanımlanır. Sırasal erişimli dosyalarda istenilen bir kayda ulaşmak için, bu kayda ilişkin herhangi bir bilgi ile diğer kayıtların bu bilgilerinin karşılaştırılması gerekmektedir. Dolayısıyla çok fazla kayıt içeren dosyalarda bir bilgiye ulaşmak zaman kaybına yol açabilmektedir. örnek :

Örnek...: Sırasal erişimli bir dosyaya çalışanlara ait ad-soyad, sicil numarası ve maaş bilgilerini kaydeden algoritma ve akış şemasının oluşturulması A1. Başla, A2. Dosyayı Tanımla,, A3. A yı gir {ad-soyad} A4. S yi gir {sicil numarası} A5. M yi gir {maaş} A6. A,S ve M yi dosyaya yaz, A7. Tekrar kayıt yapılacak mı? { E ya da H } A8. Eğer E ise A3. Adıma geri dön, A9. Dosyayı kapat ve dur.

B Dosyayı Tanımla A, S, M A, S, M Tekrar Kayıt Yapılacak mı Dosyayı Kapat DUR Sırasal erişimli bir dosyaya kayıt yapılmasına ilişkin akış şeması

Algoritmanın Pascal dilindeki yazılımı: program kayıt; var a:string[20]; s:integer; m:longint; c:char; t:text; begin assign(t, bilgi ); rewrite(t); c:= e ; while(c<> h ) do begin write( adı soyadı..: ); readln(a); write( sicil numarası..: ); readln(s); write( maası..: ); readln(m); writeln(t,a); writeln(t,s); writeln(t,m); write( tekrar kayıt yapılacak mı(e/h)? ); readln(c); end; close(t); readln; end.

Verilen örnekte, A2. adımda kayıt amacıyla dosya tanımlanmaktadır. A3, A4 ve A5. adımlarda dosyaya kaydedilecek bilgilerin girişi yapılmaktadır. Klavyeden girilen bilgilerin dosyaya yazdırılması işlemi A6. adımda gerçekleştirilmektedir. A7. adımda dosyaya tekrar kayıt yapılıp yapılmayacağı sorgulanmaktadır. Eğer girilen cevap E ise A3. adıma geri dönülerek yeniden bilgi girişi istenmektedir. Aksi halde dosya kapatılarak işlemlere son verilmektedir.

Doğrudan Erişimli Dosyalar: Bilgiler birer kayıt numarası ile dosya içerisinde saklanmaktadır. Bu kayıt numaraları bilgilerin adreslerini tanımlarlar. İstenilen bir kayda ulaşmak; o kayda ilişkin kayıt numarasının girilmesi ile mümkün olmaktadır. Bu tür dosyalama sistemleri sırasal erişimli dosyalara göre daha kullanışlıdır. Doğrudan erişimli dosyalara kayıt yapılırken belirli bir kayıt sırası yoktur, yani kayıt numaralarının arka arkaya verilmesi gerekmez.. Örneğin önce 1 numaralı kayıt yapıldıktan sonra 20 numaralı kayıt arkasından yapılabilir. İstenilen kayda erişildiğinde bu kayıttaki ilgili bilgi kontrol edilerek başlangıçta verilen işaretin olup olmadığı sorgulanabilir ve bu doğrultuda ilgili kaydın boş olup olmadığı anlaşılabilir. Doğrudan erişimli dosyalarda istenilen bir kayda ulaşmak sırasal erişimli dosyalara göre daha kolaydır. Bu tür dosyalamada karşılaştırma işlemleri yoktur. İstenilen kayda ilişkin kayıt numarası verilerek doğrudan o kayda ulaşmak mümkün olmaktadır. Örnek :

Örnek...: Doğrudan erişimli bir dosyada ad soyad, sicil numarası ve maaş bilgilerini kaydeden algoritma ve akış şemasının oluşturulması A1. Başla, A2. Dosyayı tanımla, A3. KN yi gir {kayıt numarası}, A4. A ya git {adı soyadı}, A5. S yi gir {sicil numarası}, A6. M yi gir{maaş}, A7. KN ye konumlan, A8. Dosyayı yaz, A9. Tekrar kayıt yapılacak mı? {E ya da H}, A10. Eğer E ise A3. adıma geri dön, A11. Dosyayı kapat, A12. Dur.

Dosyayı Tanımla KN A, S, M KN ye Konumlan Bilgileri KN ye yaz Tekrar Kayıt Yapılacak mı Dosyayı Kapat DUR Doğrudan erişimli dosyada kayda ilişkin akış şeması

Algoritmanın Pascal dilindeki yazılımı: program kayit; type bilgi=record a:string[20]; s,m:longint; end; var dosya:file of bilgi; kay:bilgi; kn:integer; c:char; begin assign(dosya, maas.dat ); {$I-}; reset(dosya); {$I+}; if(ioresult<>0) then rewrite(dosya); c:= e ; while(c<> h ) do begin write( Kayit numarasini giriniz..: );readln(kn); write( Adi soyadi..: );readln(kay.a); write( Sicil numarası..: );readln(kay.s); write( Maasi..: );readln(kay.m); seek(dosya,kn); write(dosya,kay); write( Tekrar kayit yapilacak mi(e/h)..? );readln(c); end; close(dosya); end.

Sırasal erişimli dosyalardan farklı olarak bu tür dosyalama sistemlerinde bilgiler önceden verilen kayıt numaraları ile belirlenen adreslere kaydedilmektedir. Bu doğrultuda A3. adımda verilen KN değişkeni kaydedilecek bilgilere ilişkin kayıt bölgesinin yerini tanımlamak üzere girilmektedir. Sonraki adımlarda girilen bilgiler sonucunda, A7. adımda dosyadan KN ye konumlanarak girilen bilgilerin buralara yazılması sağlanmaktadır. Bu işlemler istenildiği kadar kaydın yapılmasına kadar devam etmektedir.

Örnek...:Girilen iki sayının OBEB ve OKEK ini bulan pogramın yazılması. Uses crt; Var a,b,t,k:byte; Begin Clrscr; Write('1. sayiyi giriniz : '); readln(a); Write('2. sayiyi giriniz : '); readln(b); t:=a*b; if (a<b) then begin k:=a; a:=b; b:=k; end; repeat k:=b; b:=a mod b; a:=k; until b=0; writeln('obeb : ',a); write('okek : ',t/a:6:5); readln; end.