İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

Bir java sorum var

osunwa15.10.20117 cevap3.498 görüntüleme
2011'den beri7 mesaj
#1
Klavyeden girilen double tipi bir sayıyı iki tamsayının oranı olarak ekrana yazdıran program
Örnek:46,16==>4616/100
yardım ederseniz sevinirim
Cevaplar
2008'den beri357 mesaj
#2
Elimde java derliyici yok. C# göre uyarladım. Ona göre cevirirsin:

[COLOR=blue]double[/COLOR] sayi = [COLOR=#2b91af]Convert[/COLOR].ToDouble(txtDoubleNum.Text); [COLOR=green]//girilen virgüllü sayıyı double tipli "sayi"'ya eşitliyoruz.[/COLOR] 
 [COLOR=blue]int[/COLOR] böllüm = 10;            
 [COLOR=blue]int[/COLOR] counter = 0;
 [COLOR=blue]int[/COLOR] num = 0;              
 [COLOR=blue]while[/COLOR] ([COLOR=blue]true[/COLOR])        
     {          
              num = [COLOR=#2b91af]Convert[/COLOR].ToInt32(sayi);[COLOR=green]//girmiş olduğun sayıyı integer'a ceviriyoruz. Örnek: girilen sayi=12,98 ==> num=13 olarak cevirilecek[/COLOR]                                           [COLOR=blue]if[/COLOR] (sayi/num==1 && counter>0)[COLOR=green]//eğer girilen sayı , int'e cevrilen "num"'a bölünüyorsa ve bu küsaratlı bir sayıysa[/COLOR]  
               {
                     [COLOR=#2b91af]MessageBox[/COLOR].Show(sayi+[COLOR=#a31515]" / "[/COLOR]+böllüm);[COLOR=green]//Ekrana 1298/1000 olarak bastıracak.[/COLOR] 
                    [COLOR=blue]break[/COLOR];
               } 
              [COLOR=blue]else[/COLOR] [COLOR=blue]if[/COLOR] (sayi/num==1)[COLOR=green]//ilk girilen sayi double değilse örnek: sayi=12 ise[/COLOR] 
             {
                     [COLOR=#2b91af]MessageBox[/COLOR].Show(sayi + [COLOR=#a31515]"/ 1"[/COLOR]); 
                    [COLOR=blue]break[/COLOR];
              }
               [COLOR=blue]else[/COLOR][COLOR=green]//küsürattan kurtamaya çalışmak örnek: girilen sayi:12,3 ==> sayi=12,3 x 10 ==> sayi=123
[/COLOR]              {
                     counter++; 
                    böllüm *=10;
                     sayi *= 10;
              }
         }
2010'den beri114 mesaj
#3
anamur birşey sorabilirmiyim niye sonsuz döngü yapıyorsunda işlem gerçekleşince break ile çıkıyorsun ? dahamı hızlı oluyo acaba öğrenmek isterim ?
2008'den beri357 mesaj
#4
Yok daha hızlı yapsın diye değil. İstersen sen whilie döngüsü için bir koşul tanımlarsın, if bloglarında break yerine koşulu bozacak ifade yazabilirsin.
2007'den beri2.589 mesaj
#5
hiç uğraşmadan string operasyonlar ile gerçekleştir derim :)
import javax.swing.*;

public class comma2Rational {


    public String toRational (String commaSeperated){
        int len = commaSeperated.length() - 1; // virgül'ü çıkarıyoruz.
        int commaPos = commaSeperated.indexOf(","); //virgül'ün noktasını bulduk.
        String stringBuffer = commaSeperated.replaceAll(",", ""); // sadece sayımızın tamamını aldık.
        int power = len - commaPos ; //virgülden sonraki basamak sayısını hesaplıyoruz.
        int a = (int) Math.pow(10,power);


        stringBuffer = stringBuffer + "/" + String.valueOf(a);
        return  stringBuffer;
    }


    public static  void main (String [] args){
        String s = JOptionPane.showInputDialog("Kesirli sayıyı giriniz");
        JOptionPane.showMessageDialog(null, new comma2Rational().toRational(s));
    }
}


biraz hızlı yazdım. açık gedik varsa düzeltirsin :))

sürekli test yapmak için main'in içini sonsuz while içine alabilirsin.
2009'den beri44 mesaj
#6

    // System.out.println(sayiOrani(46.16));
    public String sayiOrani(double d)
    {
        if ((d%1) == 0) return (int)(d)+" / 1"; // Kusurat Yoksa Sayiyi Int Olarak 1'e Oranla
        String sayiStr = ""+d; // double'i String'e Cevir
        String kusuratStr = sayiStr.substring(sayiStr.indexOf(".")+1); // Kusurat Noktasından Sonraki Bölüm
        StringBuilder sb = new StringBuilder("1"); // Bolen'in Ilk Karakteri 1
        for (int i = 0; i<kusuratStr.length(); i++)  sb.append("0"); // Kac Kusurat Varsa Bolen String'ine O kadar 0 Ekle
        return (int)(d)+kusuratStr+" / "+sb.toString(); // "4616 / 100" return Eder
    }
2011'den beri2 mesaj
#7
java.lang.NoClassDefFoundError: amiralbatti2/AmiralBatti2
Caused by: java.lang.ClassNotFoundException: amiralbatti2.AmiralBatti2
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: amiralbatti2.AmiralBatti2. Program will exit.
Exception in thread "main" Java Result: 1
PROGRAM BÖYLE BİR HATA VERİYOR SİZCE NEDEN OLABİLİR YARDIMCI OLURSANIZ SEVİNİRİMM
2007'den beri2.589 mesaj
#8
kodunu yazarsan daha hızlı yardımcı oluruz. Ancak oluşturmaya ya da kullanmaya çalıştığın bir class yok gibi gözükmekte.

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.