الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

convert from string to integer

بدأه ريحانة الاقصى في 15 مارس 2011 · 1 رد · 597 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

فعلا بالبرمجة الواحد بيشوف اشياء غريبة عجيبة والمصيبة ما بيعرف من وين بتيجي

عندي خوارزمية مطلوب مني احولها لبرنامج جافا الخوارزمية بتقوم بضرب عددين باستخدام طريقة معينة لتوفير وقت الكمبيوتر

متلا اذا كان عندي 1110 والعدد 1111 وبدي اضربهم

بتقوم بتقسيم العدد الاول الى 11 و10 والعدد التاني ل 11 و 11

وبعدها 1,1,1,0 والعدد التاني لحد ما يوصل كل عدد لخانة وحدة بيضربهم بالطريقة المعتادة

وهاي هي شرح للخوارزمية

                         
 public static  int multiply(int x, int y)   
 {int p1,p2,p3;
 	int n=max(x,y);
 	if(n==1) return x*y;

 	{

 	int xl=leftmost(x);
 	int xr=rightmost(x);
 	int yl=leftmost(y);
 	int yr=rightmost(y);

  p1=multiply(xl,yl);

 //JOptionPane.showMessageDialog(null,"p1 is "+p1);
 	 p2=multiply(xr,yr);
 //	JOptionPane.showMessageDialog(null,"p2 is "+p2);
 	 p3=multiply((xl+xr),(yl+yr));
//	JOptionPane.showMessageDialog(null,"p3 is "+p3+"Xl + Xr is "+(xl+xr));

 	}
 	if(m==3)
 	{n=2;
 	}
 	return (p1*(int )Math.pow(2,n))+((p3-p1-p2)*(int)Math.pow(2,(n/2)))+p2;
 }

للاسف مو عارفة احطوه داخل كود بالمشاركة ما بعرف ليه

انا كملت الكود وعملت الميثود اللي بتطلع عدد الخانات وبتقوم بالتقسيم

وبيزبط البرنامج على بعد الاعداد وبعضها لا

انا المشكلة عندي انو عارف السبب اللي بيخليها ما تزبط وغلبت معاه ومو عارف احل مشكلتو

المشكلة عندي في التحويل من سترنغ الى انتجر

لما اقرء من المستخدم اذا قرئته ك نص وحولته ل انتجر اذا كان العدد بيبلش بالصفر بيهمله وهاد بيسبب مشاكل في الكود

int x=Integer.parseInt(JOptionPane.showInputDialog("please enter binary number "));

اما اذا اخدته سترنغ وبدي احطه داخل مصفوفة

بيعطيني ارقام غريبة عجيبة بدال ال 1 0 ما بعرف من وين بجيبهم

              public class check {
  public static void main(String[] args) {
  String s="1111";
  int arr[]=new int [4];
   for (int j=0;j<4;j++){


   arr[j]=s.charAt(j);
   System.out.println(arr[j]);


   }

  }

}

متلا هون ا1ذا طبعت عناصر المصفوفة بيطلعلي 45 من وين هاي اجت ما بعرف

هاد كود البرنامج

                        /**
 * @(#)multiplingIntegers.java
 *
 *
 * @author 
 * @version 1.00 2011/3/8
 *
 */

import javax.swing.*;
public class multiply {
 static int m;
   public static void main (String[] args) {
 try{int x=Integer.parseInt(JOptionPane.showInputDialog("please enter binary number "));
 int y=Integer.parseInt(JOptionPane.showInputDialog("please enter binary number "));
String s1=String.valueOf(x);
String s2=String.valueOf(y);
 if(s1.length()>s2.length())
 m=s1.length();
 else
 	m=s2.length();
//JOptionPane.showMessageDialog(null,"the max is "+max(x,y));
 //JOptionPane.showMessageDialog(null,"the xl is "+leftmost(x));
 //JOptionPane.showMessageDialog(null,"the xr is "+rightmost(x));


int output= multiply(x,y);
ToBinary(output);
 JOptionPane.showMessageDialog(null,"the output is in dicimal "+output+"\n The output in Bianry is "+ToBinary(output));
 }
 catch(NumberFormatException e)
 {System.out.print("the digets are not equal ");
 }
} 
public static  int max(int x, int y)
{String s1=String.valueOf(x);
String s2=String.valueOf(y);
	int maxX=s1.length();
	int maxY=s2.length();


	if(maxX>maxY)
		return maxX;
		else
			return maxY;
}
public static int leftmost(int x)
{String s=String.valueOf(x);
double  n=(double )s.length()/2;
int num=(int)Math.ceil(n);
String left=s.substring(0,num);

return Integer.parseInt(left);
}

public static int rightmost(int y)
{String s=String.valueOf(y);
double  n=(double)s.length()/2;
int num=(int)Math.ceil(n);

String right=s.substring(num,s.length());


return Integer.parseInt(right);
}



 public static  int multiply(int x, int y)   
 {int p1,p2,p3;
 	int n=max(x,y);
 	if(n==1) return x*y;

 	{

 	int xl=leftmost(x);
 	int xr=rightmost(x);
 	int yl=leftmost(y);
 	int yr=rightmost(y);

  p1=multiply(xl,yl);

 //JOptionPane.showMessageDialog(null,"p1 is "+p1);
 	 p2=multiply(xr,yr);
 //	JOptionPane.showMessageDialog(null,"p2 is "+p2);
 	 p3=multiply((xl+xr),(yl+yr));
//	JOptionPane.showMessageDialog(null,"p3 is "+p3+"Xl + Xr is "+(xl+xr));

 	}
 	if(m==3)
 	{n=2;
 	}
 	return (p1*(int )Math.pow(2,n))+((p3-p1-p2)*(int)Math.pow(2,(n/2)))+p2;
 } 
 public static StringBuffer ToBinary(int n)
    {
    		String str="";
    	try{
    	while(n>0)
    	{
    		int d=n%2;
    		n=n/2;

    		str+=String.valueOf(d);
    	}}
    	 catch(NumberFormatException e)
    {
    }
    StringBuffer stb=new StringBuffer (str);
    stb.reverse();

    	return stb;

    }
}

والكود في المرفقات لانه للاسف ما اعرفت ادخل الكود صح بالمشاركة

a (2).java

تم تعديل هذه المشاركة بواسطة ريحانة الاقصى في 15 مارس 2011 في 19:30

#2

Integer.valueOf

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة