VERİ YAPILARI VE PROGRAMLAMA (BTP104) Yazar: Doç.Dr. İ. Hakkı CEDİMOĞLU S1
SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir. "Uzaktan Öğretim" tekniğine uygun olarak hazırlanan bu ders içeriğinin bütün hakları saklıdır. İlgili kuruluştan izin almadan ders içeriğinin tümü ya da bölümleri mekanik, elektronik, fotokopi, manyetik kayıt veya başka şekillerde çoğaltılamaz, basılamaz ve dağıtılamaz. Copyright 2006 by Sakarya University All rights reserved No part of this course content may be reproduced or stored in a retrieval system, or transmitted in any form or by any means mechanical, electronic, photocopy, magnetic, tape or otherwise, without permission in writing from the University. Sürüm 1 Sakarya 2006 1
S 2
VERİ YAPILARI VE C YE GİRİŞ Bu Haftanın Hedefi: Bu haftaki dersimizde veri yapılarına ve C'ye giriş yapılacak, Dev C++ kullanımı hakkında detaylı bilgi verilecektir.. Bu Haftanın Materyalleri Kullanılan semboller Animasyon Soru Veritabanı Bağlantılı Soru Simülasyon Püf Noktası 1
VERİ YAPILARINA GİRİŞ Bir problemin çözümünde kullanılan komutlar dizisine algoritma adı verilir. Algoritma, bir problemi çözmek için geliştirilmiş kesin bir yöntemdir. Bir algoritma, programlama dillerine (C, Pascal gibi) uygulandığında program adını alır. Algoritmalar tarafından işlenen en temel elemanlara (sayısal bilgiler, metinsel bilgiler, resimler, sesler, vb.) veri adı verilir. Bir algoritmanın etkin, anlaşılır ve doğru olabilmesi için algoritmanın işleyeceği verilerin düzenlenmesi gerekir. Verilerin düzenlenme biçimini belirleyen yapıtaşlarına veri yapıları denir. Bir program değişkeni bile basit bir veri yapısı olarak kabul edilebilir. Değişik algoritmalarda verilerin diziler, yığınlar, kuyruklar ve ağaçlar gibi veri yapıları şeklinde düzenlenmesi gerekebilir. Bir programda veri, yapı ve algoritma, önemli ve birbirlerinden ayrılmaz bileşenlerdir. Verilerin düzenlenme biçimleri de önemlidir. Çünkü, yapı iyi tasarlandığında, etkin, anlaşılır, doğru ve hızlı çalışıp az kaynak kullanan algoritma geliştirmek kolaylaşır. C ye Giriş Veri yapıları ve programlama dersi, C programlama dili kullanılarak anlatılacaktır. Veri yapılarının herhangi bir programlama dili ile direkt ilişkisi yoktur, bütün programlama dillerinde (C, Pascal, Basic, vb.) uygulanabilir. C bilgisi dersin amacı değildir, veri yapılarını öğrenmek için bir araçtır. Bizim bu derste C programlama dilini seçmemizin sebepleri aşağıda sıralanmıştır; a. C taşınabilir (platform bağımsız) bir programlama dilidir. C programlama dili ile yazılan bir program farklı bir işletim sisteminde (MS-DOS, UNIX, LINUX, XENIX, vb.) üzerinde hiçbir değişiklik yapılmadan yada basit düzenlemeler yapılarak kullanılabilir. Bu özellik değişik tipteki bilgisayarlara ve işletim sistemlerine program yazan programcılara büyük avantajlar sağlar. b. C yapısal bir programlama dilidir. Yapısal dillerde kod ve veri bellekte ayrı bölgelerde tutulur, bir işlem icrasında o anda gerekli olan değişken ve datalar belleği kullanırlar. Ayrıca, karar verme komutları (if-else), çoklu kıyaslama komutları (switch-case), döngü komutları (while, for, do) ve döngü icra şekli komutları (break-continue) sayesinde gelişmiş programlama yapısına ve icra akış komutlarına sahiptir. 2
c. Programlama dilleri yapılarına göre 3 seviyeye ayrılır; Alçak Seviyeli Programlama Dilleri : Makine diline çok yakındır. Program geliştirirken bilgisayarın iç yapısı ve işleyiş mekanizması iyi bilinmelidir. Assembler programla dili bu gruba en iyi örnektir. Orta Seviyeli Programlama Dilleri : Hem alçak seviye komutları içeren hem de yüksek seviye fonksiyonlarla desteklenmiş dillerdir. Programcı gerekli olduğu yerlerde alçak seviye komutları kullanarak yüksek seviye programlama dilleri ile yapılamayacak işlemlerin icrasını sağlayabilir, ayrıca hazır gelişmiş fonksiyonlar sayesinde birçok işlemi kolaylıkla gerçekleştirebilir. C programlama dili bu grubu temsil etmektedir. Yüksek Seviyeli Programlama Dilleri : Birçok işlemin derleyici ayacılığıyla, hazır komut kümelerinin kullanımıyla yapıldığı programlama dilleridir. Örnek olarak Pascal, Basic, Cobol verilebilir. Programla dilleri, seviyeleri ile yetenekleri ters orantılıdır. Alçak seviyeye yaklaştıkça dilin yeteneği ve gücü artar, programlar daha hızlı çalışır, kısıtlamalar azalır, fakat kod uzunluğu ve karmaşıklığı artar, büyük projeler gerçekleştirmek zorlaşır. C orta seviyeli programlama dillerinin yukarıda anlatılan özellikleri sayesinde günümüzün temel programlarının birçoğunda kullanılmıştır. Örnek olarak UNIX, MS-DOS, WINDOWS, LINUX işletim sistemleri, NOVELL NETWARE network sistemi, DBase Clipper veri tabanı yönetim sistemi, Auto Cad tasarım paketi, WORD, EXCEL, LOTUS programları verilebilir. BloodShed Dev-C++ 4 Derleyicisinin Kullanımı Aşağıda BloodShed Dev-C++ 4 derleyicisinin kullanımını anlatan animasyon bulunmaktadır; 3