محاسبه سترینگ - calculate a sting

Member
میخوام یه تکست اینپوت بسازم که بشه توش فرمول ریاضی رو تایپ کرد و محاصبه کرد مثل 2+3
حالا من یه سترینگ دارم "2+3" ایده ای دارید که چه جوری نتیجه رو محاسبه کنم؟
فکر کنم توی AS2 چیزی داشتیم به اسم Eval که حذف شده
ممنون
 

JavidFlasher

کاربر فعال
من متد خاصي نديدم اما يه الگوريتم ساده واسه عملگرهاکار رو حل ميکنه.
 

DaDaDooDoo

کاربر VIP
منظورت رو نفهمیدم ، اما اگه می خوای "3+2" رو بدست بیاری یه راه به دهن من می رسه که اونم این هست که ( عجب جمله بندی شد !! )
با استفاده از تابع split استرینگ رو بشکونی و اون رو توی یه آرایه بریزی و مقدار خونه های آرایه رو با هم جمع کنی .
 

JavidFlasher

کاربر فعال
PHP:

function plus(str:String):Number{
var a:String
var end:Number
for(var i:int;i<str.lenght;i  ){
if(str.charAt(i)=='' ''){
end =Number(a)
a=''''
  }else{
    a =str.charAt(i)
  }
 }
return end;
}

اين تابع رو ببين.همينجوري نوشتم فلش نداشتم تست کنم.

 

Member
البته این فقط یه کار امتحانی بود و برای تمرین ولی هدف فقط جمع زدن نبود میتونید توی اون نمونه که زدم ببینید که یه جورایی ازش ماشین حساب در آوردم البته باید ببینم چه کارهای دیگه ای مشیه باهاش کرد
 

++Hadi++

Active Member
نه
یه سری کلاسهایی هست به اسم evalator و eval که این کار رو انجام می ده . تو حالت ساده یه سری متد هایی رو تعریف کردند مثل sin و cos که باید با همیت املا بنویسین تا در کل یه رشته رو بگیره و محاسبه کنه و در حالت حرفه ایش که یه کلاس اکشن 3 واسه این کار پیدا کردم ، شما رشته رو در یه bytearray قرار می دین و آرایه بایتتونو به این کلاس پاس می دین و بهش می گین که مثلا منظورتون از SSiNN مثلا هست :
Math.sin و .... در کل تعیین می کنین که منظورتون از فلان رشته چیه ، بعد محاسبه می کنه و با applicationDomain ، جواب نهایی رو بهتون می ده و یکی از امتیازات این کلاس ها به اینه که باید تعداد زیادی از این محاسبات رو در زمان کم انجام بدن .
البته با مبحث درخت یا tree در C++ و طبعا در اکشن و با پیمایش inorder هم می شه یه تابع evalator بوجود آورد که از حوصله انجمن خارجه و اگه خواستین سر فرصت و در انجمن خبرگان این کار رو دنبال خواهیم کرد انشا,ال... برای درک بهتر مساله آخر (inorder) به درس ساختمان داده در C++ که جزو درس های دانشگاهی نرم افزار کامپیوتر هست مراجعه کنید...
 

Member
ممنون هادی جان
البته من همیشه دنبال ساده ترین روش میگردم و بعد از کلی گشن متوجه شدم که Eval از AS3 حذف شده پس ساده ترین روش استفاده از کلاس ها ست 4 تا کلاس پیدا کردم که 2 تاش مشکل داشت و کار با یکیش خیلی پیچیده بود و موند این کلاس که لینکشو گذاشتم هم ساده کار میکنه (سترینگ رو میگیره و جواب رو میده) و هم امکانات زیادی داره و خیلی از عملگر های ریاضی رو ساپورت میکنه
البته من فقط میخواستم یه ایده خام ایجاد کنم و حل کنم که به جواب رسیدم
 

zxcv900

Member
شما باید از یک سری متدهای کامپایل syntax استفاده کنی و یه جورایی یه زبان کوچیک در دل اکشن اسکریپت ایجاد کنی
برای اطلاعات بیشتر "آموزش ساخت کامپایلر رشته" رو گوگل کن
 

جدیدترین ارسال ها

بالا