PDA

View Full Version : pretty print در كسرهاي رياضي



Xmaster666
پنج شنبه 24 بهمن 1387, 21:41 عصر
با عرض سلام خدمت دوستان .

بنده با c# فقط به منظور استفاده در رشته خودم ( عمران ) و براي كار راه اندازي خودم استفاده مي كنم و به صورت حرفه اي كار نكرده ام . در حين كار با مشكلي بر خوردم كه گفتم با شما دوستان در ميان بگذارم شايد راه كاري ارئه داديد .

مشكل اينه كه چطوري ميشه اعداد كسري را به صورت كسري در خروجي نشان داد ؟
( مثلا 2/3 رو به صورت كسر نشان داد ) حالا چه به صورت متن و چه به صورت عكس ؟

با تشكر

Mehdi Asgari
پنج شنبه 24 بهمن 1387, 22:16 عصر
اگه صرفا کارای محاسباتی می خواید انجام بدید آلترناتیوهای بهتری هم هست.
اووووممم
منظورت اینه که مثلا اعداد اعشاری (یا نتایج محاسبات) رو به صورت خودکار به شکل کسری در بیاره ؟ (مثل Matlab) یا این که صورت و مخرج رو جدا داشته باشی و بخوای فقط چاپشون کنی ؟ (اگه اینطوره که فقط با format string خیلی راحت میتونی کارت رو انجام بدی)
MathML رو دیدی ؟

Xmaster666
پنج شنبه 24 بهمن 1387, 22:37 عصر
با تشكر از پاسخ سريع شما

خوب شد گفتيد matlab . ميخواستم ببينم راهي هست از اون به c# خروجي بگيرم ؟ در صورت مثبت بودن آموزشي سراغ داريد ؟

در رابطه با MathML ميشه توضيح بديد ؟

من تمام قصدم اينه كه با C# اين كار صورت بگيره و خارج از اون نشه . آيا اين كار در C# قابل انجام نيست ؟

Salar Ashgi
پنج شنبه 24 بهمن 1387, 22:53 عصر
سلام دوست عزیز ، اگر صورت و مخرج عدد کسری رو دارید که کار راحته ، مثلا :




private void button1_Click(object sender, EventArgs e)
{
int a = 3;
int b = 2;
textBox1.Text = a.ToString() + "/" + b.ToString();
}


ولی در غیر اینصورت ، یعنی اینکه عدد بصورت اعشاری هستش و شما میخواین اونو بصورت

کسری بنویسین ، مثلا 3.5 رو بصورت 2/7 ، که در این حالت هم ، با استفاده از یه تابع

محاسبه بزرگترین مقسوم علیه مشترک ، میشه مساله رو مثل روش اول حل کرد !!!

موفق و پیروز باشید !!!

Xmaster666
پنج شنبه 24 بهمن 1387, 23:03 عصر
خدمت شما عرض كنم كه منظورم اينه كه اعداد به صورت كسري واقعي ( صورت بالا و مخرج پايين ) و نه به صورت خطي نمايش داده شود .

با تشكر

Salar Ashgi
پنج شنبه 24 بهمن 1387, 23:24 عصر
امیدوارم مفید واقع بشه !!!



int a = 2;
int b = 3;
string str = a.ToString() +"\n"+ "__\n\n" + b.ToString();
MessageBox.Show(str);


موفق و پیروز باشید !!!

Xmaster666
جمعه 25 بهمن 1387, 00:04 صبح
واسه عملگرهاي رياضي ديگه مثله راديكال و توان و انتگرال چه راه حلي پيشنهاد ميكنيد ؟

اين روش شما تا حدي فقط پاسخگوست . در حقيقت من به دنبال يه چيزي تو مايه هاي Microsof Equation كه در Word براي تايپ عبارات رياضي بكار ميره هستم با اين تفاوت كه اين كار توسط C# در خروجي مورد نظر انجام بگيره .

با تشكر

Mehdi Asgari
جمعه 25 بهمن 1387, 00:30 صبح
http://en.wikipedia.org/wiki/MathML
نمی دونم میخوای چیکار کنی اما خودم اگه بخوام کارای ریاضیاتی/محاسباتی/visualization و ... انجام بدم از یکی از گزینه های زیر استفاده می کنم:
GNU Octave
scipy

Xmaster666
جمعه 25 بهمن 1387, 01:00 صبح
به نظر پيچيده مياد البته واسه من .
ميشه يك نمونه پروژه 2005 نوشته شده كه از اين تكنيك استفاده شده لينك دهيد .
كاري كه من ميخوام انجام بشه اينه كه ابتدا برنامه چند تا ضابطه رو كنترل كنه و بعد به خروجي ببره و طوري اين خروجي به كاربر نمايش داده شود كه عملگرهاي رياضي به صورت واقعي در آن جاي داشته باشد . (مثلا خط fy/511+1+5^fy بسيار ناخوانا و خسته كننده براي كسي هست كه داره اون رو ميخونه )

به نظر مياد اين مشكل حل شدني است .
از اينكه وقت شما رو هم ميگيرم شرمنده ام .

با تشكر

Mehdi Asgari
جمعه 25 بهمن 1387, 01:09 صبح
به نظر مياد اين مشكل حل شدني است .
صد در صد حل شدنیه.
شما (در صورت امکان) صورت مسئله و کاری رو که قراره انجام بدید رو بگید تا دوستانی که تجربه ای در این زمینه دارن کمکتون کنن
(نمی دونم منظورتون از پیچیده کدوم یک بوده ولی پایتون (scipy) یا Octave (Matlab) p خیلی راحت تر از سی شارپ هستن (همچنین هدفشون برنامه نویسی برای کارای محاسباتی و ریاضی و ... است)

Xmaster666
جمعه 25 بهمن 1387, 01:29 صبح
با كمي سرچ به http://www.w3.org/TR/MathML2/appendixc.html#cedef.divide
رسيدم . حالا ميخوام ببينم از اين كدها چه جوري و كجا ميشه استفاده كرد ؟

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

با تشكر فراوان

Salar Ashgi
جمعه 25 بهمن 1387, 10:04 صبح
واسه عملگرهاي رياضي ديگه مثله راديكال و توان و انتگرال چه راه حلي پيشنهاد ميكنيد ؟

پس مشکل شما فقط اعداد کسری نیست و در حقیقت با کل توابع ریاضی سر و کار دارید ،

که در این صورت پیشنهاد من استفاده از نرم افزار Math Type و درج فرمولها بصورت عکس

در برنامه است !!!

برای دیدن عکس محیط برنامه Math Type کلیک کنید (http://salarcpp.persiangig.ir/mathtype.jpg)

موفق و پیروز باشید !!!

Xmaster666
جمعه 25 بهمن 1387, 11:37 صبح
خوب با این Mathtype چه جوری میشه در خروجی برنامه استفاده کرد ؟
ببینید این یک مثال ساده از کار مورد نظرم گذاشتم . میخوام در خروجی همانند math type نشون داده شود منتها توسط خود برنامه صورت بگیرد .


zonix.persiangig.com/example.rar

اگر امکانش هست روی همین مثال ساده کارهای لازمه رو اعمال کنید .

با تشکر

Mehdi Asgari
شنبه 26 بهمن 1387, 13:19 عصر
امروز اتفاقی اینو دیدم.
ببین به دردت می خوره: http://mathnet.opensourcedotnet.info/

Xmaster666
شنبه 26 بهمن 1387, 18:27 عصر
با تشکر از پاسخ شما

فایل مورد نظر شامل ابزار استفاده در حل مسایل محاسباتی است و نه چاپ اعداد ریاضی به صورت pretty print در خروجی .

اگر امکانش هست رو فایل نمونه که فرستادم خودتون اعمال کنید تا بلکه فرجی بشه و اینقدر مزاحم شما نشم.

با تشکر

Mehdi Asgari
شنبه 26 بهمن 1387, 23:48 عصر
اینا رو ببینید:
http://www.c-sharpcorner.com/UploadFile/mgold/MathEquationEditor08292005104727AM/MathEquationEditor.aspx
http://www.factoring-polynomials.com/math-solve/c--math--symbols.html

linux
یک شنبه 27 بهمن 1387, 08:23 صبح
این یک مثال هست که می تواند mathML را رندر کند ، چندتا نمونه هم دارد

Xmaster666
دوشنبه 28 بهمن 1387, 00:18 صبح
با تشکر فراوان از تمامی دوستانی که وقت گذاشتن و روش های مختلفی رو عنوان میکنند .

چیزی که من دنبالشم دقیقا آدرس زیره :

http://www.c-sharpcorner.com/UploadFile/mgold/MathEquationEditor08292005104727AM/MathEquationEditor.aspx

با این تفاوت که به جای حروف a و b . اعدادی نوشته شود که در طی برنامه تولید میشه . یعنی مشکل همینه . اگر در فایل ارسالی من ( http://zonix.persiangig.com/example.rar ) زحمت بکشید فکر می کنم دیگه مشکل حله.

در ضمن دانلود فایل موجود در لینک فوق الذکر به دلیل بسته بودن ثبت نام سایت مقدور نیست از دوستان کسی اگر میتونه زحمت آپلودش رو بکشه.

با تشکر

Xmaster666
چهارشنبه 30 بهمن 1387, 17:32 عصر
دوستان كسي نميتونه فايل زير رو واسم دانلود كنه ؟

http://www.c-sharpcorner.com/UploadFile/mgold/MathEquationEditor08292005104727AM/MathEquationEditor.aspx