Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
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”);
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.