Metotlar. Bölüm Metot Nedir? Metot Nedir? Parametreler ve Yerel Değişkenler. main() Metodu. Hazır Metotlar. System.Math Sınıfının Metotları

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

Download "Metotlar. Bölüm 1. 1.1 Metot Nedir? Metot Nedir? Parametreler ve Yerel Değişkenler. main() Metodu. Hazır Metotlar. System.Math Sınıfının Metotları"

Transkript

1 İçindekiler 1 Metotlar Metot Nedir? Static Öğe Metot Kavramı Parametreler ve Yerel Değişkenler main() Metodu Nesne Yaratma Hazır Metotlar java.lang.math Fibonacci Sayıları Kullanıcının Tanımladığı Metotlar Uygulamalar Alıştırmalar String den Tamsayıya Dönüşüm i

2 ii İÇINDEKILER ii

3 Bölüm 1 Metotlar Metot Nedir? Parametreler ve Yerel Değişkenler main() Metodu Hazır Metotlar System.Math Sınıfının Metotları 1.1 Metot Nedir? Her bilgisayar dili değişken ve fonksiyon kavramlarına sahiptir. Bu tesadüfen değil, işin doğasından kaynaklanan bir durumdur. Değişkenler, bilgisayar programının işleyeceği ham maddedir. Bu ham maddelerin işlenip ürün haline getirilmesi için kullanılan araçlar fonksiyonlardır. Nesne Yönelimli (Object Oriented- OO) Programlama Dillerinde her şey sınıflar (class) içinde tanımlanır. Bir sınıfa ait değişkenler o sınıfın özelliklerini ortaya koyar. O nedenle, sınıf değişkenlerine, 1

4 2 1. metotlar çoğunlukla, özelik (property) denilir. Benzer olarak bir sınıf içinde tanımlı fonksiyonlar o sınıfın tavır, davranış ve eylemlerini ortaya koyar. Bu ayrımı gözetmek için olsa gerek, OO Programlama dillerinde fonksiyonlara metot denir. Çoğu zaman bu biz de bu geleneğe uyarak, bir sınıfta tanımlanan değişken yerine bazen özelik ya da veri alanı diyeceğiz. Benzer olarak, fonksiyon yerine eşanlamlı olarak metot diyeceğiz. Ancak, özellikle alışkanlıklarımıza dayanan vurgu gerektiğinde değişken ve fonksiyon adlarını kullanmaktan da çekinmeyeceğiz. Okurun, değişken ile özeliğin ve fonksiyon ile metodun eş anlamlı olduğunu daima anımsayacağını umuyoruz. Değişkenlere neden başka ad verdiğimizi birazdan anlamış olacağız. Fonksiyon kavramına geçmeden önce, bir gerçeği anımsamakta yarar vardır. Anadilimizi öğrenirken bile sistematik bir yöntem izlemedik. Bazı kalıpları (gramer) çevremizden duyduğumuz gibi kullanmaya başladık. Ana dilimizi kullanmayı öğrendikten çok sonra onun gramerini öğrendik. Programlama dillerinin öğrenimi de çoğunlukla ona benzer. Başlangıçta bir çok sözdizimini (syntax), nedenini sormadan, olduğu gibi kullanırız. Sonra onun nedenini algılamamız daha kolay olur. 1.2 Static Öğe Şimdiye dek bir çok kez kullandığımız main() metodunu static anahtar sözcüğü ile niteledik. Başka metot ve değişkenler (özelik) için de aynı nitelemeyi kullandık. Bir sınıfta tanımlı bir değişken veya metodu static diye nitelemenin OO programlamada özel bir işlevi vardır. Genel kural olarak, bir sınıfta tanımlı değişkenler ve fonksiyonlar, ancak o sınıfa ait bir nesne (object) yaratıldıktan sonra o nesne içinde işlevsellik kazanırlar. Bunun istisnai hali değişkenin veya metodun önüne static nitelemesi konulduğunda oluşur. Başka bir deyişle şunu söyleyebiliriz: Uyarı 1. static sözcüğü ile nitelenen değişken veya metot, ait olduğu bir nesne (object) yaratılmadan kullanılabilir. 2

5 1.3. Metot Kavramı 3 static sözcüğünün işlevini sınıf konusunu işlerken daha ayrıntılı açıklayacağımızı, ama o zamana kadar onu gerektiği yerde kullanmak zorunda olduğumuzu unutmayınız. 1.3 Metot Kavramı Metot kavramı, matematik derslerinden bildiğimiz fonksiyon tanımından başka bir şey değildir. Matematikte f : X Y, x y simgelerinin ifade ettiği anlam şudur: Fonksiyonun adı f dir. f fonksiyonu tanım kümesi denilen X kümesinden, değer kümesi denilen Y kümesi içine tanımlıdır. f fonksiyonu X kümesinden aldığı her x öğesini, fonksiyon kuralı denilen bir dönüşüm yöntemiyle Y kümesi içindeki y öğesine götürür (eşler). x öğesine fonksiyonun değişkeni, y öğesine x öğesinin f altındaki dönüşümü (resmi) diyoruz. Her x değişkenine bir ve yalnız bir y öğesi karşılık gelir. Başka bir deyişle, bir değişken birbirinden farklı iki öğeye eşlenemez. Buradan şunu hemen anlıyoruz. Her fonksiyonun bir tanım kümesi ( X ), bir değer kümesi ( Y ) ve bir dönüşüm kuralı x y vardır. Matematik ten anımsadığımız bu kavramı, şimdi, bilgisayar diliyle ifade edelim. Açıklamayı basit bir örnek üzerinde yaparsak konu daha kolay anlaşılacaktır. Aşağıdaki fonksiyon bir tamsayının karesini hesaplar. 1 i n t KaresiniBul ( s h o r t x ) { i n t y ; y = x x ; r e t u r n y ; 6 Bu tanımda i n t KaresiniBul ( s h o r t x ) 3

6 4 1. metotlar satırına fonksiyonun başlığı diyeceğiz. Fonksiyon başlığı, fonksiyon hakkında bize gerekli başlıca bilgileri verir. Bu nedenle, bazı kaynaklar ona fonksiyonun mühürü (signature) derler. Biz fonksiyon başlığı terimini tercih edeceğiz. Önce başlığın bize verdiği bilgilere bakalım: Fonksiyonun adı KaresiniBul bitişik iki sözcüktür. Fonksiyonun adının sağına yazılan (short x) ifadesi, fonksiyonun tanım kümesinin short veri tipi olduğunu ve değişkeninin x simgesiyle gösterildiğini belirtir. Fonksiyonun adının soluna yazılan int veri tipi fonksiyonun değer bölgesidir. Başlıktaki satırdan sonra gelen bloku fonksiyona işlevini yaptıran deyimleri içeren bloktur. Bu bloku fonksiyon bloku veya fonksiyon gövdesi diye adlandıracağız. gövdesi içinde y = x x çarpma ve atama işlemleri fonksiyonun yapacağı iştir. x x çarpımının sonucu y değişkenine atanmış ve y değeri fonksiyonun değeri olarak belirlenmiştir (x öğesinin eşleneceği y öğesini belirleyen fonksiyon kuralı). Fonksiyonun alacağı değeri return anahtar sözcüğü ile belirtiyoruz: r e t u r n y ; Parametreler ve Yerel Değişkenler Bilgisayar programlama dillerinde, fonksiyonun başlığındaki parantez () içindeki değişken(ler)e parametre denilir. Bunun nedenini açıklamak için, yukarıdaki gövdesine bakalım. Fonksiyonun gövdesinde int tipinden bir y değişkeni tanımlanmıştır. Dolayısıyla bu fonksiyon iki farklı nitelikte değişken kullanmaktadır. Başlıktaki (short x) değişkeni ve fonksiyon gövdesi içindeki int y değişkeni. Bu iki değişkeni birbirlerinden ayırt etmek için, fonksiyon başlığındaki x değişkenine parametre ve gövdesi içindeki y değişkenine 4

7 1.3. Metot Kavramı 5 fonksiyonun yerel değişkeni denilir. Uyarı 2. Bilgisayar programlarında fonksiyona, matematikteki gibi tek harfli ad takmak yerine, genellikle, onun işlevini ima eden sözcükler takılır. Kaynak programı okuyan kişinin fonksiyonun işlevini hemen kavraması için bu iyi bir gelenektir. Bunu alışkanlık edininiz. Ancak, derleyici açısından fonksiyona takılan ad hiç önemli değildir. Tek harfli ad olsa da birden çok sözcükten oluşan uzun ad verilse de sistem ona işlevini eksiksiz gördürecektir. Bilgisayar programlarında fonksiyonların parametrelerinin her biri bir veri tipi üzerinde tanımlıdır. Bu veri tip(ler)i onun tanım kümesidir. Her fonksiyon, parametreleri ve yerel değişkenleri üzerinde, önceden belirlenen bazı işlemleri yapar ve sonunda bir değer verir (dönüşüm). Bu değer bir veri tipi içindedir. O veri tipi, fonksiyonun değer kümesidir. Değer kümesi void (boş küme) olabilir. O durumda, fonksiyon gövdesinde belirlenen işi yapıyor, ama bir değer vermiyor. Buna bazı dillerde yordam (procedure) deniliyor. Java dilinde her şeyin bir sınıf içinde tanımlanması gerektiğini söylemiştik. Öyleyse, yukarıdaki fonksiyon tanımını bir sınıf içine taşımalıyız. Fonksiyonumuzu istediğimiz bir sınıf içinde tanımlayabileceğimizi ileride göreceğiz. Ama, şimdi işleri kolaylaştırmak için onu, main() fonksiyonunu da içeren bir sınıf içine taşıyalım. Program p u b l i c c l a s s Kare { s t a t i c i n t n ; p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 9 n = k a r e s i n i B u l ( 9 ) ; System. out. p r i n t l n ( n ) ; s t a t i c i n t k a r e s i n i B u l ( i n t x ) { 5

8 6 1. metotlar 14 i n t y ; y = x x ; r e t u r n y ; / 2 81 / 1.4 main() Metodu main() metodu, Java dilinde bir programın bütün işlevini yaptıran ana metottur. Programın kullanacağı bütün deyimleri tek başına içerebileceği gibi, modüler yapıda yazılan programlarda öteki sınıflarda tanımlanan metotları ve değişkenleri çağırır ve belirlenen sırayla işleme sokar. Her programda ana metot olma işlevini üstlenen bir ve yalnızca bir tane main() metodu vardır. Bir programda başka main() metotları olsa bile, onlar bu programda ana metot olma sorumluluğunu taşıyamazlar. main() bir metot olduğuna göre, tanımı genel sözdizimi kurallarına uyar. Çoğunlukla başlığını p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) biçiminde yazarız. Bunun nedenini ilerleyen bölümlerde daha iyi anlayacaksınız. Şimdilik şunları söylemekle yetinelim: Yukarıdaki main() metodunun, args adını taşıyan parametresi String tipi bir array dir. Değer kümesi void (boş küme) dir. Bu küme, matematikteki boş küme gibidir. Hiç bir öğesi yoktur. Dolayısıyla, bu örnekte main() metodu bir değer almıyor, yalnızca başka bir metodu çağırıp onun işlevini yapmasını sağlıyor. Başlıktaki static anahtar sözcüğünü mutlaka kullanmalıyız. Onun ne iş yaptığını ileride göreceğiz. Yukarıdaki örnekte, Kare adlı sınıf içinde, s t a t i c i n t n ; 6

9 1.4. main() Metodu 7 değişkeni tanımlıdır. Sınıfa ait değişkenlere özelik diyeceğimizi söylemiştik. Dolayısıyla, n değişkeni Kare sınıfının bir özeliğidir. Ayrıca bu sınıf içinde main() metodu ile karesinibul() metodu tanımlıdır. main() metodunun gövdesinde yazılan k a r e s i n i B u l ( 9 ) ; deyimine, fonksiyonu parametre değeriyle çağırmak denir. Fonksiyon çağrılırken onun x parametre adı yerine, o parametreye verilen 9 değeri ile çağrılmaktadır. Başka bir deyişle, fonksiyon çağrılırken x x soyut işlemi yerine 9 9 somut işlemini yapması istenmektedir. Bu olgu, matematikte f(x) = x 2 fonksiyonu tanımlı iken f(9) = 9 2 = 81 işlemini yapmak gibidir. Kare sınıfı içinde tanımlanan n değişkeni,karesinibul() metodu ve main() metodu static anahtar sözcüğü ile nitelenmişlerdir. Bunun nedenini bu bölümün başında açıklamıştık. Ayrıca, anımsayacaksınız, bu bölümün başında sınıf içinde tanımlanan değişkenlere özelik diyeceğiz demiştik. Böylece, bir sınıf içinde olabilecek üç farklı nitelikteki değişkeni ayrı ayrı gruplamış oluyoruz: Fonksiyonun yerel değişkeni Fonksiyonun parametresi Sınıfın yerel olmayan değişkeni Yukarıdaki basit örnekte görüldüğü gibi, bu değişken gruplarının kullanılışları ve işlevleri birbirlerinden farklıdır. Ayrıca bir fonksiyonun hiç parametresi veya yerel değişkeni olmayabileceği gibi, birden çok parametresi veya yerel değişkeni olabilir. Benzer olarak, bir sınıfın hiç değişkeni veya metodu olmayabileceği gibi, birden çok değikeni ve metodu olabilir. Bunları örnekler üzerinde göreceğiz. 7

10 8 1. metotlar Aşağıdaki program bir metin içindeki küçük harf, büyük harf, rakam ve alfasayısal (harf veya rakam) olmayan karakterlerin sayılarını bulur. Her bir sayımı yapmak için, KarakterleriSay sınıfı içinde dört ayrı metot tanımlanmıştır. Metotların main() tarafından nesne yaratılmadan çağrılabilmesi için herbirine static nitelemesi verilmiştir. Program import java. u t i l. Scanner ; p u b l i c c l a s s K a r a k t e r l e r i S a y { 9 s t a t i c i n t n ; s t a t i c c h a r [ ] sarr ; p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Scanner scan = new Scanner ( System. i n ) ; System. out. p r i n t l n ( " Bir s a t ı r yazıp Enter e b a s ı n ı z : " ) ; S t r i n g s = scan. nextline ( ) ; 14 sarr = s. tochararray ( ) ; System. out. p r i n t l n ( "Küçük Harf S a y ı s ı : " + küçükharfsay ( sarr ) ) ; System. out. p r i n t l n ( "Büyük Harf S a y ı s ı : " + büyükharfsay ( sarr ) ) ; System. out. p r i n t l n ( "Rakam S a y ı s ı : " + rakamsay ( sarr ) ) ; 19 System. out. p r i n t l n ( " A l f a s a y ı s a l Olmayan Karakter S a y ı s ı : " + a l f a s a y ı s a l D e ğ i l s e S a y ( sarr ) ) ; s t a t i c i n t küçükharfsay ( c h a r [ ] s t r ) { i n t küçükharfsayısı = 0 ; 24 f o r ( c h a r h a r f : s t r ) { i f ( Character. islowercase ( h a r f ) ) { küçükharfsayısı++; 29 r e t u r n küçükharfsayısı ; 8

11 1.4. main() Metodu 9 s t a t i c i n t büyükharfsay ( c h a r [ ] s t r ) { i n t büyükharfsayısı = 0 ; 34 f o r ( c h a r h a r f : s t r ) { i f ( Character. isuppercase ( h a r f ) ) { büyükharfsayısı++; 39 r e t u r n büyükharfsayısı ; s t a t i c i n t rakamsay ( c h a r [ ] s t r ) { i n t rakamsayısı = 0 ; 44 f o r ( c h a r h a r f : s t r ) { i f ( Character. i s D i g i t ( h a r f ) ) { rakamsayısı++; 49 r e t u r n rakamsayısı ; s t a t i c i n t a l f a s a y ı s a l D e ğ i l s e S a y ( c h a r [ ] s t r ) { i n t a l f a S a y ı s a l D e ğ i l S a y ı s ı = 0 ; 54 f o r ( c h a r h a r f : s t r ) { i f (! Character. i s L e t t e r O r D i g i t ( h a r f ) ) { a l f a S a y ı s a l D e ğ i l S a y ı s ı ++; 59 r e t u r n a l f a S a y ı s a l D e ğ i l S a y ı s ı ; / Bir s a t ı r yazıp Enter e b a s ı n ı z : I s t a t i s t i k ve B i l g i s a y a r B i l i m l e r i, akademik YILI. 4 Küçük Harf S a y ı s ı : 36 Büyük Harf S a y ı s ı : 7 Rakam S a y ı s ı : 8 A l f a s a y ı s a l Olmayan Karakter S a y ı s ı : 9 / 9

12 10 1. metotlar static nitelemesinin işlevini daha iyi açıklamak için Birkaç örnek program daha inceleyeceğiz. Aşağıdaki programı derlemeyi deneyiniz. Program import java. u t i l. Date ; p u b l i c c l a s s Demo { 7 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { TarihYaz ( ) ; v o i d TarihYaz ( ) { 12 Date date = new Date ( ) ; System. out. p r i n t l n ( date. t o S t r i n g ( ) ) ; Derleyici size şu hata mesajını iletecektir: non s t a t i c method TarihYaz ( ) cannot be r e f e r e n c e d from a s t a t i c context Bu iletinin bize söylediği şey şudur: 11.satırdaki static olmayan TarihYaz() metodu ancak bir nesne içinde kullanılabilir. Şimdi bir nesne yaratmadan, static nitelemesiyle derleyicinin itirazını kaldırabileceğimizi, aşağıdaki program gösterecektir. Bunun için TarihYaz() metodunu static olarak nitelemek yetecektir. Program import java. u t i l. Date ; p u b l i c c l a s s Tarih { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { t. TarihYaz ( ) ; 10

13 1.5. Nesne Yaratma 11 9 s t a t i c v o i d TarihYaz ( ) { Date date = new Date ( ) ; System. out. p r i n t l n ( date. t o S t r i n g ( ) ) ; 14 / Mon Oct : 5 8 : 1 0 EET 2011 / 1.5 Nesne Yaratma Şimdi de static nitelemesini kullanmamak için Tarih sınıfından bir nesne yaratalım. Sınıfları incelerken bu konuyu daha ayrıntılı ele almıştık. Burada şu kadarını tekrar anımsayalım: Tarih sınıfı tanımlı iken, main() metodu içinde Tarih t = new Tarih ( ) ; deyimi Tarih sınıfının t adlı bir nesnesini yaratır. Bu nesne içindeki TarihYaz() metodunu çağırmak (nesne içindeki metoda erişmek) için t. TarihYaz ( ) ; deyimi yeterlidir. Aşağıdaki programı derleyip koşturunuz; önceki program ile aynı çıktıyı verdiğini göreceksiniz. Program import java. u t i l. Date ; p u b l i c c l a s s Tarih { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Tarih t = new Tarih ( ) ; 11

14 12 1. metotlar 9 t. TarihYaz ( ) ; v o i d TarihYaz ( ) { Date date = new Date ( ) ; 14 System. out. p r i n t l n ( date. t o S t r i n g ( ) ) ; / Mon Oct : 5 8 : 1 0 EET 2011 / 1.6 Hazır Metotlar Java çok zengin bir kütüphaneye sahiptir. Bu kütüphanede çok sayıda paket, her paket içinde sınıflar ve sınıflar içinde pek çok işi görecek metotlar vardır. Buna rağmen, kullanıcı gerekseme duyduğunda kendi paketlerini, sınıflarını ve metotlarını serbestçe yaratabilmektedir. Yukarıda yaptıklarımız, kullanıcının yaratabileceği sınıf ve metotların basit örnekleridir. Şimdiye kadar kullandığımız print(), println(), write(),... metotları java.io.printstream sınıfına aittirler. islowercase(), isuppercase(), isdigit(), IsLetter(), isspacechar(), iswhitespace, tostring(), tolowecase(), touppercasde(),... metotları Character sınıfına aittir. charat(int index), compareto(string str),concat(string str), getbytes(), getchars(int srcbegin, int srcend, char[] dst, int dstbegin), indexof(int ch), length(), substring(int beginindex, int endindex), tochararray(), tolowercase(), touppercase(), valueof(),... metotları String sınıfına aittir. İlerleyen bölümlerde Java kütüphanesindeki başka sınıf ve metotları kullanmayı öğreneceğiz. Bunlar hakkında daha ayrıntılı bilgiyi java web sitesinden her zaman öğrenebilirsiniz. Kütüphaneyi ezberle- 12

15 1.7. java.lang.math 13 meye kalkmayınız. Sizden beklenen, gerektiğinde o kütüphaneyi nasıl kullanacağınızı ve aradığınızı nasıl bulacağınızı öğrenmenizdir. 1.7 java.lang.math Matematik fonksionları her dilde çok önem taşır. Onlar olmadan program yazmak hemen hemen olanaksızdır. Java dili matematik metotlarını java.lang.math sınıfı içinde toplamıştır. Math sınıfı mühürlüdür (sealed). Dolayısıyla, ileride göreceğimiz gibi, Math sınıfının kalıtımı (inherited) olamaz. Math sınıfının bütün öğeleri static dir. O nedenle, Math sınıfının bir nesnesi (object) yaratılamaz. Böyle olduğu için, Math sınıfının metotlarını Math.Sqrt() biçiminde sınıf adıyla birlikte kullanacağız. Aşağıdaki program o metotlerı ve çağrılma yöntemlerini göstermektedir. Program import java. u t i l. Scanner ; p u b l i c c l a s s Demo { 7 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Scanner scan = new Scanner ( System. i n ) ; d o u b l e x, y ; S t r i n g sx, sy ; 12 System. out. p r i n t l n ( " Lütfen b i r i n c i s a y ı y ı g i r i n i z : " ) ; // sx = scan. nextline ( ) ; x = scan. nextdouble ( ) ; System. out. p r i n t l n ( " Lütfen i k i n c i s a y ı y ı g i r i n i z : " ) ; 17 // sy = scan. nextline ( ) ; y = scan. nextdouble ( ) ; System. out. p r i n t l n ( ) ; 13

16 14 1. metotlar 22 System. out. p r i n t f ( "%n B a ş l ı c a Math M e t o t l a r ı : " ) ; System. out. p r i n t f ( "%n abs(% f ) = %f ", x, Math. abs ( x ) ) ; System. out. p r i n t f ( "%n c e i l i n g (% f ) = %f ", x, Math. c e i l ( x ) ) ; System. out. p r i n t f ( "%n exp(% f ) = %f ", x, Math. exp ( x ) ) ; System. out. p r i n t f ( "%n f l o o r (% f ) = %f ", x, Math. f l o o r ( x ) ) ; 27 System. out. p r i n t f ( "%n IEEERemainder(%f,% f ) = %f ", x, y, ( x % y ) ) ; System. out. p r i n t l n ( ) ; System. out. p r i n t f ( "%n l o g (% f ) = %f ", x, Math. l o g ( x ) ) ; System. out. p r i n t f ( "%n log10(% f ) = %f ", x, Math. log10 ( x ) ) ; 32 System. out. p r i n t f ( "%n max(% f ) = %f ", x, Math. max( x, y ) ) ; System. out. p r i n t f ( "%n min(%f,% f ) = {2 ", x, y, Math. min ( x, y ) ) ; System. out. p r i n t f ( "%n pow(% f ) = %f ", x, Math. pow( x, y ) ) ; System. out. p r i n t f ( "%n round(% f ) = %d", x, Math. round ( x ) ) ; // System. out. p r i n t f ("%n s i g n (% f ) = %f ", x, Math. s i g n ( x ) ) ; 37 System. out. p r i n t f ( "%n s q r t (% f ) = %f ", x, Math. s q r t ( x ) ) ; System. out. p r i n t l n ( ) ; System. out. p r i n t f ( "%n cos(% f ) = %f ", x, Math. cos ( x ) ) ; System. out. p r i n t f ( "%n s i n (% f ) = %f ", x, Math. s i n ( x ) ) ; System. out. p r i n t f ( "%n tan(% f ) = %f ", x, Math. tan ( x ) ) ; 42 System. out. p r i n t f ( "%n cotan(% f ) = %f ", x, 1 / Math. tan ( x ) ) ; System. out. p r i n t l n ( ) ; System. out. p r i n t f ( "%n acos(% f ) = %f ", x, Math. acos ( x ) ) ; 14

17 1.7. java.lang.math 15 System. out. p r i n t f ( "%n a s i n (% f ) = %f ", x, Math. a s i n ( x ) ) ; System. out. p r i n t f ( "%n atan(% f ) = %f ", x, Math. atan ( x ) ) ; 47 System. out. p r i n t f ( "%n atan2(%f,% f ) = {2 ", x, y, Math. atan2 ( x, y ) ) ; System. out. p r i n t l n ( ) ; System. out. p r i n t f ( "%n cosh(% f ) = %f ", x, Math. cosh ( x ) ) ; System. out. p r i n t f ( "%n s i n h(% f ) = %f ", x, Math. s i n h ( x ) ) ; System. out. p r i n t f ( "%n tanh(% f ) = %f ", x, Math. tanh ( x ) ) ; 52 System. out. p r i n t f ( "%n cotanh(% f ) = %f ", x, 1 / Math. tanh ( x ) ) ; 1 / Lütfen b i r i n c i s a y ı y ı g i r i n i z : 1234,56789 Lütfen i k i n c i s a y ı y ı g i r i n i z : 9876, B a ş l ı c a Math M e t o t l a r ı : abs (1234,567890) = 1234, c e i l i n g (1234,567890) = 1235, exp (1234,567890) = I n f i n i t y f l o o r (1234,567890) = 1234, IEEERemainder (1234,567890,9876,543210) = 1234, l o g (1234,567890) = 7, log10 (1234,567890) = 3, max(1234,567890) = 9876, min (1234,567890,9876,543210) = {2 pow (1234,567890) = I n f i n i t y round (1234,567890) = s q r t (1234,567890) = 35, cos (1234,567890) = 0, s i n (1234,567890) = 0, tan (1234,567890) = 0,

18 16 1. metotlar 26 cotan (1234,567890) = 12, acos (1234,567890) = NaN a s i n (1234,567890) = NaN atan (1234,567890) = 1, atan2 (1234,567890,9876,543210) = {2 cosh (1234,567890) = I n f i n i t y s i n h (1234,567890) = I n f i n i t y tanh (1234,567890) = 1, cotanh (1234,567890) = 1, / Özyineli (Recursive) Metotlar Özyineli (recursive) metot kendi kendisini çağıran metottur. Bilgisayar programcılığında zor problemleri çözen önemli bir algoritmadır. Onunla ilgili bir örnek vereceğiz Fibonacci Sayıları Fibonacci sayıları doğanın çoğalma formülü diye bilinir. Biyolojide, tıpta ve mühendislikte önemli uygulamaları vardır. Fibonacci sayılarının ilk 10 tanesini hesaplayan aşağıdaki program özyineli bir metot kullanmaktadır. Program import java. u t i l. Date ; p u b l i c c l a s s Demo { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 8 f o r ( i n t i = 1 ; i < 1 1 ; i ++) System. out. p r i n t ( Fibonacci ( i ) + " " ) ; System. out. p r i n t l n ( ) ; 16

19 1.7. java.lang.math s t a t i c i n t Fibonacci ( i n t n ) { i f ( n < 2) r e t u r n n ; e l s e r e t u r n Fibonacci ( n 1) + Fibonacci ( n 2) ; 18 1 / / Özyineli metotlar, istenen işi yapmak için kendi kendilerini defalarca çağırırlar. Bunu daha iyi algılamak için, yukarıdaki Fibonacci() metodunun kaç kez çağrıldığını saydıralım. Bunun için bir sayaç değişkeni tanımlayıp her adımda 1 artmasını sağlamak yetecektir. Bunu yapan aşağıdaki program aynı zamanda Fibonacci sayılarının ne kadar hızla büyüdüğünü göstermektedir. Bunu canlıların çoğalmasına, örneğin bakterilerin çoğalmasına uygularsak Fibonacci sayılarının neden önemli olduğunu anlarız. Program c l a s s F i b o n a c c i S a y ı l a r ı { s t a t i c l o n g sayaç = 0 ; p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 7 f o r ( i n t i = 1 ; i <= 4 5 ; i ++) System. out. p r i n t f ( " Fibonacci(%d ) = %d a t ı d ı %n", i, Fibonacci ( i ), sayaç ) ; i ç i n %d adım 12 s t a t i c i n t Fibonacci ( i n t n ) { sayaç++; i f ( n < 2) r e t u r n n ; e l s e 17 r e t u r n Fibonacci ( n 1) + Fibonacci ( n 2) ; 17

20 18 1. metotlar 1 / Fibonacci ( n ) Değeri Kaç Adım Fibonacci ( 1 ) = 1 [ 1 adım a t ı d ı ] Fibonacci ( 2 ) = 1 [ 4 adım a t ı d ı ] Fibonacci ( 3 ) = 2 [ 9 adım a t ı d ı ] 6 Fibonacci ( 4 ) = 3 [ 1 8 adım a t ı d ı ] Fibonacci ( 5 ) = 5 [ 3 3 adım a t ı d ı ] Fibonacci ( 1 0 ) = 55 [ adım a t ı d ı ] Fibonacci ( 1 5 ) = 610 [ adım a t ı d ı ] Fibonacci ( 2 0 ) = [ adım a t ı d ı ] 11 Fibonacci ( 2 5 ) = [ adım a t ı d ı ] Fibonacci ( 3 0 ) = [ adım a t ı d ı ] Fibonacci ( 3 5 ) = [ adım a t ı d ı ] Fibonacci ( 4 0 ) = [ adım a t ı d ı ] Fibonacci ( 4 5 ) = [ adım a t ı d ı ] 16 / Çarpınım (faktöriyel) hesabını da recursive (özyineli) metot ile yapabiliriz. Aşağıdaki iki metodu inceleyiniz. Birincisi n! sayısını döngü ile, ikincisi özyineli yöntemle buluyor. Program c l a s s F a c t o r i a l s { 4 s t a t i c i n t n = 1 0 ; p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { System. out. p r i n t l n ( çarpınıma ( n ) ) ; System. out. p r i n t l n ( çarpınımb ( n ) ) ; 9 s t a t i c l o n g çarpınıma ( i n t m) { l o n g çarpınım = m; f o r ( i n t i = m; i >= 1 ; i ) { 14 çarpınım = i ; 18

21 1.8. Kullanıcının Tanımladığı Metotlar 19 r e t u r n çarpınım / n ; 19 s t a t i c l o n g çarpınımb ( i n t n ) { i f ( n <= 1) r e t u r n 1 ; e l s e r e t u r n n çarpınımb ( n 1) ; 24 / / 1.8 Kullanıcının Tanımladığı Metotlar Java kütüphanesinde programcının gerekseme duyacağı çok sayıda metot vardır. Onları kullanabileceğiniz gibi, gerektiğinde kendi metodunuzu tanımlayabilirsiniz. Program 1.8.1, while döngüleri içinde break ve continue deyimlerinin kullanılışını gösteriyor. bereak deyimi, döngüyü orada keser ve program akışını döngüden çıkarır ve döngüden sonra gelen ilk deyime yollar. continue deyimi ise, o anki döngü adımını keser, döngü içinde kalan program akışını sonraki döngü adımına yollar. Program p u b l i c c l a s s WhileDöngüsü { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 6 System. out. p r i n t l n ( WhileContinue ( ) ) ; WhileBreak ( ) ; dowhile ( ) ; 19

22 20 1. metotlar 11 s t a t i c i n t WhileContinue ( ) { i n t a = 0 ; w h i l e ( a < 10) { a++; i f ( a == 5) { 16 a++; c o n t i n u e ; r e t u r n a ; 21 s t a t i c v o i d WhileBreak ( ) { i n t a = 0 ; w h i l e ( a < 10) { 26 a++; i f ( a == 5) b r eak ; 31 System. out. p r i n t l n ( a ) ; 36 s t a t i c v o i d dowhile ( ) { i n t a = 0 ; w h i l e ( a < 40) { i f ( a == 27) b r eak ; a++; 41 System. out. p r i n t l n ( a ) ; 1 / / Kullanıcının Tanımladığı Metotlar Kendi metodunuzu yaratma- 20

23 1.8. Kullanıcının Tanımladığı Metotlar 21 nız gerekebilir. ToplamBul.java Program c l a s s Demo { 5 s t a t i c d o u b l e a = ; s t a t i c d o u b l e b = ; p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { System. out. p r i n t l n ( Topla ( a, b ) ) ; s t a t i c d o u b l e Topla ( d o u b l e x, d o u b l e y ) { r e t u r n x + y ; / / Program yazarken, derleyici kütüphanesindeki hazır fonksiyonları kullanmaya alışmak iyi bir alışkanlıktır. Onlar program yazmayı kolaylaştırdıkları gibi, daima doğru işlem yaptıklarına da güvenebiliriz. Ama zorunluluk olduğunda kendi fonksiyonlarımızı yaratabiliriz. Program?? kesirli sayıların karekökünü hesaplar. Hesaplama yöntemi Newton-Raphson yaklaşık değer bulma yöntemidir. Bu yöntem, f(x) fonksiyonunun yaklaşık değerini bulmak için x n+1 = x n f(x n) f (x n ) (1.1) yaklaşımını (approximation) kullanır. Eğer a sayısının kare kökünü tam bulamıyorsak, a sayısına istenildiği kadar yakın bir x 2 sayısı bulmaya çalışacağız. Bu ise y = f(x) = x 2 a nın istenildiği kadar küçük 21

24 22 1. metotlar kılınmasıyla sağlanır. (1.1) yöntemini f(x) fonksiyonuna uygularsak, şu ardışma formülü elde edilir: x n+1 = (x n + a x n )/2 (1.2) Program 1.8.3, (1.2) ardışma formülünü kullanarak, verilen bir sayının yaklaşık karekökünü bulmaktadır. Program \ index { karekök 2 import java. u t i l. Scanner ; c l a s s Demo { 7 s t a t i c d o u b l e d ; // s a y ı n ı n karekökünü bulur p u b l i c s t a t i c d o u b l e karekök ( d o u b l e num) { i f (0 == num) { 12 r e t u r n 0 ; // S ı f ı r a bölmeyi ö n l e r d o u b l e r = (num / 2) + 1 ; // İ l k tahmin d o u b l e r1 = ( r + (num / r ) ) / 2 ; w h i l e ( r1 < r ) { 17 r = r1 ; r1 = ( r + (num / r ) ) / 2 ; r e t u r n r ; 22 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Scanner scan = new Scanner ( System. i n ) ; System. out. p r i n t l n ( "Karekökü a l ı n a c a k s a y ı y ı g i r i n i z : " ) ; d = scan. nextdouble ( ) ; 27 System. out. p r i n t l n ( karekök ( d ) ) ; 22

25 1.8. Kullanıcının Tanımladığı Metotlar 23 1 / Karekökü a l ı n a c a k s a y ı y ı g i r i n i z : 12345, / Program 1.8.4, aynı işi, java kütüphanesinden yararlanarak çok daha kolay ve güvenli biçimde yapmaktadır. Program import java. u t i l. Scanner ; 5 c l a s s SquareRoot { s t a t i c d o u b l e d ; p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Scanner scan = new Scanner ( System. i n ) ; 10 System. out. p r i n t l n ( "Karekökü a l ı n a c a k s a y ı y ı g i r i n i z : " ) ; d = scan. nextdouble ( ) ; 15 System. out. p r i n t l n (Math. s q r t ( d ) ) ; / Karekökü a l ı n a c a k s a y ı y ı g i r i n i z : 12345, / Görüldüğü gibi, yalnızca 13.satırdaki deyim, verilen sayının karekökünü bulmaya yeterlidir. Bu örnekten görüldüğü gibi, Java, çok zengin bir matematik kütüphanesine sahiptir. Matematiksel işlemler için, programcının kendi fonksiyonunu yazmasına hemen hemen hiç gerek kalmaz. Matematik te olduğu gibi, başka alanlarda da Java kütüphanesine her zaman başvurabilir ve çoğunlukla, istediğimiz işi yapan bir metot bulabiliriz. Tabii, programcı, her zaman kendi metotlarını tanımlamakta serbesttir. 23

26 24 1. metotlar Bazen Java kütüphanesindeki hazır bir fonksiyonu kullanarak kendi fonksiyonumuzu tanımlayabiliriz. Program 1.8.5, Math.log() fonksiyonunu kullanarak, verilen sayının logaritmasını bulan logbul() adlı bir fonksiyon tanımlamaktadır. Program import java. u t i l. Scanner ; c l a s s Demo { s t a t i c d o u b l e d ; s t a t i c d o u b l e logbul ( d o u b l e y ) { 10 r e t u r n Math. l o g ( y ) ; p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Scanner scan = new Scanner ( System. i n ) ; 15 System. out. p r i n t l n ( " Logaritması a l ı n a c a k s a y ı y ı g i r i n i z : " ) ; d = scan. nextdouble ( ) ; System. out. p r i n t l n ( logbul ( d ) ) ; 1 / Logaritması a l ı n a c a k s a y ı y ı g i r i n i z : 12345, / Tabii, aynı işi, yeni fonksiyon tanımlamaya gerek kalmadan çok daha kısa ve kolay yoldan yapabiliriz. Program öyle yapmaktadır. Program

27 1.9. Uygulamalar 25 5 import java. u t i l. Scanner ; c l a s s LogaritmaBul2 { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Scanner scan = new Scanner ( System. i n ) ; 10 System. out. p r i n t l n ( " Logaritması a l ı n a c a k s a y ı y ı g i r i n i z : " ) ; System. out. p r i n t l n (Math. l o g ( scan. nextdouble ( ) ) ) ; / 2 Logaritması a l ı n a c a k s a y ı y ı g i r i n i z : 12345, / 1.9 Uygulamalar Matematik derslerinde verilen sayıların en küçük ortak katını (ekok) ve en büyük ortak bölenini (ebob) bulmak ilköğretimin önemli konularındandır. Şimdi bunları Java ile nasıl kolay bulacağımızı görelim. Program import java. u t i l. Scanner ; 5 c l a s s EKOK { s t a t i c i n t n, m, ekok ; / a ve b ekok u bulunacak s a y ı l a r / s t a t i c i n t ekokbul ( i n t a, i n t b ) { 10 i n t n ; f o r ( n = 1 ; ; n++) { i f ( n % a == 0 && n % b == 0) r e t u r n n ; 25

28 26 1. metotlar 15 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Scanner scan = new Scanner ( System. i n ) ; System. out. p r i n t l n ( " ekok u bulunacak s a y ı l a r ı n i l k i n i g i r i n i z : " ) ; 20 n = scan. n e x t I n t ( ) ; System. out. p r i n t l n ( " ekok u bulunacak s a y ı l a r ı n i k i n c i s i n i g i r i n i z : " ) ; m = scan. n e x t I n t ( ) ; 25 System. out. p r i n t l n ( ekokbul (n, m) ) ; / ekok u bulunacak s a y ı l a r ı n i l k i n i g i r i n i z : ekok u bulunacak s a y ı l a r ı n i k i n c i s i n i g i r i n i z : / Program içindeki ekokbul(int a, int b) metodunun nasıl çalıştığını anlamak kolaydır. Döngü n sayacına 1 den başlayarak artan tamsayı değerler atıyor ve her birini hem a hem b ile tam bölünüp bölünemediğine bakıyor. En sonunda ekok sayısına ulaşıyor. Program 1.9.2, aynı işi özyineli (recursive) yöntemle yapmaktadır: Program import java. u t i l. Scanner ; c l a s s EKOK2 { s t a t i c i n t n, m, ekok ; 8 / a ve b ekok u bulunacak s a y ı l a r / 26

29 1.9. Uygulamalar 27 s t a t i c i n t ekokbul ( i n t a, i n t b ) { i n t prod ; i f ( b % a == 0) r e t u r n b ; 13 e l s e { prod = a b ; w h i l e ( a!= b ) { i f ( a > b ) a = a b ; 18 e l s e b = b a ; r e t u r n ekokbul (b, prod / a ) ; 23 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Scanner scan = new Scanner ( System. i n ) ; System. out. p r i n t l n ( " ekok u bulunacak s a y ı l a r ı n i l k i n i g i r i n i z : " ) ; 28 n = scan. n e x t I n t ( ) ; System. out. p r i n t l n ( " ekok u bulunacak s a y ı l a r ı n i k i n c i s i n i g i r i n i z : " ) ; m = scan. n e x t I n t ( ) ; 33 System. out. p r i n t l n ( ekokbul (n, m) ) ; / ekok u bulunacak s a y ı l a r ı n i l k i n i g i r i n i z : 9876 ekok u bulunacak s a y ı l a r ı n i k i n c i s i n i g i r i n i z : / Aşağıdaki program iki tamsayının en büyük ortak bölenini (EBOB) bulur. Program

30 28 1. metotlar 3 8 import java. u t i l. Scanner ; c l a s s Demo { s t a t i c i n t n, m, ekok ; / a ve b ebob i bulunacak s a y ı l a r / s t a t i c i n t ebobbul ( i n t a, i n t b ) { i n t kalan ; 13 w h i l e ( b!= 0) { kalan = a % b ; a = b ; b = kalan ; 18 r e t u r n a ; p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 23 Scanner scan = new Scanner ( System. i n ) ; System. out. p r i n t l n ( "ebob i bulunacak s a y ı l a r ı n i l k i n i g i r i n i z : " ) ; n = scan. n e x t I n t ( ) ; System. out. p r i n t l n ( "ebob i bulunacak s a y ı l a r ı n i k i n c i s i n i g i r i n i z : " ) ; 28 m = scan. n e x t I n t ( ) ; System. out. p r i n t l n ( ebobbul (n, m) ) ; / ebob i bulunacak s a y ı l a r ı n i l k i n i g i r i n i z : ebob i bulunacak s a y ı l a r ı n i k i n c i s i n i g i r i n i z : / 28

31 1.9. Uygulamalar 29 Program 1.9.4, ebob bulmak için recursive metot kullanmaktadır. Program import java. u t i l. Scanner ; 8 c l a s s Demo { s t a t i c i n t n, m, ekok ; / a ve b ebob i bulunacak s a y ı l a r / s t a t i c i n t ebobbul ( i n t a, i n t b ) { i n t c ; w h i l e ( a % b!= 0) { 13 c = a % b ; a = b ; b = c ; r e t u r n b ; 18 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Scanner scan = new Scanner ( System. i n ) ; System. out. p r i n t l n ( "ebob i bulunacak s a y ı l a r ı n i l k i n i g i r i n i z : " ) ; 23 n = scan. n e x t I n t ( ) ; System. out. p r i n t l n ( "ebob i bulunacak s a y ı l a r ı n i k i n c i s i n i g i r i n i z : " ) ; m = scan. n e x t I n t ( ) ; 28 System. out. p r i n t l n ( ebobbul (n, m) ) ; ebob i bulunacak s a y ı l a r ı n i l k i n i g i r i n i z : 123 ebob i bulunacak s a y ı l a r ı n i k i n c i s i n i g i r i n i z :

32 30 1. metotlar İkiden çok sayının ebob ni bulmak için, ebobbul() metodunu ve birleşme (associative) özeliğini kullanmak yetecektir. Örneğin, üç sayının ebob ni bulmak için, ebob3() metodunu şöyle tanımlayabiliriz: ebob3(a, b, c) = ebobbul(ebobbul(a, b), c) Program import java. u t i l. Scanner ; c l a s s Demo { s t a t i c i n t n, m, r, ebob ; / a ve b ebob i bulunacak s a y ı l a r / 10 s t a t i c i n t ebobbul ( i n t a, i n t b ) { i n t c ; w h i l e ( a % b!= 0) { c = a % b ; a = b ; 15 b = c ; r e t u r n b ; 20 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Scanner scan = new Scanner ( System. i n ) ; 25 System. out. p r i n t l n ( "ebob i bulunacak s a y ı l a r ı n i l k i n i g i r i n i z : " ) ; n = scan. n e x t I n t ( ) ; System. out. p r i n t l n ( "ebob i bulunacak s a y ı l a r ı n i k i n c i s i n i g i r i n i z : " ) ; m = scan. n e x t I n t ( ) ; System. out. p r i n t l n ( "ebob i bulunacak s a y ı l a r ı n üçüncüsünü g i r i n i z : " ) ; 30 r = scan. n e x t I n t ( ) ; 30

33 1.10. Alıştırmalar 31 System. out. p r i n t l n ( ebobbul ( ebobbul (n, m), r ) ) ; 1 / ebob i bulunacak s a y ı l a r ı n i l k i n i g i r i n i z : 123 ebob i bulunacak s a y ı l a r ı n i k i n c i s i n i g i r i n i z : ebob i bulunacak s a y ı l a r ı n üçüncüsünü g i r i n i z : / 1.10 Alıştırmalar String den Tamsayıya Dönüşüm "123" biçiminde String olarak yazılan sayıları 123 sayı değerine dönüştürmek için Integer.parseInt(aString) metodu kullanılır. Program , String olarak girilen sayıları gerçek sayısal değerlerine dönüştürüyor. Program import java. u t i l. Scanner ; 6 c l a s s StringToInt { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Scanner scan = new Scanner ( System. i n ) ; System. out. p r i n t l n ( " Bir tamsayı g i r i n i z : " ) ; 11 S t r i n g a S t r i n g = scan. nextline ( ) ; i n t aint = I n t e g e r. p a r s e I n t ( a S t r i n g ) ; 31

34 32 1. metotlar 16 System. out. p r i n t l n ( aint ) ; / Bir tamsayı g i r i n i z : / 32

35 Kaynakça 33

36 Dizin özyinel, 16 özyineli, 16, 26 çarpınım, 18 ebob, 27 ekok, 25, 26 en küçük ortak kat, 26 while döngüsü, 19 yerel değişken, 7 yerel olmayan değişken, 7 factorials, 18 Fibonacci, 16 fonksiyon, 2 hazır fonksiyo, 1 Java kütüphanesi, 1 logarirma, 24 matematik fonksiyonları, 13 Math, 13 metot, 1, 3 nesne yaratma, 11 Newton-Raphson, 21 parametre, 1, 7 parseint, 31 recursive, 16, 26 static, 2 static öğe, 2 StringToInt(), 31 tanımlanan fonksiyonlar, 19 34

public static int Toplam int x, int y

public static int Toplam int x, int y static Kavramı 1 İçinde bulunduğu sınıftan nesne oluşturulmadan veya hiç bir nesneye referans olmadan kullanılabilen üyeler static olarak nitelendirilir. Metotlar ve alanlar static olarak tanımlanabilir.

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

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

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

// hataları işaret eden referans

// hataları işaret eden referans System sınıfı java.lang.object java.lang.system public final class System extends Object System sınıfı, java.lang paketi içindedir. Platformdan bağımsız olarak sistem düzeyindeki eylemleri belirleyen dingin

Detaylı

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

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir: Programın Akışının Denetimi Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar iki gruba ayrılabilir: Yönlendiriciler

Detaylı

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama Bölüm 39 Binary Search (Yarılama) 39.1 Dizide Bir Öğe Arama İkil aramayı (yarılama yöntemi) sıralı veri kümelerinde sık sık kullanırız. Örneğin, sözlükte bir sözcüğü ararken, sözlüğün bütün sayfalarını

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ı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

Bölüm 10 Statik ve Anlık Öğeler

Bölüm 10 Statik ve Anlık Öğeler Bölüm 10 Statik ve Anlık Öğeler Statik ve Anlık Öğeler Statik öğeler, bir sınıfta static sıfatıyla nitelendirilen değişkenler ve metotlardır. Bunlara sınıf değişkenleri de denilir. static nitelemesi almayan

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ı

Fonksiyonlar (Altprogram)

Fonksiyonlar (Altprogram) Fonksiyonlar (Altprogram) 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 gelmesi ile oluşur.

Detaylı

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir.

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir. Bölüm 09 Döngüler for döngüsü do döngüsü while döngüsü foreach döngüsü Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar

Detaylı

Ders 8: Metotlar. barisgokce.com

Ders 8: Metotlar. barisgokce.com Ders 8: Metotlar Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Metotlar C# içerisinde bir veya birden fazla kod bulunduran kod bloklarıdır. Bir nesnenin veya sınıfın programı

Detaylı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

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

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 11. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Fonksiyonlar Yük. Müh. Köksal Gündoğdu 2 C++ Hazır Fonksiyonlar Yük. Müh. Köksal Gündoğdu 3 C++ Hazır Fonksiyonlar 1. Matematiksel

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ı

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ı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

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ı

Mantıksal İşlemler. 7.1 true, false, nil

Mantıksal İşlemler. 7.1 true, false, nil 7 Mantıksal İşlemler 7.1 true, false, nil Doğru ya da Yanlış değer alan önermelere (ifadelere) mantıksal (logic) deyimler ya da boolean deyimler denilir ([5]). Bir çok dilde mantıksal işlemler true ve

Detaylı

Bir C programı C fonksiyonlarından oluşur. Bunlar arasında main() adı verilen ana fonksiyon daima olmalıdır. C fonksiyonları programı oluşturan

Bir C programı C fonksiyonlarından oluşur. Bunlar arasında main() adı verilen ana fonksiyon daima olmalıdır. C fonksiyonları programı oluşturan 2 C Programlarının Yapısı Bir C programı C fonksiyonlarından oluşur. Bunlar arasında main() adı verilen ana fonksiyon daima olmalıdır. C fonksiyonları programı oluşturan yapıtaşlarıdır. Bir C programının,

Detaylı

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9 BTP 207 İNTERNET PROGRAMCILIĞI I Ders 9 Dizi Değişkenler (Array) 2 Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1, eleman2,, elemann)

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

Lambda İfadeleri (Lambda Expressions)

Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki

Detaylı

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI. DÖNGÜLER Amaçlar: 1. ÇEVRİM OLUŞTURMA (DÖNGÜ) 2. WHILE DEYİMİ 3. DO... WHILE DEYİMİ 4. FOR DEYİMİ Örnek 4-1 Programı yazın ve çalıştırın. Örnek 4-2 Programı yazın ve çalıştırın. Örnek 4-3 Aşağıdaki kodu

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Akış Konrol Mekanizmaları 1 Koşul İfadeleri Programlar içersinde bazı durumlarda programın akışının değişmesi ya da farklı işlemlerin yapılması gerekebilir. Bazen de seçimlerin yapılması ya da belirli

Detaylı

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end 4 Metotlar Hemen her programlama dilinde var olan metot kavramı Ruby için de aynıdır. Bazı kaynaklarda metot terimi yerine fonksiyon terimi kullanılır. Bu kitapta iki terimi eşanlamlı kullanacağız. Ruby

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları METOTLAR Nesneye yönelik programlama dillerinde genellikle fonksiyonlar metot olarak isimlendirilirler. Metot ve fonksiyon olarak ifade edilecek kavramlar aynı anlamda kullanılacaktır. Her çalışan C# programı

Detaylı

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21 İÇİNDEKİLER VII İÇİNDEKİLER 1 PYTHON 1 Neden Python? 2 Python Sürümleri 2 Python Kurulumu 3 Windows Üzerinde Python 3 Ubuntu Üzerinde Python 6 Komut Satırında Python Çalıştırma 6 Windows komut istemi üzerinde

Detaylı

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

enum bolumler{elektronik, insaat, bilgisayar, makine, gida}; BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı

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ı

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ı

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

Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden veri girilmesi, girilen verilere çeşitli işlemler uygulandıktan sonra ekrana yazdırılması ya da herhangi bir yazıcıdan çıktı alınması gibi işlemlerdir. Javada

Detaylı

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi 5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını

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ı

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ı

Akış Konrol Mekanizmaları

Akış Konrol Mekanizmaları Akış Konrol Mekanizmaları Koşul İfadeleri C# dilinde koşula bağlı olarak işlemler gerçekleştirmek için iki farklı deyim kullanılabilir: if deyimi switch deyimi If Deyimi if (Koşul) else Koşul_doğru_ise_yapılacaklar

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ı

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ı

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu WEB TASARIM I Öğr. Gör. M. Mutlu YAPICI Ankara Üniversitesi Elmadağ Meslek Yüksekokulu Ders İzlencesi Hafta Modüller/İçerik/Konular 1. Hafta PHP Tanımı ve Sunucu Kurulumları 2. Hafta PHP Yazım Notasyonu

Detaylı

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ 2017-2018 BaharYarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü 7 BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Java Programlama Dili ve Algoritmadan Kodlamaya Geçiş) Yrd. Doç. Dr. İbrahim Küçükkoç

Detaylı

Dr. Fatih AY Tel:

Dr. Fatih AY Tel: Bilgisayar Programlama Ders 5 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyonlar Fonksiyonlar Büyük programlar geliştirmenin en iyi yolu, onu orijinal programdan daha kolay

Detaylı

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO while(), do-while(), for() Döngü (loop) : Bir koşul sağlandığı (true olduğu) sürece bir veya birden çok komutun tekrarlanması işlemidir. Java Döngüler (loops) While() do-while() for ( ) while ( koşul )

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 Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; }

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; } for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) ifadeler; Başlangıç değeri; koşul içinde tanımladığımız değişkene ilk değerin atanmasını sağlar. Koşul: Döngünün

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ı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki

Detaylı

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

İç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 İçerik Java da İşleçler, Kontrol Akış ve Döngü Deyimleri Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu ders: Java da işleçler ( operators ) Java da kontrol-akış

Detaylı

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

Java da İşleçler, Ders #3 (4 Kasım 2009) Java da İşleçler, Kontrol Akış ve Döngü Deyimleri BS-515 Nesneye Yönelik Programlama Ders #3 (4 Kasım 2009) İçerikç Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu

Detaylı

BİLG Dr. Mustafa T. Babagil 1

BİLG Dr. Mustafa T. Babagil 1 BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)

Detaylı

C#(Sharp) Programlama Dili

C#(Sharp) Programlama Dili Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin

Detaylı

Akış Kontrol Mekanizmaları

Akış Kontrol Mekanizmaları Akış Kontrol Mekanizmaları 1 Akış Kontrol Mekanizmaları if else switch for döngüsü for döngüsünün çalışma prensibi for döngüsüyle ilgili örnekler for döngüsüyle ilgili kurallar while döngüsü while döngüsünün

Detaylı

Internet Programming II

Internet Programming II Internet Programming II Elbistan Meslek Yüksek Okulu 2016 2017 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 1 Fonksiyonlar Değişken Kontrol Fonksiyonları isset() Fonksiyonu Parametre olarak aldığı değişken

Detaylı

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız. ÖDEV (Vize Dönemi) CEVAPLAR 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız. PROGRAM Soru1 PRINT Merhaba Dünya! ; 2. Klavyeden girilen negatif bir sayıyı

Detaylı

T I M U R K A R A Ç AY - H AY D A R E Ş C A L C U L U S S E Ç K I N YAY I N C I L I K A N K A R A

T I M U R K A R A Ç AY - H AY D A R E Ş C A L C U L U S S E Ç K I N YAY I N C I L I K A N K A R A T I M U R K A R A Ç AY - H AY D A R E Ş C A L C U L U S S E Ç K I N YAY I N C I L I K A N K A R A Contents Rasyonel Fonksiyonlar 5 Bibliography 35 Inde 39 Rasyonel Fonksiyonlar Polinomlar Yetmez! Bölme

Detaylı

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

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

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ı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu. Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN JAVADA METOTLAR BMÜ-111 Algoritma ve Programlama Yrd. Doç. Dr. İlhan AYDIN 1 Açık problem Amacımız sırasıyla 1 den 10, 10 dan 20 ye ve 35 ten 45 e kadarki sayıların toplamını bulmak olsun. Ne yapmak gerekir?

Detaylı

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme:

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme: 1 Program Çözümleme Bir bilgisayar programını çözümleme eylemini, onun her satırının (deyiminin) yaptığı işi açıklamak olarak anlayacağız. Bazı kaynaklarda bu eyleme analiz der. Daha ileri düzeyde "trace"

Detaylı

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BİR BOYUTLU DİZİLER Amaçlar: 1. 1 BOYUTLU DİZİLERİ TANIMLAMAK 2. 1 BOYUTLU DİZİ UYGULAMALARI YAPMAK Örnek 5-1 Aşağıdaki program öğrenci notlarını bularak en iyi notu hesaplar. Harf notu şu şekilde hesaplanır:

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı

BMT 101 Algoritma ve Programlama I 8. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

BMT 101 Algoritma ve Programlama I 8. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1 BMT 101 Algoritma ve Programlama I 8. Hafta Yük. Müh. Köksal GÜNDOĞDU 1 C++ Döngü Deyimleri Yük. Müh. Köksal GÜNDOĞDU 2 Döngüler Programın belirli bölümlerinin defalarca işlenmesi söz konusu olabilir.

Detaylı

1 JAVASCRIPT NEDİR? 1

1 JAVASCRIPT NEDİR? 1 İÇİNDEKİLER IX İÇİNDEKİLER 1 JAVASCRIPT NEDİR? 1 2 TEST ORTAMINI TANIMAK (FİREFOX VE FİREBUG) 5 Firefox 6 Firebug 8 CSS Sekmesi 10 DOM Sekmesi 11 Net ve Çerezler Sekmeleri 11 Script Sekmesi 11 Konsol Sekmesi

Detaylı

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

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts

Detaylı

Imports ifadesi, program satırlarının en üstüne (Public Class satırından önce) yazılmalıdır. Aksi halde hata mesajı ile karşılaşılır.

Imports ifadesi, program satırlarının en üstüne (Public Class satırından önce) yazılmalıdır. Aksi halde hata mesajı ile karşılaşılır. HAZIR FONKSİYONLAR IMPORTS ifadesi Imports, Microsoft firmasının Visual Studio ile Netframe altında tanımladığı ortak kütüphaneleri kullanabilme ifadesidir. Bu ifade sayesinde Visual Studio içindeki programlama

Detaylı

Matematikte Bilgisayar Uygulamaları. Hafta 2 Dr. Murat GEZER

Matematikte Bilgisayar Uygulamaları. Hafta 2 Dr. Murat GEZER Matematikte Bilgisayar Uygulamaları Hafta 2 Dr. Murat GEZER Temel Bilgiler Temel Bilgiler Temel Bilgiler Boş beyaz sayfaya Notebook adı verilmekte Bütün işlemleri bu sayfa üzerinde yapılmaktadır Örneğin

Detaylı

ÜNİTE İÇİNDEKİLER HEDEFLER MATEMATİKSEL METOTLAR. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA. (Math Sınıfı ve Metotları)

ÜNİTE İÇİNDEKİLER HEDEFLER MATEMATİKSEL METOTLAR. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA. (Math Sınıfı ve Metotları) MATEMATİKSEL METOTLAR (Math Sınıfı ve Metotları) İÇİNDEKİLER Matemetiksel Metotlar Üstel Metotlar Logaritmik Metotlar Trigonometrik Metotlar Ters Trigonometrik Metotlar Hiperbolik Metotlar Yuvarlatma Metotları

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ı

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir

Detaylı

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta Ön bilgi: Özyineli fonksiyon tanımlanabilmeli. Dizilerin fonksiyon parametresi veya geri dönüş değeri olarak kullanımı bilinmeli. 1. Klavyeden girilen sayı n olmak üzere [1..n] aralığındaki sayıların toplamı

Detaylı

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı

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ı

Döngüler. 1.1 while döngüsü

Döngüler. 1.1 while döngüsü 1 Döngüler Belirli bir iş birden çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü yapıları o deyim(ler)i istenildiği kadar tekrarlar. C dilinde bu işi yapan üç ayrı yapı vardır: 1. while

Detaylı

Döngüler. Tablo 15.1: Ruby de Başlıca Döngü Yapıları

Döngüler. Tablo 15.1: Ruby de Başlıca Döngü Yapıları 15 Döngüler Belirli bir iş birden çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü yapıları o deyim(ler)i istenildiği kadar tekrarlar. Ruby de bu işi yapan çok sayıda döngü yapıları vardır.

Detaylı

Özyineleme (recursion)

Özyineleme (recursion) 2 Özyineleme (recursion) Kendi kendini çağıran fonksiyonlara özyineli (recursive) fonksiyon denilir. Özyineli fonksiyonlar, ileri bilgisayar uygulamalarında çok kullanılır. Bilgisayar biliminin zor sayılan

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama

Detaylı

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach() (LOOPS) while(), do-while(), for(), foreach() Döngüler (loops) while do-while for foreach while ( koşul ) işlemler; do işlemler; while (koşul ); for (başlangıç ; koşul ; arttırma) işlemler; foreach ( tip

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 DİLİNDE FONKSİYONLAR C DİLİNDE FONKSİYONLAR C programlama dili fonksiyon olarak adlandırılan alt programların

Detaylı

Bilgisayar Programlama MATLAB

Bilgisayar Programlama MATLAB What is a computer??? Bilgisayar Programlama MATLAB Prof. Dr. İrfan KAYMAZ What Konular is a computer??? MATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a) Geliştirme ortamı b) Komut penceresi

Detaylı

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN GİRİŞ Ekrana «Merhaba Java» şeklinde bir mesajı 100 defa yazmak istediğinizi düşünelim. Aşağıdaki komut satırını 100 kez yazmak sıkıcı

Detaylı

ARALARINDA ASAL SAYILAR

ARALARINDA ASAL SAYILAR ARALARINDA ASAL SAYILAR Bir ( 1 ) sayısı her sayının bölenidir. İki tamsayının birden başka ortak böleni yoksa böyle iki tamsayıya aralarında asal tam sayılar denir. İki tamsayı asal sayı olmak zorunda

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ı

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ı

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ı

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ MTK467 Nesneye Yönelik Programlama Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ while döngüsü while(koşul){ } döngü ifadeleri Koşul boolean değerli olmalıdır. Koşulun değeri true

Detaylı

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

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma C Programlama Dr. Serkan DİŞLİTAŞ 7.1. Metot Kavramı Programlama dillerinde bütün kod satırlarının

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ı

BİL1001 Bilgisayar Bilimlerine Giriş 1

BİL1001 Bilgisayar Bilimlerine Giriş 1 DEÜ Bilgisayar Bilimleri Bölümü BİL1001 Bilgisayar Bilimlerine Giriş 1 Öğr. Gör. Dr. Alper VAHAPLAR 2017 Yaz Okulu Tekrarlı Yapılar Algoritmanın belirli bir kısmının, belirli kere ya da belirli durumlar

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 7 Abstract (Soyut Sınıflar) Bu bölümde;

Detaylı

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! Temel Tiplerde Atama Atama işlemi, temel (primitive) tipler için

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders08/ 1 Yapısal Veri Tipleri C dili genişletilebilen bir dildir. Var olan veri tipleri kullanılarak yeni veri tipleri tanımlanıp kullanılabilir. Programlama

Detaylı

BİLGİSAYAR PROGRAMLAMA MATLAB

BİLGİSAYAR PROGRAMLAMA MATLAB BİLGİSAYAR PROGRAMLAMA MATLAB Arş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi Bu hafta? 1. Matlab ve Programlama Ortamı 2. Matlab Komut Penceresi 3. Matlab de değişken tanımlama 4.

Detaylı

EMT2226 Nesne Yönelimli Programlamaya Giriş

EMT2226 Nesne Yönelimli Programlamaya Giriş 2017-2018 Bahar Yarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü EMT2226 Nesne Yönelimli Programlamaya Giriş 2 Yrd. Doç. Dr. İbrahim Küçükkoç Web: ikucukkoc.baun.edu.tr Email: ikucukkoc@balikesir.edu.tr

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ı

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?

Detaylı