Programlama Dilinin Özellikleri *Kaynak Kodun Taşınabilirliği: Taşınabilirlik (portability), bir sistem için yazılmış kaynak götürüldüğünde hatasız olarak çalıştırılabilmesi demektir. kodunun başka bir sisteme derlenerek, doğru bir şekilde Programlama dilleri ISO (International Standard Organization) ve ANSI (American National Standard Institute) tarafından standartlaştırılırlar. İlk olarak 1989 yılında standartları oluşturulan C dili, diğer programlama dillerine göre daha taşınabilir özelliğe sahiptir. *Programın Verimliliği: Verimlilik (efficiency), bir programın hızlı çalışması ve daha az bellek kullanma özelliğidir. Programın çalışma hızı ve bellek kullanımının değeri bir çok etkene bağlıdır fakat temelde programlayıcının ve programlama dilinin tasarımının verimlilik üzerinde etkisi şeklinde iki başlıkta toplanabilir. Bu açıdan bakıldığında C verimli bir dildir. Programlama Dilinin Özellikleri *Programlama Dilinin Kullanım Alanı: Bazı diller özel uygulama alanları için tasarlanır. Bazı diller ise geniş bir uygulama alanına sahiptir. C dili bir sistem programlama dili olarak doğmasına karşın, güçlü yapısından dolayı genel amaçlı bir programlama dili haline gelmiştir. Uygulama alanlarına göre programlama dilleri: • Bilimsel ve mühendislik uygulama dilleri (Pascal, C, Fortran. C temelli programlama dilleri akademik çalışmalarda sıkça kullanılmaktadır). • Veri tabanı dilleri (Xbase, Oracle Forms, Visual Foxpro, MySQL). • Genel amaçlı programlama dilleri (Pascal, C, Basic). • Yapay zeka dilleri (Prolog, Lisp). • Simülasyon dilleri (GPSS, Simula 67). • Makro dilleri (awk, Perl, Python, Tcl, JavaScript). • Sistem programlama dilleri (Simgesel makine dilleri, BCPL, C, C++, occam). Örneğin; UNIX işletim sisteminin %80’lik bir kısmı C dili ile, geri kalanı ise simgesel makine dili ile yazılmıştır. Programlama Dilinin Özellikleri *Programlama Dilinin Alt Programlama Özelliği: Bir bütün olarak çözülmesi zor bir problemin parçalara ayrılarak çözülmesi ve sonra parçalar arasında bağlantının sağlanması programlamada sıkça kullanılan bir yöntemdir. Alt programlama yeteneği, bir programlama dilinin programı parçalar halinde yazmayı desteklemesi anlamına gelir. C dilinde de alt programlama özelliği mevcuttur ve bu alt programlar C dilinde fonksiyon olarak adlandırılır. Programlama Dilinin Özellikleri C Programlama Dili ve Özellikleri: 1. 2. 3. 4. 5. Orta seviyeli bir programlama dilidir. C dili hem yüksek seviyeli dillerin kontrol deyimleri, veri yapıları gibi avantajlarına sahipken, hem de bitsel işleçler gibi makine kodu deyimlerini yansıtan işleçlere sahiptir. Yani hem makinenin algısına, hem de insan algısına yakın bir dildir. Verimi yüksek bir dildir. C dili kullanarak program yazmak, aynı işlemi yapacak programı makine dilinde yazmaktan daha kolaydır. Bunun yanında programın verimi de aynı oranda düşmez. Günümüzde sistem programları genellikle C dili ile yazılmaktadır (örn; işletim sistemleri, aygıt sürücüleri). C algoritmik bir dildir. C dilinde program yazmak için yalnızca dilin sözdizimini ve anlamsal yapısını bilmek yeterli değildir. Aynı zamanda genel algoritma bilgisi de gerekir. Taşınabilirliği çok yüksek bir dildir. Programlama Dilinin Özellikleri C Programlama Dili ve Özellikleri (devamı): 6. 7. C, ifade gücü yüksek, okunabilirlik özelliği güçlü bir dildir. C çok esnek bir dildir. Diğer dillerden farklı olarak programcıya kısıtlamalar getirmez. 8. C güçlü bir dildir, çok iyi tasarlanmıştır. Hatta, C’deki işleçler ve yapıların bir çoğu daha sonra başka programlama dilleri tarafından da benimsenmiştir. 9. C verimli bir dildir. C’de yazılan programlar, dilin düzeyinin düşük olması nedeni ile hızlı çalışır. Verimlilik konusunda assembly dillerle rekabet edebilir. C’nin standart bir kütüphanesi vardır. Bu kütüphane ile sık yapılan işlemler için ortak bir arayüz sağlanmıştır. 10. C programlama dilinin eğitimi diğer dillere göre daha zordur. 11. C dilinin esnek ve güçlü olması programcının hata yapma riskini arttırır. C dilinde yazılan kodlarda yapılan yanlışlıkların bulunması göreceli olarak daha zor olabilir. Tarihçe C Programlama Dilinin Tarihçesi: C, 1970’li yılların başlarında AT&T Bell laboratuarlarında geliştirilmiş bir programlama dilidir. C dilinin, UNIX işletim sisteminin bir yan ürünü olarak doğduğu söylenebilir. İlk olarak Dennis Ritchie tarafından UNIX işletim sisteminin yazılmasında kullanılan C dili, 1983 yılında ANSI tarafından standartlaştırıldı. Algoritma ve Akış Diyagramları Bilgisayar yardımıyla çözülecek olan aşamalardan geçmesi gerekmektedir. 1. 2. 3. 4. 5. 6. 7. bir problemin aşağıdaki Problemin tanımı Çözüm yolunun tespiti Algoritmanın hazırlanması Akış diyagramının çizilmesi Programın hazırlanması Hazırlanan programın test edilmesi Uygulama Yukarıdaki sıralamada da görüldüğü gibi, algoritma ve akış diyagramının hazırlanması, programın yazılmasında önemli bir aşamadır. Algoritma ve Akış Diyagramları Problemin Tanımı: Bir problemin çözümünde ilk adım olan problemin tanımı, problemin açık seçik bir dille ifade edilmesidir. Program hazırlama aşamasına geçilmeden önce problem iyice anlaşılmalıdır. Bu aşamada, hazırlanacak olan programın ana hatları belirlenir. Çözüm Yolunun Tespiti: Bu aşamada, problemin işleyişi hakkında bilgiler verilir. Hangi bilgilerin girileceği, veri giriş-çıkış ekran formlarını şekil, kullanılacak olan yapıları, sonuçta hangi verilerin alınacağı ve sonuçların kullanıcıya nasıl ve hangi yollarla yansıtılacağı açık olarak belirlenir. Algoritma ve Akış Diyagramları Algoritma: Bir problemin ideal çözümüne giden yola algoritma denir. Algoritması hazırlanan bir programı herhangi bir programlama dili ile hazırlamak çok kolay olabilir. Bu nedenle, yazılacak programın dili değil de, algoritması en önemli kısmıdır. Programı çalıştıracak algoritmayı en iyi şekilde çözümledikten sonra, kullanılacak dilin yapısına göre kodlama aşamasına geçilir. Problemin çözümünde işlem akışının nasıl yapılacağı, hangi durumda hangi şartların kullanılacağı, bu şartlara göre hangi işlemlerin yürütüleceği net bir şekilde ifade edilir. Algoritmada işlem akışı yukarıdan aşağıya doğru yürütülür. Program akışının değiştirilmesi durumunda gerekli görülen adımlara dallanmalar yapılabilir. Algoritma ve Akış Diyagramları Her algoritma aşağıdaki kriterleri sağlamalıdır: • Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli. • Çıktı: En azından bir değer üretilmeli. • Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli. • Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli. • Etkinlik: Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır. Her program için sonluluk özelliği geçerli değildir. Örneğin işletim sistemleri sonsuza dek çalışan programlara örnektir. Algoritma ve Akış Diyagramları ÖRN: Girilen iki sayının toplamını hesaplayan algoritma: Bu problemi çözmek için başlangıçta iki sayı girilmelidir. Girilen sayıların toplamı hesaplanmalı ve sonuç görüntülenmelidir. Bu işlemi algoritma olarak ifade edelim: Başla 1. sayının girilmesi (A) 2. sayının girilmesi (B) Toplama işleminin yapılması (T=A+B) Toplama sonucunun görüntülenmesi (T) Son Bir program içerisinde verileri tutmak, bu veriler üzerinde işlem yapmak için değişkenlerden yararlanılır. Değişken, bilgisayar hafızasında bir hücrenin ismi olarak düşünülebilir. Girilen veriler, programının işleyişi sırasında veya sonunda ürettiği değerler bu hücrelerde tutulur. Bu hücrelerin büyüklükleri program başında yapılan tanımlamalarla belirlenir. Yukarıdaki örnekte kullanılan değişkenler nelerdir? Algoritma ve Akış Diyagramları ÖRN: Girilen iki sayıdan büyük olanı görüntüleyen algoritma: Başla 1. sayının girilmesi (A) 2. sayının girilmesi (B) Eğer A büyük B ise A’nın değerini yaz, değilse B’nin değerini yaz Son Aynı işlemi ikinci bir yolla yapmak da mümkündür. 1) 2) 3) 4) 5) 6) Başla 1. sayının girilmesi (A) 2. sayının girilmesi (B) Eğer A büyük B ise A’nın değerini yaz: 6 nolu adıma git B’yi yaz Son Algoritma ve Akış Diyagramları Eğer … ise sözcük grubu ile bir test işlemi yapılmaktadır. Bir test işleminin sonucu ya doğru ya da yanlıştır. Şart doğru ise bunu yap, değilse şunu yap şeklinde bir yönlendirme yapılmaktadır. İki farklı kullanım şekli mevcuttur. Eğer şart ise ….. Eğer şart ise ….. değilse ….. Şart Şart Doğru Yanlış Yanlış Doğru Algoritma ve Akış Diyagramları ÖRN: Girilen 3 sayının en büyüğünü bulan algoritma: Başla 1. sayının girilmesi (A) 2. sayının girilmesi (B) 3. sayının girilmesi (C) İlk sayıyı en büyük olarak al (EB=A) Eğer B > EB ise B’yi en büyük olarak al (EB=B) Eğer C > EB ise C’yi en büyük olarak al (EB=C) En büyük sayıyı görüntüle (EB) Son NOT: Atama işlemlerinde, sağdaki ifadenin değeri soldaki değişkene aktarılır. EB=A ifadesi ile EB değişkenine A değişkeninin değeri aktarılmaktadır. Algoritma ve Akış Diyagramları ÖRN: Girilen 10 adet sayının toplamını ve ortalamasını hesaplayan algoritma: Burada akla ilk gelen, 10 adet sayı için farklı 10 değişkenin kullanılmasıdır. Bu yaklaşımla, girilecek sayının miktarının 1000 gibi bir rakam olduğu düşünüldüğünde, kullanılacak değişken miktarı oldukça fazla olacaktır ve algoritmada da bu değişkenlerin ayrı ayrı belirtilmesi gerekmektedir. Bu probleme çözüm olarak tekrarlama işleminden yararlanılmaktadır. Aynı işlem C dili ile aşağıdaki gibi yapılır. 3) : S=0 : : S=S+1 : Eğer S < 10 ise 3’e git : S = 0; do{ : S = S + 1; : } while(S<10) : Algoritma ve Akış Diyagramları Tekrarlama işlemi kullanılarak, aşağıdaki gibi oluşmaktadır. 2) yukarıdaki problemin algoritması Başla S = 0, T = 0 Sayının girilmesi (A) T=T+A S=S+1 Eğer S < 10 ise 2 nolu adıma git ORT = T / 10 Ortalama değeri yaz (ORT) Toplam değeri yaz (T) Son ÖDEV: 10 öğrenciye ait girilen isim ve yaş verilerinden en genç ve en yaşlıyı bulan algoritma? Algoritma ve Akış Diyagramları ÖRN: Bir işletme çalışanlarına, normal maaşlarına ek olarak, yaptıkları fazla mesai saatlerine göre ek bir ücret daha ödenmektedir. Ek ücret aşağıdaki gibi hesaplanmaktadır: 1-10 saat için saat başına 10 TL 11-20 saat için saat başına 13 TL 21 ve daha fazla saat için saat başına 15 TL Buna göre personelin alacağı toplam ücreti hesaplayan algoritma: Başla Normal maaşın girilmesi (NM) Fazla mesai saatinin girilmesi (FM) Eğer FM <= 10 ise EK = FM * 10 Eğer FM > 10 ve FM <=20 ise EK = FM * 13 Eğer FM > 20 ise EK = FM * 15 Toplam maaşın hesaplanması TM = NM + EK Toplam maaşı yaz (TM) Son Algoritma ve Akış Diyagramları ÖRN: Girilen 20 adet sayıyı alarak; a) sayıların ortalamasını, b) 100’e eşit ve büyük sayıların sayısını, c) 100’den küçük sayıların ortalamasını, d) en büyük sayıyı, e) en küçük sayıyı bulan algoritma: Girişte sıfırlanan değişkenler: X: girilen sayı S: girilen sayı adedi T: sayıların toplamı Y: 100’den büyük sayıların miktarı K: 100’den küçük sayıların miktarı KT: 100’den küçük sayıların toplamı EB: en büyük sayı EK: en küçük sayı Algoritma ve Akış Diyagramları 3) Başla S = 0, K = 0, Y = 0, T = 0, KT = 0 Sayının girilmesi (X) S= S + 1 T=T+X Eğer X >= 100 ise Y = Y + 1 Eğer X < 100 ise K = K + 1, KT = KT + X Eğer S = 1 ise EB = X, EK = X Eğer X < EK ise EK = X Eğer X > EB ise EB = X Eğer S < 20 ise 3 nolu adıma git ORT = T / S K_ORT = KT / K Sayıların ortalamasını yaz (ORT) 100’den büyüklerin sayısını yaz (Y) 100’den küçüklerin ortalamasını yaz (K_ORT) En büyük sayıyı yaz (EB) En küçük sayıyı yaz (EK) Son X: girilen sayı S: girilen sayı adedi T: sayıların toplamı Y: 100’den büyük sayıların miktarı K: 100’den küçük sayıların miktarı KT: 100’den küçük sayıların toplamı EB: en büyük sayı EK: en küçük sayı Algoritma ve Akış Diyagramları Akış Diyagramları: Akış diyagramları, problemin şekille ifade edilmesidir. Bunun için kullanılan standart şekillerden bazıları aşağıda verilmektedir. Başlangıç ve Bitiş: Program başında ve sonunda kullanılır. Atama ve Hesaplama: Her türlü atama ve hesaplama işlemleri için kullanılır. Veri Girişi: Klavyeden yapılan girişler için kullanılır. Girilen verinin tutulacağı değişken yazılır. Bilgi Çıkışı/Görüntüleme: Kullanıcıya yansıtılacak bilgileri belirtmek için kullanılır. Karşılaştırma/Test: Program akışını istenen şartlara göre değiştirmek için kullanılır. Bir şartın sonucu ya doğru, ya da yanlıştır. Doğru (E), yanlış (H) ile gösterilir. Döngü: Bir işlem bloğunun birden fazla kere tekrar edilmesinde kullanılır. Algoritma ve Akış Diyagramları ÖRN: Girilen iki sayının toplamını hesaplayan programın akış diyagramı: Başla X X, Y Y T=X+Y T Son Algoritma ve Akış Diyagramları ÖRN: Girilen üç sayının en büyüğünü bulan programın akış diyagramı: Başla A,B,C EB=A B>EB E EB=B H C>EB H EB Son E EB=C Algoritma ve Akış Diyagramları Başla S=0 X ÖRN: Girilen 10 adet S=S+1 sayının en büyüğünü bulan programın akış diyagramı: S=1 E EB=X H X>EB H E S<10 H EB Son E EB=X C Programı Oluşturmak C dilinde yazılan bir programın çalıştırılabilir hale getirilebilmesi için aşağıdaki süreçlerden geçilir: 1. Kaynak dosyanın oluşturulması: Kaynak dosya metin düzenleyici bir programda (text editörü) yazılır. Kaynak dosya, bir metin dosyasıdır. C dilinin kurallarına göre yazılan dosyaların uzantısı genel olarak “.c” seçilir. 2. Kaynak dosyanın derleyici (compiler) tarafından derlenmesi: Bir programlama dilinde yazılmış programı başka bir programlama diline çeviren programlara “çevirici (translator)” denir. Dönüştürülmek istenen dilin yazıldığı dile “kaynak dil (source language)”, dönüşümün yapıldığı dile ise “hedef dil (target language)” adı verilir. hedef dil makine dili yada simgesel dil ise, bu çevirici programlara “derleyici (compiler)” denir. C Programı Oluşturmak Derleyici program kaynak dosyayı alır ve derler. Bu işlem başarılı olursa bir “amaç dosya (object file)” oluşturur. Derleyici programın derleme işlemini yapma sürecine “derleme zamanı (compile time)” denir. Derleyici program, derleme sırasında kaynak dosyanın, C dilinin sözdizim kurallarına uygunluğunu da denetler. Kural çiğnendiği durumda bir ileti (diagnostic message) verir. Bu ileti: • Bir “hata iletisi (error message)” olabilir. Bu durumda derleyici programlar çoğunlukla amaç dosya üretmez. • Bir “uyarı iletisi (warning message)” olabilir. Bu durumda derleyici programlar çoğunlukla amaç dosya üretir. C Programı Oluşturmak Derleyici tarafından oluşturulan amaç dosyaları “bağlayıcı (linker)” program tarafından birleştirilerek, çalıştırılabilir bir dosya elde edilir. Windows sistemlerinde çalıştırılabilir dosyaların uzantısı “.exe” olarak seçilir. Kaynak Prog. (source prog.) Derleyici Komutu (include files) Kütüphane (library) Derleyici (compiler) Bağlayıcı (linker) Çalıştırılabilir dosya (.exe file) C Programı Oluşturmak Editör Disk Ön İşlemci (preprocessor) Disk Derleyici (Compiler) Disk Ön işlemci kodları işler Disk Yükleyici Disk ... CPU Derleyici nesne kodlarını üretir ve diske kaydeder Bağlayıcı nesne kodunu kütüphanelerle birleştirir ve diske kaydedilir Birincil Hafıza Bağlayıcı (Linker) Program editörde oluşturulur ve diske kaydedilir Yükleyici programı diskten alarak hafızaya koyar CPU her komutu alır ve tek tek çalıştırır. Program çalışırken oluşan muhtemel yeni değerleri kaydeder. C Programı Oluşturmak C Dilinde Kullanılan Terimler (tekrar): Kaynak kodu (source code): Programın, programcı ve kullanıcı tarafından okunabilen ve anlaşılabilen C programı diye de adlandırılan kısmıdır. Amaç kodu (object file): C programının, makinenin anlayabileceği ve doğrudan yerine getirebileceği bir kod şekline dönüştürülmüş halidir. Birleştirici (linker): Ayrı ayrı derlenmiş fonksiyonları bir program içerisine toplayıp tek program haline getirmeye yarayan bir programdır. Programcının yazdığı programla, standart C kütüphanelerinde bulunan fonksiyonları birleştirir. Çıkışta işletilebilir bir program oluşur. Kütüphane (library): fonksiyonları içerirler. Programcılar tarafından kullanılmak üzere, standart Derleme zamanı (compile time)ı: Programın derlemesi için geçen zamandır. Çalışma zamanı: Programın çalışması için geçen süredir. Derleyici (compiler): kaynak kodu makine koduna çeviren programdır.
© Copyright 2024 Paperzz