Archive for Ders

Java ile obeb algoritması

Bu yazıyı birinci sınıfta iken kulüp sitesinde yazmıştım. Site şu an aktif olmadığı için burada yayınlamaya karar verdim.

Genelde herhangi bir programlama diline başlanırken en basit algoritmalar gösterilir ve ödev olarak verilir. Bu örnekte farklı olarak Ayrık Matematik(Discrete Maths) dersinde gösterilen bir algoritma uygulanmıştır.

Verilen iki sayının obebini bulurken, sayıların asal çarpanlarını bulmak yada tek tek başka sayılara bölmek yavaş olabilir. Bu nedenle özel bir algoritma kullanılır. Java kod örneği aşağıda verilmiştir.


import java.util.Scanner;
public class obeb{
        static Scanner sc=new Scanner(System.in);
        public static int sayial(){
                /*kodları tekrar tekrar yazmak yerine fonksiyonumuzu oluşturalım*/
                System.out.println("Lütfen bir sayı girin");
                int a =sc.nextInt();
                return a;
        }
        public static int obeb(int b,int k){
                int d;
                if(k==0){
                        /* küçük sayımız sıfırsa artık obebimizi bulduk demektir*/
                        d=b;
                        return d;
                }
                else{
                        int c=b%k;
                        /*fonksiyonumuz kendini çağıracak
                         * işlemden elde ettiği sayıları
                         * tekrar aynı işlemlerden geçirecek böylece
                         */
                        d=obeb(k,c);
                        return d;
                }
        }
        public static void main(String[] args) {
                int a,b,bsayi,ksayi,obeb;
                a=sayial();
                b=sayial();
                obeb=0;
                bsayi=0;
                ksayi=0;

                /*sayılardan büyük olanı bulalım*/
                if(0<a-b){
                        bsayi=a;
                        ksayi=b;
                }
                else if(0>a-b){
                        bsayi=b;
                        ksayi=a;
                }
                else
                        obeb=a;
                /*obebimizi hesaplayacak fonksiyonu çağıralım*/
                if(obeb!=a){
                        obeb=obeb(bsayi,ksayi);
                }
                System.out.println("girdiğinizi sayıların en büyük ortak böleni = "+obeb);
        }
}

Android WebView içerisinde JavaScript çalıştırmak

Öncelikle kısaca açıklamak gerekirse, WebView, Android uygulamalarında çevrim içi yada çevrimdışı bir web sayfası göstermeye yarayan arayüz elemanıdır.

Gösterilen sayfa denetimimiz dışında olabilir. Bu durumda sayfa içerisinde değişiklik yapılması gerektiğinde JavaScript kullanılabilir. JavaScript ile sayfa içeriği değiştirilebilir, sayfaya eklemeler yada sayfadan çıkarmalar yapılabilir. Aynı zamanda sayfadaki formlar üzerinde denetim yapılabilir yada sayfa sahibinin yazdığı fonksiyonlar çağrılabilir.

İlk önce WebView kullanan basit bir activity oluşturalım. Activity içerisinde websitesini görüntülemek için bir WebView, WebView de görüntülenen sayfada değişiklik yapmak için de bir Button bulunacak.

main.xml dosyası içeriği aşağıdadır.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical" >

<WebView
 android:id="@+id/webSite"
 android:layout_width="fill_parent"
 android:layout_height="400dp" />

<Button
 android:id="@+id/btnChange"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Change" />

</LinearLayout>

Activity sınıfımız aşağıdaki gibi olmalı.
package net.w3blog.webview.javascript;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;

public class WebViewJavaScriptActivity extends Activity {
 private Button btnChange;
 private WebView webSite;

 private void init(){
 btnChange = (Button)findViewById(R.id.btnChange);
 webSite = (WebView)findViewById(R.id.webSite);
 }
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 init();

 webSite.getSettings().setJavaScriptEnabled(true);

 webSite.setWebViewClient(new WebViewClient());
 webSite.setWebChromeClient(new WebChromeClient());

 webSite.loadUrl("http://google.com");
 }
}

Ekran görüntüsü aşağıdaki gibi olacaktır.

Şimdi görüntülenen websitesinin arkaplanını istersen Javascript ile değiştirebiliriz. bunun için main.xml dosyasında Buttonumuza onClick eventi ekleyelim ve fonksiyonumuzu yazalım.

 public void changeBackground(View v){
 webSite.loadUrl("javascript:document.bgColor='#333333'");
 }

Butona tıklandığında elde edilecek görünüm aşağıdaki gibi olmalı.

Uygulamanın tüm kodlarını buradan indirebilirsiniz.

Switch to our mobile site