برنامه نویسهاش بیان جلو!!!!!!!!!!

mehdi58

Member
سلام
کی میتونه به من در این برنامه کمک کنه ؟
من میخوام وقتی یه عبارت ریاضی رو توی یه تکست باکس وارد میکنم اون تشخیص بده که معتبره يا نه . مثلا 2+3-4*5 يه عبارت معتبره اما 4*3-+5 يه عبارت نامعتبره يا 2++5* يه عبارت نامعتبره
ممنون ميشم اگه كسي به من كمك كنه .
 

webkhan

Member
مي توني يه سري قوانين براش تعريف كني
مثلا اگه اولين كاركتر عدد نبود ارور بگيره يا بعد از اولين
علامت نبايد علامت ديگه اي نوشته بشه يك نمونه كد زير مي باشد:

کد:
var str:String = " 5 +3-+ 9";
var d:String = "";
var c:String = "";
var num:Number;
// Remove the Spaces bitween Numbers
for (i=0; i<str.length; i++) {
	if (str.charCodeAt(i) != 32) {
		c = str.charAt(i);
		d += c;
	}
}
// Return the First Error if  the first carachter is not number
if (d.charAt(0) == "/" || d.charAt(0) == "+" || d.charAt(0) == "-" || d.charAt(0) == "*") {
	trace("Error1");
} else {
	i = 0;
	while (i<d.length) {
		reader(i, d.length);
		i++
	}
}
// search for other Errors
function reader(s1, s2) {
	for (j=s1; j<s2; j++) {
		if (d.charAt(j) == "/" || d.charAt(j) == "+" || d.charAt(j) == "-" || d.charAt(j) == "*") {
			num = j;
			break;
		}
	}
	if (d.charAt(num+1) == "*" || d.charAt(num+1) == "/" || d.charAt(num+1) == "-" || d.charAt(num+1) == "+") {
		trace("Error"+(num+1));
	} else {
		return true;
	}
}
 

amir_s

Active Member
webkhan گفت:
مي توني يه سري قوانين براش تعريف كني
مثلا اگه اولين كاركتر عدد نبود ارور بگيره يا بعد از اولين
علامت نبايد علامت ديگه اي نوشته بشه يك نمونه كد زير مي باشد:

کد:
var str:String = " 5 +3-+ 9";
var d:String = "";
var c:String = "";
var num:Number;
// Remove the Spaces bitween Numbers
for (i=0; i<str.length; i++) {
	if (str.charCodeAt(i) != 32) {
		c = str.charAt(i);
		d += c;
	}
}
// Return the First Error if  the first carachter is not number
if (d.charAt(0) == "/" || d.charAt(0) == "+" || d.charAt(0) == "-" || d.charAt(0) == "*") {
	trace("Error1");
} else {
	i = 0;
	while (i<d.length) {
		reader(i, d.length);
		i++
	}
}
// search for other Errors
function reader(s1, s2) {
	for (j=s1; j<s2; j++) {
		if (d.charAt(j) == "/" || d.charAt(j) == "+" || d.charAt(j) == "-" || d.charAt(j) == "*") {
			num = j;
			break;
		}
	}
	if (d.charAt(num+1) == "*" || d.charAt(num+1) == "/" || d.charAt(num+1) == "-" || d.charAt(num+1) == "+") {
		trace("Error"+(num+1));
	} else {
		return true;
	}
}
اين خوبه ولي براي String
 

webkhan

Member
فرقي نمي كنه. شما عدد رو از تكست فيلد بگير و به استرينگ تبديل كن
 

amir_s

Active Member
webkhan گفت:
فرقي نمي كنه. شما عدد رو از تكست فيلد بگير و به استرينگ تبديل كن
اينم ميشه درسته
راستي با چه تابعي استرينگ رو به نامبر تبديل كنم
 

webkhan

Member
وقتي str= textFeld.text باشه به طور اتومات استرينگ ميشه و هم ميتوني از دستور String()
استفاده كني و براي تبديل استرينگ به نامبر از دستور
کد:
     Number(string)

استفاده كن
 

amir_s

Active Member
webkhan گفت:
وقتي str= textFeld.text باشه به طور اتومات استرينگ ميشه و هم ميتوني از دستور String()
استفاده كني و براي تبديل استرينگ به نامبر از دستور
کد:
     Number(string)

استفاده كن
ممنون
 
بالا