Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class deneme {
- public static void main(String[] args) {
- Scanner keyboard=new Scanner(System.in);
- boolean devamsoru=true;
- System.out.println(".:Rasyonel Sayi Hesap Makinesi:.\n");
- while(devamsoru){
- System.out.println("Lutfen yapmak istediginiz islemi giriniz:");
- String islem=keyboard.nextLine();
- int uzunluk=islem.length();
- int i,bosluksayisi=0,araislemsayisi,ilkislem;
- for(i=0;i<uzunluk;i++){
- if(islem.charAt(i)==' '){
- bosluksayisi++;
- }
- }
- araislemsayisi=bosluksayisi/2;
- if(araislemsayisi==1){ //IKI RASYONEL SAYI ARASIDA YAPILAN HESAPLAMALAR
- ilkislem=islem.indexOf(" ");
- if(islem.substring(ilkislem+1,ilkislem+2).equals("*")){ //ISLEM * ISE
- String sonuc=carpma(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
- System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
- String cevap=keyboard.next();
- if(cevap.equals("H")){
- devamsoru=false;
- System.exit(0);
- }
- }
- else if(islem.substring(ilkislem+1,ilkislem+2).equals("/")){
- String sonuc=bolme(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
- System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
- String cevap=keyboard.next();
- if(cevap.equals("H")){
- devamsoru=false;
- System.exit(0);
- }
- } // 3/5 * 4/6
- else if(islem.substring(ilkislem+1,ilkislem+2).equals("+")){
- String sonuc=toplama(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
- System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
- String cevap=keyboard.next();
- if(cevap.equals("H")){
- devamsoru=false;
- System.exit(0);
- }
- }
- else if(islem.substring(ilkislem+1,ilkislem+2).equals("-")){
- String sonuc=cikarma(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
- System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
- String cevap=keyboard.next();
- if(cevap.equals("H")){
- devamsoru=false;
- System.exit(0);
- }
- }
- }
- else if(araislemsayisi==2){ //3 RASYONEL SAYI ARASINDA YAPILAN ISLEMLER
- ilkislem=islem.indexOf(" ");
- String yedek=islem;
- String yenistring=islem.substring(ilkislem+3,islem.length());
- int yeniuzunluk=yenistring.length();
- int ikinciislem=yenistring.indexOf(" ");
- if(yenistring.substring(ikinciislem+1,ikinciislem+2).equals("*") || yenistring.substring(ikinciislem+1,ikinciislem+2).equals("/") ){
- if(yenistring.substring(ikinciislem+1,ikinciislem+2).equals("*")){
- String sonuc=carpma(yenistring.substring(0,ikinciislem),yenistring.substring(ikinciislem+3,yeniuzunluk));
- String ikincistring=islem.substring(0,ilkislem+3)+sonuc;
- int uzz=ikincistring.length();
- if(ikincistring.substring(ilkislem+1,ilkislem+2).equals("*")){
- sonuc=carpma(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,yeniuzunluk));
- System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
- String cevap=keyboard.next();
- if(cevap.equals("H")){
- devamsoru=false;
- System.exit(0);
- }
- }
- else if(ikincistring.substring(ilkislem+1,ilkislem+2).equals("/")){
- uzz=ikincistring.length();
- sonuc=bolme(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));
- System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
- String cevap=keyboard.next();
- if(cevap.equals("H")){
- devamsoru=false;
- System.exit(0);
- }
- } // 3/5 * 4/6
- else if(ikincistring.substring(ilkislem+1,ilkislem+2).equals("+")){
- uzz=ikincistring.length();
- sonuc=toplama(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));
- System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
- String cevap=keyboard.next();
- if(cevap.equals("H")){
- devamsoru=false;
- System.exit(0);
- }
- }
- else if(ikincistring.substring(ilkislem+1,ilkislem+2).equals("-")){
- uzz=ikincistring.length();
- sonuc=cikarma(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));
- System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
- String cevap=keyboard.next();
- if(cevap.equals("H")){
- devamsoru=false;
- System.exit(0);
- }
- }
- }
- else if(yenistring.substring(ikinciislem+1,ikinciislem+2).equals("/")){
- String sonuc=bolme(yenistring.substring(0,ikinciislem),yenistring.substring(ikinciislem+3,yeniuzunluk));
- String ikincistring=islem.substring(0,ilkislem+3)+sonuc;
- if(ikincistring.substring(ilkislem+1,ilkislem+2).equals("*")){
- int uzz=ikincistring.length();
- sonuc=carpma(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));
- System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
- String cevap=keyboard.next();
- if(cevap.equals("H")){
- devamsoru=false;
- System.exit(0);
- }
- }
- else if(islem.substring(ilkislem+1,ilkislem+2).equals("/")){
- int uzz=ikincistring.length();
- sonuc=bolme(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));
- System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
- String cevap=keyboard.next();
- if(cevap.equals("H")){
- devamsoru=false;
- System.exit(0);
- }
- } // 3/5 * 4/6
- else if(islem.substring(ilkislem+1,ilkislem+2).equals("+")){
- int uzz=ikincistring.length();
- sonuc=toplama(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));
- System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
- String cevap=keyboard.next();
- if(cevap.equals("H")){
- devamsoru=false;
- System.exit(0);
- }
- }
- else if(islem.substring(ilkislem+1,ilkislem+2).equals("-")){
- int uzz=ikincistring.length();
- sonuc=cikarma(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));
- System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
- String cevap=keyboard.next();
- if(cevap.equals("H")){
- devamsoru=false;
- System.exit(0);
- }
- }
- }
- }
- else{//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- if(islem.substring(ilkislem+1,ilkislem+2).equals("*")){ //ISLEM * ISE
- String sonuc=carpma(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
- }
- else if(islem.substring(ilkislem+1,ilkislem+2).equals("/")){
- String sonuc=bolme(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
- }
- else if(islem.substring(ilkislem+1,ilkislem+2).equals("+")){
- String sonuc=toplama(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
- }
- else if(islem.substring(ilkislem+1,ilkislem+2).equals("-")){
- String sonuc=cikarma(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
- }
- }
- }}keyboard.close();
- }
- public static String toplama(String rasyonel1,String rasyonel2){
- int bolmeindex1,bolmeindex2,uzunluk1,uzunluk2,birincisayi,ikincisayi,ucuncusayi,dorduncusayi;
- if(rasyonel1.substring(0,1).equals("-")){
- bolmeindex1=rasyonel1.indexOf("/");
- uzunluk1=rasyonel1.length();
- uzunluk2=rasyonel2.length();
- birincisayi=manuelInteCevirme(rasyonel1.substring(1,bolmeindex1))*(-1);
- ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
- }
- else{
- bolmeindex1=rasyonel1.indexOf("/");
- uzunluk1=rasyonel1.length();
- birincisayi=manuelInteCevirme(rasyonel1.substring(0,bolmeindex1));
- ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
- }
- if(rasyonel2.substring(0,1).equals("-")){
- bolmeindex2=rasyonel2.indexOf("/");
- uzunluk2=rasyonel2.length();
- ucuncusayi=manuelInteCevirme(rasyonel2.substring(1,bolmeindex2))*(-1);
- dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
- }
- else{
- bolmeindex2=rasyonel2.indexOf("/");
- uzunluk2=rasyonel2.length();
- ucuncusayi=manuelInteCevirme(rasyonel2.substring(0,bolmeindex2));
- dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
- }
- int obeb1=obebBul(ikincisayi,dorduncusayi);//payda
- if(obeb1!=1){
- int toplampay=(birincisayi*dorduncusayi+(ikincisayi*ucuncusayi));
- int toplampayda=ikincisayi*dorduncusayi;
- String yanit=toplampay+"/"+toplampayda;
- yanit=sadelestirme(yanit);
- return yanit;
- }
- else{
- int toplampay=(birincisayi*dorduncusayi+ikincisayi*ucuncusayi);
- int payda=ikincisayi*dorduncusayi;
- String yanit=toplampay+"/"+payda;
- yanit=sadelestirme(yanit);
- return yanit;
- }
- }
- public static String cikarma(String rasyonel1,String rasyonel2){
- int bolmeindex1,bolmeindex2,uzunluk1,uzunluk2,birincisayi,ikincisayi,ucuncusayi,dorduncusayi;
- if(rasyonel1.substring(0,1).equals("-")){
- bolmeindex1=rasyonel1.indexOf("/");
- uzunluk1=rasyonel1.length();
- uzunluk2=rasyonel2.length();
- birincisayi=manuelInteCevirme(rasyonel1.substring(1,bolmeindex1))*(-1);
- ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
- }
- else{
- bolmeindex1=rasyonel1.indexOf("/");
- uzunluk1=rasyonel1.length();
- birincisayi=manuelInteCevirme(rasyonel1.substring(0,bolmeindex1));
- ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
- }
- if(rasyonel2.substring(0,1).equals("-")){
- bolmeindex2=rasyonel2.indexOf("/");
- uzunluk2=rasyonel2.length();
- ucuncusayi=manuelInteCevirme(rasyonel2.substring(1,bolmeindex2))*(-1);
- dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
- }
- else{
- bolmeindex2=rasyonel2.indexOf("/");
- uzunluk2=rasyonel2.length();
- ucuncusayi=manuelInteCevirme(rasyonel2.substring(0,bolmeindex2));
- dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
- }
- int toplampay=(birincisayi*dorduncusayi-(ikincisayi*ucuncusayi));
- int toplampayda=ikincisayi*dorduncusayi;
- String yanit=toplampay+"/"+toplampayda;
- yanit=sadelestirme(yanit);
- return yanit;
- }
- public static String carpma(String rasyonel1,String rasyonel2){
- int bolmeindex1,bolmeindex2,uzunluk1,uzunluk2,birincisayi,ikincisayi,ucuncusayi,dorduncusayi;
- if(rasyonel1.substring(0,1).equals("-")){
- bolmeindex1=rasyonel1.indexOf("/");
- uzunluk1=rasyonel1.length();
- uzunluk2=rasyonel2.length();
- birincisayi=manuelInteCevirme(rasyonel1.substring(1,bolmeindex1))*(-1);
- ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
- }
- else{
- bolmeindex1=rasyonel1.indexOf("/");
- uzunluk1=rasyonel1.length();
- birincisayi=manuelInteCevirme(rasyonel1.substring(0,bolmeindex1));
- ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
- }
- if(rasyonel2.substring(0,1).equals("-")){
- bolmeindex2=rasyonel2.indexOf("/");
- uzunluk2=rasyonel2.length();
- ucuncusayi=manuelInteCevirme(rasyonel2.substring(1,bolmeindex2))*(-1);
- dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
- }
- else{
- bolmeindex2=rasyonel2.indexOf("/");
- uzunluk2=rasyonel2.length();
- ucuncusayi=manuelInteCevirme(rasyonel2.substring(0,bolmeindex2));
- dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));//hata veriyor!!!!!!!!!!
- }
- int toplampay=birincisayi*ucuncusayi;
- int toplampayda=ikincisayi*dorduncusayi;
- String yanit=toplampay+"/"+toplampayda;
- yanit=sadelestirme(yanit);
- return yanit;
- }
- public static String bolme(String rasyonel1,String rasyonel2){
- int bolmeindex1,bolmeindex2,uzunluk1,uzunluk2,birincisayi,ikincisayi,ucuncusayi,dorduncusayi;
- if(rasyonel1.substring(0,1).equals("-")){
- bolmeindex1=rasyonel1.indexOf("/");
- uzunluk1=rasyonel1.length();
- uzunluk2=rasyonel2.length();
- birincisayi=manuelInteCevirme(rasyonel1.substring(1,bolmeindex1))*(-1);
- ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
- }
- else{
- bolmeindex1=rasyonel1.indexOf("/");
- uzunluk1=rasyonel1.length();
- birincisayi=manuelInteCevirme(rasyonel1.substring(0,bolmeindex1));
- ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
- }
- if(rasyonel2.substring(0,1).equals("-")){
- bolmeindex2=rasyonel2.indexOf("/");
- uzunluk2=rasyonel2.length();
- ucuncusayi=manuelInteCevirme(rasyonel2.substring(1,bolmeindex2))*(-1);
- dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
- }
- else{
- bolmeindex2=rasyonel2.indexOf("/");
- uzunluk2=rasyonel2.length();
- ucuncusayi=manuelInteCevirme(rasyonel2.substring(0,bolmeindex2));
- dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
- }
- int toplampay=birincisayi*dorduncusayi;
- int toplampayda=ikincisayi*ucuncusayi;
- String yanit=toplampay+"/"+toplampayda;
- yanit=sadelestirme(yanit);
- return yanit;
- }
- public static int manuelInteCevirme(String str) {
- int yanit = 0, faktor = 1;
- for (int i = str.length()-1; i >= 0; i--) {
- yanit += (str.charAt(i) - '0') * faktor;
- faktor *= 10;
- }
- return yanit;
- }
- public static String sadelestirme(String rasyonel1){
- int pay=Integer.parseInt(rasyonel1.substring(0,rasyonel1.indexOf("/")));
- int payda=Integer.parseInt(rasyonel1.substring(rasyonel1.indexOf("/")+1));
- int npay=pay;
- int npayda=payda;
- if(rasyonel1.substring(0,1).equals("-")&&rasyonel1.substring(rasyonel1.indexOf("/")+1,rasyonel1.indexOf("/")+2).equals("-")){
- npay=Math.abs(npay);
- npayda=Math.abs(npayda);
- pay=Math.abs(pay);
- payda=Math.abs(payda);
- npay/=obebBul(pay,payda);
- npayda/=obebBul(pay,payda);
- return npay+"/"+npayda;
- }
- else if(rasyonel1.substring(0,1).equals("-")||rasyonel1.substring(rasyonel1.indexOf("/")+1,rasyonel1.indexOf("/")+2).equals("-")){
- npay=Math.abs(npay);
- npayda=Math.abs(npayda);
- pay=Math.abs(pay);
- payda=Math.abs(payda);
- npay/=obebBul(pay,payda);
- npayda/=obebBul(pay,payda);
- return "-"+npay+"/"+npayda;
- }
- if(obebBul(pay,payda)==1)
- return rasyonel1;
- else{
- npay/=obebBul(pay,payda);
- npayda/=obebBul(pay,payda);
- return npay+"/"+npayda;
- }
- }
- public static int obebBul(int x,int y){
- int i=x;
- int b=y;
- int obeb=0, bolum=0;
- for(bolum=1;bolum<=i;bolum++)
- {
- if(b%bolum==0 && i%bolum == 0)
- obeb = bolum;
- }
- return obeb;
- }
- public static int okekBul(int x,int y){
- int say = 2;
- int okek;
- while(true)
- {
- if((say%x==0)&&(say%y==0))
- {
- okek=say;
- break;
- }
- say++;
- }
- return okek;
- }
- public static boolean aralarindaAsal(int x,int y){
- int i=x;
- int b=y;
- boolean asalmi=false;
- int obeb=0, bolum=0;
- for(bolum=1;bolum<=i;bolum++)
- {
- if(b%bolum==0 && i%bolum == 0)
- obeb = bolum;
- }
- if(obeb==1){
- asalmi=true;
- }
- return asalmi;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement