BİLGİSAYAR PROGRAMLAMA I (Java)

Benzer belgeler
Nesne Yönelimli Programlama

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

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

4. Bölüm Programlamaya Giriş

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

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

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Bilgisayarda Programlama. Temel Kavramlar

TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Enformatik Bölümü

Programlama Dillerinde Kullanılan Veri Tipleri

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Algoritmalar ve Programlama. Algoritma

ALGORİTMA VE PROGRAMLAMA I

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

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

Program Nedir?(1) Programlamaya Giriş

BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

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

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

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

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

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

C++ Dersi: Nesne Tabanlı Programlama

Temel bilgisayar ve Java bilgileri

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

BİLGİSAYAR ORGANİZASYONU

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

Öğr.Gör. Mehmet Can HANAYLI

BİLGİSAYAR PROGRAMLAMA MATLAB

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

1 DERS İZLENCESİ 2 BİLGİSAYARA GİRİŞ Bilgisayar nedir? Bilgisayarın tarihçesi Bilgisayarın kullanıldığı alanlar Bilgisayarın kullanılmasında dikkat

Dr. Fatih AY Tel: fatihay@fatihay.net

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

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

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

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

Algoritmanın Hazırlanması

BİLGİSAYAR KULLANMA KURSU

EYLÜL 2012 ENFORMATİK. Enformatik Bölümü

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

Java Temel Özellikleri

Bilgi ve iletişim teknolojileri

Algoritma ve Akış Diyagramları

Dr. Musa KILIÇ Öğretim Görevlisi

2. Bölüm Programlama Bilgisi

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

HSancak Nesne Tabanlı Programlama I Ders Notları

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

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Programlama Temelleri. Ders notları. Öğr.Gör. Hüseyin Bilal MACİT 2017

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Bilgisayar Programlama. 1.Hafta

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

ENFORMATİK. Enformatik Bölümü

Java da İşleçler, Ders #3 (4 Kasım 2009)

İşletim Sistemi. BTEP205 - İşletim Sistemleri

PROGRAMLAMA TEMELLERİ

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU

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.

Algoritmik Program Tasarımı, Akış Şemaları ve Programlama. Bilgisayar Mühendisliğine Giriş 1

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-1 Temel Kavramlar ve Algoritma

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

HÜPP PYTHON I.HAFTA ALGORİTMA MANTIĞI, AKIŞ DİYAGRAMLARI VE PYTHON'A GİRİŞ

PROGRAMLAMA DİLLERİ. Programlama Dilleri Programlama Dillerinin Önemi Dilleri Sınıflandırılması Anlambilim BNF Notasyonu Kontrol Deyimleri

Ana Bellek (RAM) İşlemci (CPU) Depolama

İşletim Sistemlerine Giriş

İÇERİK. Dersin işlenişi Bilgisayara giriş

WINDOWS 7. Eğitim ID 98 2/4 (Normal Seviye Kullanıcı) Konu ID Windows 7 Hakkında Genel Bilgi Ek Bilgi -

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

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

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

C Dersi Bölüm 1. Bilgisayar Donanımı

Bilişim Teknolojileri Temelleri Dijital Dünyada Yaşamak

Klavyeden Basit Giriş/Çıkış İşlemleri

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

C# nedir,.net Framework nedir?

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

Hafta 1 Programlamaya Giriş

BİL-141 Bilgisayar Programlama I (Java)

// hataları işaret eden referans

5. PROGRAMLA DİLLERİ. 5.1 Giriş

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

Bölüm 1. Bilgisayarlar ve C++ Programlama. Doç.Dr. Yıldıray Yalman. Kaynak: Problem Solving with C++, Walter Savitch Slide 1

Programlama Temelleri

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

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

BİLGİ VE İLETİŞİM TEKNOLOJİLERİ

BİL-141 Bilgisayar Programlama I (Java)

Transkript:

BİLGİSAYAR PROGRAMLAMA I (Java) (BİL-141) 2015 - TOBB ETÜ

Ders Hakkında Genel Bilgi DERSİN AMACI Java dilini kullanarak, programlama temel mantığını kavramak ve programlamada kullanılan çeşitli yöntemleri ve algoritmaları anlayabilmek DERS KİTABI Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu, M. Özbayoğlu, M. Erten, O. Ergin Yardımcı Kaynak Java: An Introduction to Problem Solving & Programming, W. Savitch, 6th Ed. DERS ASİSTANI Salih Arda BÖLÜK (ardaboluk2@gmail.com) Teknoloji Merkezi No:204 (Lab Saatleri Duyurulacak) DERS ZAMANI (6 hafta 2+2 saat, 6 hafta 2+1 saat) Pazartesi Günleri: 12:30-14:20 (2 Saat) Amfi 2 Cuma Günleri: 08:30-10:20 (2 Saat) Amfi 3 Özel Durumlarda (Salı 12:30-14:20) Amfi 3 DERS WEB SAYFASI https://piazza.com da haftaya açılacak. Bilgisayar IProgramlama I (Java) 2

Ders İçeriği 1. Programlamaya Giriş 2. Veri Türleri 3. Program Akış Denetimi 4. Sınıflar ve Metotlar 5. Nesneler ve Metotlar 6. Diziler 7. Kalıtım 8. Kural Dışı Durum Çözme (İstisnalar) 9. Metin Dosyaları ile Giriş Çıkış İşlemleri 10. Özyineleme 3

NOTLANDIRMA Ara Sınav : %20 Lab Sınav : %25 Ödevler : %15 Final Sınavı : %40 4

DERS 1 Bilgisayar ve Programlamaya Giriş (Java) (BİL-141) 2015 - TOBB ETU

Hedeflenen Çıktılar Donanım ve yazılım hakkında genel bilgi sahibi olmak Programlama dilleri ve derleyiciler hakkında bilgi sahibi olmak Java programlama dili hakkında genel bilgi sahibi olmak Algoritma ve Akış Şeması tasarımını öğrenmek 6

Bilgisayar Temelleri Donanım: Bilgisayarın fiziksel tüm ekipmanları kısacası bilgisayarın fiziksel kısmına donanım denir. Yazılım: Bilgisayar için hazırlanmış komutlar kümesine program. Bilgisayarın çalışması için gerekli programlara ve bilgisayarlarda çalışan uygulama programlarının tümüne ise yazılım denir. 7

Bilgisayar Donanımı (Computer Hardware) MİB (Merkezi İşlem Birimi) (MİKROİŞLEMCİ) Çıkış Birimi Giriş Birimi DEB AMB Yardımcı Bellek Ana Bellek 8

Donanımın (Hardware) Temel Elemanları Merkezi İşlemci Birimi MİB (CPU-Central Processing Unit): Bilgisayar içerisindeki yazılım komutlarını işleyen aygıttır. Ör: Intel Core i7 vb. Denetleme Birimi (DEB): Komutların işlenmesini denetler. Aritmetik Mantık Birimi (AMB): Aritmetik ve Mantıksal işlemleri yerine getirir. Ana Bellek (Main Memory): O an çalıştırılacak programları ve verileri tutan bellek çeşididir (RAM). Yazılımlar tasarlanırken ana belleğin özellikleri dikkate alınır. Yardımcı Bellek (Auxiliary Secondary Memory): Disk sürücüleri, disketler, CD/DVD vb. uzun süreli veri depolayan aygıtların tümü yardımcı bellektir. 9

Bit Bayt Kavramları Bit sadece 0 ve 1 değerini alabilen en küçük birimdir. 1 Bayt = 8 Bit 1 KB = 1024 Bayt 1 MB = 1024 KB 1 GB = 1024 MB Birim Eşitlik 1 Bit Binary Digit (0 veya 1) 8 Bits 1 Byte 1024 Bytes 1 Kilobyte 1024 Kilobytes 1 Megabyte 1024 Megabytes 1 Gigabyte 1024 Gigabytes 1 Terabyte 1024 Terabytes 1 Petabyte 1024 Petabytes 1 Exabyte - 1024 Exabytes 1 Zettabyte 1024 Zettabytes 1 Yottabyte 1024 Yottabytes 1 Brontobyte 10

Ana Bellek Her biri 1 bayt veri tutabilen sıralı adresleri bulunan alanlardan oluşmuştur. Bilgisayar herhangi bir veriye o verinin adresini kullanarak ulaşır. Eğer bir veri 1 bayttan daha fazla yer kaplıyorsa ardışık adreslerde saklanır. Bu şekilde değişik veri şekilleri (karakterler, numaralar, vb.) birden fazla bayt alanında saklanabilir. 11

Yazılım (Software) Sistem Yazılımları: İşletim sistemi gibi bilgisayarların donanımına ait yazılımlar Uygulama Yazılımlar: Kullanıcılara yönelik yazılımlar 12

İşletim Sistemi Bilgisayar donanımının doğrudan denetimi ve yönetiminden, temel sistem işlemlerinden ve uygulama programlarını çalıştırmaktan sorumlu olan sistem yazılımıdır. Bilgisayarın bütün işlevlerinin çalışmasını sağlayan üst düzey bir yazılımdır. Herhangi bir uygulamayı çalıştırmak istediğimizde öncelikle işletim sistemi ile bağlantı kurar ve hangi programı çalıştıracağını ona tıklama, bir menü öğesi seçme veya klavyeden bir komut girme gibi farklı yöntemlerle bildiririz. İşletim sistemi bizim adımıza o uygulamanın çalışması ile ilgili bütün hazırlıkları yaparak, uygulamayı çalıştırır. En bilindik işletim sistemleri, Microsoft Windows, Apple MAC OS, Linux ve Unix gibi işletim sistemleridir. 13

Programlama Dilleri ve Derleyiciler Üst-Düzey Diller: Kullanıcıların kolaylıkla anlayıp kullanacağı dillerdir. Ör: Java, Pascal, Fortan, C, C++, Basic, Visual Basic, vb. Alt-Düzey Diller: Bilgisayarın doğrudan anladığı ve kullandığı dildir. Bu dillere genelde makine dilleri ya da çevirici (assembler) denir. Bilgisayar üst-düzey dilleri doğrudan anlayamaz. Üst-düzey bir dil ile yazılmış bir programın bilgisayarın anlayacağı alt-düzey bir dile çevrilmesi gerekmektedir. Bu çevrim işlemini derleyici (compiler) adı verilen bir program gerçekleştirir. Üst düzey dilde yazılmış programa kaynak kodu (source code), bunun alt düzeye çevrilmiş haline ise nesne kodu (object code) denir. Üst-düzey bir dilden makine diline çevrim için bilgisayarın donanımına özel bir derleyici kullanmak gerekir. Her mikroişlemci ve işletim sistemi için ayrı bir derleyici gerekir. 14

Java Bayt Kodu (bytecode) Java da makine diline doğrudan çevrilmez. Java derleyicisi Java Bayt Kodu adı verilen bir program oluşturur. Java Virtual Machine (JVM) adı verilen bir hayali bilgisayarın makine kodu oluşturulur. JVM tüm bilgisayarları temsil eder. JVM de oluşturulan bayt kod herhangi bir bilgisayarın makine diline çok rahat çevrilebilmektedir. Bu nedenle Java nın en büyük avantajlarından birisi her ortama taşınabilirliğidir (portability). JVM ile yorumlanan bir kod herhangi bir derlemeye gerek duymadan bütün bilgisayarlarda çalışabilecek durumdadır. Bu da Java nın internet uygulamaları için iyi bir seçim olmasını sağlamaktadır. Taşınabilirliğin başka bir avantajı da, herhangi bir üretici firmanın yeni çıkan bir bilgisayarı için JVM de herhangi bir değişiklik yapmaya gerek yoktur. Java Bayt Kodundan makine diline çevrim yapan programa Yorumlayıcı (Interpreter) denir. 15

Bağlama (Linking) Java uygulamasının yaratılması esnasında iki komut kullanılır. JAVAC : Yazılan Java kaynak kodunu Java bayt koduna çevirir. JAVA: Oluşan bayt kodu çalıştırır. Java programları genellikle tek parça bulunmaz. Farklı farklı parçacıklar halinde yazılmış kodlar bayt koda çevrildikten sonra, bağlayıcı (linker) adı verilen bir program yardımıyla bir bütün haline getirilir. Bu işleme bağlama (linking) denir. 16

Java nın Tarihçesi İlk çalışmalar 1991 yılında James Gosling ve Sun Microsystems deki ekibi tarafından başlatıldı. İlk çalışmaların amacı tost makinesi, TV, video oyantıcısı, müzik seti gibi ev aygıtlarını kontrol edecek bir programlama dili oluşturmaktı. Yalnız bu programlama dilinin değişik işlemcilerde çalışabilmesi gerekiyordu. Fakat ev aygıları ucuz cihazlar olduğu için, üreticiler aygıt uygulama yazılımlarını, işlemcinin anlayacağı dile çevirme noktasında zaman ve finansal kaynak ayırmak istemiyorlardı. Bu nedenle James ve ekibi bir uygulama yazılımlarını bütün cihazların anlayabileceği bir ara dile çevirecek bir kod parçası ürettiler. Böylelikle çok zaman ve finansal kaynak gerektirmeden oluşturulacak küçük kod parçacıkları bu ara dilden makine diline çeviri yapabileceklerdi. Bu ara dil bayt kod olarak adlandırıldı. 1994 de Gosling ve ekibi oluşturdukları bu programlama dilinin (İlk ismi Oak, sonra Java) )internetteki web browserlar için çok uygun olduğunu düşündüler. Önce WebRunner, daha sonra Hot Java ismini alan browserlar yapıldı. 1995 te ise Netscape firması ile yapılan anlaşmada, üretilen web browserlar java çalıştıracak hale getirildi. Bu şekilde başlayarak gelişen java dili günümüze bu şekilde geldi. 17

Program Geliştirme Problemi anlama (Analiz) İhtiyaçları belirleme (Analiz) İhtiyaçlara göre problemi çözecek çözümü geliştirme (Tasarım) Çözümü program olarak kodlama (Kodlama) Programı test etme (Test) Programı uygulamaya alma (Uygulamaya Alma) 18

Başarılı Bir Programlama İçin Adım 1: Problemin anlaşılması, programın girişlerinin ve çıkışlarının belirlenmesi. Adım 2: Problemin çözümü için gerekli bileşenlerin belirlenmesi. Adım 3: Programın anahtar özelliklerinin belirlenmesi, akış diyagramının ve algoritmanın oluşturulması Adım 4: Programın test edilmesinde her bir parçanın belirlenmesi ve test edilmesi. Adım 5: Sonraki versiyonlardaki gereksinimlerin belirlenmesi ve önceki adımların tüm versiyonlar için tekrarlanması. 19

Programlama Yanlışları Sözdizim yanlışları (Syntax Error): Programın yazımı esnasında yapılan gramer yanlışlardır. Bunları düzeltmeden program çalışmaz. Derleyici bu yanlışları programcıya belirtir. Çalıştırma zamanı yanlışları (Run-Time Error): Sözdizim yanlışları düzeltildikten sonra program çalıştırılır. Programın çalışması esnasında görülebilen, bir sayıyı sıfıra bölme gibi yanlışlara «çalıştırma zamanı yanlışları» adı verilir. JVM yanlışın nerede olduğu konusunda kullanıcıya bilgi verir. Mantık yanlışları (Logical Error): Program çalıştırılır. Bilgisayar hiçbir yanlış mesajı vermez, fakat program istenilen sonucu vermemektedir. Bu durumda programda bir mantık hatası oluşmuş demektir. 20

Algoritma Algoritma: Bir problemin çözümü için tasarlanan işlemler ve komutlar bütünüdür. Günlük hayatta gerçekleştirdiğimiz bir çok faaliyette algoritma kullanırız. Yol tarifi, araba sürme, yemek pişirme vb. İyi bir algoritmanın özellikleri şunlardır: Başlangıcı olmalı Basit olmalı Problemin çözümünü, mümkün olan en az adım ile en kısa sürede gerçekleştirmeli Sonu olmalı Problem (İLK DURUM) ALGORİTMA Çözüm (SON DURUM) 21

Akış Şeması (Flow Chart) Bir algoritmanın adımlarının mantıksal sırasını, adımların birbiri ile bağlantısını, bir işlemden diğerine nasıl gidileceğini belirten kontrol mekanizmalarını, özel şekil ve sembollerle anlatan bir ifade biçimidir. 22

Akış Şemaları Sıralı Akış Şartlı Akış Tekrarlı Akış 23

Sıralı Akış S1 Yapılacak işlerin (komutların) ard arda mantıksal bir sıra ile dizilmesidir. Karşılaştırma yapmak veya önceki işlemlere geri dönmek bu akışta mümkün değildir. S2 24

Başla Örnek Klavyeden girilen iki sayıyı (X ve Y) çarparak sonucu (X) ekrana Oku X, Y yazan bir algoritma ve akış şemasını ALGORİTMA Z = X * Y 1- Başla 2- X ve Y sayılarını oku Yaz Z Dur 3- X ve Y sayılarını çarparak sonucunu Z ye ata 4- Z yi ekrana Yaz 5- Dur 25

Şartlı Akış Evet K Hayır Programda karşı karşıya gelinen seçeneklerden birini seçme durumunun yer aldığı akış türüdür. P Q Şekilde K olarak gösterilen karar noktasında karar sorusunun cevabı evet ise P işlemi yönünde bir akış izleneceği, cevap hayırsa Q işlemi yönünde bir akış izleneceği belirtilmiştir. 26

Şartlı Akış - Örnek Başla Klavyeden girilen bir sayının değeri 5 den küçük ise ekrana 5 den küçük, 5 den büyük Oku X ise 5 den büyük yazdıran algoritma ALGORİTMA Evet X > 5 Hayır 1- Başla 2- X sayısını oku 3- Eğer X > 5 ise Git 4 Değilse Git 5 Yaz «X 5 den büyük» Yaz «X 5 den küçük» 4- Yaz X > 5 Git 6 5- Yaz X < 5 6- Dur Dur 27

Tekrarlı Akış (Döngüler) Aynı işlemlerin birden çok defa tekrar ettiği akış şemalarıdır. K Evet P P Hayır Önce-Sına- Doğruysa-Yinele Döngüsü K Hayır Evet Yinele-Sonra- Yanlışı-Sına 28

Başla Tekrarlı Akış Örnek (Önce Sına Doğruysa Yinele) Sayacı 1 e eşitle Sayaç = 1 1 den 50 ye kadar olan sayıları yazdıran akış şeması ve algoritması ALGORİTMA Hayır Sayac <= 50 Evet Yaz Sayaç Sayacı bir arttır Sayac = Sayac +1 1- Başla 2- Sayaç = 1 3- Eger Sayac <= 50 ise Git 4 Değilse Git 7 4- Yaz Sayac 5- Sayac = sayaç + 1 6- Git 3 7- Dur Dur 29

Başla Tekrarlı Akış Örnek (Yinele Sonra Yanlışı Sına) Sayacı 1 e eşitle Sayaç = 1 1 den 50 ye kadar olan sayıları yazdıran akış şeması ve algoritması Yaz Sayaç ALGORİTMA 1- Başla Sayacı bir arttır Sayac = Sayac +1 Sayac <= 51 Hayır Evet 2- Sayaç = 1 3- Yaz Sayac 4- Sayac = sayaç + 1 5- Eğer Sayaç <= 51 ise Git 3 Değilse Git 6 6- Dur Dur 30

Döngüye Özel Akış Şeması I: Başlangıç Değeri, Şart, Sayaç durumu P I 31

Döngüye Özel Akış Şeması Örnek Başla I=1, I<=50,I=I +1 Yaz I I Dur 1 den 50 ye kadar olan sayıları yazdıran akış şeması ve algoritması ALGORİTMA 1- Başla 2- Döngü I=1, I<=50, I=I+1 3- Yaz Sayac 4-Döngü Sonu 5- Dur 32

ÖRNEKLER ALGORİTMA ve AKIŞ ŞEMALARI 33

Örnek 1 Bir dikdörtgenin alanını ve çevresini bulan bir algoritma ve akış şeması oluşturunuz 34

Başla Çözüm 1 Oku En, Boy Alan = En * Boy Çevre = 2*(En + Boy) Yaz Alan, Çevre Dur ALGORİTMA 1- Başla 2- Oku En, Boy 3- Alan = En * Boy 4- Çevre = 2 * (En + Boy) 5- Yaz Alan, Çevre 6- Dur 35

Örnek 2 Bir sınıfta yer alan 30 öğrencinin aldığı notların ortalamasını bulan algoritma ve akış şemasını hazırlayınız. 36

Başla Çözüm 2 Sayaç = 1 ALGORİTMA Toplam = 0 1- Başla 2- Sayaç 1 Sayac <= 30 Evet 3- Toplam 0 4- Eger Sayac <= 30 ise Git 5 Değilse Git 9 Hayır Ort= Toplam/ 30 Yaz Ort Dur Sıradaki Öğrencinin Notu (Not) Toplam = Toplam + Not Sayac = Sayac +1 5- Oku(Not) 6- Toplam Toplam + Not 7- Sayac Sayac + 1 8- Git 4 9- Ort Toplam / 30 10- Yaz(Ort) 11- Dur 37

Örnek 3 Klavyeden girilen n sayının faktöriyelini alan algoritma ve akış şemasını hazırlayınız. 38

Çözüm 3 ALGORİTMA 1- Başla 2- Oku(N) 3- Faktör 1 4- S 1 5- Faktör Faktör * S 6- Eğer S <= N ise S S + 1 Git 5 7- Yaz(Faktör) 8- Dur 39

Nesne Tabanlı Programlama (OOP-Object Oriented Programming) Nesne Tabanlı Programlama, gerçek dünyadaki somut nesnelerden yola çıkarak, bir yazılım programında bunları temsil eden soyut nesnelerin oluşturulması ve bu nesnelerin birbirleri ile etkileşimini içeren bir programalama şeklidir. Klasik yapısal programlamada verilerimiz ve fonksiyonlarımız vardı. Yani her şey veri ve bu veriyi işleyen metotlar etrafında dönüyordu. Fakat gerçek hayata baktığımızda ise herşeyin nesnelerden oluştuğu, bu nesnelerin bir takım özellikleri (veri) ve davranışları (metot) olduğu görülmüştür. Dolayısıyla Nesne Tabanlı Programlama gerçek hayatı örnek alarak temele nesneleri yerleştirmiş ve yazılım dünyasında bir devrim yaratmıştır. 40

Nesne Tabanlı Programlamanın Avantajları Problemlerin çözümüne nesnesel bakmayı yani insan anlayışı bakışı getirmiştir. Bu sayede yazılıma aktarılacak konuların daha basit ve anlaşılır modellenmesi sağlanabilmiştir. Hatalar daha kolay tespit edilebilmiş ve daha hızlı onarım yapılabilmiştir. Bu sayede yazılım geliştirme ve bakım maliyetlerinde önemli düşüşler tespit edilmiştir. Gerçek dünyada varolan sistemler çok hızlı bir şekilde yazılım dünyasına entegre edilebilmiştir. Modülerlik, Esneklik, tekrar kullanılabilirlik, güvenilirlik artmıştır. 41

Sınıf ve Nesne Kavramı (Class and Object) Herşey bir nesnedir (object). Her nesne bir sınıfın (class) örneğidir. Sınıf, aynı yapıdaki nesnelerin sahip olduğu ortak durum (state) ve davranışların (behaviour) yer aldığı bir modeldir. Programlama dillerinde durum, özellik (property) veya alan (field) dediğimiz yapılarla, davranış ise metot (method) veya fonksiyon (function) dediğimiz yapılarla ifade edilir. 42

Soyutlama (Abstraction) Soyutlama (Abstraction): Önemli özelliklere odaklanabilmek için ayrıntıları göz ardı etme sürecidir. Prosedürel Soyutlama: Programlarda kişiselleştirilmiş kod kullanmak yerine, belirli görevleri gerçekleştirmek için standart fonksiyonların oluşturulması bir prosedürel soyutlamadır. Veri Soyutlaması: Bir veri tipinin nasıl yapılandığının ayrıntılarını göz ardı etmemize izin veren soyutlama tarzına denir. 43

Nesne Tabanlı Programlama da 3 Önemli Özellik Kuşatma (Encapsulation): Soyutlamayı desteklemek için nesneye ait özelliklerin, metotların ve nesne içi etkileşimin gerekmediği sürece nesnenin dışına çıkmamasıdır. Bu şekilde nesnenin iç yapısı dış dünyadan korunmuş (kuşatılmış) olur. Ör: Otomobilin iç işleyişinden haberdar olmadan sürebilmek. Çokbiçimlilik (Polymorphism): Bir işlevin, işlemin, metodun değişik nesneler tarafından aynı ya da değişik biçimlerde kullanılabilir olmasıdır. Ör: «Fren Yap» metodunun kullanımı ve iç dinamikleri, otomobil, bisiklet veya tren gibi nesneler için tek bir isim altında fakat farklı yapısal biçimde kullanılması. Kalıtsallık (Inheritance): Bir sınıfa ait özellikler ve işlemlerin yeni bir sınıfa (çocuk sınıf) birebir aktarılmasıdır. Yeni sınıf eski sınıfın özellikleri ve işlemlerine sahip olmasına ek olarak kendisi de özellikler ve işlemler tanımlayabilir. Ör: Taşıt sınıfının Araba, Motorsiklet, Otobüs gibi alt sınıfları, Araba nın da Aile Arabası, Spor Arabası gibi alt sınıfları 44

Java ya Giriş Bir programın temel yapısı Sınıf tanımı Özellik tanımı Metot Tanımı Bir java programının çalışabilmesi için main() metodu isminde özel bir metot bulunmalıdır. JVM nin programı çalıştırabilmesi için main() metodu aşağıdaki şekilde yazılmak zorundadır. public static void main(string[] args) { } Main metodu sınıf tanımının içerisinde bulunur. 45

Java ya Giriş Kod System.out.println("Java Programlama") Sınıflar Metot Metodun alacağı girdi Çıktı 46

Java Programını Derlemek ve Çalıştırmak java program_adi.java javac class_adi 47

Açıklamalar Açıklama satırları program hakkında bilgiler vermek için kullanılır. Compiler açıklama satırlarını gözardı eder. Java içindeki açıklama yazmanın iki yolu vardır. Tek Satırlık Açıklamalar // Açıklamalar bu satıra yazılabilir. // Compiler iki slaş işaretinden satır sonuna // kadar herşeyi gözardı eder. Çok Satırlık Açıklamalar /* Açılama yazmanın diğer bir yoludur. Compiler slaş yıldız ile yıldız slaş arasındaki herşeyi gözardı eder. */ 48

Önişlemci direktifleri import java.util.*; ön işlemci direktifidir. Önişlemci direktifleri compiler a komutlar gönderir. java.util bir kütüphanedir. Klavyeden okuma ve ekrana yazman için gerekli deyimleri bulundurur. import deyimi ile compiler a java.util araçlarının kullanılacağı bildirilmiştir. Java çok sayıda kütüphaneye ve araca sahiptir. Java fonksiyonları kullanılacağı zaman uygun kütüphanenin programa import edilmesi gerekir. 49

Fonksiyonlar (Metotlar) Fonksiyon başlık satırı her fonksiyonda olur. Fonksiyonun adını ve giriş/ çıkış parametrelerini tanımlar. Genel yazımı return_type function_name(input parameters) { } şeklindedir. return_type, fonksiyonu çağıran yere döndürülecek değer tünü belirler. Fonksiyon blokları { ve } parantezleri ile oluşturulur. 50

Java Deyimleri Java deyimleri çalıştırılacak komutları ifade eder. Java daki çoğu deyim noktalı virgülle sonlandırılır. Merhaba dünya! programı bir deyime sahiptir. System.out.println("Merhaba dünya!"); out çıkışı yönlendirir. println ile string konsol ekranına gönderilir ve yeni satıra geçilir. 51

Boşluk karakterleri ve Java ile esnek yazım Boşluk karakterleri (Whitespaces) programın okunabilirliğini arttırır. Enter, tab ve space ile oluşturulur. Compiler gözardı eder. Merhaba dünya! programı aşağıdaki gibi yazılırsa yine çalışır: public class MerhabaDunya { public static void main (String [] args) { System.out.println( Merhaba dünya! ); }} 52

Syntax Syntax programın yazım kurallarını ifade eder. Önişlemci yazım hatası bulursa anlamlı bir mesajla programcıya bilgi verir. Programdaki az sayıda hata, çok sayıdaki hata, çok sayıda compiler hatası üretebilir. 53

Java'da İyi Program Yazım Şekli Java ile yazılan programın kolay okunabilir olması gerekir. Tanımlayıcı açıklamaların yapılması gerekir. Anlamlı ve uygun uzunlukta değişken isimlendirme yapılması gerekir. Programdaki blokların hizalandırılması gerekir. Balangıçta okunabilirlik için harcanan zaman, compiler hatalarının düzeltilmesi ve programın update edilmesi sırasında çok zaman kazandırır. 54

TEŞEKKÜRLER Dr. Yusuf UZUNAY yuzunay(at)gmail(dot)com 2015 - TOBB ETÜ