BİLGİSAYAR PROGRAMLAMA

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "BİLGİSAYAR PROGRAMLAMA"

Transkript

1 BİLGİSAYAR PROGRAMLAMA YRD. DOÇ. DR. YAKUP EMÜL CUMHURIYET ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) 1 B01. Bilgisayar Programlamaya Giriş

2 B01. Bilgisayar Programlamaya Giriş 2 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) 1.0 Notlandırma 1.1 Kaynak Materyaller 1.2 Bilgisayar Nedir? 1.3 Bilgisayarın Organizayon Yapısı 1.4 İşletim Sistemlerinin Gelişimi 1.5 Kişisel Kullanim, Çoklu Kullanim, İstemci/Sunucu Kullanimi 1.6 Makine Dilleri, Assembly Dilleri Ve Yüksek Seviyeli Diller 1.7 C Programlama Diline Dair 1.8 Standart C Kütüphanesi 1.9 Yazılımda Nesne Kavramı 1.10 C++ Programlama Dili 1.11 Diğer Yüksek Seviyeli Programlama Dilleri 1.12 Yapısal Programlama Kavramı 1.13 C nin Önemine Dair 1.14 Çalışan Bir C Programı Üretim Süreci 1.15 Etkileşimli Geliştirme Ortamı (IDE) 1.16 DevC++ IDE 1.17 İlk Program 1.18 C de Değişken Tipleri 1.Ek Özet ve Bazı Notlar

3 B01.0 Notlandırma 3 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Notlandırma : Öğrencinin yıl içindeki çalışmaları, aşağıdaki notlandırma tablosuna göre değerlendirilecektir. (*) Ödevlerin arasınav notuna katkısı %10 dur (ilk 4 Ödev). (**) Ödevlerin final notuna katkısı %10 dur (son 4 Ödev). (***) Projenin final notuna ekstra 10 puana kadar katkısı vardır. Sınav ve Ödevler Adet % Katkı Ödevler 6-8 (*) Ara Sınav 1 40* Yıl Sonu Sınavı 1 60** Arduino Projesi 1 (***)

4 B01.1 Kaynak Materyaller 4 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Diğer bütün programlama dillerinde olduğu gibi C/C++ programlama dilide öğrenme aşamasında birçok tekrar ve uygulamayı gerektirir, yani çeşitli program yazma egzersizlerini. Öğrencilerin sınıfta tartışılan/yazılan programların benzerlerini bireysel çalışma zamanlarında geliştirmeleri önemsenmektedir. Bu nedenle sınıfta tartışılan programlar ve program yazma tekniklerinin öğrenci tarafından uygulanması için ayrıca bir dizi ödev verilecektir. Ders Kitabı : Internet ortamında gerek Türkçe gerekse İngilizce olarak birçok kaynak bulmak mümkündür. Öğrencilerin bu kaynakları incelemesi/kullanması teşvik edilmektedir. Bu kaynakların yanında aşağıdaki Türkçe kaynaklar da öğrencinin ilgisine sunulmaktadır. İleri C Programlama, G. Murat TAŞBAŞI, altaş yayıncılık ve elektronik C Programlama Dili, Selçuk ALP Arzu KİLİTÇİ, Umuttepe Yayınları C Programlamanın Temelleri, Timur Karaçar, Abaküs yayınları C How to program, 6th Ed., Paul Deitel and Harvey Deitel Programming in C, 3 rd Ed., S. Kochan.

5 B01.1 Kaynak Materyaller 5 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bu derste, mühendislik öğrencileri için C/C++ programlama dilinde temel programcılık esaslarının kavranması ve C/C++ uygulamaları için deneyim kazandırılması amaçlanmaktadır. Bu derste C programlama dilinin aşağıdaki temel sintaksları verilerek temel seviyede bir programcılık altyapısı oluşturulması amaçlanmaktadır. Data tipleri ve değişkenler (Data types and variables) Diziler (arrays) Yapılar (structures) Dizgiler (strings) İmleçler (pointers) Koşullu deyimler (conditional statements) Döngüler, fonksiyonlar ve (loops, functions) Girdi/çıktı dosyaları (file input / output)

6 B01.2 Bilgisayar Nedir? 6 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bilgisayarlar, hesaplamaları ve mantıksal kararlar vermeyi insanlardan milyonlarca hatta milyarlarca kez hızlı yapabilme yeteneğine sahip cihazlardır. Örneğin, bugünkü çoğu kişisel bilgisayar, saniyede milyonlarca toplama işlemini gerçekleştirebilir. Aynı işlemi, hesap makinesiyle yapmak yıllar alabilir. ( Dikkat edilmesi gereken bir başka nokta da, kişinin sayıları hesap makinesine hatasız giremeyeceği gerçeğidir. ) Bugünkü en hızlı bilgisayarlar ise saniyede milyarlarca toplama işlemini gerçekleştirebilir. Bunların daha da ötesinde bazı araştırma laboratuarlarında trilyonlarca toplama işleminin yapılabildiğinide söylemeden geçemeyeceğiz.

7 B01.2 Bilgisayar Nedir? 7 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bilgisayarlar, bilgisayar programı adı verilen bir dizi komutla verileri işlerler. Bilgisayar programlarcıları tarafından yazılan bu programlar, bilgisayarın işlemler yapabilmesini sağlatır. Bir bilgisayar, donanım olarak adlandırılan bir çok parçadan ( klavye, ekran, fare, CD-ROM, hafıza, sabit diskler ve işlemciler ) oluşur. Bilgisayarda kullandığımız programlara yazılım denir.

8 B01.2 Bilgisayar Nedir? 8 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Donanım maliyetleri son yıllarda büyük bir düşüş gösterirken, yazılım maliyetleri, programcılar daha güçlü ve karmaşık işlemleri gerçekleştirebilen programlar yazdıkça artmaktadır. Bu ders boyunca yazılım maliyetlerini azalttığı kanıtlanmış yazılım geliştirme yöntemlerini öğreneceksiniz. Bu yöntemler yapısal programlama, yukarıdan aşağıya adımsal iyileştirme, fonksiyonellik, nesne tabanlı programlama, nesneye yönelik programlama, event driven ve generic programlamadır.

9 B01.3 Bilgisayar Organizasyon Yapısı 9 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Fiziksel görünümlerindeki farklılıklara rağmen genellikle bilgisayarlar altı mantıksal kısma ayrılabilir. Bunlar aşağıda özetlenmiştir: 1-Giriş ünitesi. Bu kısım, bilgisayarın dış dünyayla haberleştiği kısımdır. Giriş ünitesi, çeşitli giriş cihazlarından veri ve bilgisayar programlarını alır ve diğer birimlerin kullanımına sunar. Böylece bilgi işlenmeye hazır hale gelir. Bugünlerde bilgisayarlara bilgiler, klavyeler ve fareler sayesinde yüklenmektedir. Ayrıca bilgiler konuşarak ya da görüntülerin taranmasıyla da bilgisayarlara girilebilir.

10 B01.3 Bilgisayar Organizasyon Yapısı 10 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Fiziksel görünümlerindeki farklılıklara rağmen genellikle bilgisayarlar altı mantıksal kısma ayrılabilir. Bunlar aşağıda özetlenmiştir: 2-Çıkış Ünitesi. Çıkış ünitesi, bilgisayardan bilgilerin alındığı kısımdır. Bu ünite, işlenmiş bilgiyi bilgisayardan alır ve kullanıcıya uygun bir hale getirerek çıkış cihazlarına gönderir. Çıktı, ekranda gösterilerek, kağıtlara yazdırılarak ya da diğer cihazları kontrol etmek için kullanılarak alınır.

11 B01.3 Bilgisayar Organizasyon Yapısı 11 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Fiziksel görünümlerindeki farklılıklara rağmen genellikle bilgisayarlar altı mantıksal kısma ayrılabilir. Bunlar aşağıda özetlenmiştir: 3-Hafıza Ünitesi. Bu kısım, bilgisayarın düşük kapasiteli ancak hızlı erişimli depolama kısmıdır. Giriş birimlerinden girilen bilgiyi saklayarak, işleme sırasında ihtiyaç duyulduğunda bu bilgilerin hızlı bir şekilde kullanıma hazırlanmasını sağlar. Hafıza ünitesi ayrıca, işlenmiş bilgiyi çıkış cihazlarına gönderene kadar saklamakla görevlidir. Hafıza kısmı genellikle hafıza ya da birincil hafıza olarak adlandırılır.

12 B01.3 Bilgisayar Organizasyon Yapısı 12 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Fiziksel görünümlerindeki farklılıklara rağmen genellikle bilgisayarlar altı mantıksal kısma ayrılabilir. Bunlar aşağıda özetlenmiştir: 4-Aritmetik Mantık Ünitesi(ALU). Bu kısım bilgisayarın üretim kısmıdır. Toplama, çıkartma çarpma ve bölme gibi işlemlerin yapılmasından sorumludur. Hafıza ünitesinden iki elemanı karşılaştırma ve bu elemanların eşit olup olmadıklarına karar verme gibi görevleri de yapmakla sorumludur.

13 B01.3 Bilgisayar Organizasyon Yapısı 13 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Fiziksel görünümlerindeki farklılıklara rağmen genellikle bilgisayarlar altı mantıksal kısma ayrılabilir. Bunlar aşağıda özetlenmiştir: 5-Merkezi İşleme Ünitesi(CPU). Bilgisayarın yönetici kısmıdır. Bilgisayarın koordinasyonundan ve diğer kısımlarının çalışmasının denetlenmesinden sorumludur. CPU, giriş ünitesine bilgilerin hafızaya aktarılacağını, ALU 'ya hafızadaki bilgilerin işlemlerde kullanılacağını, çıkış ünitesine hafızadaki bilgilerin belirli çıkış cihazlarına gönderileceğini söyler.

14 B01.3 Bilgisayar Organizasyon Yapısı 14 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Fiziksel görünümlerindeki farklılıklara rağmen genellikle bilgisayarlar altı mantıksal kısma ayrılabilir. Bunlar aşağıda özetlenmiştir: 6-İkincil Depolama Ünitesi. Bu kısım yüksek kapasiteli depolama kısmıdır ve bilgiler burada daha uzun süreyle tutulurlar. Programlar ya da diğer üniteler tarafından faal olarak kullanılmayan veriler, normal olarak ikincil depolama cihazlarında (diskler ) saklanırlar. Böylece bilgiler saatler, günler, aylar ya da yıllar sonra yeniden ihtiyaç duyulduklarında kullanılabilirler. İkincil depolama ünitesindeki bilgilere ulaşma zamanı, birincil depolama ünitesindeki bilgilere ulaşma zamanından daha fazladır. İkincil depolama ünitelerinin birim maliyeti, birincil depolama ünitelerinin birim maliyetinden daha ucuzdur.

15 B01.4 İşletim Sistemlerinin Gelişimi 15 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Önceleri, bilgisayarlar belli bir anda yalnızca bir işi ya da görevi yapabiliyorlardı. Bu formda bir bilgisayar işletimi genellikle, tek kullanıcılı yığın işleme (batch processing) olarak adlandırılır. Bu formdaki bilgisayarlar, bir anda tek bir program çalıştırırken, verileri gruplar ya da yığınlar halinde kullanırdı. O zamanki sistemlerde kullanıcılar, işlerini bilgisayara delikli kartlar sayesinde yaptırırlardı. Kullanıcıların, işlemlerin sonucunu alabilmeleri saatler ya da günler sürebilirdi.

16 B01.4 İşletim Sistemlerinin Gelişimi 16 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) İşletim sistemi olarak adlandırılan yazılımlar, bilgisayarları daha rahat kullanabilmek için geliştirilmiştir. İlk işletim sistemleri, işler arasındaki geçişleri yönetebiliyordu. Bu, kullanıcıların işler arasında geçişler yapabilme zamanını azaltarak, yapılacak iş sayısını yani throughput u arttırmıştı. Bilgisayarlar daha güçlü hale geldiklerinde, tek kullanıcılı yığın işlemenin bilgisayarın kaynaklarını verimli kullanamadığı anlaşıldı. Çünkü, zamanın çoğu yavaş çalışan giriş/çıkış cihazlarının görevlerini tamamlamalarını beklemekle geçiyordu. Bunun yerine, işlerin ya da görevlerin bilgisayarın kaynaklarını paylaşabilecekleri düşünüldü.

17 B01.4 İşletim Sistemlerinin Gelişimi 17 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bu, çoklu programlama ( multiprogramming ) olarak adlandırılır. Çoklu programlama, bilgisayarda birden çok işin eş zamanlı olarak yapılmasını sağlar. İlk çoklu programlama işletim sistemlerinde, kullanıcılar hala delikli kartlar kullanıyordu ve işlemlerin sonuçlanması saatler ya da günler alıyordu. 1960'larda sanayide ve üniversitelerde çeşitli gruplar, zaman paylaşımlı işletim sistemlerine öncülük ettiler. Zaman paylaşımı, kullanıcıların bilgisayara klavye ve ekran gibi cihazlardan oluşan terminallerden erişmelerini sağlayan, bir çoklu programlama biçimidir.

18 B01.4 İşletim Sistemlerinin Gelişimi 18 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Tipik bir zaman paylaşımlı bilgisayar sisteminde onlarca ya da yüzlerce kullanıcı, bilgisayarı kullanabilir. Aslında bilgisayar, bütün kullanıcıların isteklerini aynı anda yapmaz. Bunun yerine, bir kullanıcının işinin bir kısmını yapar ve diğer kullanıcın işine geçer. Bilgisayar, bu işlemi o kadar hızlı yapar ki her kullanıcının işlemine bir saniye içinde birkaç kez servis sağlayabilir. Bu yüzden, kullanıcıların programları eş zamanlı çalışıyormuş gibi görünür. Zaman paylaşımının avantajı, kullanıcıların isteklerine neredeyse anında cevap almalarıdır. Bu, eski yöntemlerle daha uzun bir zaman gerektirirdi.

19 B01.5 Kişisel Kullanim, Çoklu Kullanim, İstemci/Sunucu Kullanimi 19 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) 1977 senesinde APPLE COMPUTER, kişisel kullanım kavramını yaygınlaştırdı. Bu ilk başta,bilgisayarla hobi olarak uğraşan birinin hayali gibi görünüyordu. Bilgisayarlar, insanların kişisel ya da işleriyle ilgili kullanımları amacıyla satın alabilecekleri kadar ekonomik bir hale geldi. 1981'de dünyanın en büyük bilgisayar üreticisi IBM, IBM kişisel bilgisayarı tanıttı. ( IBM-PC )

20 B01.5 Kişisel Kullanim, Çoklu Kullanim, İstemci/Sunucu Kullanimi 20 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Fakat bu bilgisayarlar standalone birimlerdi ve insanlar işlerini yaptıktan sonra bilgileri paylaşmak için disklerini taşıyorlardı. ( Buna genelde sneakernet denir.) Bu ilk kişisel bilgisayarlar, birden fazla kullanıcının zaman paylaşımı yapması için yeterince güçlü olmamasına rağmen, bilgisayar ağları oluşturmak amacıyla birbirlerine bağlanıyorlardı. Böylece telefon ağları kullanarak yerel ağ ( LAN ) oluşturuluyordu. Bu, çoklu kullanım ( distibuted computing ) kavramını ortaya çıkarttı.

21 B01.5 Kişisel Kullanim, Çoklu Kullanim, İstemci/Sunucu Kullanimi 21 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Çoklu kullanımda, bir organizasyonun hesaplamaları için merkezi bir bilgisayar yerine, ağ üzerinden bu organizasyonla ilgili kişilere iş dağıtılıyordu. Kişisel bilgisayarlar her kullanıcının kendi hesaplamalarını yapabilecek kadar güçlü olmanın yanında, bilgileri elektronik olarak göndermek ve almak gibi temel haberleşme görevlerini de yapabiliyorlardı. Bugünün en güçlü kişisel bilgisayarları, on ya da yirmi yıl öncenin milyon dolarlık bilgisayarları kadar güçlüdür. En güçlü masa üstü makineler ( iş istasyonları ), kullanıcılara muazzam yetenekler sunmaktadır.

22 B01.5 Kişisel Kullanim, Çoklu Kullanim, İstemci/Sunucu Kullanimi 22 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Ağ üzerinde bulunan istemciler tarafından kullanılması muhtemel program ve verilere, bilgisayar ağları üzerinden dosya sunucularına (file server) erişilerek ulaşılır. Buna, istemci/sunucu (client/server) kullanımı denir. C ve C++ işletim sistemleri, bilgisayar ağları ve çoklu kullanım istemci/sunucu uygulamaları için en uygun seçimdir. Bugünkü en popüler işletim sistemleri: UNIX, LINUX ve Microsoft'un Windows tabanlı sistemleri bu kısımda anlatılan yeteneklere sahiptirler.

23 B01.6 Makine Dilleri, Assembly Dilleri Ve Yüksek Seviyeli Diller 23 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Programcılar değişik programlama dillerini kullanarak komutlar yazarlar. Bunlardan bazıları bilgisayar tarafından doğrudan anlaşılabilirken, bazıları ise çevirme (translation) işlemlerinetabi tutulmak zorundadır. Günümüzde yüzlerce bilgisayar dili vardır. Bunlar üç genel tipe ayrılabilirler. 1-Makine dilleri 2-Assembly dilleri 3-Yüksek seviyeli diller

24 B01.6 Makine Dilleri, Assembly Dilleri Ve Yüksek Seviyeli Diller 24 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Herhangi bir bilgisayar, doğrudan yalnızca kendi makine dilini anlayabilir. Makine dili bilgisayarın doğal dilidir ve o bilgisayarın donanım tasarımına bağlıdır. Makine dilleri, belirli sayıların özel dizilimler ile bilgisayarın temel işlevlerini yaptırtmalarını sağlarlar (bu sayılar genellikle 1 ve 0'lara indirgenirler.) Makine dilleri her makinede farklılık gösterebilir. Bu yüzdende, makine bağımlı (machine dependent) olarak adlandırılırlar. Makine dilleri insanlar için oldukça zordur.

25 B01.6 Makine Dilleri, Assembly Dilleri Ve Yüksek Seviyeli Diller 25 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Makine dillerini kullanmak insanlar için oldukça zordur. Aşağıda, makine diliyle yazılmış bir programı görebilirsiniz. Bu program parçacığında iki sayı toplanıp (bir baza göre), sonuç hafızada saklanmıştır.

26 B01.6 Makine Dilleri, Assembly Dilleri Ve Yüksek Seviyeli Diller 26 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bilgisayarlar popüler hale geldikçe, makine dilleriyle programlamanın oldukça yavaş, zahmetli ve hata yapma oranının yüksek olduğu görüldü. Bilgisayarların doğrudan anlayabileceği belli sayı dizilişleri kullanmak yerine, programcılar İngilizce ye yakın kısaltmalar kullanmaya başladılar. Bu kısaltmalar, assembly dillerinin temelini oluşturur. Assembler olarak adlandırılan çevirici programlar, assembly dilinde yazılmış programları makine diline çevirmek için geliştirilmiştir. Şimdi, makine diliyle yazdığımız programın assembly diliyle yazılmış halini göreceksiniz.

27 B01.6 Makine Dilleri, Assembly Dilleri Ve Yüksek Seviyeli Diller 27 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Şimdi, makine diliyle yazdığımız programın assembly diliyle yazılmış halini göreceksiniz.

28 B01.6 Makine Dilleri, Assembly Dilleri Ve Yüksek Seviyeli Diller 28 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Şimdi, makine diliyle yazdığımız programın assembly diliyle yazılmış halini göreceksiniz. Makine Dili Assembly Dili

29 B01.6 Makine Dilleri, Assembly Dilleri Ve Yüksek Seviyeli Diller 29 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Şimdi, makine diliyle yazdığımız programın assembly diliyle yazılmış halini göreceksiniz. Makine Dili Assembly Dili Bu kod, insanlara oldukça yakın gelse de makine diline çevirmediği sürece bilgisayarlara birşey ifade etmez.

30 B01.6 Makine Dilleri, Assembly Dilleri Ve Yüksek Seviyeli Diller 30 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bilgisayar kullanımı, assembly dillerinin ortaya çıkmasıyla hızlıca artmıştı fakat hala bazı basit görevleri yapmak için birçok kod yazmak zorunda kalınıyordu. Programlama sürecini hızlandırabilmek amacıyla yüksek seviyeli diller geliştirildi. Bu dillerde, tek bir ifadeyle birden çok görevi yerine getirmek mümkün oluyordu. Derleyici ( compiler ) olarak adlandırılan çevirici programlar, yüksek seviyeli dilleri makine dillerine çevirirler. Yüksekseviyeli diller, programcılara günlük İngilizce ye oldukça yakın kodlar yazma imkanı sunar.

31 B01.6 Makine Dilleri, Assembly Dilleri Ve Yüksek Seviyeli Diller 31 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Ayrıca, genellikle kullanılan matematik ifadeleri de yüksek seviyeli dillerde kullanılabilir. Şimdi de yukarıda önce makine diliyle daha sonra assembly dilleriyle yazılmış program parçacığını, yüksek seviyeli dillerle yazalım. Açıkça görüleceği üzere, yüksek seviyeli diller makine dilleri ya da assembly dillerine göre programcılar tarafından daha çok tercih edilirler.

32 B01.6 Makine Dilleri, Assembly Dilleri Ve Yüksek Seviyeli Diller 32 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) C ve C++, yüksek seviyeli diller arasında en güçlü ve en çok kullanılanlarıdır. Yüksek seviyeli dillerle yazılmış bir programın makine diline çevrilme süreci, bilgisayarda bir müddet süre alabilir. Bu problem, yüksek seviyeli dillerle yazılmış programları, makine diline derleme ihtiyacı duymadan çalıştırabilen yorumlayıcı ( interpreter ) programlar sayesinde çözülmüştür. Derlenmiş programlar, yorumlanmış programlara göre daha hızlı çalışmalarına rağmen, program geliştirme ortamlarında programlara yeni özellikler eklenirken ve hatalar düzeltilirken yorumlayıcılar daha yaygın bir şekilde kullanılmaktadır. Bir program geliştirildikten sonra bu programın derlenmiş versiyonu daha verimli çalışabilir.

33 B01.7 C Programlama Diline Dair 33 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) C Programlama Dili: Bu gün kullandığımız yazılıma dayalı teknolojilerin büyük oranda temelini oluştura programlama dilidir. C, temelde iki eski dile dayanır : BCPL ve B. BCPL, 1967 yılında Martin Richards tarafından işletim sistemleri ve derleyiciler yazmak için geliştirilmiştir. Ken Thompson, BCPL çalışmalarının ardından kendi yarattığı dil olan B'yi geliştirmiştir ve B ile UNIX'in ilk versiyonları üzerinde, Bell Laboratuarlarında, DEC PDP-7 bilgisayarı ile çalışmıştır. Bu iki dilde de, her veri hafızada bir word ( 16 bit ) alan kaplamaktaydı ve değişkenlerin yazımı programcıya ağır bir yük getiriyordu.

34 B01.7 C Programlama Diline Dair 34 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) C dili, 1972'de bu çalışmaların izinde yine Bell Laboratuarlarında Dennis Ritchie tarafından DEC PDP-11 bilgisayarlarında geliştirilmiştir. C, BCPL ve B dillerinin önemli bir çok kavramını kullanırken, veri yazımı ve daha bir çok güçlü özellikleri de içerir. C, genel anlamda bir işletim sistemi olan UNIX' in geliştirilmesinde kullanılmasıyla ün kazanmıştır. Bugün, bütün yeni işletim sistemleri C ve/veya C++ ile yazılmaktadır.

35 B01.7 C Programlama Diline Dair 35 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Geçen yirmi yıl içinde C, bütün bilgisayarlar için uygun hale getirilmiştir. C, donanımdan bağımsızdır. Bu yüzden C'de dikkatli bir biçimde yazılmış bir program her bilgisayara taşınabilir. 1970'lerin sonunda C, şu anda geleneksel C olarak bilinen haline geldi yılında Kernighan ve Ritchie tarafından yazılan, The C Programming Language adlı kitabın yayınlanmasından sonra, C'ye olan ilgi artmıştır. Bu yayın, bütün zamanların en iyi bilgisayar kitaplarından biridir.

36 B01.7 C Programlama Diline Dair 36 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) C'in değişik tipte bilgisayarlarda ( donanım platformlarında ) yayılması, birbirine benzer ama genellikle uyumsuz bir çok çeşidinin ortaya çıkmasına sebep olmuştur. Bu, değişik platformlarda çalışacak kodlar yazan program geliştiricileri için ciddi bir problem haline gelmişti. Bu sebeplerden dolayı, C'nin standart bir versiyonuna ihtiyaç duyulduğu anlaşıldı yılında, American National Standards Committee'nin bilgisayar ve bilgi işlem komitesinde ( X3 ), X3J11 adı altında teknik bir komite oluşturuldu ve C'nin sistem bağımsız bir tanımı yaptırıldı.

37 B01.7 C Programlama Diline Dair 37 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) 1989 yılında bu standart onaylandı ve 1999 yılında da tekrar gözden geçirildi. Bu standart, ISO/IEC 9899:1999 olarak adlandırıldı ve ISO tarafından onaylandı.

38 B01.8 Standart C Kütüphanesi 38 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) İlerleyen bölümlerde göreceğimiz gibi, C programları fonksiyon adı verilen parçalardan ya da modüllerden oluşur. Elbette kendi fonksiyonlarınızı yazmanız mümkündür ama çoğu programcı, C standart kütüphanesindeki hazır fonksiyonları kullanır. Bu sebepten, C öğrenmede aslında iki kısım vardır. İlk kısım, C dilinin kendisini ikinci kısım ise C standart kütüphanesindeki fonksiyonlarının nasıl kullanılacağını öğrenmekten oluşur. Bu derste, bu fonksiyonların önemli bir kısmını inceleyeceğiz. Kütüphane fonksiyonları hakkında daha detaylı bir araştırma yaparak bu fonksiyonların nasıl kullanılacağını öğrenmek ve bu fonksiyonları kullanarak taşınabilir kodlar yazmak için P.J.Plauger'ın The Standard C Library adlı kitabını incelenebilir.

39 B01.8 Standart C Kütüphanesi 39 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bu ders boyunca yapacağınız çalışmalarda tekerleği yeniden icat etmekten kaçının, daha önceden hazırlanmışprogram parçalarını kullanarak, daima nesneye yönelik programlamanın temelini oluşturan yeniden kullanılabilirlik kavramını aklınızda tutun. C ile çalışırken genellikle aşağıdaki blokları kullanacaksınız. C standart kütüphane fonksiyonları. Kendi yazdığınız fonksiyonlar. Diğer programcıların yazdığı fonksiyonlar.

40 B01.8 Standart C Kütüphanesi 40 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Kendi fonksiyonlarınızı yazmanın avantajı, bu fonksiyonların nasıl çalışacaklarını tam olarak bilmenizdir. Böylece, bu C kodlarını kolaylıkla inceleyebilirsiniz. Olumsuz taraf ise yeni fonksiyonlar yazmanın ve geliştirmenin oldukça zaman almasıdır. Eğer daha önceden yazılmış fonksiyonları kullanırsanız, böylelikle tekerleği yeniden icat etmekten kurtulabilirsiniz. ANSI standart fonksiyonlarını kullanırken, bunların oldukça özenli bir biçimde yazıldığını ve ANSI C koşullarına uyan tüm sistemlerde çalışabileceğine emin olabilirsiniz. Böylelikle programlarınız daha taşınabilir olacaktır.

41 B01.9 Yazılımda Nesne Kavramı 41 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Donanım maliyetleri son yıllarda, kişisel bilgisayarlar bir eşya haline gelene kadar hızlı bir düşüş gösterdi. Fakat yazılım geliştirme maliyetleri, programcılar yazılım geliştirme teknolojilerinin temellerinde önemli bir iyileştirme yapmadan daha güçlü ve karmaşık uygulamalar gerçekleştirdikçe, sabit bir şekilde arttı. Bu derste yazılım geliştirme maliyetlerini azaltacak bir çok yöntem öğreneceksiniz. Yazılım toplumunda bir devrim başlıyor. Yeni ve daha güçlü yazılımların yerinde saydığı bir anda hızlı, ekonomik, doğru yazılımı geliştirmek hala ulaşılamaz bir hedef olarak duruyor.

42 B01.9 Yazılımda Nesne Kavramı 42 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Nesneler, gerçek hayattaki parçaları modelleyen ve yazılım içinde tekrar tekrar kullanabilen parçalardır. Yazılım geliştirenler ; modüler, nesneye yönelik tasarımlar ve yerine koyma yaklaşımıyla, yazılım geliştirme gruplarının eski programlama tekniklerini kullanarak yazabilecekleri programlardan daha yaratıcı olabileceklerini keşfetmeye başlamışlardır. Nesne yönelimli programlar genellikle daha kolay anlaşılır, düzeltilir ve değiştirilir.

43 B01.9 Yazılımda Nesne Kavramı 43 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Yazılım teknolojisindeki değişim, 1970'lerde, yapısal programlamanın (ve yapısal system analizi ve tasarımı ile konuların) yararlarının fark edilmesiyle başlamıştır. Ancak nesneye yönelik programlamanın, 1980'lerde yaygınlaşmaya başlaması ve 1990'larda iyice yaygınlaşmasıyla, yazılım geliştirenler yazılım geliştirme sürecinin iyileştirilmesinde büyük adımlar atmak için gerekli tüm malzemeyi bulduklarını düşündüler. Aslında nesne teknolojisinin geçmişi 1960'ların ortalarına rastlar. C++ programlama dili 1980'lerde AT&T'de Bjarne Stroustrup tarafından geliştirildi.

44 B01.9 Yazılımda Nesne Kavramı 44 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) C++ aslında iki dile dayanır. AT&T tarafından UNIX işletim sistemini geliştirmek için kullanılan C ve 1967'de Avrupa da geliştirilen Simula67. C++, C'nin tüm özelliklerini alıp Simula'nın nesne yaratma ve işletme özelliklerini bünyesine eklemiştir. C ya da C++ 'nın AT&T laboratuarları dışında kullanılması düşünülmemişse de ikisinin de yayılması çok hızlı olmuştur. Peki nesne nedir ve nesneler neden özeldir? Nesne teknolojisi, belirli uygulama alanlarında büyük ve odaklanmış anlamlı yazılım birimleri oluşturmamıza yardımcı olan paketleme şemasıdır. Her isim, bir nesne olarak gösterilebilir. Örneğin, tarih nesneleri, zaman nesneleri, ses nesneleri, video nesneleri, dosya nesneleri, kayıt nesneleri.

45 B01.9 Yazılımda Nesne Kavramı 45 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Nesnelerle dolu bir dünyada yaşıyoruz. Etrafınıza bir bakın bir çok nesne göreceksiniz ; arabalar, uçaklar, insanlar, hayvanlar, binalar, trafik ışıkları, anahtarlar ve benzerleri. Nesne yönelimli dillerden önce, programlama dilleri ( FORTRAN, PASCAL, BASIC ve C gibi ) nesneler yerine eylemlere odaklanmıştı. Nesnelerle dolu bir dünyada yaşayan programcılar, bilgisayarların başına geçince eylemlerle uğraşıyorlardı. Bu numune değişimi, program yazmayı hantal hale getiriyordu. Şimdi ise Java, C++ ve bir çok diğer nesneye yönelik programlama dilleri sayesinde programcılar, normal yaşamlarında olduğu gibi bilgisayarlarının karşısında da nesnelerle uğraşmaya devam ederler. Bu, onların programlarını dünyayı gördükleri biçimde yazmaları anlamına gelir.

46 B01.9 Yazılımda Nesne Kavramı 46 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Şimdi ise Java, C++ ve bir çok diğer nesneye yönelik programlama dilleri sayesinde programcılar, normal yaşamlarında olduğu gibi bilgisayarlarının karşısında da nesnelerle uğraşmaya devam ederler. Bu, onların programlarını dünyayı gördükleri biçimde yazmaları anlamına gelir. Bu, Procedural programlamadan daha doğal bir yoldur ve verimliliğin artmasına önemli katkılarda bulunmuştur. Kendi kodlarınızı yazmanın avantajı, bu kodun nasıl çalışacağını bilmenizdir ve inceleyebilmenizdir. Olumsuz tarafı ise zaman alması ve yeni bir kod tasarlamak ve yazmanın oldukça fazla uğraş gerektirmesidir.

47 B01.10 C++ Programlama Dili 47 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) C++ programlama dili, C'nin, BELL laboratuarlarında Bjarne Stroustrup tarafından geliştirilmiş halidir. C++, C'yi daha güçlü hale getiren bir çok özellik sunar ve daha önemlisi C++, nesneye yönelik programlama yeteneklerine sahiptir. Nesneler, gerçek hayattaki araçları modelleyen ve yeniden kullanılabilir yazılım parçalarıdır. Yazılım toplumlarında bir devrim gerçekleşmektedir. Yeni ve daha güçlü yazılımların yerinde saydığı bir zamanda hızlı, ekonomik ve doğru yazılımı gerçekleştirmek hala ulaşılamaz bir hedef olarak duruyor.

48 B01.10 C++ Programlama Dili 48 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Yazılım geliştirenler modüler, nesneye dayalı tasarımlar ve yerine koyma yaklaşımıyla, yazılım geliştirme gruplarının, eski programlama teknikleriyle mümkün olandan on ile yüz kat arasında daha yaratıcı olduklarını keşfettiler. C++, hem endüstride hem de üniversitelerde en önemli dil haline geldi. Çoğu insan, en iyi eğitim taktiğinin önce C'yi tam anlamıyla öğrenip daha sonra C++ ı çalışmanın olduğunu düşünmektedir. Bu yüzden, temel C konularının ardından C++ konularıda bu dersin ilerleyen bölümlerinde değinilecektir.

49 B01.11 Diğer Yüksek seviyeli Programlama Dilleri 49 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bugüne kadar yüzlerce yüksek seviyeli dil geliştirilmiştir ancak bunlardan yalnızca birkaçı şu an kullanımdadır. FORTRAN ( Formula translator ), IBM tarafından 1954 ile 1957 yılları arasında bilimsel uygulamalarda ve mühendislik uygulamalarında kullanılan matematik hesaplamalarını yapmak için geliştirilmiştir. Fortran, özellikle mühendislik uygulamalarında hala yaygın bir biçimde kullanılmaktadır.

50 B01.11 Diğer Yüksek seviyeli Programlama Dilleri 50 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) COBOL ( Common Bussiness Oriented Language ) 1959'da, bilgisayar üreticileri, devlet ve endüstriyel bilgisayar kullanıcıları tarafından geliştirilmiştir. COBOL, büyük verilerin kullanılmasını gerektiren ticari uygulamalarda kullanılmaktadır. Bugün iş yazılımlarının yarıdan fazlası COBOL ile programlanmaktadır. Pascal ise C ile aynı zamanlarda, Profesör Niklaus Wirth tarafından akademik kullanım amacıyla geliştirilmiştir.

51 B01.12 Yapısal Programlama Kavramı 51 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) 1960'larda yazılım geliştirme çabaları ciddi zorluklarla karşılaştı. Yazılım takvimleri genellikle geç kalıyordu, maliyetler yatırımları aşıyordu ve bitirilmiş projeler yeterince iyi değildi. İnsanlar, yazılım geliştirmenin düşünülenden çok daha zor bir iş olduğunun farkına vardılar. 1960'lardaki araştırma çalışmaları, yapısal programlamanın ortaya çıkmasına sebep olmuştu. Yapısal programlama ile programları daha açık, daha doğru ve değiştirilmesi daha kolay yazabilmek için bir disiplin oluşturulmuştu. İlerleyen bölümlerde yapısal C programları geliştirme üzerine olacaktır.

52 B01.13 C nin Önemine Dair 52 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Pascal, Basic, Java gibi diler kendi amaçları doğrultusunda çok önemli işler başarmış olsalarda C dilinin vazgeçilemezliği ortadadır. Bunun başlıca nedenleri Yapısallık: C kaynak programı fonksiyon ve kod bloklarından oluşan bir yapıdadır. Onu sadece yazan değil okuyan kişide ne yaptığını anlar ve gerekli düzenlemeleri, hata ayıklamalarını kolaylıkla yapabilir. Modüler Yapı: Fonksiyonlar ve kod blokları bir araya getirilerek modüller oluşturulabilir. Modüller başka programlarca çağrılabilir ve güncellenebilir. Tekrar kullanılabilme: modüller ve programlar başka programlarca tekrar be tekrar kullanılabilir. Etkinlik: C dili makine dili ile üst düzey diller arasında bir yerde konumlanır. Bu nedenle hem sistemle ilgili hemde üst düzey işlerle ilgili problemleri çözebilir.

53 B01.13 C nin Önemine Dair 53 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Hız: Makine diline yakın olduğu için çok hızlı çalışır. Esneklik: işletim sistemi, ağ, web, grafik, hesap tabloları, derleyici yazmak, başka bir dil yazmak gibi çok geniş uygulama alanları vardır. Taşınabilirlik: C dilinde yazılan herhangi bir program farklı işletim (bazen küçük değişiklikler gerekebilir) sistemlerinde de çalışır. Genişleyebilme: Makine diline yakın olması sebebiyle programcılar, standart C dilinde olmayan kodlar yazarak yeni kodlar oluşturabilir ve C dilinin parçasıymış gibi çalıştırabilirler. Zengin Kütüphane: C dili standartlaşmış fonksiyonlardan oluşan ve çok farklı işlerde kullanılabilen zengin bir kütüphaneye sahiptir. Bu fonksiyonlar #include deyimiyle çağrılır ve istendiği kadar sıklıkla kulanılabilir.

54 B01.13 C nin Önemine Dair 54 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Neden C? Her türlü emeğe değecek kadar iyi ve güçlü bir dildir. İşletim sistemleri, sürücüler, derleyiciler gibi bugün kullandığımız teknolojinin klasikleşmiş bir enstrümanıdır. Bugün geliştirilen modern diller çoğunlukla C tabanlıdır. Temel programcılık esaslarının kavranması için vazgeçilmezdir. C öğrendikten sonra C++, C# yada diğer dillere geçerken bir temel oluşturur.

55 B01.14 Çalışan Bir C Programı Üretim Süreci 55 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Program düzenlemesi/yazımı Kaynak Kodu Derleyici Nesne/Ob ject Kodu Kütüphane Dosyaları Nesne Kodu ile Bağlantı Executable Kode (Yürütücü Kod)

56 B01.15 Etkileşimli Geliştirme Ortamı (IDE) 56 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Geliştirme Ortamı : Bu ders boyunca Dev C++ IDE (Integrated Development Environment) ortamını program derleme aracı olarak kullanacağız. Öğrenciler bu programlama ortamını ücretsiz olarak: Adresinden indirerek bilgisayarlarına kurabilirler.

57 B01.16 DevC++ IDE 57 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) C programı geliştirme ortamı olarak DevC++ IDE (Integrated Development Environment) I kullanacağız. GNU General Public License altında ücretsiz kullanıma sunulmuş bir C programlama ortamıdır. Buradan ilgili programın kurulum dosyasını indirmek için ayrıca bir Sourceforge bağlantısı mevcuttur. Default kurulum özelliklerini kullanınız. (diğer bir deyişle yes, yes, yes gibi) Sadece windows makinelerde çalışmaktadır. Programlarınızı.c uzantılı olarak kaydedin,.cpp DEĞİL!!!

58 B01.16 DevC++ IDE 58 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş)

59 B01.17 İlk Program 59 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş)

60 B01.17 İlk Program 60 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Burası yorum/bilgilendirme amaçlandır. Derleyici /* ve */ arasındaki hiçbirşeyi dikkate almaz, bu kısım yokmuş gibi davranır. Okuyucuya kod içinde ne olduğu hakkında bilgi verir. Programlamanın hayati bir parçasıdır.

61 B01.17 İlk Program 61 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bu kısım bir öncü-işlemci (pre-processor) emridir. öncü-işlemci emri, herzaman # işareti ile başlar. Derleyiciye, stdio.h isimli bir kütüphane dosyasını içermesini söyler. Bu dosyayı içerdikten sonra, stdio.h dosyasının tüm fonksiyonlarından/özelliklerinden dilediğimiz ölçüde faydalanabiliriz. # ve include arasında hiçbir boşluk bulunmaması gerektiğine dikkat etmemiz gerekir.

62 B01.17 İlk Program 62 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) main fonksiyonunun standart tanımı; Tüm C programlarının main diye isimlendirilen bir fonksiyonu olmak zorundadır. Bir program çalışmaya, main fonksiyonu ile başlar. Fonsiyonar mutlaka bir değere atanmalıdırlar.

63 B01.17 İlk Program 63 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bizim programımızda int, main fonksiyonunun atanma türünü verir. void yazılması, fonksiyonun herhangi bir değere atanmayacağını gösterir. (), birbirinden virgülle ayrılmış bir dizi parametreyi içerir. Bizim programımız içinse parametre listesi yoktur.

64 B01.17 İlk Program 64 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Parantez içine void yazabileceğimiz gibi boş da bırakabilirdik. Boş (), parametreyi void olarak otomatik algılar.

65 B01.17 İlk Program 65 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Dalgalı parantez işaretleri, main fonksiyonunun başlangıç ve bitiş yerlerini göstermektedir. Bütün fonksiyon tanımları için zorunlu Bu dalgalı parantezler aynı zamanda ilerde inceleyeceğimiz diğer kod bloklarının ayrılması için kullanılır.

66 B01.17 İlk Program 66 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bu satır, Stdio.h içinde tanımlanmış ve printf olarak isimlendirilen fonksiyonu çağrır. printf fonksiyonu, çift tırnak içinde yazılmış olan bütün dizgiyi (string) ekrana yazar. \n karakterleri, ekranda görünmezler. Bu karakterler kaçış dizisi (escape sequences) olarak isimlendirilirler. \n, bilgisayara yeni bir satıra geçmesini söyler. Kaçış dizileri hakkında ilerde daha fazla konuşacağız.

67 B01.17 İlk Program 67 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) system fonksiyonuda stdio.h dosyası içinde tanımlanmıştır. pause kelimesi, bilgisayara bu satırdan itibaren klavyede herhangi bir tuşa basılıncaya kadar çalışmasını durdurmasını söyler.

68 B01.17 İlk Program 68 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bu ifade bilgisayara main fonsiyonundan çıkmasını söyler. 0 a dönme, main fonksiyonundan başarılı bir şekilde çıkmayı gerektirir.. Bir fonksiyonun Return yapılan değeri, return çeşidi ile aynı olmalıdır. Eğer return yapılan değer bir int dan farklı ise, SelamDunya.c programında bir derleme hatasına neden olacaktır.

69 B01.17 İlk Program 69 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş)

70 B01.17 İlk Program 70 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) /* B01_Uygulama01.c Ekrana 3 arkadaşınızı alt alta yazan bir program yazınız. 1. ve 2. arasında 1 satır, 2. ve 3. arasında 4 satır boşluk bulunsun. */

71 B01.17 İlk Program 71 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) /* B01_Uygulama02.c Ekrana 5 tane arkadaşınıza ait bilgileri aşağıdaki formata uygun olacak şekilde ekrana yazdıran bir program yazın */

72 B01.18 C de Değişken Tipleri 72 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Hemen hemen tüm programlar bir takım değişkenler üzerinde işlem yaparlar. Bunu gerçekleştirebilmek için, bir programın dataları saklaması ve gerektiğinde çağırması gerekir. Farklı tipteki değişkenler farklı tipteki dataarın saklanmasına olanak verir: Data Types yada Data tipleri Örneğin 445 ve gibi iki sayıyı saklamak zorunda iseniz, C programlama dili farklı türde iki data tipine ihtiyacınız olduğunu söyler.

73 B01.18 C de Değişken Tipleri 73 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Tüm değişkenler üç bileşenden oluşur. Bir isim Bir adres Ve Bir tutulan değer Örneğin, bir değişken atadığımızda int hiz; Derleyici bir tamsayı değişkeni için bir alan açar (4 bytes) Bu hafıza alanıprogramınız içinde ulaşılabilir bir adrese sahiptir. Bu değişkene şu şekilde bir başlangıç değeri atarsak hiz = 65; Derleyici 65 tam sayısını, hiz değişkeni için hafıza uzayında ilgili adreste saklar. Burada =, değerleri değişkenlere atayan bir atama operatörüdür.

74 B01.18 C de Değişken Tipleri 74 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Biribirine benzer sembollerden oluşan isimlendirmelerden kaçının: 1 ve l, O ve 0 gibi İsimlendirmelerde standart kütüphane isimlerini kullanmaktan kaçının stdio gibi

75 B01.18 C de Değişken Tipleri 75 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Değişken isimleri harflerden, sayılardan ve altçizgi işaretlerinden oluşabilir. İlk karakter bir harf yada alt çizgi işareti olmalıdır. Alt çizgi işareti, ilk karakter olabilir fakar bu tip isimlendirmelerden kaçınmakta fayda vardır. Büyük harf küçük harf farkeder! int hiz komutu, int HiZ yada int Hiz ile aynı değildir. Türkçe karakterlerden (ö,ğ,ş,ç,i,ü gibi) kaçınmak gerekir.

76 B01.18 C de Değişken Tipleri 76 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) C anahtar sözcükleri, değişken ismi olarak kullanılamaz. arabaismi, selam, xc45a,... /* UYGUN */ _2013_vergi_odemesi /* UYGUN fakat kaçınmakta fayda var*/ Selam#C_programcisi /* UYGUN DEĞİL */ float, double, int /* çalışmaz */ 2kere2kaceder /* UYGUN DEĞİL */ önder2 /* çalışmaz */

77 B01.18 C de Değişken Tipleri 77 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş)

78 B01.18 C de Değişken Tipleri 78 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) C de sadece birkaç tür data tipi vardır. char: bir tek byte tır, sadece tek bir karakter saklar, örneğin a, bununla beraber bu datalar tam sayı değerli ASCII sayıları gibi standartlandırılmış tam sayı değerli olarak saklanır. int: sabit uzunlukta, bir tamsayı, genellikle 4 bytes / 32 bits. Örneğin 10 tam sayısı int tipindeki bir değişkenle saklanır. float: rasyonel sayılar, tek hassasiyetli, örneğin double: float ile aynı hassasiyette fakat float ın iki katı hassasiyette

79 B01.Ek Özet ve Bazı Notlar 79 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Yazılım (bilgisayarın işlemler yapması ve karar vermesi için yazılan emirler), bilgisayarı kontrol eder (genellikle donanım olarak adlandırılır). ANSI C, C programlama dilinin, 1989 yılında Amerika'da American National Standards Instute(ANSI) ve tüm dünyada Internationals Standards Orgranization(ISO) tarafından standart hale getirilmiş sürümüdür. 25 yıl önce büyük odaları dolduran ve milyonlarca dolara mal olan bilgisayarlar bugün tırnağımızdan daha küçük silikon çipler üzerinde yalnızca bir kaç dolara mal edilmektedir.

80 B01.Ek Özet ve Bazı Notlar 80 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Dünya çapında, insanlara iş, endüstri, hükümet ve kendi kişisel yaşamlarında yardımcı olan genel amaçlı 150 milyon bilgisayar bulunmaktadır. Bir kaç yıl içinde bu sayı ikiye katlanacaktır. Bilgisayar, insandan milyonlarca ve hatta milyarlarca kez hızlı bir biçimde karar verme ve işlem yapma yeteneğine sahip cihazlardır. Bilgisayarlar, verileri bilgisayar programları kontrolünde işlerler. Donanım olarak bilinen çeşitli cihazlar (klavye, ekran, disk, hafıza, işlemci üniteleri) bir araya gelerek bir bilgisayar sistemi oluştururlar. Bilgisayarda çalışan programlar yazılım olarak adlandırılır.

81 B01.Ek Özet ve Bazı Notlar 81 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Giriş ünitesi, bilgisayarın bilgileri aldığı kısımdır. Bugünkü bilgisayarlarda bilgi genellikle klavye sayesinde girilir. Çıkış ünitesi, bilgisayarın bilgi çıkışının alındığı kısmıdır. Günümüzde bilgiler genellikle ekranda ya da kağıt üzerinde alınır. Hafıza, bilgisayarın verileri depoladığı kısımdır ve genellikle hafıza yada birincil hafıza olarak adlandırılır. Aritmetik Mantık Ünitesi (ALU), işlemler yapar ve kararlar verir. Merkezi İşlemci Ünitesi (CPU), bilgisayarın koordinasyonundan ve diğer kısımları kontrolünden sorumludur.

82 B01.Ek Özet ve Bazı Notlar 82 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Diğer üniteler tarafından kullanılmayan programlar ya da veriler yeniden kullanılana kadar genellikle ikincil hafıza araçlarına (disk) kaydedilir. Tek kullanıcılı yığın işlemede, bilgisayar, verileri gruplar yada yığınlar halinde işlerken yalnızca bir program çalıştırır. İşletim sistemleri, bilgisayarlardan en iyi performansı almak ve bilgisayarları en uygun biçimde kullanabilmeyi sağlamak için yazılmış yazılım sistemleridir. Çoklu programlama kullanım sistemleri, bilgisayarda birden fazla işi eş zamanlı olarak yapabilmemizi sağlar. (Bilgisayar, kaynaklarını işler arasında paylaştırır.)

83 B01.Ek Özet ve Bazı Notlar 83 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Zaman paylaşımı, çoklu programlamanın kullanıcının bilgisayara terminaller sayesinde ulaştığı özel bir halidir. Kullanıcılar eş zamanlı olarak çalışıyormuş gibi görünür. Çoklu kullanımda bir organizasyonun bütün hesap işleri, işlemlerin yapıldığı sitelere ağ sayesinde dağıtılır. Sunucular, çoklu kullanım sırasında istemcilerin ihtiyaç duyabileceği program ve verileri depolar. Buna, istemci/sunucu sistemler denir.

84 B01.Ek Özet ve Bazı Notlar 84 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bir bilgisayar yalnızca kendine ait makine dilini anlayabilir. Makine dilleri genellikle bilgisayara işlemler yaptırabilmek için sayıların belirli dizilerini içerir. (Çoğunlukla bu sayılar 1 ve 0'lara indirgenir.) Makine dilleri her makinede farklılık gösterebilir. İngilizce ye yakın kısaltmalar assembly dillerinin temelini oluşturmuştur. Assembler adı verilen programlar bu dilde yazılmış programları makine diline çevirir. Derleyiciler, yüksek seviyeli dillerle yazılmış programları makine diline çevirir. Yüksek seviyeli diller İngilizce kelimeler ve geleneksel matematik gösterimlerini içerir.

85 B01.Ek Özet ve Bazı Notlar 85 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Yorumlayıcı programlar, yüksek seviyeli dillerle yazılmış programları derlemeden çalıştırabilir. Derlenmiş programlar, yorumlanmış programlardan daha hızlı çalışmalarına rağmen, yeni özelliklerin ekleneceği ve hataların düzeltileceği program geliştirme ortamlarında yorumlayıcılar daha çok kullanılırlar. Bir program geliştirildikten sonra derlenmiş sürümü oluşturularak daha verimli çalışması sağlanır. C, UNIX işletim sisteminin geliştirme dili olarak bilinir. C ile çoğu bilgisayarda çalışabilecek programlar yazmak mümkündür.

86 B01.Ek Özet ve Bazı Notlar 86 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) ANSI C standardı, 1989 yılında onaylanmış, 1999 yılında gözden geçirilmiştir. FORTRAN matematik işlemleri için, COBOL ticari uygulamalar için kullanılır. Yapısal programlama, daha açık, test etmesi, hata ayıklaması ve değiştirilmesi dahakolay programlar yazmak için geliştirilmiş bir yaklaşımdır. PASCAL, yapısal programlamayı akademik çevrelerde öğretmek için geliştirilmiştir. Çoklu görev, programcıların paralel işler yapabilmesini sağlar.

87 B01.Ek Özet ve Bazı Notlar 87 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) Bütün C sistemleri üç kısım içerir: Ortam, dil ve standart kütüphaneler. Kütüphane fonksiyonları C dilinin kendisinin parçası değildir. Bu fonksiyonlar, giriş/çıkış ve matematik hesaplamaları gibi işlemleri gerçekleştirir. C programları çalıştırılana kadar altı safhadan geçer: Yazım, önişleme, derleme, bağlama, yükleme ve çalıştırma. Bir programcı, programını ve gerekli düzeltmeleri editör adı verilen programlarla yapar. C dosya isimleri, UNIX tabanlı sistemlerde.c uzantısı ile biter. Derleyici, C programını makine dili koduna (nesne kodu) çevirir.

88 B01.Ek Özet ve Bazı Notlar 88 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya Giriş) C önişlemcisi, derlenecek dosyanın içine bazı özel işaretler yerleştirmek ve dosyalar eklemek gibi önişlemci komutlarını yerine getirir. Yükleyici, çalıştırılabilir programı diskten alıp hafızaya gönderir. Sıfıra bölme gibi hatalar program çalışırken ortaya çıkar. Bu sebepten, çalışma zamanı hataları olarak adlandırılır. Sıfıra bölmek genellikle ölümcül bir hatadır. Ölümcül hatalar programın, hiçbir çıktı üretmeden aniden sonlanmasına sebep olur. Ölümcül olmayan hatalar, programın yanlış çıktı oluşturmasına sebep olur.

BİLGİSAYAR PROGRAMLAMA

BİLGİSAYAR PROGRAMLAMA BİLGİSAYAR PROGRAMLAMA YRD. DOÇ. DR. YAKUP EMÜL CUMHURIYET ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B01. Bilgisayar Programlamaya

Detaylı

Bigisayar Programlama (GÜZ 2015)

Bigisayar Programlama (GÜZ 2015) Bigisayar Programlama (GÜZ 2015) Yrd. Doç Dr. Yakup EMÜL Cumhuriyet Üniv., Teknoloji Fakültesi Yazılım Mühendisliği Bölümü yakupemul@cumhuriyet.edu.tr Ofis Saatleri : Perşembe 14:00-16:00 Dersin Websitesi

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 1 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlamaya C ile Programlamaya Yazılım: Bilgisayarın işlemler yapması ve karar vermesi

Detaylı

Bilgisayar Programlama. 1.Hafta

Bilgisayar Programlama. 1.Hafta Bilgisayar Programlama 1.Hafta Ders Planı 1. Bilgisayar Programlamaya Giriş 2. C Derleyicileri 3. GCC Kullanımı 4. Veri Tipleri ve Operatörler 5. Kontrol Yapıları 6. Döngüler 7. Döngüler 2. Hafta 8. Fonksiyonlar

Detaylı

Bigisayar Programlama

Bigisayar Programlama Bigisayar Programlama (GÜZ 2015) DERS-02: C de Programlamaya Giriş Yrd. Doç Dr. Yakup EMÜL Cumhuriyet Üniv., Teknoloji Fakültesi Yazılım Mühendisliği Bölümü yakupemul@cumhuriyet.edu.tr Ofis Saatleri :

Detaylı

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi BLM111 Programlama Dilleri I Hafta 7 C Programlama Diline Giriş ve C Derleyicisi Yrd. Doç. Dr. Caner ÖZCAN C Programlama Dili Tarihçesi C programlama dili 1972 yılında Bell Laboratuarlarında Dennis Ritchie

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

Detaylı

1.1. Yazılım Geliştirme Süreci

1.1. Yazılım Geliştirme Süreci Kazanımlar Bu bolümde; Yazılım geliştirme sureci konusunda bilgi sahibi olacak, Yazılım geliştirme surecinde gerekli olan araçları tanıyacak, Python dilinde program geliştirme ortamlarını inceleyebileceksiniz.

Detaylı

Bilgisayarda Programlama. Temel Kavramlar

Bilgisayarda Programlama. Temel Kavramlar Bilgisayarda Programlama Temel Kavramlar KAVRAMLAR Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarın anlayabileceği bir biçime dönüştürülmesi / ifade edilmesidir. Bunu

Detaylı

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. PROGRAMLAMAYA GİRİŞ Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. C de yazılan bir programın çalışması için çoğunlukla aşağıdaki

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 1: Giriş İçerik Bilgisayar Sistemleri Donanım Yazılım Programlama Program Geliştirme Nesne-tabanlı Programlama C++ Programlama Dili 2 Bilgisayar Sistemleri Kısaca,

Detaylı

C PROGRAMLAMA DİLİNE GİRİŞ

C PROGRAMLAMA DİLİNE GİRİŞ C PROGRAMLAMA DİLİNE GİRİŞ C Dilinin Tarihçesi 1972 de Dennis Ritchie tarafından AT&T Bell Laboratuarlarında B dilinden geliştirildi. C dili konusundaki ilk kitap 1978 de Dennis Ritchie ve Brain Kernighan

Detaylı

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir. İST 205 Bilgisayar Programlama III C Programlamaya Giriş ve Matematiksel-İstatistiksel Uygulamalar Y.Doç.Dr. Levent Özbek Ankara Üniversitesi Fen Fakültesi İstatistik Bölümü Tel: 0.312.2126720/1420 ozbek@science.ankara.edu.tr

Detaylı

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

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

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

Detaylı

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN Basit C Programları: Bir Metni Yazdırmak #include /* program çalışmaya main fonksiyonundan başlar*/ int main() { printf( "C diline hoşgeldiniz!\n"

Detaylı

Bilgisayar Programlama Dilleri

Bilgisayar Programlama Dilleri Bilgisayar Programlama Dilleri Ömer YÜCEL 13253072 1/32 Sunum İçeriği 1. Program ve Programlama Dili Nedir? 2. Programlama Dillerinin Tarihçesi 3. Programlama Dillerinin Sınıflandırılması 4. Programlama

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ 1 İkinci Kuşak Bilgisayarlar 1956-1963: Transistor Transistor 1947 yılında keşfedilmiştir. 50 li yılların sonuna kadar bilgisayarlarda yaygın kullanımı görülmez.

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Veri Hiyerarşisi Dosyalara Giriş

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-7 C Programlama Diline Giriş

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-7 C Programlama Diline Giriş BLM-111 PROGRAMLAMA DİLLERİ I Ders-7 C Programlama Diline Giriş Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ C Programlama Dili Tarihçesi C programlama dili 1972

Detaylı

Bilgisayar Sistemlerine Genel Bakış

Bilgisayar Sistemlerine Genel Bakış Süleyman Demirel Üniversitesi / Mühendislik Fak. / Bilgisayar Mühendisliği Carnegie Mellon Bölümü Bilgisayar Sistemlerine Genel Bakış BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr.

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

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

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları. Turbo C ++ 3.0 ALGORİTMALAR http://vaibhavweb.tripod.com/others/tc3.zip http://www.top4download.com/turbo-c- /aklqwuba.html 1 2 Bilgisayarda Problem Çözme Adımları Bilgisayarda Problem Çözme Adımları 1-Problemi

Detaylı

BİLGİSAYAR ORGANİZASYONU

BİLGİSAYAR ORGANİZASYONU BİLGİSAYAR ORGANİZASYONU Donanım Bilgisayarın fiziksel bölümü Monitor, klavye, fare Entegreler, kartlar Kablolar Yazılım: Bilgisayarın mantıksal bölümü Programlar: Bilgisayarın gerçekleştireceği komutlar

Detaylı

Java Temel Özellikleri

Java Temel Özellikleri Java Temel Özellikleri Java Programlama Dili Java programlama dili şu anda dünyadaki en popüler programlama dillerinden biri haline gelmiştir. Java SUN bilgisayar şirketince elektrikli ev aletlerinin birbiriyle

Detaylı

PROGRAMLAMA TEMELLERİ

PROGRAMLAMA TEMELLERİ PROGRAMLAMA TEMELLERİ 2.HAFTA Yazılım Yazılım, elektronik aygıtların belirli bir işi yapmasını sağlayan programların tümüne verilen isimdir. Bir başka deyişle var olan bir problemi çözmek amacıyla bilgisayar

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 2. BÖLÜM 2 PROGRAMLAMAYA GİRİŞ Programlama Terimleri ve Programlama Ortamı 3 Program Programlama IDE

Detaylı

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

VERİ YAPILARI VE PROGRAMLAMA (BTP104) 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.

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

Detaylı

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ C PROGRAMLAMA DİLİ C Programlama Dilinin Temelleri C Programlama Dili'ni popüler kılan önemli nedenler aşağıda listelenmiştir: C, güçlü ve esnek bir dildir. C ile işletim sistemi veya derleyici yazabilir,

Detaylı

Yrd. Doç. Dr. İlhan AYDIN 2012-2013 Güz Dönemi Fırat Üniversitesi Bilgisayar Mühendisliği Bölümü

Yrd. Doç. Dr. İlhan AYDIN 2012-2013 Güz Dönemi Fırat Üniversitesi Bilgisayar Mühendisliği Bölümü Yrd. Doç. Dr. İlhan AYDIN 2012-2013 Güz Dönemi Fırat Üniversitesi Bilgisayar Mühendisliği Bölümü Dersin amacı *Bilgisayarlara giriş, algoritma geliştirme, akış diyagramları *Programlamaya giriş, Java diliyle

Detaylı

Yazılım Mühendisliğine Giriş 2018 GÜZ

Yazılım Mühendisliğine Giriş 2018 GÜZ Yazılım Mühendisliğine Giriş 2018 GÜZ 1 İşletim Sistemi (Operating System) 2 Unix İşletim Sistemi Unix AT&T çalışanları tarafından Bell Laboratuvarlarında 1969 yılında geliştirilmiştir. Farklı platformlar

Detaylı

BİT in Temel Bileşenleri (Yazılım-1)

BİT in Temel Bileşenleri (Yazılım-1) Ders 4 BİT in Temel Bileşenleri (Yazılım-1) BİLGİ & İLETİŞİM TEKNOLOJİLERİ 1 Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik araçların, birbirleriyle haberleşebilmesini ve uyumunu

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-12 Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı

Detaylı

Genel Programlama I

Genel Programlama I Genel Programlama I 30.09.2010 1 Genel Programlama I Ders İçeriği Programlamaya giriş ve algoritma kavramları Basit ve karmaşık veri tipleri Program kontrol komutları (Döngü ve şart yapıları) Diziler ve

Detaylı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu bulunmaktadır; 1. Performans: İşletim sistemi, makine

Detaylı

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri 49 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B02) Çalıştırılabilir C ifadeleri ya bir işlem gerçekleştirir ( girilen verilerin toplanması

Detaylı

4. Bölüm Programlamaya Giriş

4. Bölüm Programlamaya Giriş 4. Bölüm Programlamaya Giriş Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 4.1. C# ile Program Geliştirme Net Framework, Microsoft firması tarafından açık internet protokolleri ve standartları

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı Ders 7 LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ 1 LINUX Yapısı LINUX işletim sisteminin diğer işletim sistemleri gibi kendine özgü bir yapısı vardır. LINUX yapısı ve bileşenleri aşağıdaki

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları

Detaylı

Bölüm 2 - C ile Programlamaya Giriş

Bölüm 2 - C ile Programlamaya Giriş 1 Bölüm 2 - C ile Programlamaya Giriş Başlıklar 2.1 Giriş 2.2 Basit C Programları: Bir Metni Yazdırmak 2.3 Basit C Programları: İki Tam Sayıyı Toplamak 2.4 Hafıza Konuları 2.5 C de Aritmetik 2.6 Karar

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak

Detaylı

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

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

Temel Bilgisayar Programlama

Temel Bilgisayar Programlama Temel Bilgisayar Programlama C Programlamaya Giriş Yrd. Doç. Dr. Tahir Emre Kalaycı 2012 Yrd. Doç. Dr. Tahir Emre Kalaycı () Temel Bilgisayar Programlama 2012 1 / 29 İçerik 1 Temel Kavramlar Algoritmanın

Detaylı

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım Yazılım Yazılım Bilgisayarlar üretildikleri anda içlerinde herhangi bir bilgi barındırmadıkları için bir işlevleri yoktur. Bilgisayarlara belirli yazılımlar yüklenerek işlem yapabilecek hale getirilirler.

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin

Detaylı

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir. www.csharpturk.net Türkiye nin C# Okulu Yazar Yunus Özen Eposta yunus@yunus.gen.tr Tarih 08.04.2006 Web http://www.yunusgen.tr ARİTMETİK OPERATÖRLER VE KULLANIM ŞEKİLLERİ Bilgisayarlar yapıları gereği,

Detaylı

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. I. GİRİŞ Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. İnsanların elle yaptığı ve yapmakta olduğu bir çok

Detaylı

BMT 101 Algoritma ve Programlama I Güz Dönemi. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I Güz Dönemi. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 2016 2017 Güz Dönemi Yük. Müh. Köksal Gündoğdu 1 Elektrik Elektronik ve Bilgisayar Yük. Müh. Köksal Gündoğdu koksalgundogdu@ekargemuhendislik.com Yük. Müh. Köksal Gündoğdu

Detaylı

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) { Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

C# nedir,.net Framework nedir?

C# nedir,.net Framework nedir? 1 C# nedir,.net Framework nedir? C# nedir? C#, C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip iyi yönlerinin alındığı, güçlü basit, esnek, tip-güvenli(typesafe,tür dönüşümlerindeki

Detaylı

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI MAK 1005 Bilgisayar Programlamaya Giriş Uludağ Üniversitesi, Mühendislik Fakültesi Makine Mühendisliği Bölümü BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI Prof. Dr. Necmettin Kaya 1 KONULAR 1. Bilgisayara giriş,

Detaylı

ALGORİTMA VE PROGRAMLAMA I DERS#3

ALGORİTMA VE PROGRAMLAMA I DERS#3 ALGORİTMA VE PROGRAMLAMA I DERS#3 YZM 1105 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 1. BÖLÜM 2 PROGRAMLAMAYA GİRİŞ Programlama Terimleri ve Programlama Ortamı 3 Program Programlama

Detaylı

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

PROGRAMLAMAYA GİRİŞ DERS NOTLARI PROGRAMLAMAYA GİRİŞ DERS NOTLARI PROGRAM Bilgisayar en basit olarak üç ana görevi yerine getiren bir makinedir. Girilen bilgiyi alır (INPUT), işler (PROCESSING) ve bu işlenmiş veriden bir sonuç (OUTPUT)

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Yapılar ve Birlikler enum Deyimi

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

Detaylı

Öğr.Gör. Gökhan TURAN www.gokhanturan.com.tr. Gölhisar Meslek Yüksekokulu

Öğr.Gör. Gökhan TURAN www.gokhanturan.com.tr. Gölhisar Meslek Yüksekokulu Öğr.Gör. Gökhan TURAN www.gokhanturan.com.tr Gölhisar Meslek Yüksekokulu Bilgisayarın Yapısı Donanım (Hardware): Bir bilgisayara genel olarak bakıldığında; Kasa, Ekran, Klavye, Fare, Yazıcı, Hoparlör,

Detaylı

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz.

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz. Temel Kavramlar-2 Byte = 8 Bit in bir araya gelmesiyle oluşan bellektir. Bilgisayarın tanıdığı harf rakam ve özel karakterlerden her biri 1 byte lık yer kaplar. Yani her bir harfin 1 veya 0 dan oluşan

Detaylı

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 Ekrana Metin Yazdırmak Ekranda metin yazdırmak istendiğinde print komutu kullanılır. Kullanımı aşağıda verilmiştir. Parantez içinde

Detaylı

Ünite-3 Bilgisayar Yazılımı. www.cengizcetin.net

Ünite-3 Bilgisayar Yazılımı. www.cengizcetin.net Ünite-3 Bilgisayar Yazılımı Yazılım Kavramı Bilgisayarın belirli bir işi gerçekleştirebilmesi için kullanıcı tarafından her adımda ne yapacağı tarif edilmiş olmalıdır. Yani kullanıcı bilgisayara uygun

Detaylı

OMNET++ 4.2.2. Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

OMNET++ 4.2.2. Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü OMNET++ 4.2.2 Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları OMNET++ OMNET++ (Objective Modular Network Testbed in C++), nesneye yönelik (objectoriented)

Detaylı

BİLGİ İŞLEM DERS 1. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ

BİLGİ İŞLEM DERS 1. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ BİLGİ İŞLEM MSGSU FİZİK BÖLÜMÜ DERS 1 Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ İŞLETİM SİSTEMİ OS(Operating System) İşletim sistemi temel olarak, belli girdileri alıp derleyen ve sonuçları üreten program

Detaylı

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr. Emel ARSLAN earslan@istanbul.edu.tr C Program Akış Kontrol Yapıları Kontrol Komutları Normal şartlarda C dilinde bir programın çalışması, komutların

Detaylı

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

Detaylı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 1 (Değerler, Değişkenler, İşleçler, Tip Dönüşümleri, Mantıksal Operatörler) Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Değerler

Detaylı

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ Bilgisayar, kendine önceden yüklenmiş program gereğince

Detaylı

Hafta 12 Karakter Tutan Diziler

Hafta 12 Karakter Tutan Diziler BLM111 Programlama Dilleri I Hafta 12 Karakter Tutan Diziler Yrd. Doç. Dr. Caner ÖZCAN Katar (String) Tanımlama Dizileri ve çok boyutlu dizileri gördük. Katar dediğimiz şey de aslında bir dizidir. Değişken

Detaylı

Algoritmalar ve Programlama. Algoritma

Algoritmalar ve Programlama. Algoritma Algoritmalar ve Programlama Algoritma Algoritma Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Algoritma bir sorunun çözümü

Detaylı

5. PROGRAMLA DİLLERİ. 5.1 Giriş

5. PROGRAMLA DİLLERİ. 5.1 Giriş 5. PROGRAMLA DİLLERİ 8.1 Giriş 8.2 Yazılım Geliştirme Süreci 8.3 Yazılım Geliştirme Sürecinde Programlama Dilinin Önemi 8.4 Programlama Dillerinin Tarihçesi 8.5 Programlama Dillerinin Sınıflandırılması

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA DİLİ Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Programlama Diline Giriş Java Platform Çeşitleri Java nın Kodlama ve Çalışma Adımları Java Derleyicisi, Java Yorumlayıcısı Java Çöp Toplayıcısı

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri BLM-111 PROGRAMLAMA DİLLERİ I Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Temel Veri Tipleri C dilinde

Detaylı

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Algoritma ve Programlama: Karar Yapıları ve Döngüler Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş C Programlama Dr. Serkan DİŞLİTAŞ 1.1. C# ile Program Geliştirme.Net Framework, Microsoft firması tarafından

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

Hafta 13 Fonksiyonlar

Hafta 13 Fonksiyonlar BLM111 Programlama Dilleri I Hafta 13 Fonksiyonlar Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı fonksiyonları ve kütüphane fonksiyonlarını birlikte kullanırlar.

Detaylı

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf Giriş GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI printf Fonksiyonu scanf Fonksiyonu Verilerin kaybolmaması için hafızada değişkenler içine yerleştirilmeleri gerekir. Bu veriler iki şekilde yerleştirilebilir. Değişkene

Detaylı

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler Programlama Dilleri 1 Ders 12: Belirleyiciler ve Niteleyiciler Genel Bakış Giriş Yer Belirleyicilerle Bildirim İşlemi auto Belirleyicisi register Belirleyicisi static Belirleyicisi Statik ve Global Değişkenlerin

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

Detaylı

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1 Ders Not Sistemi Vize : % 40 Final : % 60 Kaynaklar Kitap : Algoritma Geliştirme ve Programlama Giriş Yazar: Dr. Fahri VATANSEVER Konularla ilgili

Detaylı

İÇ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

İÇ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 İÇ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 BÖLÜM-II ALGORİTMA I. GİRİŞ Bilgisayar dünyasında, insanın

Detaylı

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir? Başlangıç Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir? Bilgisayar Bilgisayar, kendisine verilen bilgiler

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Kullanıcıdan aldığı veri ya da bilgilerle kullanıcının isteği doğrultusunda işlem ve karşılaştırmalar yapabilen, veri ya da bilgileri sabit disk,

Detaylı

C PROGRAMLAMA DİLİ. Hedefler

C PROGRAMLAMA DİLİ. Hedefler C PROGRAMLAMA DİLİ Hedefler Bu üniteyi çalıştıktan sonra; C programlama dili genel özelliklerini ve yapısını bilir, Kütüphane fonksiyonlarının çağrılmasını gerçekleştirebilir, Değişken, sabit tanımlamaları

Detaylı

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-11 Karakter Diziler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Karakter ve String Karakter Karakter bir sabit tek tırnak

Detaylı

Giriş. ENF102 Jeoloji

Giriş. ENF102 Jeoloji DİZİLER Arrays Giriş Aynı isim altında, aynı türde birden fazla değer tutmak için kullanılan veri yapılarıdır (Data Structure). Dizi bir kümedir; aynı türde verilere tek bir isimle erişmek için kullanılır.

Detaylı

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler çağırılma kaynaklarına göre 3 kısma ayrılırlar: Yazılım kesmeleri Donanım

Detaylı

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

if (ad == Sabri) Console.WriteLine(Merhaba Sabri. Ne zamandır gözükmüyodun...); Koşul İfadeleri ve Akış Kontrolü Koşul ifadeleri ve akış kontrolleri programlama dillerinde her zaman en önemli yeri tutmaktadır. Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir

Detaylı

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma TEMEL BİLGİSAYAR BİLİMLERİ Programcılık, problem çözme ve algoritma oluşturma Programcılık, program çözme ve algoritma Program: Bilgisayara bir işlemi yaptırmak için yazılan komutlar dizisinin bütünü veya

Detaylı