Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

AÇIK SİSTEMLERDE PROGRAMLAMA

Benzer bir sunumlar


... konulu sunumlar: "AÇIK SİSTEMLERDE PROGRAMLAMA"— Sunum transkripti:

1 AÇIK SİSTEMLERDE PROGRAMLAMA
4/9/2017 Bilgisayar Programlama

2 Bilgisayar Programlama
Dersin Amacı Bilgisayar Programlama kavramlarını öğretmek ve uygulatmak. Üst seviye bir Programlama Dili ile program geliştirmek. 4/9/2017 Bilgisayar Programlama

3 Bilgisayar Programlama
Not Değerlendirmesi Ara Sınav Notu : % 40 Ödev ve Küçük Sınavlar : % 40 Ara Sınav : % 60 Bitirme Sınav Notu : % 60 4/9/2017 Bilgisayar Programlama

4 Bilgisayar Programlama
Konu Başlıkları Bilgisayarın Tarihçesi Bilgisayarın İki Temel Özelliği Bilgi, Semboller ve Veri Bilgi İşlemeye ait Örnekler Algoritmalar Akış Şeması Java 4/9/2017 Bilgisayar Programlama

5 Bilgisayar Programlama
Program Nedir? Bir problemi çözmek üzere bir bilgisayar tarafından çalıştırılacak komutlar Bilgisayarlar genel amaçlı cihazlar Bir program, bilgisayarı özel amaçlı bir cihaz haline dönüştürür; web tarayıcısı, kelime işlemci, e-posta, ….. Programsız bir bilgisayar gereksiz 4/9/2017 Bilgisayar Programlama

6 Niçin Programlama Öğreniyoruz?
Merak? İhtiyaçtan? “Ailem öyle istedi…” Gerçek resim ……..Bilgisayar Devrimi 4/9/2017 Bilgisayar Programlama

7 Bilgisayar Programlama
Bilgisayar Devrimi Pascaline (Pascal Toplayıcısı) 1642 yılında üretildi Sadece toplama ve çıkarma işlemi Yaklaşık bir ayakkabı boyutunda bir makine 4/9/2017 Bilgisayar Programlama

8 Leibniz Hesap Makinesi
Alman Matematikçisi 1670 yılında geliştirildi +,-,/,* işlemleri yapılabiliyor 4/9/2017 Bilgisayar Programlama

9 Babbage Analitik Makinesi
İngiliz Matematikçisi Aritmetik işlemleri desteklemekte. Bilgi saklama olanağı var. Delikli kağıtlarla programlama. 4/9/2017 Bilgisayar Programlama

10 Bilgisayar Programlama
1946 ENIAC John Mauchly & J. Presper Eckert Elektronik, 19,000 vacum tüpü Yaklaşık 28 ton, Yeniden kablolama ile programlama 5000 aritmetik işlem/sn. 4/9/2017 Bilgisayar Programlama

11 Bilgisayar Programlama
Günümüzün Altyapısı 1940 lı yıllarda von Neumann, Princeton, USA.Programlar veri olarak saklanabiliyor. 1958, IBM 7090, transistörlerin kullanımı. 1964 IBM System/360, entegre devreler. 4/9/2017 Bilgisayar Programlama

12 Bilgisayar Devrimi-Evrimi
60’larda Bilgisayar Bu odayı kaplardı Taşımak için kamyon gerekirdi Hiç birimizin bütçesi yetmezdi 4/9/2017 Bilgisayar Programlama

13 Çağımızın Bilgisayarı
Bugünün Bilgisayarı Her yerde: Buzdolabı, Çamaşır makinesi, GSM Telefonlar, Arabalar ... Kendi bütçemizle alabiliyoruz Her yere götürebiliyoruz 4/9/2017 Bilgisayar Programlama

14 Bilgisayar Programlama
Moore Kanunu Her iki yılda bir tranzistör sayısı iki katına çıkar. 4/9/2017 Bilgisayar Programlama

15 Bilgisayar Devrimi Bitti mi?
Tipik Bir Masaüstü Aynı fiyat farklı performans Beş Yıl Önce: 10 Gbyte disk 64 Mbyte memory 750 MHz CPU Bugün: 250~500Gbyte disk 4 Gbyte memory 3 GHz CPU 4/9/2017 Bilgisayar Programlama

16 Bilgisayar Programlama
Yazılım Ürünler Web tarayıcıları El yazısını tanıyabilecek programlar Ofis yazılımları (Word, Excel, PowerPoint) Zararlı Yazılımlar Solucanlar Virüsler 4/9/2017 Bilgisayar Programlama

17 Niçin Programlama Öğreniyoruz?
Bilgisayarlar hayatımızı değiştirdi Bilgisayarlar hayatımızı daha da değiştirecek Programlama teknolojiyi sürükleyen anahtar 4/9/2017 Bilgisayar Programlama

18 Bilgisayarın İki Temel Özelliği
Bilgisayar “Veri işlemek için kullanılan bir makinedir”. Bu işi harfler, noktalama işaretleri ve sayılar gibi çeşitli sembolleri kullanarak yapar. Bilgisayar hangi işlemi yaparsa yapsın bu işleri adım adım detaylandırılmış bir komut listesine göre yapar. Bu komut listesine bilgisayar programı denir. 4/9/2017 Bilgisayar Programlama

19 Bilgi, Semboller ve Veri
Bilgi : Gerçekler ve düşüncelerdir. Soyut bir kavramdır. Örnek : Yarın akşam yemeğe davetlisiniz. Semboller : Bilginin iletilmesinde kullanılan araçlardır. Örnek : Bir davetin telefonla, konuşma veya e-posta ile ifade ediliş şekli. Veri : Sembollerle ifade edilen işlenmemiş bilgi parçasıdır. Bilgi ile Veri arasındaki fark : Semboller  Veri, Sembollerin temsil ettikleri Gerçekler ve Düşünceler  Bilgi 4/9/2017 Bilgisayar Programlama

20 Bilgi İşlemeye Ait Örnekler
Veri saklama ve bilgiye ulaşım Eğitim Aritmetik işlemler Kelime işlemcileri (Word, Excel, vb) Eğlence (oyun, müzik, TV, vb) Internet 4/9/2017 Bilgisayar Programlama

21 Bilgisayar Programı ve Algoritma
Programlar, bir problemi çözmek üzere yazılırlar. Programı yazmaya başlamadan önce mantıksal çözümün oluşturulması gerekir. Mantıksal Çözüm = Algoritma 4/9/2017 Bilgisayar Programlama

22 Bilgisayar Programlama
Algoritma ve Program Algoritma: Bir işin gerçekleştirilme aşamalarını açık ve kesin bir şekilde belirleyen komut listesidir. Bilgisayar Programı: Bu komut listesinin bilgisayarın işleyebileceği bir şekle sokulmuş halidir. 4/9/2017 Bilgisayar Programlama

23 Bilgisayar Programlama
Algoritma Pasta yapımı tarifi 2 yumurta, 2 su bardağı şekeri çırp. 2 su bardağı unu karışıma yavaş yavaş ekle. Daha sonra 1 su bardağı sıvı yağı, hamur kabartma tozunu ve vanilyayı ekle. Pasta kalıbını yağlayıp, hazırladığınız karışımı kalıba dök. 10 dakika önceden 175 derecede ısıttığınız fırında dakika pişir. Sürenin sonuna yakın keke bir bıçak batırarak, bıçağa kekin yapışmadığını görerek kekin pişmiş olup olmadığını kontrol et. 4/9/2017 Bilgisayar Programlama

24 Euclid’in OBEB Algoritması
Pozitif sayılarla ilgilidir. Bir sayı diğerini tam böler  bölüm sonucu kalan sıfır’dır ÖRNEK : 6’nın Tam Bölenler Listesi: 1, 2, 3, 6 8’in Tam Bölenler Listesi: 1, 2, 4, 8 6 ve 8’in Ortak Bölenleri: 1, 2 6 ve 8’in OBEB’i : 2 4/9/2017 Bilgisayar Programlama

25 OBEB Algoritmasının Tasarlanması
Euclid algoritması, iki özelliğe dayanır: Bir sayıyı kendinden küçük bir sayıya böldüğümüzde kalan ile küçük sayının OBEB'i bölenle bölünenin OBEB'idir. 24 ile 10'un OBEB'i 2 24'ü 10'a bölersek bu işlemin kalanı 4 10 ile 4'ün OBEB'i ise yine 2. Sıfır ile herhangi bir sayının OBEB'i yine o sayıdır. 0 ile 15'in OBEB’i 15 0 ile 10'nun OBEB’i 10 0 ile 7'nin OBEB’i 7 4/9/2017 Bilgisayar Programlama

26 OBEB Algoritmasının Tasarlanması
İki sayıdan; Büyük sayıyı Küçük sayıya böl. Birinci özellik : Küçük sayı ile bölme işleminin kalanının OBEB’i ilk iki sayının OBEB’i ile aynıdır. Bölme işlemi sonrasında ; Küçük sayıyı Büyük sayı yerine, Kalanı da Küçük sayı yerine koy, Bu işlemi kalan sıfır oluncaya dek devam et. İkinci özellik : Bir sayının sıfır ile OBEB’i kendisidir. 4/9/2017 Bilgisayar Programlama

27 OBEB Algoritmasının Tasarlanması
Aşama 1: Büyük Sayı: 99 Küçük Sayı: 55 Kalan: 44 Aşama 2: Büyük Sayı: 55 Küçük Sayı: 44 Kalan: 11 Aşama 3: Büyük Sayı: 44 Küçük Sayı: 11 Kalan: 0 Aşama 4: Büyük Sayı: 11 Küçük Sayı: 0 OBEB = 11 4/9/2017 Bilgisayar Programlama

28 OBEB Algoritmasının Tasarlanması
Algoritmanın konuşma diliyle ifadesi Küçük sayı sıfır değilken aşağıdaki işlemleri yap Büyük sayıyı küçüğe böl ve kalanı bul Büyük sayıya küçüğün değerini aktar Küçük sayıya kalanın değerini aktar Başa dön 4/9/2017 Bilgisayar Programlama

29 OBEB Algoritmasının Tasarlanması
BÜYÜK, KÜÇÜK ve KALAN sayılar için tahtada birer kutu oluşturalım. Algoritma akışı esnasında bu kutuların içine, her defasında bir değerin yazılabildiğini düşünelim. BÜYÜK KÜÇÜK KALAN 10 3 1 4/9/2017 Bilgisayar Programlama

30 OBEB Algoritmasının Tasarlanması
İki özel işarete daha ihtiyacımız var MOD : Bölmenin kalanını verir. 6 MOD 4 = 2 20 MOD 7 = 6  işareti : sağdaki değeri soldakine aktar BÜYÜK  5 : Büyük etiketli kutuya önceki değerini silerek beş değerini koy. BÜYÜK  KÜÇÜK : Büyüğün önceki değerini silerek küçüğün şimdiki değerini büyüğe aktar. KALAN  BÜYÜK MOD KÜÇÜK : Büyük sayıyı küçüğe böl ve bölme işleminin kalanını KALAN’a aktar . 4/9/2017 Bilgisayar Programlama

31 OBEB Algoritmasının Tasarlanması
KÜÇÜK <> 0 İKEN YAP KALAN  BÜYÜK MOD KÜÇÜK BÜYÜK  KÜÇÜK KÜÇÜK  KALAN BAŞA DÖN 4/9/2017 Bilgisayar Programlama

32 OBEB Algoritmasının Tasarlanması
Türkçesi KÜÇÜK <> 0 İKEN YAP KALAN  BÜYÜK MOD KÜÇÜK BÜYÜK  KÜÇÜK KÜÇÜK  KALAN BAŞA DÖN İngilizcesi WHILE KÜÇÜK <> 0 DO KALAN  BÜYÜK MOD KÜÇÜK BÜYÜK  KÜÇÜK KÜÇÜK  KALAN END WHILE 4/9/2017 Bilgisayar Programlama

33 OBEB Algoritmasının Sahte Kod (Pseudo Code) ile Gösterimi
ALGORITMA OBEB BÜYÜK  99 KÜÇÜK  44 WHILE KÜÇÜK <> 0 DO KALAN  BÜYÜK MOD KÜÇÜK BÜYÜK  KÜÇÜK KÜÇÜK  KALAN END WHILE ÇIKTI BÜYÜK END OBEB 4/9/2017 Bilgisayar Programlama

34 Bilgisayar Programlama
Akış Şeması Bir algoritmanın şekillerle gösterilmesidir. İçinde komutların bulunduğu şekiller ve bu şekillerin birbirine çizgilerle bağlanmış halidir. 4/9/2017 Bilgisayar Programlama

35 Bilgisayar Programlama
BASLA BÜYÜK  99 KÜÇÜK  55 KÜÇÜK <> 0 YANLIŞ (FALSE) DOGRU (TRUE) KALAN  BÜYÜK MOD KÜÇÜK BÜYÜK  KÜÇÜK KÜÇÜK  KALAN ÇIKTI BÜYÜK DUR 4/9/2017 Bilgisayar Programlama

36 Algoritma İfade Biçimleri
Konuşma Dili Sahte Kod (Pseudo Code) Akış Şeması 4/9/2017 Bilgisayar Programlama

37 Akış Şeması Sembolleri
BAŞLA / DUR GİRDİ / ÇIKTI (INPUT / OUTPUT) İŞLEM (PROCESSING) KARAR (DECISION) TOPLAYICI (COLLECTOR) 4/9/2017 Bilgisayar Programlama

38 Bilgisayar Programlama
Karmaşa ? Bilgisayar, programcının hazırlık çalışmaları sonucu yazdığı problemin algoritmasından anlamaz! Bu çözüm bilgisayara nasıl aktarılacak? Bilgisayar nelerden anlar? 4/9/2017 Bilgisayar Programlama

39 Bilgisayar Programlama
Makina Dili Bilgisayar sistemi ikili kodda ifade edilmiş komutlardan anlar. OBEB algoritmasının makina dili ile gösterimi: 4/9/2017 Bilgisayar Programlama

40 Bilgisayar Programlama
Assembly Dili Programlar Makina dilinde kodlanabilir. Ancak bu şekilde programı yazmak; Çok zor, Anlaşılması çok güç, Hata yapma olasılığı çok yüksektir.(1 ve 0 lardan birinin farklı olması programın hatalı olması demektir.) Daha basit kodlama  assembly dili 4/9/2017 Bilgisayar Programlama

41 Bilgisayar Programlama
Assembly Dili OBEB algoritmasının Assembly kodu LDA KUCUK KUCUK’u Yükle CMP SIFIR …….sıfırla karşılaştır JEQ 00D eğer eşitse döngüden çık LDA BUYUK BUYUK değerini….. MOD KUCUK ……KUCUK’e böl STA KALAN ……ve KALAN’I sakla LDA KUCUK KUCUK’deki değeri…. STA BUYUK …….BUYUK’e kopyala LDA KALAN KALAN’daki değeri…. STA KUCUK ……KUCUK’e kopyala JMP Döngünün başına git OUT BUYUK BUYUK’ü yazdır HALT Çalışmayı durdur 4/9/2017 Bilgisayar Programlama

42 Bilgisayar Programlama
Assembly Dili Makine dilinin görüntüsünün değişimidir. Makine dilindeki problemler burada da mevcuttur. Assembly kodu günlük konuşma dilimize yakın değildir. 4/9/2017 Bilgisayar Programlama

43 Bilgisayar Programlama
Yüksek Seviye Dilleri Günlük konuşma diline yakın ifadeler ile program geliştirmemizi sağlayan dillerdir. Sık kullanılan diller Basic Fortran Pascal C, C++ JAVA 4/9/2017 Bilgisayar Programlama

44 Bilgisayar Programlama
Derleyici Yüksek seviye bir dil ile yazılan programı makine diline çeviren aracı programlardır. Kaynak Program : Yüksek seviye bir dille yazılmış program Derleyici : Kaynak Programı Makine diline çeviren aracı program Hedef Program: Makine diline çevrilmiş program. 4/9/2017 Bilgisayar Programlama

45 Bilgisayar Programlama
DERLEME Kaynak Program Derleyici Hedef Program 4/9/2017 Bilgisayar Programlama

46 KULLANILACAK YAZILIMLAR
Windows tabanlı bir işletim sistemi Java Developer Kit (1.1,1.2,1.3,1.4, ) Klavye.jar kütüphanesi JCreator Editoru Diğer Java araçları (Borland JBuilder, Microsoft Visual J++ ….) 4/9/2017 Bilgisayar Programlama

47 Bilgisayar Programlama
Java’nın Tarihçesi İlk geliştirildiğinde OAK ismiyle anıldı Mucidi James GOSLING Sun Microsystem, California da geliştirilmektedir. (Silikon vadisi, internet ) Amaç; küçük, hızlı, güvenilir, taşınabilir program üretmek. 4/9/2017 Bilgisayar Programlama

48 Bilgisayar Programlama
Problem Ekrana ‘Merhaba Dunya’ yazan programın Akış şemasını çizelim Java’da kodlayalım 4/9/2017 Bilgisayar Programlama

49 Bilgisayar Programlama
Akış Şeması Başla ÇIKTI ‘Merhaba Dunya’ Dur 4/9/2017 Bilgisayar Programlama

50 İlk Program // Program hakkında açıklamalar public class IlkProg {
} // Metod hakkında açıklamalar public static void main (String[] args) { } System.out.println(“Merhaba Dunya”);

51 Derleyici ve Yorumlayıcı\Interpreter
Editor Derleyici : : 7 Ilkprog.java Ilkprog.class K There is also JIT (Just-In-Time) compiler technology where the program is interpreted and compiled at the same time. On subsequent runs the compiled code is used; there is no need to reinterpret it. Yorumlayıcı Yorumlayıcı Hello, World! 4/9/2017 Bilgisayar Programlama

52 Java Program Yapısı // Program hakkında açıklamalar
public class IlkProg { } Program başlığı Program gövdesi Açıklamalar herhangi bir yerde olabilirler

53 Java Program Yapısı // Program hakkında açıklamalar
public class IlkProg { } // açıklamalar public static void main (String[] args) { } Ana program başlığı Ana program gövdesi

54 Açıklamalar Programın amacını ve işlem basamaklarını belirtmek için kullanılırlar Programın çalışmasını etkilemezler Java açıklamaları iki şekilde kullanılır // bu açıklama satırın sonuna kadar yazılır /* bu açıklama sonlandırma işaretine kadar çalışır */

55 İlk Programımız // Program hakkında açıklamalar public class IlkProg {
} // açıklamalar public static void main (String[] args) { } System.out.println(“Merhaba Dunya”);

56 Program Nelerden Oluşur
Tanımlayıcılar Ayrılmış Kelimeler Önceden Geliştirilmiş Programlar Özel Karakterler ve Boşluk Karakterleri 4/9/2017 Bilgisayar Programlama

57 Tanımlayıcılar (Identifier)
Tanımlayıcılar bir programcının program içerisinde tanımladığı sözcüklerdir Bir tanımlayıcı harflerden, rakamlardan, alt çizgi karakterinden ( _ ) ve dolar ( $ ) işaretinden oluşur Tanımlayıcılar rakamla başlayamazlar Java büyük/küçük harfe duyarlıdır- Toplam, toplam ve TOPLAM farklı tanımlayıcılardır Geleneksel olarak, programcılar farklı tipteki tanımlayıcılar için farklı harf biçimleri kullanırlar, örneğin; Program isimleri için ilk harf büyük - Ilkprog Sabitler için büyük harf - MAXIMUM

58 Ayrılmış Kelimeler (Reserved Word)
abstract assert boolean break byte case catch char class const continue default do double else enum extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while Ayrılmış kelimeler tanımlayıcı olarak kullanılamaz

59 Önceden Geliştirilmiş Programlar
Java dilinde sizin veya başka bir programcının önceden geliştirmiş olduğu programlardan da faydalanılabilir. Math.abs(-8) // Tam değer alma int i = Klavye.intOku() // int değer okuma 4/9/2017 Bilgisayar Programlama

60 Bilgisayar Programlama
Özel Karakterler { } 4/9/2017 Bilgisayar Programlama

61 Boşluk Karakterleri Boşluklar, boş satırlar ve tab’lar boşluk karakterleri olarak adlandırılırlar Boşluk karakterleri bir programda kelimeleri ve sembolleri ayırmak için kullanılırlar Ekstra boşluk karakteri göz ardı edilir Geçerli bir Java programı birçok farklı formatta oluşturulabilir Programlarda okunabilirliği artırmak amacıyla içeriden başlamaya (indentation) dikkat edilir

62 Bilgisayar Programlama
Örnek public class IlkProg2{public static void main(String[ ]args){ System.out.println(”Okan Üniversitesi:"); System.out.println("Bilişim Sistemleri ve Teknolojileri Bolumu.");}} public class IlkProg2 { public static void main(String[ ]args) System.out.println("Okan Üniversitesi:"); System.out.println("Bilişim Sistemleri ve Teknolojileri Bolumu."); } İki Program Aynı 4/9/2017 Bilgisayar Programlama

63 Okunabilirliği Zor Program
// Program hakkında açıklamalar public class IlkProg { // açıklamalar public static void main (String[] args) { System.out.println(“Merhaba Dunya”); } }

64 Okunabilir Program // Program hakkında açıklamalar
public class IlkProg { } // açıklamalar public static void main (String[] args) { } System.out.println(“Merhaba Dunya”);


"AÇIK SİSTEMLERDE PROGRAMLAMA" indir ppt

Benzer bir sunumlar


Google Reklamları