Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Java Sorularım (Takıldıkça Soru Eklenecek)


Öne çıkan mesajlar

Mesaj tarihi:
Şöyle yaptım;


import java.util.Scanner;
public class AsalSayilar{

public static void main(String asal[]){

Scanner klv = new Scanner(System.in);

long yeniSayi = 0;
long girilenSayi;
long sayac = 1;

System.out.print("Bir tam sayi giriniz: ");
girilenSayi = klv.nextLong();
System.out.println();

for (long i=0; i<=girilenSayi; i++){



long yeniSayi = Math.pow(2,i);
yeniSayi = yeniSayi - 2;


if (yeniSayi%2 = 0){

System.out.println(sayac + ". Asal Sayi: " + yeniSayi);
sayac++;

}


else continue;





}
System.out.println();
System.out.println("Toplam " + (sayac-1) + " Asal Sayi Bulundu!");
}
}


Math.pow kısmında üs 2 üzeri i değişkeni yapmam gerekiyor. Heralde ben saçmaladım orda tam oalrak ne yapmam lazım?
Mesaj tarihi:
aquila said:

math import edicen, sonra pow methodunu kullanican. yanlissam duzeltsin biri.


Abi mesela Math.random'u biliyorum onun için import herangi bişey yapmadan kullanabiliyoruz.

Şuan şöyle;


import java.util.Scanner;
public class AsalSayilar{

public static void main(String asal[]){

Scanner klv = new Scanner(System.in);

long yeniSayi;
long girilenSayi;
long sayac = 1;

System.out.print("Bir tam sayi giriniz: ");
girilenSayi = klv.nextLong();
System.out.println();

for (long i=0; i<=girilenSayi; i++){



yeniSayi = Math.pow(2,i);
yeniSayi = yeniSayi - 2;


if (yeniSayi%2 == 0){

System.out.println(sayac + ". Asal Sayi: " + yeniSayi);
sayac++;

}


else continue;





}
System.out.println();
System.out.println("Toplam " + (sayac-1) + " Asal Sayi Bulundu!");
}
}


Math.pow satırında possible loss of precision hatası veriyor?
Mesaj tarihi:
cabot said:


yeniSayi = (long) Math.pow(2,i);


Böyle yapınca çalıştı kalanalrıda bitirdim ödev tamam. Fakat benim merak ettiğim neden oraya (long) koyduk. yeniSayi ve i zaten long 2 de tam sayı. Neden oraya long koyma gereği duyduk? Yani tamsayıyı tam sayıyla çarpacak sürekli sonuç her türlü tam sayı
Mesaj tarihi:
Yani 2 üzeri 2yi 4.0 olarak çıkarıyor?

diğer sorumda şu. Math pow kullanmadan sayının üzerini ben alayım dedim şu şekilde;


import java.util.Scanner;
public class AsalSayilar{

public static void main(String asal[]){

Scanner klv = new Scanner(System.in);

long yeniSayi;
long girilenSayi;
long sayac = 1;
int us = 2;
long sonuc = 1;
System.out.print("Bir tam sayi giriniz: ");
girilenSayi = klv.nextLong();
System.out.println();

for (long i=0; i<=girilenSayi; i++){

if(i==1 || i==0){
continue;
}

for(long y=0; y<=i; y++){


sonuc = sonuc * 2;

}


sonuc = sonuc - 2;


if (sonuc%i == 0){

System.out.println(sayac + ". Asal Sayi: " + i);
sayac++;

}


else continue;

}


System.out.println();
System.out.println("Toplam " + (sayac-1) + " Asal Sayi Bulundu!");


}

}



Üs alma fonksiyonumun neresi yanlış? Mesela 50 giriyorum sonuç şu;

1.Asal Sayi: 2
2.Asal Sayi: 6
3.Asal Sayi: 11
4.Asal Sayi: 13
Mesaj tarihi:
Deacon said:

Bir de bu float'in double'in bilgisayarda nasil gosterildigini bilmiyorsan ogren. Hatta tamsayilarinkini de ogren.


Abi nasıl göründüğünü biliyorumda Math.pow şimdi akiladan öğrendim bu komutu. Math pow'un sonucunun double olduğunu bilmiyordum bilsem hata yapmazdım.

Üstteki mesajımı güncelledim math pow kullanmadan döngü ile üs almaya çalıştım sonuç yanlış çıkıyor sizce nerde hata yaptım? (Math.pow ile yaptıgım çalışıyor o sağlam)
Mesaj tarihi:
konu ile ilgisi var diye yaziyorum madem kursa baslamissin

http://www.iamthecoder.com/iamthecoder/categories.aspx?categoryid=12&categoryname=Java

burda bi dolu tutorial var 1 gunde izleyip baya iyi yol katedebilirisn.
Mesaj tarihi:
Söyledikleriniz dikkate alınacak. Fakat diğer sorum havada kaldı. Math.pow kullanmadan kendim üs alma döngüsü oluşturdum şöyle oldu;


import java.util.Scanner;
public class AsalSayilar{

public static void main(String asal[]){

Scanner klv = new Scanner(System.in);

long yeniSayi;
long girilenSayi;
long sayac = 1;
int us = 2;
long sonuc = 1;
System.out.print("Bir tam sayi giriniz: ");
girilenSayi = klv.nextLong();
System.out.println();

for (long i=0; i<=girilenSayi; i++){

if(i==1 || i==0){
continue;
}

for(long y=0; y<=i; y++){


sonuc = sonuc * 2;

}


sonuc = sonuc - 2;


if (sonuc%i == 0){

System.out.println(sayac + ". Asal Sayi: " + i);
sayac++;

}


else continue;

}


System.out.println();
System.out.println("Toplam " + (sayac-1) + " Asal Sayi Bulundu!");


}

}



Üs alma fonksiyonumun neresi yanlış? Mesela 50 giriyorum sonuç şu;

1.Asal Sayi: 2
2.Asal Sayi: 6
3.Asal Sayi: 11
4.Asal Sayi: 13

Sadece üs almayı ayrı çalıştırınca oluyor. Ama uygulamada asal sayıları yanlışbuluyor. Aynı uygulama mathpow ile düzgün çalışıyor. E benim üs almamda doğru çalışıyor yanlış nerde?
Mesaj tarihi:
2^50 dediğin çok büyük bi sayı. 32 bite sığmıyo kafadan. Koda bakmadım ama daha ufak sayılarla çalışması lazım. Her ihtimale karşı yazayım bi fonksiyon



public static long Pow(long in_value, int pow)
{
long out_value = 1;
for(int i = 0; i < pow; ++i)
out_value *= in_value;
return out_value;
}
Mesaj tarihi:
math.pow sığıyor ama long yapınca? Aynı uygulama math pow ile calısıyor benim döngü ile yanlış sonuç veriyor.

Oha haklısın abi mesela 10000 girdiğimde devamı gelmiyor. Ne yapacaz şimdi longdan daha uzun değişken görmedik biz. Hintlilerin sistemi java da yalan mı oldu yani?
Mesaj tarihi:
longdan buyuk double ve float var. onlarin alabilecegi maximum degerlere bi bak istiyorsan.

bir de us almak icin logn'de calisan efektif bi yontem var. ona da bir goz at, bilgi dagarcigina eklemis olursun.
Mesaj tarihi:
Neyse abi hinlilerin yönteminden daha kısa yol buldum ödev olarak onu verecem. Diğer uygulamalarıda kaydettim hocaya göstereyim nerde hata yapmışım. Sırada mukemmel sayılar var ha gayret
  • 2 hafta sonra ...
Mesaj tarihi:
Benim de java ile ilgili bir sorunum var yeni konu açmak istemedim. Kardeşimin bir ödevi var Ona yardıma kasıyorum ama windows 7 64 bit ve office 2003 için java access bağlantısını nasıl yapacağımızı bulamadık. nasıl yapılır bir yol gösterebilir misiniz
Mesaj tarihi:
Auberon said:

Benim de java ile ilgili bir sorunum var yeni konu açmak istemedim. Kardeşimin bir ödevi var Ona yardıma kasıyorum ama windows 7 64 bit ve office 2003 için java access bağlantısını nasıl yapacağımızı bulamadık. nasıl yapılır bir yol gösterebilir misiniz


office'in 64 bit olması lazım. Ms Access ile mi bağlantı kurmaya çalışıyorsunuz ?
×
×
  • Yeni Oluştur...