24 Mayıs 2015 Pazar
CHAR TİPİ İŞLEMLER
public class KarakterTip {
public static void main(String[] args) {
// char tipi integral tip gurubundadır. Toplama, bolme, carpma
// vb yapılabilir. Ancak String islemlerinde (Unicode tablosundaki karsılıgı) karakter gibi davranır.
char c1 = 65;// decimal
char c2 = 0x41; // 4*16^1+1*16^0=64+1=65//hexadec (16'lık)
char c3 = 0101; // 1*8^2+0*8^1+1*8^1((octal (sekizlik)
char c4 = 0b0100_0001;// 1*2^6+0*2^5+..+0*2^1+1*2^0//binary (iki)
char c5 ='A';
char c6='\101';//sekizlik
char c7='\u0041';//unicode
int i = 10 + c1;
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
System.out.println(c6);
System.out.println(c7);
System.out.println(i);
String \u0061d="\u0041hmet";//ilginc
//(klavyede cıkmayan harfleri göstermede kullanilabilir)
System.out.println(ad);
}
}
BİR SAYIYI FARKLI TABANLARDA YAZMA İŞLEMİ
Verilen bir sayıyı ikili, sekizlik, onaltılık tabana nasıl çevirildiğini görelim...
public class FarkiTabandaYazma {
public static void main(String[] args) {
int i1=65;//decimal
int i2=0x41; //4*16^1+1*16^0=64+1=65//hexadec (16'lık)
int i3=0101; //1*8^2+0*8^1+1*8^1((octal (sekizlik)
int i4=0b0100_0001;//1*2^6+0*2^5+..+0*2^1+1*2^0//binary (iki)
//int soru=0b1111_1000_0000;
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
}
}
20 Mayıs 2015 Çarşamba
19 Mayıs 2015 Salı
KİTAP ÖNERİLERİ
- Java Cookbook
- http://kodcu.com/e-kitap/
- Tüm O'REILLY kitaplarını öneririm
DİZİ KOPYALAMA İŞLEMİ
Merhabalar bugün sizlere dizilerde kopyalama işleminden bahsediceğim. kod üzerinden anlatıcak olursam :
public class DiziKopya {
public static void main(String[] args) {
int dizi[] = { 1, 3, 5, 2, 7 };
int dizi1[] = new int[dizi.length]; // dizi.length ile dizinin uzunluğuna erişiriz.
System.out.println("dizi1 ilk:" + dizi1);
// dizi1 = dizi; // adres kopyalanır
// dizi'nin adresi dizi1'e kopyalanır
// dizi1'in tuttugu degerler garbage collector
// tarafından daha uygun zamanda silinir
/*
* for (int i = 0; i < dizi1.length; i++) System.out.println(dizi1[i]);
* dizi1[0] = 100; System.out.println(dizi[0]);
* System.out.println("dizi:" + dizi); System.out.println("dizi1 son:" +
* dizi1);
*/
// Dizi kopyalama (Yontem 1)
for (int i = 0; i < dizi.length; i++) {
dizi1[i] = dizi[i];// eleman eleman kopyalama
}
System.out.println("dizi1 son:" + dizi1);
System.out.println("dizi:" + dizi);
for (int i = 0; i < dizi1.length; i++) {
System.out.println(dizi1[i]);
}
System.out.println("*************************");
int dizi2[]=new int[dizi.length];
// Dizi kopyalama (Yontem 2)
System.arraycopy(dizi, 0, dizi2, 0, dizi.length); // arraycopy ile dizi kopyalama işlemi
for (int i = 0; i < dizi2.length; i++) {
System.out.println(dizi2[i]);
}
}
}
18 Mayıs 2015 Pazartesi
DİZİ ELEMANLARI ARASINDA YER DEĞİŞTİRME
Var olan bir dizinin elemanları arasında yer değiştirme işlemi gerçekleştirmek için :
public static void main(String[] args) {
// TODO Auto-generated method stub
int dizi[] = { 1, 3, 5, 2, 7 };
System.out.println(dizi[0]);
System.out.println("eleman sayisi:" + dizi.length);
// swap (yerdegistirme)
int temp = dizi[0];// sakliyoruz
dizi[0] = dizi[2];
dizi[2] = temp;
System.out.println(dizi[2]);
}
bu kodu çalıştırdığımızda dizi[2]. elemanının değerinin 1 verildiğini görürüz.
DİZİLER
Tek Boyutlu Diziler
Tüm programlama dillerinde olduğu gibi Java dilinde de dizi (array) yapısı son derecede önemli bir veri yapısıdır. Dizi yapısını kısaca tanımlarsak:
Dizi, bilgisayar belleğinde aynı isim altında genellikle aynı tipten çok sayıda veriyi bir arada saklayan veri yapısıdır. Aşağıda, x adlı bir dizinin mantıksal görünümü verilmiştir:
x
| 4 | 2 | 7 | 22 | 11 | 3 |
| 0 | 1 | 2 | 3 | 4 | 5 |
Dizinin bir adı ve dizi içerisindeki elemanın dizinin kaçıncı elemanı olduğunu belirten bir indisi (subscript, index) vardır. Örneğin, yukarıdaki x adlı dizi için x[3] ifadesi bu dizinin 3 numaralı elemanını yani 22 değerini göstermektedir. Dizinin indisi Java dilinde daima köşeli parantez ile belirlenir:

Java dilinde bir dizinin ilk elemanının indisi daima 0’dır; son elemanın indisi ise diziye ayrılan yer sayısının 1 eksiğine eşittir. Yukardaki x dizisinin 6 elemanı vardır; ilk elemanının indisi 0 ve son elemanının indisi de 5’tir.
Java Programı içinde Dizinin Bildirilmesi
Bir Java programı içinde diziyi tanıtmak için, new sözcüğünü kullanarak belirli bir tipten yeni bir nesne tanımlama yolu izlenir. Dizinin tipi, adı ve maksimum eleman sayısı bir bildiri deyimi içinde belirtilir:
Tip DiziAdı[ ] = new Tip [ Eleman Sayısı ];
veya eşdeğeri
Tip [ ] DiziAdı = new Tip [ Eleman Sayısı ];
Örneğin, yukarıdaki x dizisi için,
int [ ] x= new int [6] ;
şeklinde bildirimde bulunulacaktır. x dizisi 6 elemanlıdır ve elemanları int türündedir.
Dizi için ne gereklidir?
Dizi yapısına, aynı türden bir veri grubunu tümüyle bellekte saklı tutmanın gerekli olduğu uygulamalarda ihtiyaç duyarız. Örneğin, verilerin sıralanması, bir veri grubuna ait bazı istatistiksel bilgilerin hesaplanması (standart sapma vb.) gibi uygulamalar bu tür uygulamalardandır.
SEÇİM OPERATÖRÜ
İF ELSE 'in kullanışı şu şekilde de olmaktadır :
public class SecimOp {
public static void main(String[] args) {
int a = 10, b = 20;
int buyuk = (a > b) ? a : b; // a b den büyük ise a değeri yazar değilse b
System.out.println(buyuk);
}
}
PROGRAM AKIŞ KONTROLÜ
if
Yapısı:
·
if(kontrol)işlem(veya
ifade);
if(a>5)x=10;
if(a>j)System.out.println(a);
·
Bir if’te birden fazla ifade varsa bloklar kullanılmalı:
if(kontrol){
........ ifade;
........ ifade;
........ ifade;
}
if(i>j){
System.out.println(i);
i=j;
....... ifade;
....... ifade;
}
if-else
Yapısı:
·
if(kontrol)ifade1; // Olumlu ise bu ifade1
işlenir.
else
ifade2; //
Olumsuz ise bu ifade2 işlenir.
·
if(kontrol){
ifade1;
ifade2;
}
else{
ifade3;
ifade4;
}
if-else-if
Yapısı:
·
if(kontrol1){
......
}
else if(kontrol2){
......
}
else if(kontrol3){
......
}
else{ ….
}
OPERATÖRLER
1)
Aritmetik Operatörler:
+,
- , * , / ,% :
Mod Alma
2) Atama
Operatörleri (=):
a=10+b; //
Atama operatörü =
a=a+10; //
a+=10; kısa yazılımı
a=a-10; //
a-=10; kısa yazılımı
a/=7;
a%=8;
a=a+1; //a++;
kısa yazılımı
a=a-1; //a--;
kısa yazılımı
3) Karşılaştırma
Operatörleri:
== eşittir.
!= eşit değildir.
>
<
>=
<=
4) Mantık
Operatörleri:
&& and (ve)
& and (ve)
Java’da her ikisi de and operatörüdür, C/C++’da &
operatörü bitwise (bit seviyesinde
işlem)
operatörüdür.
|| or (veya)
| or (veya)
^ xor
! not
|
|
|
&&
|
||
|
^
|
|
true
|
true
|
true
|
true
|
false
|
|
true
|
false
|
false
|
true
|
true
|
|
false
|
true
|
false
|
true
|
true
|
|
false
|
false
|
false
|
false
|
false
|
^
(xor) operatöründe aynı olan ifadeler false,
farklı olan ifadeler true değeri almaktadır.
5) Bit
Seviyesinde İşlem Operatörleri:
IO paketinde kullanımı yaygındır.
& and (ve)
| or (veya)
^ xor
~ not
>> Sağa öteleme(2’ye bölme)
<< Sola öteleme(2 ile çarpma)
>>> Sağa öteleme(işaret bitine bakılmaksızın)
İF ELSE KULLANIMI
İF-ELSE kullanılarak yaş gruplama işlemini gerçekleştirelim.
(0-2) yaş grubuna "bebek"
(3-12) yaş grubuna "çocuk"
(13-18) yaş grubuna "ergen"
(19-25) yaş grubuna "genç"
(26-40) yaş grubuna " yetişkin"
41 den büyük yaş grubuna ise yaşlı
negatif ve 200 sayıları girildiğinde ise geçersiz sayı uyarısını versin.
Bu işlemi gerçekleştirecek kod :
public class YasGrup{
public static void main(String [] args){
Scanner sc=new Scanner(System.in);
System.out.println("YAŞ GİRİNİZ");
int yas=sc.nextInt();
if(yas<0 || yas>200) System.out.println("geçersiz yaş");
else if(yas<=2) System.out.println("bebek");
else if(yas<=12) System.out.println("çocuk");
else if(yas<=18) System.out.println("ergen");
else if(yas<=25) System.out.println("genç");
else if(yas<=40) System.out.println("yetişkin);
else if(yas>=41) System.out.println("yaşlı");
}
}
FOR DÖNGÜSÜ
For döngüsünü kullanarak rastgele harf üretme uygulamasını yazalım şimdide :
public class RasgeleHarfUretme {
public static void main(String[] args) {
for (int i = 1; i <= 20; i++) {
char ch = (char)(Math.random()*26+'A');
System.out.println(ch);
}
}
}
17 Mayıs 2015 Pazar
HESAP MAKİNESİ
Merhaba arkadaşlar bugün sizlere Switch Case kullanılarak kullanıcıdan veri girişi yapmasını isteyip girilen veri doğrultusunda basit bir hesaplama işlemini yapmaya çalışıcağım. Daha önce de bahsettiğim gibi veri girişi işlemini Scanner sınıfını kullanarak gerçekleştiriyoruz. Kodu yazıcak olursak :
import java.util.Scanner;
public class HesapMakinesi {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("ilk sayiyi giriniz:");
int a=sc.nextInt();
System.out.println("ikinci sayiyi giriniz:");
int b=sc.nextInt();
System.out.println("Yapılacak işlemi seçiniz:(1,2,3,4)");
int sec=sc.nextInt();
switch(sec)
{
case(1):{System.out.println("iki sayının toplamı="+(a+b));} break;
case(2):{System.out.println("iki sayinin farkı="+(a-b));} break;
case(3):{System.out.println("iki sayının çarpımı="+(a*b));} break;
case(4):{System.out.println("iki sayinin bölümü="+(a/b));} break;
default: {System.out.println("geçersiz işlem yaptınız");} break;
}
}
}
HELLO WORLD
Hemen hemen her programlama dilinde ilk ders olarak HELLO WORLD yazılımını anlatılır. Şimdi bu uygulamanın java ' da nasıl yazıldığını görelim :
public class ilkUygulama {
public static void main(String[] args) {
System.out.println("HELLO WORLD");
}
}
16 Mayıs 2015 Cumartesi
SCANNER KULLANIMI
Merhaba arkadaşlar bu yazımda sizlere kullanıcının nasıl veri girişi yapabileceği hakkında bilgi vermeye çalışacağım. Kullanıcı veri girişini yapabilmesi için Scanner sınıfını kullanır. Örnek olarak kullanıcıdan yaş bilgisini alarak bu bilgiye göre yaş gruplaması yapalım. Bunun için öncelikle import java.util.Scanner kütüphanesini eklemiz gerekicek.
Bu işlemi gerçekleştirdikten sonra kod kısmına geçebiriz :
public class YasGruplama {
public static void main(String[] args) {
// Klavyeden yas girme
Scanner sc = new Scanner(System.in);
System.out.print("Yas girin:");
int yas = sc.nextInt();
// 0-2 bebek
// 3-12 cocuk
// 13-18 ergen
// 19-25 genc
// 26-40 yetiskin
// 41'den buyuk yasli
// negatif ve 200 gecersiz yas
if (yas < 0)
System.out.println("gecersiz yas");
else if (yas <= 2)
System.out.println("bebek");
else if (yas <= 12)
System.out.println("cocuk");
else if (yas <= 18)
System.out.println("ergen");
else if (yas <= 25)
System.out.println("genc");
else if (yas <= 40)
System.out.println("yetiskin");
else if (yas < 200)
System.out.println("yasli");
else
System.out.println("gecersiz");
}
}
SAYININ ASAL SAYI OLUP OLMADIĞINI BULMA
Asal sayılar sadece kendisi ve 1 sayısına bölünebilen 1'den büyük pozitif tam sayılar biçiminde
tanımlanır.Asal sayıların 1 ve kendisinden başka tam böleni yoktur.
Şimdi gelelim Java koduna :
public class AsalSayi {
public static void main(String[] args) {
// 1000000'a kadarki tüm asal sayilari bulunuz
int n = 1000_000;
for (int i = 2; i <= n; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0)
break;
else if (j == i - 1)
System.out.println(i);
}// for
}// for
}
}
Kaydol:
Yorumlar (Atom)
