Şimdi Ara

Shu VII Java Günlüğü

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
26
Cevap
0
Favori
534
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Java öğrenmek için hazırladığım örnekleri ve kaynakları bilgisayar ortamında saklayamıyorum. Not Defteri ile de denemeye çalıştım fakat beceremedim :)

    Hazırladığım Çalışmaları internet ortamında saklamak hem benim hemde java öğrenmek isteyenler için fayda sağlayacağını düşünüyorum. Umarım java öğrenmek isteyenler için de faydalı bir konu olur.

    -----
    Her programlama dilinde if ifadesi

    if(koşul)
    {
    ifade
    }

    kullanılır. Buna benzer bir uygulama yaparsak;

    quote:



    int sayi1=15,sayi2=30;

    if (sayi1 > sayi2)
    {
    System.out.println("Sayi1 Büyüktür.");
    }
    else if (sayi1 < sayi2)
    {
    System.out.println("Sayi1 Küçüktür");
    }
    else
    {
    System.out.println("Sayılar Eşittir.");
    }



    Doğru bir uygulama fakat küme parantezi yoğun olarak kullanmak ve satır sayısının arttırmak yerine şu şekilde de kullanacağının farkına vardım.


    quote:

    int s1,s2;
    s1 = 16;
    s2 = 16;

    if(s1>s2) System.out.println("s1 Büyüktür");
    if(s1==s2) System.out.println("Sayılar Eşittir");
    if(s1<s2) System.out.println("s1 Küçüktür");


    Küçük bir uygulama için sade ve anlaşılır olması avantajı gözükse'de büyük projelerde nasıl bir sonuç çıkar hiç fikrim yok.







  • Buyuk uygulamalarda if icerisine eklenti oldugunda bunu ekleyen kisi parantez eklemezse sorun olusur. Bu sebeple if'ten sonraki statement tek satir dahi olsa parantez kullanilmasi daha dogru.

    Bir de programmerlar arasinda iki farkli if acilimi gorulur Java icin
     
    if(condition){
    statement
    }


    ya da

     
    if(condition)
    {
    statement
    }


    Ben ilkini tercih etsem de, C temelli kimselerin genelde ikinciye yoneldiklerini gozlemliyorum.
  • Mephalay M kullanıcısına yanıt
    Başlangıç seviyesinde olduğumdan proje ve basit uygulama yazacak arkadaşların aklında bulunsun diye yazmıştım :)

    Ben genellikle köşeli parantezlerin hangisinin açıp hangisinin kapattığını anlamak için 2. şekilde yapıyorum.
  • quote:

    double s1= 123.44;
    int s2;
    s2=(int)s1;
    System.out.println(s1);
    System.out.println(s2);


    2 Farklı değişken tipini değiştirme ve yeni değerini ekrana yazdırdım.

    Burada dikkat edilmesi gereken kural iki tipinde birbiriyle uyumlu olmasıdır. Örnek olarak bir int değeri her zaman long değişkeni atayabilirsiniz. Fakat String ve boolean tipine atama yapamazsınız.
  • Tek Boyutlu diziler

    Dizi oluşturmak için kullanılan komut :

    tip degisken_adi[] = new tip[dizi_sayısı];

    şeklindedir. Dizi oluşturmak için önce dizinin tipini bir değişkene tanımlandırılmalı sonra new kullanarak dizinin belleğini oluşturmalıyız.

    Tek boyutlu dizi örnekler için;
    quote:


    String gun[] = new String[7];
    gun[0] = "Pazartesi";
    gun[1] = "Salı";
    gun[2] = "Çarşamba";
    gun[3] = "Perşembe";
    gun[4] = "Cuma";
    gun[5] = "Cumartesi";
    gun[6] = "Pazar";
    for (int i = 0; i < gun.length; i++) {
    System.out.println(gun);
    }


    veya
    quote:


    String gun[] = {"pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi","Pazar"};
    for (int i = 0; i < gun.length; i++) {
    System.out.println(gun);
    }


    şeklinde kullanabiliriz.




  • Heveslendirdin beni bu ay biraz yoğunum ama önümüzdek ay bende java ya başlıyacağım :D
  • başlığı okuyunca düşündüklerim doğru çıktı :D iyi fikir herkes açısından faydalı bir kaynak olur herhalde burası. daha sonra da başlık başlık belirtirseniz konular birikince yardımcı olur. kolay gelsin.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • @byfather

    Zamanla konu oturduğunda bahsettiğinizi yapacağım.

    @converttoint32

    Hocam C++ biliyorsanız rahatlıkla öğrenebilirsiniz.
  • Atama Operatörleri

    Atama Operatörleri genellikle bir değişkene yeni değer atılmak için kullanılır. Basit bir kod dizimi ile açıklamak gerekirse;

    a= a+1; // a değerini 1 arttır anlamına gelir.
    buna alternatif olarak
    a += 1; 'de uygulanabilir.

    Tabi bu işlem sadece arttırma için uygulanmıyor.

    a -= 1; // Azaltma
    a *=5; // Çarpma
    a /=3; // Bölme
    a %= 3; // Kalan

    işlemi de yapılmaktadır.
  • Bit Tabanlı Mantıksal operatörler

    Bu konu her zaman canımı sıkmıştır :) Fakat bugün bu konu hakkında sorunlarımı bitireceğim. Alttaki örnekte a ve b değişkenlerine 1(true) ve 0(false) değerlerini atayıp operatörler ile bunları karşılaştırdık, peki bu operatörler hangi koşullarda 1(true) hangi koşullarda 0(false) değeri taşır.

    a ---- b ---- a | b ---- a & b ---- a ^ b ---- ~a
    0 ---- 0 ---- --0-- ---- --0-- ---- --0-- ---- --1
    1 ---- 0 ---- --1-- ---- --0-- ---- --1-- ---- --0
    0 ---- 1 ---- --1-- ---- --0-- ---- --1-- ---- --1
    1 ---- 1 ---- --1-- ---- --1-- ---- --0-- ---- --0

    OR(Veya) | Operatörü, 1 değeri taşırsa sonuç 1'dir. (yani iki sorgudan birisi true değeri taşırsa koşul true değeri dönecektir.)
    AND(Ve) & Operatörü, iki sorgu 1 değeri taşırsa sonuç 1'dir. (iki sorguda true değeri taşırsa sonuç true olacaktır.)
    XOR ^ Operatörü iki sorguda tek 1 değeri taşırsa sonuç 1 taşır, diğer koşullarda sonuç 0'dır.
    Not(Değil) operatörü ise sorgunun tersini alır. (True değer false, false ise true)


    Bir konuyu açıklamak için yazdıklarım kafanızı karıştırdıysa aşağıdaki örnek ile devam edelim.
    quote:


    String binary[] = {"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"};
    int a =2; //0010
    int b =6; //0110
    int c = a&b;
    System.out.println(binary[c]);


    Yukarıdaki örnek ikili sayılı sisteme aittir. Bu konu hakkında detaylı bilgi için :http://tr.wikipedia.org/wiki/%C4%B0kili_say%C4%B1_sistemi inceleyebilirsiniz.

    Şimdi örneğimize geri dönelim.

    integer tipinde 3 değişkenimiz var. Bunların ikili sistemdeki değerlerini sağ tarafına yazdım. c adındaki int değişkenimizi binary dizisindeki hangi değere eşit olduğunu öğrenerek ekrana yazılmasını sağlıyoruz.

    Üstteki örneğimizde Ve operatörünü kullandığımızdan iki değişkende 1 değeri var ise sonuç 1, diğerleri için 0 yazacaktır.

    Ekran çıktısı olarak 0010 alacağız.




  • Bit operatörleri mantıksal değildir kardeşim, true false döndürmezler. C# konusunda da aynı şeyi gördüm geçen. Bazı arkadaşlar | ve & operatörünü || ve && ile aynı şey zannediyor. Hadi java falan böyle durumlarda hataya izin vermez ama birgün c++ kodu falan yazarsanız fena yamulursunuz.
  • quote:

    Orijinalden alıntı: elektro_gadget

    Bit operatörleri mantıksal değildir kardeşim, true false döndürmezler. C# konusunda da aynı şeyi gördüm geçen. Bazı arkadaşlar | ve & operatörünü || ve && ile aynı şey zannediyor. Hadi java falan böyle durumlarda hataya izin vermez ama birgün c++ kodu falan yazarsanız fena yamulursunuz.

    True ya da false dondurmemeleri mantiksal olmadiklari anlamina gelmez. AND ya da OR yapiyor olmalari bunu mantiksal yapiyor zaten. Sadece bitwise calistiklari icin true yerine 1 false yerine de 0 sonucu uretiyorlar her bit icin.
  • Hocam Alttaki örnek ile kısaca açıklayım. Bazı terimleri yanlış kullanmış olabilirim fakat temeli anlaşılır olduğunu düşünüyorum.

    quote:

    int s1 = 15;
    int s2 = 10;
    if ((s1 > s2) || (s1 == s2)) {
    System.out.println("Koşul Sağlanıyor.");
    System.out.println("s1 > s2 Koşulu: "+(s1 > s2));
    System.out.println("s1 == s2 koşulu" +(s1 == s2));
    }else
    {
    System.out.println("Koşul Sağlanmıyor.");
    System.out.println("s1 > s2 Koşulu: "+(s1 > s2));
    System.out.println("s1 == s2 koşulu" +(s1 == s2));
    }
    }


    Veya operatörü tek koşulun true alırsa sonucu da true olarak alacaktır. Ekran çıktısı olarak;

    Koşul Sağlanıyor.
    s1 > s2 Koşulu: true
    s1 == s2 koşulu: false

    alacağız.

    Ve operatörü'de koşulların true olması sonucunda true dönecektir. Fakat yaptığımız örnekte bir koşul true değerini döndürmediği için ekran çıktısı olarak

    Koşul Sağlanmıyor.
    s1 > s2 Koşulu: true
    s1 == s2 koşulu: false

    alacağız.


    Örnekte ikili sistem ile açıklamak istedim çünkü basit




  • quote:

    Orijinalden alıntı: Mephalay

    True ya da false dondurmemeleri mantiksal olmadiklari anlamina gelmez. AND ya da OR yapiyor olmalari bunu mantiksal yapiyor zaten. Sadece bitwise calistiklari icin true yerine 1 false yerine de 0 sonucu uretiyorlar her bit icin.

    Oradaki 1 0 lar boolean değil integer dir. Mantıksal bir işlem sadece doğru ve yanlış döndürür. Aksi halde mantıksal değildir. Milletin kafası bu yüzden karışıyor. Anlattıkları konuya hakim olmayan acemi yazarlar da bunu körüklüyor. Aşağıdaki kod C' de çalışır ve "true BITWISE AND true" işleminden false üretir.

    int a = 1, b = 2;
    if(a & b) printf("Bunu yazmaz");

    Bit operatörleri mantıksal olsaydı sonuç böyle olmazdı.
  • quote:

    Orijinalden alıntı: elektro_gadget

    quote:

    Orijinalden alıntı: Mephalay

    True ya da false dondurmemeleri mantiksal olmadiklari anlamina gelmez. AND ya da OR yapiyor olmalari bunu mantiksal yapiyor zaten. Sadece bitwise calistiklari icin true yerine 1 false yerine de 0 sonucu uretiyorlar her bit icin.

    Oradaki 1 0 lar boolean değil integer dir. Mantıksal bir işlem sadece doğru ve yanlış döndürür. Aksi halde mantıksal değildir. Milletin kafası bu yüzden karışıyor. Anlattıkları konuya hakim olmayan acemi yazarlar da bunu körüklüyor. Aşağıdaki kod C' de çalışır ve "true BITWISE AND true" işleminden false üretir.

    int a = 1, b = 2;
    if(a & b) printf("Bunu yazmaz");

    Bit operatörleri mantıksal olsaydı sonuç böyle olmazdı.

    Dostum, senin anlatmak istedigini anliyorum. Ama mantiksal dedigimiz olay bildigimiz "and" ya da "or" operasyonlarina deniliyor. Yani sonucu ben istersem Hashmap donderirim istersem Integer donderirim; bu, islemin mantiksal olmadigi anlamina gelmez ben onu demek istiyorum. Or ya da AND islemleri "mantiksal" islemler, biz & ya da | kullandigimiz her durumda mantiksal bir islem yapmis oluyoruz.

    Dedigini anliyorum, katiliyorum da diger noktalara. Sadece "&" ve "|" operatorleri mantiksal operatorler degildir demene karsi cikiyorum. Cunku onlar da mantiksal operatorlerdir , sadece bunu bitwise yaparlar.




  • Son mesajımı yazıp kendi adıma konuyu kapatıyorum. Bence siz mantığın ne olduğu konusunda biraz çalışın. Kesin veri var önümüzde, bir işlemin sonucu 2 seçenekten fazla ise mantıksal olamaz. Matematiksel mantık neyse bu da aynısı.

    Aşağıda XOR ve AND kullanılan çok basit bir devre var. Bu devre 2 adet mantık kapısından oluşur fakat kendisi aritmetik sonuç üretir. 1 bit eldeli toplayıcı.
     Shu VII Java Günlüğü
  • quote:

    Orijinalden alıntı: elektro_gadget

    Son mesajımı yazıp kendi adıma konuyu kapatıyorum. Bence siz mantığın ne olduğu konusunda biraz çalışın. Kesin veri var önümüzde, bir işlemin sonucu 2 seçenekten fazla ise mantıksal olamaz. Matematiksel mantık neyse bu da aynısı.

    Aşağıda XOR ve AND kullanılan çok basit bir devre var. Bu devre 2 adet mantık kapısından oluşur fakat kendisi aritmetik sonuç üretir. 1 bit eldeli toplayıcı.
     Shu VII Java Günlüğü


    Bu dediginize katiliyorum.

    Ama bu dediginiz ile, su dediginiz celisiyor.

    quote:


    Oradaki 1 0 lar boolean değil integer dir. Mantıksal bir işlem sadece doğru ve yanlış döndürür.


    Bu yanlis bir bilgi. Logic operation iki den fazla deger donme ihtimaline sahip olamaz. Ama bu istersen true-false olur, ister 49-50. Istersen transistordeki gibi high voltage - low voltage . Ben buna itiraz ediyorum.

    Verdiginiz Half-Adder ornegi ile de zaten ilk soylediginizi yanlislamis oldunuz.




  • Hazır operatörler ile ilgili bu kadar konuşmuşken ilişkisel operatörden de bahsedelim.

    İlişkisel operatörler bir koşulun diğer koşula olan ilişkisini belirler.


    Operatörler ---- Sonuç
    ---- == ---------- Eşittir
    ---- != ---------- Eşit Değildir
    ---- > ----------- Büyüktür
    ---- < ----------- Küçüktür
    ---- >= --------- Büyük veya eşittir.
    ---- <= --------- Küçük veya eşittir.

    Operatörlerimiz kısaca bunlar, Farklı bir if yapısı ile bir örnek yapalım.
    quote:


    int s1 = 15;
    int s2 = 55;
    boolean sonuc = (s1>s2);

    if (sonuc) System.out.println(sonuc);
    else {
    System.out.println(sonuc );
    }


    2 tane integer değişkenimizi boolean tipi değişkene atıyoruz. (sonuc = (s1>s2)) Attığımız değerde bir karşılaştırma olduğu için if içerisine sadece değişken adını yazarak sonucu alıyoruz.




  • Java dilinde tüm uygulamarımızda sınıfları kullanacağız. Sınıf örneğimiz için dikdörtgenin alanı hesaplayan bir uygulama yazdım.

    quote:

    class dikdortgen{
    double buyuk_kenar;
    double kucuk_kenar;
    }


    dikdorgen adında bir sınıf oluşturdum. içerisine buyuk_kenar ve kucuk_kenar adlı değişken tanımladım.

    quote:

    public class DH_Shu{
    public static void main(String args[])
    {
    dikdortgen alan = new dikdortgen();
    double hesapla;
    alan.buyuk_kenar=3;
    alan.kucuk_kenar=2;
    hesapla = alan.buyuk_kenar*alan.kucuk_kenar;
    System.out.println("Dikdörtgenin alanı: " + hesapla);
    }
    }



    Sınıfımızı nesneye çevirmek için dikdorgen alan = new dikdortgen(); ifadesini kullandık. oluşturduğumuz nesne ile dikdorgen sınıfımızdaki nesnelere değer atayıp hesapla değişkeni ile alanımızın sonucunu saklayıp println ile ekrana yazdırıyoruz.




  • Sınıfları java her uygulamasında kullanacağımızdan bir kaç örnek daha yapmayı planlıyorum.

    Oluşturduğumuz sınıfı birden fazla değer taşımasını sağlamak mümkündür. Bunun için

    quote:


    kare alan1 = new kare();
    kare alan2 = new kare();


    şeklinde uygulayabiliriz.

    quote:

    class ogrenci{
    String ad;
    String soyad;
    String sinif;

    void yazdir()
    {
    System.out.println("Öğrencinin adı: " +ad+ " Soyadı: " +soyad+" Sınıfı: "+sinif);
    }
    }

    public class sinif {

    public static void main(String args[])
    {
    ogrenci o1 = new ogrenci();
    ogrenci o2 = new ogrenci();
    o1.ad = "Emre";
    o1.soyad = "Kocaahmet";
    o1.sinif = "A-10C";
    o1.yazdir();
    System.out.println("-------------");
    o2.ad = "Ali";
    o2.soyad = "Kemal";
    o2.sinif = "T-11A";
    o2.yazdir();
    }

    }


    ogrenci adı sınıfımız içerisinde 3 tane string değeri taşıyan değişkenlerimiz var. Bunları yazdir metodu yardımı ile ekrana yazdırmasını sağlayacağız. Tabi bunun için de değişkenlerimiz için değer olması lazım, public static void main kısmında sınıflarımızı tanımlayıp değerlerini yazdırıyoruz.


    ekran çıktımız;
    quote:


    Öğrencinin adı: Emre Soyadı: Kocaahmet Sınıfı: A-10C
    -------------
    Öğrencinin adı: Ali Soyadı: Kemal Sınıfı: T-11A


    şeklinde olacaktır.




  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.