Sayfalar

14 Kasım 2015 Cumartesi

ETU ACM Java Kursu: 4. Hafta (Max, Median and Sorting)

Merhaba, arkadaşlar. Geçen hafta sizlerle ders notlarını paylaşmaya ne yazık ki vakit bulamadım. Ders notlarının amacı genel olarak ilk 1-2 dersi kaçıranların derse yetişebilmelerini sağlamaktı. Bu noktadan sonra derse hiç gelmeyen birinin, bize yetişmesi zor. Ondan dolayı, bu hafta neler yaptığımızı uzun uzun anlatmayacağım.

Bu hafta, dizilerden, fonksiyonlaradan (static methodlardan) ve döngülerden egzersizler yaptık. Dersin sonunda ise yazdığımız fonksiyonları kullanarak tüm elemanları farklı bir diziyi sıralayan bir fonksiyon yazdık. Dersden sonra ise C++ dersi iptal olduğundan biraz vaktimiz kalmıştı, ve bir diziyi ters çeviren özyinelemeli (recursive) bir fonksiyon yazdık.


public class Ders4 {
 
 static void ekranaBas(int[] dizi) {
  for (int i = 0; i < dizi.length; i++) {
   System.out.println(dizi[i]);
  }
 }
 
 static int maksimum(int[] dizi) {
  int maks = dizi[0];
  
  for (int i = 0; i < dizi.length; i++) {
   int suanki = dizi[i];
   
   if (suanki > maks) 
    maks = suanki;
  }
  
  return maks;
 }
 
 static int kacinci(int[] dizi, int k) {
  int sayac = 0;
  for (int i = 0; i < dizi.length; i++) {
   int suanki = dizi[i];
   if (suanki < k)
    sayac++;
  }
  return sayac;
 }
 
 static int medyan(int dizi[]) {
  for (int i = 0; i < dizi.length; i++) {
   int suanki = dizi[i];
   
   if (kacinci(dizi, suanki) == dizi.length / 2)
    return suanki;
  }
  
  throw new IllegalArgumentException();
 }
 
 static int ninci(int dizi[], int n) {
  for (int i = 0; i < dizi.length; i++) {
   int suanki = dizi[i];
   
   if (kacinci(dizi, suanki) == n)
    return suanki;
  }
  
  throw new IllegalArgumentException();
 }
 
 static int[] sirali(int[] dizi) {
  int[] siralanmis = new int[dizi.length];
  for (int i = 0; i < dizi.length; i++) {
   int suanki = dizi[i];
   siralanmis[kacinci(dizi, suanki)] = suanki;
  }
  return siralanmis;
 }
 
 static void swap(int[] dizi, int a, int b) {
  int tmp = dizi[a];
  dizi[a] = dizi[b];
  dizi[b] = tmp;
 }
 
 static void reverseBetween(int[] str, int beg, int end) {
  if (beg > end) 
   return;
  swap(str, beg, end); 
  reverseBetween(str, beg + 1, end - 1);
 }
 
 static void reverse(int[] str) {
  reverseBetween(str, 0, str.length - 1);
 }
 
}

2 Kasım 2015 Pazartesi

George Boole'nin 200. Doğum Günü


Bugün, Goerge Boole'nin 200. doğum günü olduğunu Google sayesinde öğrendim ve yayınladıkları doodle çok hoşuma gitti. Bu yüzden sizinle yanıp sönen bu harflerin ne anlama geldiğini ve birkaç ilginç bilgiyi paylaşmak istiyorum.

30 Ekim 2015 Cuma

Codecademy: Java Dersleri Açıldı!

Merhaba, arkadaşlar! Bu hafta tatil nedeniyle Java kursumuzu yapamadık ne yazık ki. Mail'ime gelen habere göre birkaç dakika önce Codecademy'de Java dersleri açılmış. Codecademy zamanında benim de bolca vakit geçirdiğim, insanlara başlangıç düzeyinde, bedave ve en güzeli interaktif bir şekilde programlama dersi veren bir site. Yani öğrendiğinizi direk uygulayabiliyorsunuz. Dersde öğrendiklerimizi pekiştirmeniz, egzersiz yapmanız için mükemmel bir fırsat kısacası. Eğer zaman bulursanız, bir göz atmanızı şiddetle öneriyorum. İyi eğlenceler...

Bahsettiğim sitenin linki: https://www.codecademy.com/

24 Ekim 2015 Cumartesi

ETU ACM Java Kursu: 2. Hafta (Devamı)

Evet, kaldığımız yerden devam edelim.

Dersin diğer kalan kısmında artık sayılardan biraz sıkıldığımızdan dolayı yeni bir tür değişken göstermiştim: char. char'lar sadece tek bir karekteri tutmak için kullandığımız değişkenler. Bu karakter 'a', 'b', 'c' gibi küçük harfler, 'A', 'B', 'C' gibi büyük harfler, '?', '*', '$' gibi noktalama işaretleri ve diğer her sembol olabilir. Hatta '7', '8', '9' gibi rakamlar bile olabillir, sonuç olarak onlar da birer karekter.

23 Ekim 2015 Cuma

ETU ACM Java Kursu: 2. Hafta (Branching)

Evet, arkadaşlar. Doğruyu söylemek gerekirse bu haftaki ders pek içime sinmedi. Dersin başında yaşadığımız aksilikler, sınıf değiştirmemiz daha sonrasında projektörün de çalışmamasıyla planladığımın aksine dersi tahtada anlatmak zorunda kaldım. Göstermek istediğim bazı şeyleri gösteremedim, bundan dolayı. Bu yayınla ve gelecek haftaki derste bu durumu telafi etmeye çalışacağım.

16 Ekim 2015 Cuma

ETU ACM Java Kursu: 1. Hafta (Kodlar)

Bazı arkadaşlar dersde yazdığımız küçük kod parçalarını sormuş galiba, aşağıdaki linke henüz silmediklerimi koydum, ilk 3 egzersiz çıktı tahmin etme ile ilgiliydi. Swap.java dosyasinda ise geçici bir alan kullanarak iki değişkenin değerlerini değiştirmiştik.

ETU ACM Java Kursu: Ders 1

15 Ekim 2015 Perşembe

ETU ACM Java Kursu: 1. Hafta (Hello World and Variables)

Eğer ki dersi kaçırdıysanız ya da tekrar etme ihtiyacı duyarsınız diye her dersten sonra o gün işlediklerimizin kısaca bir özetini burada size aktarmaya çalışacağım. Bu yazılar olabildikçe hızlı bir şekilde size ulaştırmayı amaçladığımdan, kullandığım dilde bazı hatalarda bulunabilirim. Bundan dolayı hepinizden özür diliyorum.