javada haata nerde?

ermess
11-03-2011, 14:57   |  #1  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

 
package mükemmelsayi;
import java.util.Scanner;
public class Main {
   
    public static void main(String[] arg) {
        int sayı,t=0;
        int i;
      
        Scanner bilgi=new Scanner(System.in);
        System.out.println("tam sayi giriniz");
        sayı=bilgi.nextInt();
        for(i=1; i<=sayı; i++) {
            if(sayı%i==0) t+=i; }
      
        if(sayı==t) System.out.println("mükemmel sayi"); 
        else
            System.out.println("mükemmel sayi degil");
 

    }
       
       
    }

arkadaşlar yukaridaki kod mükeemmel sayiyi bulan kod(mükemmel sayi: kendisi hariç bölnenlerinin toplami örng 6=1+2+3 vb..) kod hata vermiyo derleyice ama istenilen işlemide yapmiyo hatam nerde acaba?
aşagidaki kodda vize  final ortalamasini  harf karşılıgini vermesi isteniyor derleyicide(derleyici:netbeans 6.91) hata vermiyo ancak istenilen şekilde de calişmiyor..yardimci olursaniz sevirim?
 
package notdurumu;
import java.util.Scanner;
public class Main {
 
    public static void main(String[] args) {
        int vize,final1;
        double notort=0;
        Scanner giris=new Scanner(System.in);
        System.out.println("vize ve final notunu girin");
        vize=giris.nextInt();
        final1=giris.nextInt();
        notort=(vize*04+final1*0.6)/2;
        if(notort>=90 && notort<=100) {
            System.out.println("AA");}
        if(notort>84 && notort<90) {System.out.println("BA");}
        if(notort>=75 && notort<85) { System.out.println("BB"); }
        if(notort>69 && notort<75) { System.out.println("CB");}
        if(notort>59 && notort<70) { System.out.println("CC"); }
        if(notort>49 && notort<60) { System.out.println("DD");}
        if(notort<50 && notort>0) { System.out.println("kaldi");
        }
 
 
 
 
 
        
   
}
}
 

muh34
11-03-2011, 23:39   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Ilk sorudaki mevcut hata dongu kosul durumundadır.Dongu 'sayi' kez dönmeyip en fazla 'sayi-1' kez calıstırılmaktadır.Dolayısıyla tanım su sekilde olacaktır.
for( i=1;  i<sayi; i++)

Ikinci soruda ise sanırım yine gozden kacırdıgınız bir hata olacak ki,vize*04 ifadesindeki 04 degeri 4 olarak algılanacaktır.Halbuki ondalık degerini derleyiciye bildirmeniz gerekir.' 0.4'

Başarılar

ermess
12-03-2011, 12:22   |  #3  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

cok saolasin ikinci kodda System.out.println("ortalama"+notort); de unutmusum sanirim
 birde şu kodlara bakabilirmiisin ..aşagıdakinde karekök alma ama hzır fonksiyon kullanmadan acıkçasi yapmaya caliştım ama olmadi
package karekökbul;
import java.util.Scanner;
public class Main {
   
    public static void main(String[] args) {
        double kkök=0;
        double sayi;
        System.out.println("karekökü alinacak sayyi gir");
        Scanner giris=new Scanner(System.in);
        sayi=giris.nextInt();
       
        sayi=kkök*kkök;//(Acıkcasi buraya karekök hazir fonksiyonu kullanmadan ne yazacagimi nasıl yapacagimi bulamadm//
        System.out.println("karekok=="+kkök);
 
      
    }
}

 
package harfbulma;
/**
 */
import  java.util.Scanner;
public class Main {
   
    public static void main(String[] args) {
        Scanner giris=new Scanner(System.in);
        System.out.println("metni gir");
        String metin=giris.next();
        String ara=giris.next();
     
        int boy=metin.length();
        int sayac=0;
        int adet=0;
        while(sayac<boy)
        {
            char c=metin.charAt(sayac);
            if(c==ara) adet++;
            sayac++;
        }
        System.out.println("aranan harf "+adet);

       
    }
}
üstekide bir metin içinde isteninlen harf sayisini bulan koddu yapmaya calştım ama her yerde hata veriyor yardimci olursan sevinirim

muh34
14-03-2011, 02:04   |  #4  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

1.)
Bir sayının karekökünün hesaplamasında çeşitli yöntemler bulunmaktadır.Bunlardan bir tanesi hesaplanacak ilgili degerin doğal logaritmasının hesaplanmasıyla ortaya cıkan degerin 0.5 sabiti ile çarpılmasıyla elde edilen sayının ' e ' sayısına üs olmasıyla elde edilir.Bu bagıntı aşagıdaki gibidir.

2.71.. ^ ( ln ( sayi ) * 0.5 )

O halde yukarıdaki bagıntıyı java da uygulamaya calısırsak,

double a=36;
double b=Math.pow(Math.exp(1),0.5*Math.log(a));
System.out.println(b);
Şeklindeki kod satırlarını yazmamız yeterli olacaktır.' exp() ' fonksiyonu icerisindeki 1 degeri e sayısının üs degeri olurken,' log () ' fonksiyonu ise icerisinde barındırdıgı parametrik degerin doğal logaritmasını hesaplar.' pow () ' fonksiyonu ise ' e ' sayısının ilgili logaritmik us degerini dondurerek karekök degerini hesaplamıs olacaktır.

Başarılar

Son Düzenleme: muh34 ~ 14 Mart 2011 02:04
muh34
14-03-2011, 02:06   |  #5  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

2.)
Bir String icerisinde karakter taraması yapmak icin substring() metotunu kullanabilirsiniz.

Scanner bilgi=new Scanner(System.in);
String metin=bilgi.nextLine();
String aranacakHarf=bilgi.nextLine();
int harfSayisi=0;
int i;
for(i=0;i<metin.length();i++)
if(metin.substring(i,i+1).equals(aranacakHarf))
harfSayisi++;
System.out.println(harfSayisi);

Başarılar

ermess
15-03-2011, 19:58   |  #6  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

Allah razi olsun hocam ..bide  f(metin.substring(i,i+1).equals(aranacakHarf)) yerine döngüler kullanarak nasıl yapabilirim
birde klavyeden girilecek her türlü polinom içerisindeki(iki degişkenli örn:a^4+ax+by+c şeklinde) tekharf/sembolden oluşan degişkenleri ayrıştırarak bunları klavye girdisi olarak isteyecek ve polinomun sonucunu verecek program..anlamadigim nokta klavyeden girilecek her türlü polinomu nasıl ayrıştırabilirim
 
package mükemmelsayi;
import java.util.Scanner;
public class Main {
   
    public static void main(String[] arg) {
        int sayı,t=0;
        int i;
        int j;
      
        Scanner bilgi=new Scanner(System.in);
        System.out.println("tam sayi giriniz");
        sayı=bilgi.nextInt();
       for(i=1; i<=sayı; i++) {
       for(j=1; j       
            if(i%j==0) t=t+j;
        }
      
        if(i==t) System.out.println("mükemmel ssayı"+i);
       

      t=0;
    }
       
        // TODO code application logic here
    }

yukarıdaki kodda girilen sayıya kadar olan mükemmel sayılari yazdıran kod örn:klavyeden 30 girdik 6 ve 28 mükemmel sayi yazacak yazdıgım kod hata vermiyor ancak dogru calşmiyor  yardımcı olursaniz coook sevinirim

Son Düzenleme: ermess ~ 15 Mart 2011 20:00
muh34
17-03-2011, 11:03   |  #7  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Bahsettiginiz if() blogu aslında sadece bir koşulu belirtmektedir.Bu koşul zaten üzerinde mevcut bir for() dongusu ile calısmaktadır.Farklı bir çözüm yolu olarak charAt() metotunu kullanabilirsiniz.Bu sayede her karakter 2 byte'lık yer kaplayan char veri tipine donuserek ilgili metin icerisindeki karakterlere tek tek bakılacaktır.(substring(i,i+1) ' in bir baska yolu)

Scanner bilgi=new Scanner(System.in);
String metin=bilgi.nextLine();
char aranacakHarf='a';
int harfSayisi=0;
int i;
for(i=0;i<metin.length();i++)
{
harf=metin.charAt(i);
if(harf==aranacakHarf)
harfSayisi++;
}
System.out.println(harfSayisi);

Başarılar

muh34
17-03-2011, 12:55   |  #8  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

import java.util.Scanner;

public class MukemmelSayi
{
public static void main(String args[])
{
int i,dg=0,j;
Scanner bilgi=new Scanner(System.in);
System.out.println("Lutfen bir sayi giriniz:");
int sayi=bilgi.nextInt();
for(i=6;i<=sayi;i++)
{
for(j=1;j
if(i%j==0)
dg+=j;
if(dg==i)
System.out.print(i+" ");
dg=0;
   

}

}
}
Bahsettiginiz problem iki adet iç içe döngü(nested loops) kullanılarak gerceklenebilir.Dıştaki döngü kullanıcının girdiği sayı degeri kadar donerken,içteki dongu ise carpanları simgeleyen dongu olarak kurgulanmıştır.

Başarılar

Son Düzenleme: muh34 ~ 17 Mart 2011 12:56
muh34
17-03-2011, 19:40   |  #9  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Polinom ayrıştırması için çeşitli sekilde algoritma kurgulanabilir.Burada kritik nokta standart bir polinomik bir ifade olmasıdır.Ornegin katsayı + degisken + üsDegeri + operator + diger bileşenler ... 
Ilk olarak bir String degiskeni ile polinom girilecektir.Daha sonra yukarıdaki gibi bir kurgu ile polinomun bileşenleri teker teker gorevlerine gore ayrılacaktır.https://www.chip.com.tr/forum/c-yardim_t195557.html
bu linkte daha onceden sormus oldugunuz soru,bu probleme benzemektedir.Ilk olarak bir standart olusturmanızı tavsiye ederim,aksi halde program bir proje niteliğinde olacaktır ve problem farklı ihtimallere karsı denetlenmesi gerekecektir.

Başarılar

ermess
18-03-2011, 01:01   |  #10  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

cok yardımci oldun  çok saolasın