Advertisement
Guest User

Untitled

a guest
Feb 12th, 2014
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 23.66 KB | None | 0 0
  1. import java.util.Scanner;
  2. public class deneme {
  3.         public static void main(String[] args) {
  4.         Scanner keyboard=new Scanner(System.in);
  5.         boolean devamsoru=true;
  6.         System.out.println(".:Rasyonel Sayi Hesap Makinesi:.\n");
  7.         while(devamsoru){
  8.         System.out.println("Lutfen yapmak istediginiz islemi giriniz:");
  9.         String islem=keyboard.nextLine();
  10.         int uzunluk=islem.length();
  11.         int i,bosluksayisi=0,araislemsayisi,ilkislem;
  12.         for(i=0;i<uzunluk;i++){
  13.                 if(islem.charAt(i)==' '){
  14.                         bosluksayisi++;
  15.                 }
  16.         }
  17.         araislemsayisi=bosluksayisi/2;
  18.         if(araislemsayisi==1){ //IKI RASYONEL SAYI ARASIDA YAPILAN HESAPLAMALAR
  19.         ilkislem=islem.indexOf(" ");
  20.                 if(islem.substring(ilkislem+1,ilkislem+2).equals("*")){ //ISLEM * ISE
  21.                 String sonuc=carpma(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
  22.                 System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
  23.                 String cevap=keyboard.next();
  24.                 if(cevap.equals("H")){
  25.                         devamsoru=false;
  26.                         System.exit(0);
  27.                 }
  28.                 }
  29.                 else if(islem.substring(ilkislem+1,ilkislem+2).equals("/")){
  30.                 String sonuc=bolme(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
  31.                 System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
  32.                 String cevap=keyboard.next();
  33.                 if(cevap.equals("H")){
  34.                         devamsoru=false;
  35.                         System.exit(0);
  36.                 }
  37.                 }               // 3/5 * 4/6
  38.  
  39.                 else if(islem.substring(ilkislem+1,ilkislem+2).equals("+")){
  40.                 String sonuc=toplama(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
  41.                 System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
  42.                 String cevap=keyboard.next();
  43.                 if(cevap.equals("H")){
  44.                         devamsoru=false;
  45.                         System.exit(0);
  46.                 }
  47.                 }
  48.                 else if(islem.substring(ilkislem+1,ilkislem+2).equals("-")){
  49.                 String sonuc=cikarma(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
  50.                 System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
  51.                 String cevap=keyboard.next();
  52.                 if(cevap.equals("H")){
  53.                         devamsoru=false;
  54.                         System.exit(0);
  55.                 }
  56.                 }
  57.         }
  58.         else if(araislemsayisi==2){ //3 RASYONEL SAYI ARASINDA YAPILAN ISLEMLER
  59.                 ilkislem=islem.indexOf(" ");
  60.                 String yedek=islem;
  61.                 String yenistring=islem.substring(ilkislem+3,islem.length());
  62.                
  63.                 int yeniuzunluk=yenistring.length();
  64.                 int ikinciislem=yenistring.indexOf(" ");
  65.                         if(yenistring.substring(ikinciislem+1,ikinciislem+2).equals("*") || yenistring.substring(ikinciislem+1,ikinciislem+2).equals("/") ){
  66.                                 if(yenistring.substring(ikinciislem+1,ikinciislem+2).equals("*")){
  67.                                         String sonuc=carpma(yenistring.substring(0,ikinciislem),yenistring.substring(ikinciislem+3,yeniuzunluk));
  68.                                         String ikincistring=islem.substring(0,ilkislem+3)+sonuc;  
  69.                                         int uzz=ikincistring.length();
  70.                                                 if(ikincistring.substring(ilkislem+1,ilkislem+2).equals("*")){
  71.                                                 sonuc=carpma(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,yeniuzunluk));
  72.                                                 System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
  73.                                                 String cevap=keyboard.next();
  74.                                                 if(cevap.equals("H")){
  75.                                                         devamsoru=false;
  76.                                                         System.exit(0);
  77.                                                 }
  78.                                                 }
  79.                                                 else if(ikincistring.substring(ilkislem+1,ilkislem+2).equals("/")){
  80.                                                 uzz=ikincistring.length();
  81.                                                 sonuc=bolme(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));
  82.                                                 System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
  83.                                                 String cevap=keyboard.next();
  84.                                                 if(cevap.equals("H")){
  85.                                                         devamsoru=false;
  86.                                                         System.exit(0);
  87.                                                 }
  88.                                                 }               // 3/5 * 4/6
  89.  
  90.                                                 else if(ikincistring.substring(ilkislem+1,ilkislem+2).equals("+")){
  91.                                                 uzz=ikincistring.length();
  92.                                                 sonuc=toplama(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));      
  93.                                                 System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
  94.                                                 String cevap=keyboard.next();
  95.                                                 if(cevap.equals("H")){
  96.                                                         devamsoru=false;
  97.                                                         System.exit(0);
  98.                                                 }
  99.                                                 }
  100.                                                 else if(ikincistring.substring(ilkislem+1,ilkislem+2).equals("-")){
  101.                                                 uzz=ikincistring.length();
  102.                                                 sonuc=cikarma(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));      
  103.                                                 System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
  104.                                                 String cevap=keyboard.next();
  105.                                                 if(cevap.equals("H")){
  106.                                                         devamsoru=false;
  107.                                                         System.exit(0);
  108.                                                 }
  109.                                                 }
  110.                                         }
  111.                                 else if(yenistring.substring(ikinciislem+1,ikinciislem+2).equals("/")){
  112.                                         String sonuc=bolme(yenistring.substring(0,ikinciislem),yenistring.substring(ikinciislem+3,yeniuzunluk));    
  113.                                         String ikincistring=islem.substring(0,ilkislem+3)+sonuc;
  114.                                                 if(ikincistring.substring(ilkislem+1,ilkislem+2).equals("*")){
  115.                                                  int uzz=ikincistring.length();
  116.                                                 sonuc=carpma(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));
  117.                                                 System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
  118.                                                 String cevap=keyboard.next();
  119.                                                 if(cevap.equals("H")){
  120.                                                         devamsoru=false;
  121.                                                         System.exit(0);
  122.                                                 }
  123.                                                 }
  124.                                                 else if(islem.substring(ilkislem+1,ilkislem+2).equals("/")){
  125.                                                 int uzz=ikincistring.length();
  126.                                                 sonuc=bolme(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));
  127.                                                 System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
  128.                                                 String cevap=keyboard.next();
  129.                                                 if(cevap.equals("H")){
  130.                                                         devamsoru=false;
  131.                                                         System.exit(0);
  132.                                                 }
  133.                                                 }               // 3/5 * 4/6
  134.  
  135.                                                 else if(islem.substring(ilkislem+1,ilkislem+2).equals("+")){
  136.                                                 int uzz=ikincistring.length();
  137.                                                 sonuc=toplama(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));  
  138.                                                 System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
  139.                                                 String cevap=keyboard.next();
  140.                                                 if(cevap.equals("H")){
  141.                                                         devamsoru=false;
  142.                                                         System.exit(0);
  143.                                                 }
  144.                                                 }
  145.                                                 else if(islem.substring(ilkislem+1,ilkislem+2).equals("-")){
  146.                                                 int uzz=ikincistring.length();
  147.                                                 sonuc=cikarma(ikincistring.substring(0,ilkislem),ikincistring.substring(ilkislem+3,uzz));  
  148.                                                 System.out.println("Sonuc:"+sonuc+". Baska islem yapmak ister misiniz?(E/H)");
  149.                                                 String cevap=keyboard.next();
  150.                                                 if(cevap.equals("H")){
  151.                                                         devamsoru=false;
  152.                                                         System.exit(0);
  153.                                                 }
  154.                                                 }
  155.                                         }      
  156.                                 }
  157.                         else{//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  158.                                 if(islem.substring(ilkislem+1,ilkislem+2).equals("*")){ //ISLEM * ISE
  159.                                         String sonuc=carpma(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
  160.                                        
  161.                                         }
  162.                                         else if(islem.substring(ilkislem+1,ilkislem+2).equals("/")){
  163.                                         String sonuc=bolme(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
  164.                                        
  165.                                         }
  166.                                
  167.                                         else if(islem.substring(ilkislem+1,ilkislem+2).equals("+")){
  168.                                         String sonuc=toplama(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
  169.                                        
  170.                                         }
  171.                                         else if(islem.substring(ilkislem+1,ilkislem+2).equals("-")){
  172.                                         String sonuc=cikarma(islem.substring(0,ilkislem),islem.substring(ilkislem+3,uzunluk));
  173.                                        
  174.                                         }
  175.                         }
  176.         }}keyboard.close();
  177.         }
  178.  
  179.         public static String toplama(String rasyonel1,String rasyonel2){
  180.                 int bolmeindex1,bolmeindex2,uzunluk1,uzunluk2,birincisayi,ikincisayi,ucuncusayi,dorduncusayi;
  181.                 if(rasyonel1.substring(0,1).equals("-")){
  182.                         bolmeindex1=rasyonel1.indexOf("/");
  183.                         uzunluk1=rasyonel1.length();
  184.                         uzunluk2=rasyonel2.length();
  185.                         birincisayi=manuelInteCevirme(rasyonel1.substring(1,bolmeindex1))*(-1);
  186.                         ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
  187.                 }
  188.                 else{
  189.                         bolmeindex1=rasyonel1.indexOf("/");
  190.                         uzunluk1=rasyonel1.length();
  191.                         birincisayi=manuelInteCevirme(rasyonel1.substring(0,bolmeindex1));
  192.                         ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
  193.                 }
  194.                 if(rasyonel2.substring(0,1).equals("-")){
  195.                         bolmeindex2=rasyonel2.indexOf("/");
  196.                         uzunluk2=rasyonel2.length();
  197.                         ucuncusayi=manuelInteCevirme(rasyonel2.substring(1,bolmeindex2))*(-1);
  198.                         dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
  199.                 }
  200.                 else{
  201.                         bolmeindex2=rasyonel2.indexOf("/");
  202.                         uzunluk2=rasyonel2.length();
  203.                         ucuncusayi=manuelInteCevirme(rasyonel2.substring(0,bolmeindex2));
  204.                         dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
  205.                 }
  206.                 int obeb1=obebBul(ikincisayi,dorduncusayi);//payda
  207.                 if(obeb1!=1){
  208.                 int toplampay=(birincisayi*dorduncusayi+(ikincisayi*ucuncusayi));
  209.                 int toplampayda=ikincisayi*dorduncusayi;
  210.                 String yanit=toplampay+"/"+toplampayda;
  211.                 yanit=sadelestirme(yanit);
  212.                 return yanit;
  213.                 }
  214.                 else{
  215.                         int toplampay=(birincisayi*dorduncusayi+ikincisayi*ucuncusayi);
  216.                         int payda=ikincisayi*dorduncusayi;
  217.                         String yanit=toplampay+"/"+payda;
  218.                         yanit=sadelestirme(yanit);
  219.                         return yanit;
  220.                 }
  221.         }
  222.         public static String cikarma(String rasyonel1,String rasyonel2){
  223.                 int bolmeindex1,bolmeindex2,uzunluk1,uzunluk2,birincisayi,ikincisayi,ucuncusayi,dorduncusayi;
  224.                 if(rasyonel1.substring(0,1).equals("-")){
  225.                         bolmeindex1=rasyonel1.indexOf("/");
  226.                         uzunluk1=rasyonel1.length();
  227.                         uzunluk2=rasyonel2.length();
  228.                         birincisayi=manuelInteCevirme(rasyonel1.substring(1,bolmeindex1))*(-1);
  229.                         ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
  230.                 }
  231.                 else{
  232.                         bolmeindex1=rasyonel1.indexOf("/");
  233.                         uzunluk1=rasyonel1.length();
  234.                         birincisayi=manuelInteCevirme(rasyonel1.substring(0,bolmeindex1));
  235.                         ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
  236.                 }
  237.                 if(rasyonel2.substring(0,1).equals("-")){
  238.                         bolmeindex2=rasyonel2.indexOf("/");
  239.                         uzunluk2=rasyonel2.length();
  240.                         ucuncusayi=manuelInteCevirme(rasyonel2.substring(1,bolmeindex2))*(-1);
  241.                         dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
  242.                 }
  243.                 else{
  244.                         bolmeindex2=rasyonel2.indexOf("/");
  245.                         uzunluk2=rasyonel2.length();
  246.                         ucuncusayi=manuelInteCevirme(rasyonel2.substring(0,bolmeindex2));
  247.                         dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
  248.                 }
  249.                 int toplampay=(birincisayi*dorduncusayi-(ikincisayi*ucuncusayi));
  250.                 int toplampayda=ikincisayi*dorduncusayi;
  251.                 String yanit=toplampay+"/"+toplampayda;
  252.                 yanit=sadelestirme(yanit);
  253.                 return yanit;
  254.         }
  255.         public static String carpma(String rasyonel1,String rasyonel2){
  256.                 int bolmeindex1,bolmeindex2,uzunluk1,uzunluk2,birincisayi,ikincisayi,ucuncusayi,dorduncusayi;
  257.                 if(rasyonel1.substring(0,1).equals("-")){
  258.                         bolmeindex1=rasyonel1.indexOf("/");
  259.                         uzunluk1=rasyonel1.length();
  260.                         uzunluk2=rasyonel2.length();
  261.                         birincisayi=manuelInteCevirme(rasyonel1.substring(1,bolmeindex1))*(-1);
  262.                         ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
  263.                 }
  264.                 else{
  265.                         bolmeindex1=rasyonel1.indexOf("/");
  266.                         uzunluk1=rasyonel1.length();
  267.                         birincisayi=manuelInteCevirme(rasyonel1.substring(0,bolmeindex1));
  268.                         ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
  269.                 }
  270.                 if(rasyonel2.substring(0,1).equals("-")){
  271.                         bolmeindex2=rasyonel2.indexOf("/");
  272.                         uzunluk2=rasyonel2.length();
  273.                         ucuncusayi=manuelInteCevirme(rasyonel2.substring(1,bolmeindex2))*(-1);
  274.                         dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
  275.                 }
  276.                 else{
  277.                         bolmeindex2=rasyonel2.indexOf("/");
  278.                         uzunluk2=rasyonel2.length();
  279.                         ucuncusayi=manuelInteCevirme(rasyonel2.substring(0,bolmeindex2));
  280.                         dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));//hata veriyor!!!!!!!!!!
  281.                 }
  282.                         int toplampay=birincisayi*ucuncusayi;
  283.                         int toplampayda=ikincisayi*dorduncusayi;
  284.                 String yanit=toplampay+"/"+toplampayda;
  285.                 yanit=sadelestirme(yanit);
  286.                 return yanit;
  287.         }
  288.         public static String bolme(String rasyonel1,String rasyonel2){
  289.                 int bolmeindex1,bolmeindex2,uzunluk1,uzunluk2,birincisayi,ikincisayi,ucuncusayi,dorduncusayi;
  290.                 if(rasyonel1.substring(0,1).equals("-")){
  291.                         bolmeindex1=rasyonel1.indexOf("/");
  292.                         uzunluk1=rasyonel1.length();
  293.                         uzunluk2=rasyonel2.length();
  294.                         birincisayi=manuelInteCevirme(rasyonel1.substring(1,bolmeindex1))*(-1);
  295.                         ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
  296.                 }
  297.                 else{
  298.                         bolmeindex1=rasyonel1.indexOf("/");
  299.                         uzunluk1=rasyonel1.length();
  300.                         birincisayi=manuelInteCevirme(rasyonel1.substring(0,bolmeindex1));
  301.                         ikincisayi=manuelInteCevirme(rasyonel1.substring(bolmeindex1+1,uzunluk1));
  302.                 }
  303.                 if(rasyonel2.substring(0,1).equals("-")){
  304.                         bolmeindex2=rasyonel2.indexOf("/");
  305.                         uzunluk2=rasyonel2.length();
  306.                         ucuncusayi=manuelInteCevirme(rasyonel2.substring(1,bolmeindex2))*(-1);
  307.                         dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
  308.                 }
  309.                 else{
  310.                         bolmeindex2=rasyonel2.indexOf("/");
  311.                         uzunluk2=rasyonel2.length();
  312.                         ucuncusayi=manuelInteCevirme(rasyonel2.substring(0,bolmeindex2));
  313.                         dorduncusayi=manuelInteCevirme(rasyonel2.substring(bolmeindex2+1,uzunluk2));
  314.                 }
  315.                         int toplampay=birincisayi*dorduncusayi;
  316.                         int toplampayda=ikincisayi*ucuncusayi;
  317.                 String yanit=toplampay+"/"+toplampayda;
  318.                 yanit=sadelestirme(yanit);
  319.                 return yanit;
  320.         }
  321.         public static int manuelInteCevirme(String str) {
  322.             int yanit = 0, faktor = 1;
  323.             for (int i = str.length()-1; i >= 0; i--) {
  324.                 yanit += (str.charAt(i) - '0') * faktor;
  325.                 faktor *= 10;
  326.             }
  327.             return yanit;
  328.         }
  329.         public static String sadelestirme(String rasyonel1){
  330.                 int pay=Integer.parseInt(rasyonel1.substring(0,rasyonel1.indexOf("/")));
  331.                 int payda=Integer.parseInt(rasyonel1.substring(rasyonel1.indexOf("/")+1));
  332.                 int npay=pay;
  333.                 int npayda=payda;
  334.                 if(rasyonel1.substring(0,1).equals("-")&&rasyonel1.substring(rasyonel1.indexOf("/")+1,rasyonel1.indexOf("/")+2).equals("-")){
  335.                         npay=Math.abs(npay);
  336.                         npayda=Math.abs(npayda);
  337.                         pay=Math.abs(pay);
  338.                         payda=Math.abs(payda);
  339.                         npay/=obebBul(pay,payda);
  340.                         npayda/=obebBul(pay,payda);
  341.                                 return npay+"/"+npayda;
  342.                 }
  343.                 else if(rasyonel1.substring(0,1).equals("-")||rasyonel1.substring(rasyonel1.indexOf("/")+1,rasyonel1.indexOf("/")+2).equals("-")){
  344.                         npay=Math.abs(npay);
  345.                         npayda=Math.abs(npayda);
  346.                         pay=Math.abs(pay);
  347.                         payda=Math.abs(payda);
  348.                         npay/=obebBul(pay,payda);
  349.                         npayda/=obebBul(pay,payda);
  350.                                 return "-"+npay+"/"+npayda;
  351.                 }
  352.                 if(obebBul(pay,payda)==1)
  353.                         return rasyonel1;
  354.                 else{
  355.                 npay/=obebBul(pay,payda);
  356.                 npayda/=obebBul(pay,payda);
  357.                         return npay+"/"+npayda;
  358.                 }
  359.                 }
  360.         public static int obebBul(int x,int y){
  361.                 int i=x;
  362.                 int b=y;
  363.                 int obeb=0, bolum=0;
  364.                    
  365.                     for(bolum=1;bolum<=i;bolum++)
  366.                     {
  367.                         if(b%bolum==0 && i%bolum == 0)
  368.                         obeb = bolum;            
  369.                     }
  370.                     return obeb;
  371.         }
  372.         public static int okekBul(int x,int y){
  373.                 int say = 2;
  374.         int okek;
  375.         while(true)
  376.         {
  377.             if((say%x==0)&&(say%y==0))
  378.             {
  379.                 okek=say;
  380.                 break;
  381.             }
  382.             say++;
  383.         }
  384.         return okek;
  385.     }
  386.         public static boolean aralarindaAsal(int x,int y){
  387.                 int i=x;
  388.                 int b=y;
  389.                 boolean asalmi=false;
  390.                 int obeb=0, bolum=0;
  391.                    
  392.                     for(bolum=1;bolum<=i;bolum++)
  393.                     {
  394.                         if(b%bolum==0 && i%bolum == 0)
  395.                         obeb = bolum;            
  396.                     }
  397.                     if(obeb==1){
  398.                         asalmi=true;
  399.                     }
  400.                         return asalmi;
  401.         }
  402.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement