Ana içeriğe atla

C’DEN JAVA’YA GEÇEN GENETİK ÖZELLİKLER



Merhaba arkadaşlar bugün ki dersimizde C’den Java’ya geçen genetik bir özelliğe değineceğim.
Bilindiği üzere Java programlama dilinde kullanıcıdan alınan her değer String’dir bu yüzden dolayı, sayılarla ilgili bir işlem yapmak istiyorsak o sayıyı String’den Double ya da Integer’a çevirmemiz gerekiyor. Bu işlem için Java da çeşitli classlar ve metotlar kullanılmaktadır, bunlardan en bilineni “Integer.parseInt(); “ metodudur. Bir örnekle anlatacak olursak bu metodu Integer.parseInt(urunFiyatField.getText())); kullanımı bu şekilde. Gördüğünüz gibi  urunFiyatField adında bir textField’mız var buradan ürün fiyatı üzerinde işlem yapılması gerekiyor bu yüzden Integer.parseInt metodunu kullanıyoruz, urunFiyatField’dan aldığımız değer üzerinde ancak bu şekilde işlem yapabiliyoruz.
PEKİ, JAVA BU ÖZELLİĞİ NEREDEN ALDI?
                Bilindiği üzere Java, C++  programlama dili ile yazılmış bir programlama dilidir. Birçok özellikte C++’ın var olan yapıları ile oluşturulan kısa fonksiyonlar aracılığı ile kullanıcılara sunuluyor.  parseInt metodunun içerisinde barındırdığı çeşitli alt fonksiyonlar ile kullanıcıdan alınan sayıları String’den Integer’a dönüştürüyor, bu metot’un bulunduğu class’ın adı Integer classıdır.
                Şimdi Java’nın String’leri Integer’a dönüştürdüğü C’nin ise char [] dizilerini Integer’a ayrıştırdığı fonksiyonu yaptığım basit bir örnekle açıklayarak, bu sistemin nasıl çalıştığına dair ipucularını yakalamaya çalışalım.

Resim:1

/*Char [] dizisiden alınan değeri Integer’a çevirmek*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>//strdot'u kullanmak için gerekli kütüphane.

int main(int argc, char *argv[]){
int ayrisanDeger;//Tam Sayı değişken.
    char cumle[50];//karakter dizisi
    char cumle2[50];//karakter dizisi
    char *kuyrukPtr;//Pointer(gösterici) değişkeni
    char *kuyrukPtr2;//Pointer(gösterici) değişkeni
    int esc;
  
    while(esc!=27){//tus ESC'ye basılmadığı sürece aşağı daki işlemleri yap.
       printf("Integer bir deger ile baslayan cumle giriniz : ");
       gets(cumle);//gets scanf fonksiyonu gibi kullanıcıdan sayı ya da karakter almasını sağlar diziler aynı zamanda göstericidir o yüzden gets ile &(adres operatörü) kullanmadan kullanılabilir.
       printf("Integer bir deger ile baslayan ikinci bir cumle giriniz : ");
       gets(cumle2);
       ayrisanDeger =strtod(cumle,&kuyrukPtr);/*cumle dizisinin adresi kuyrukPtr'ye kopyalanıyor.
      Sonra strtod ile kuyrukPtr değişkenin içinde ki double sayısı ayrıştırıluyor */
      ayrisanDeger =strtod(cumle2,&kuyrukPtr2);/*cumle2 dizisinin adresi *kuyrukPtr2'ye kopyalanıyor.
      Sonra strtod ile kuyrukPtr değişkenin içinde ki double sayısı ayrıştırılıyor */
      ayrisanDeger=strtod(cumle,&kuyrukPtr)+strtod(cumle2,&kuyrukPtr2);
      //Integer sayıları tespit edilmiş ve ayrıştırılmış gösterici değişkenler toplanıyor.
      printf("Toplam TL %d\n", ayrisanDeger);//Ardından Ayrışan Değerin toplanan ekrana basılıyor.
      printf("1. kuyruk = %s\n",kuyrukPtr);//1.Ayrıştırılmış karakterler ekrana basılıyor
      printf("2. kuyruk = %s\n",kuyrukPtr2); //2.Ayrıştırılmış karakterler ekrana basılıyor
      printf("Cikis icin ESC'ye basiniz .\n");
     esc=getch();//27'nin tuş olduğunu algılatma
   }
system("PAUSE");//yapılan işlemin kullanıcı tarafından görünmesini sağladığı komut.   
return 0;
}           Gördüğünüz üzere arkadaşlar C de String sayıları Integer’a dönüştürme buna benzer bir şekilde gerçekleiyor, yazdığımız her parseInt metotdu. Buna benzer bir uygulama ile gerçekleşiyor. Bugün ki dersimiz bu kadar arkadaşlar ileri ki derslerimizde daha verimli konulara değineceğim bizi takip etmeye devam edin.


Not: bu makale Emrah DEDEOĞLU tarafından yazılmıştır. Öğretim Grv. Alper KAHRİMAN'nın katkılarıyla.


Yorumlar

  1. Bilgiler için teşekkürler devamını bekliyorum...

    YanıtlaSil
  2. Rica ederim, elbette ki devamı gelecek. yorumunuz için teşekkürler.

    YanıtlaSil
  3. ilgilendiğiniz için çok teşekkür ederim paylaşımlarınızın devamını bekliyorum..

    YanıtlaSil
  4. Rica ederim nedemek. tabiki devamı gelecektir, siz değerli kullanıcılarında katkılarını bekliyoruz, çünkü bilgi paylaştıkça çoğalır. iyi geceler diliyorum.

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

Jüpiter gezegeni

Güneş Sistemi'nin uzaklık olarak beşinci gezegenidir. Kütlece ve çap olarak sistemdeki en büyük gezegendir. Aslında Jüpiter gezegeni Güneş Sistemi'nde bazı özelliklerinden dolayı 'enlerin gezegeni' olarak sınıflandırılabilir:

Levhalar ve Levha Tektoniği

Başlangıçta tüm kıtaların Pangea adında tek bir kıta olduğu, sonradan parçalanıp dağılarak zamanla günümüzdeki yerlerine ulaştığı görüşüne dayanan kıtaların kayması kuramını aslında 1912'de bir meteorolog olan Alman bilim adamı Alfred Wegener ortaya attı.

Kur'an ve Tektonik Levhalar

Merhaba sevgili okurlarım bugün Kur'an okurken karşıma çıkan çok haşmetli bilimsel mesaj veren bir ayetle karşılaştım bunun şokunu üzerimden atamadan yazıya döküp siz değerli kullanıcılarımla paylaşmak istedim... Kur'an da geçen ayet; Neml Suresi 88. Ayet; Bir de o dağları görür, onları sabit sanırsın; oysa onlar, bulut geçer gibi geçip gider. Bu, herşeyi sapasağlam yaratmış olan Allah'ın sanatıdır. O, şüphesiz bütün yaptıklarınızdan haberdardır. Bu ayette gördüğünüz gibi 1400 yıl önce dağların durağan olmadığını ve hareket ettiğinden bahsetmektedir Peki bilim ne diyor bu konuda ? Size paylaşacağım kısa bir animasyonda Kıt'a hareketelerini yer yüzü hareketlerini izleyeceksiniz...