PDA

View Full Version : گفتگو: برنامه ساز بدون نیاز به کد نویسی



m2_farzan
یک شنبه 29 آبان 1390, 17:27 عصر
سلام
یه ایده ای مدتیه ذهنمو به خودش مشغول کرده و اون ساختن یک نرم افزار برنامه سازی فارسی هست که به کد نیاز نداشته باشه و بتونه کارهای ساده در حد کیوبیسیک رو انجام بده. نمی دونم شاید یه همچین چیزی وجود داره.

مثلا این برنامه یک ادیتور برای فلوچارت داشته باشه که کاربر فقط یک فلوچارت واضح درست کنه و برنامه اتوماتیک یک برنامه کامپایل شده رو تحویل بده یا یه چیزی مثل این.

یا کاربر بتونه به جای عبارات برنامه نویسی (که مثلا برای جذر باید از تابع استفاده کنیم یا خط کسری نمیتوانیم به طور مستقیم بگذاریم) یک رابطه ریاضی بنویسه و برنامه اونو تحلیل کرده و به حالت قابل فهم برای کامپیوتر در بیاره.

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

عکسی که پیوست کردم ایده منو خوب میرسونه. داخل این تصویر کاربر با ابزار های موجود یک فلوچارت درست کرده. هر خانه که درست میکنه یک فرم باز میشه و از کاربر اطلاعاتی درباره اون بخش میگیره که کاربر با کلیک روی OK یک عنصر به فلوچارتش اضافه میکنه. توی این تصویر کاربر داره یرای شرط خیر لوزی که داخل صفحه گذاشته یک فرمان خروجی مینویسه و همان طور که میبینید یک فرم باز شده و داره اطلاعاتی درباره نوع فرمان و محتویاتش میگیره.



نظرتون چیه؟

Hajivandian
یک شنبه 29 آبان 1390, 18:55 عصر
سلام، خوبه. لااقل برای آموزش برنامه نویسی به دیگران
اگه بری دنبالش حتما به نتیجه می رسی موفق باشی

m2_farzan
دوشنبه 30 آبان 1390, 15:10 عصر
FlowchartToCode.rar

خواستم باز کنم ارور داد. کسی تونسته بازش کنه؟

سوداگر
سه شنبه 01 آذر 1390, 10:54 صبح
خواستم باز کنم ارور داد. کسی تونسته بازش کنه؟

شاید به خاطر ضمیمه ضمنی بود. بهرحال خودم تونستم دانلودش کنم اما دوباره فایل رو ضمیمه کردم.
پسوند فایل، PDF هست شاید Adobe Reader یا winrar نداشتی.:متفکر:
موفق باشید.

m2_farzan
سه شنبه 01 آذر 1390, 17:17 عصر
دست شما درد نکنه. دانلود کردم.

برنامه ای که من میخوام بسازم یکسری فرق ها با این داره:

1- تا اونجایی که فهمیدم اون برنامه که معرفی کردید کار «مترجم» رو میکنه و چون کدها برای فردی که با کدنویسی آشنایی نداره گیج کننده ست، درصورت بروز مشکل در نتیجه، بدست آوردن اشکال سخت میشه اما اینی که من میخوام بنویسم ایشالا «مفسر» و همچنین «کامپایلر» خواهد بود.

2- به رابط کاربری برنامه اشاره ای نشد ولی اینی که من میخوام بسازم کلا با دیالوگ کار میکنه.

3- اینی رو که شما معرفی کردید از توابع ریاضی استفاده نمی کنه اما اونی که من مد نظرمه فرضا برای محاسبه انتگرال این کارو میکنه:
یا یک مربعه که داخلش میگه:«انتگرال a را حساب کن» (یا عبارتی مشابه- من نمی دونم انتگرال چیه و چه متغیر هایی رو میگیره فقط منظورم اینه که داخل برنامه من برای محاسبه انتگرال از تابع استفاده میشه)
یا لاقل به جای عباراتی چون * یا / میتوان از چیزهایی مثل × و یا خط کسری، ÷ و خلاصه اینجور چیزا استفاده کرد.

4-و چند فرق جزئی

**********************:خجالت:

چطوره

s3rv3r
سه شنبه 01 آذر 1390, 20:23 عصر
برنامه ای که من میخوام بسازم
.
.
اما اینی که من میخوام بنویسم ایشالا «مفسر» و همچنین «کامپایلر» خواهد بود.
.
.
ولی اینی که من میخوام بسازم کلا با دیالوگ کار میکنه.
.
.
اما اونی که من مد نظرمه فرضا برای محاسبه انتگرال این کارو میکنه:
.
.
و چند فرق جزئی
**********************:خجالت:
چطوره

چارت كشيدن با عكس خيلي راحت تره ولي بايد سنگيني كارتو هم در نظر داشته باشي.

ايجاد تولباكس براي همه چي. برنامه كه نميتونه پيغام شرطي فارسي كه شخص ميزاره رو متوجه بشه. پس شما بايد براي همه چيز تو تولباستون شي داشته باشيد
به عنوان مثلا براي شرط. يه شكل براي خود شرط. دو شي براي قسمت اول و دوم شرط و شي ديگر هم براي خود شرط ( بززگتر ، برابر ، مساوي) شايدم بتوني همه اينارو تو يه شي جمع و جور كني و شخص رو مجبور كني حتما مقاديرو وارد كنه.

و در آخربراي اين يكي
ایشالا «مفسر» و همچنین «کامپایلر» خواهد بود.

اميدوارم از عهده اين آخري بر بيايي

برترين زبان ها هم از مترجم سطح پايين تر خودشون استفاده ميكنن تا مرحله به مرحله بشه زبان ماشين. خودشون كد رو مستقيم به ماشين نميتونن تبديل كنن
يا حق

سوداگر
چهارشنبه 02 آذر 1390, 11:54 صبح
چطوره

سلام

اگه قرار باشه از تابع استفاده کنیم که اونوقت فلوچارت معنی نداره :متفکر:
در این صورت، برنامه مشابه (با چیزی که از پست 5 فهمیدم) چیزی در حد برنامه DynaGeo (http://www.dynageo.com/)هست که محاسباتی رو که گفتید، بدون دانش برنامه نویسی و حتی الگوریتم! برای کاربر محیا میسازد. (بعد از دانلود و نصب برنامه در قسمت (f(x رفته و تابع بده و جواب بگیر)
با فلوچارت، محاسبات ریاضی انجام میشوند خوب این برنامه هم محاسبات را انجام میدهد:لبخند:
توابع مورد استفاده در این برنامه مثل توابع VB6 هستند--> sin, cos, tan, sgn, asc, abs, sqr و برای توان هم از ^ استفاده میشه.

یا لاقل به جای عباراتی چون * یا / میتوان از چیزهایی مثل × و یا خط کسری، ÷ و خلاصه اینجور چیزا استفاده کرد.
فکر نکنم کسی حاضر باشه از خط کسری به جای / استفاده کنه (به دردسرش نمی ارزه) و همچنین یه سوال داشتم:
ایشالله ساختمان داده 20 گرفتی دیگه؟

با تشکر.

m2_farzan
چهارشنبه 02 آذر 1390, 18:55 عصر
برنامه كه نميتونه پيغام شرطي فارسي كه شخص ميزاره رو متوجه بشه.

آره خوب... فکر کنم مجبور باشم تو این یکی خود شرط رو نشون بدم اما مثلا به جای != از = که خط خورده استفاده میکنم.


برترين زبان ها هم از مترجم سطح پايين تر خودشون استفاده ميكنن تا مرحله به مرحله بشه زبان ماشين. خودشون كد رو مستقيم به ماشين نميتونن تبديل كنن

برنامه منم باید کدهارو به C# تبدیل کنه (برای کامپایل).


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

مَثَل گفتم حالا برای انتگرال تابع نمیذارم ولی دیگه طرف نباید جذر یا سینوس رو حساب کنه.

تازه فرض کنید کاربر میخواد به برنامه بنویسه که عدد رو بگیره و با یکسری فرمولها یک حاصل رو بدست بیاره... بهتر بگم: فرض کنید که کاربر بخواد یه برنامه بنویسه که اعداد رو بگیره و به عوامل اول تجزیه کنه. حالا اگه تابعی وجود داشته باشه که چک کنه عدد دریافتی اول هست یا نه بازهم کار اصلی رو برنامه ساز انجام داده. (این مثال بود وگرنه انقدر ها هم توابع ساده رو داخلش نداره.)


ایشالله ساختمان داده 20 گرفتی دیگه؟
:لبخند::لبخند::لبخند:

m2_farzan
چهارشنبه 02 آذر 1390, 19:03 عصر
فکر نکنم کسی حاضر باشه از خط کسری به جای / استفاده کنه (به دردسرش نمی ارزه)

پس چیکار کنم خیلی بد شکل میشن این فرمول ها وقتی به شکل کدنویسی در میان!

سوداگر
چهارشنبه 02 آذر 1390, 19:40 عصر
پس چیکار کنم خیلی بد شکل میشن این فرمول ها وقتی به شکل کدنویسی در میان!

فعلاً با همون * و ^ و / و <> و پرانتز و .... کارت رو انجام بده، بقیه اینها حاشیه اند.
حالا ساختمان داده رو :لبخند::لبخند::لبخند: گرفتی ایراد نداره ولی اون قسمت تبدیل infix به Postfix و Prefix رو باید کاملاً مسلط باشی چون به قول خودت میخوای کامپایلر بسازی.
پیشنهاد میکنم اول یه textBox بساز که مثلا عبارت 45*(256+11)/ 1000 رو بهش بدی و اون جواب رو چاپ کنه. اگه تونستی بنویسیش ادامه بده وگرنه وقتتو تلف میکنی.
پیروز باشید.

m2_farzan
چهارشنبه 02 آذر 1390, 20:49 عصر
سخت تر از اونیه که فکر میکردم...

حالا یه چیزی: با فضای نام CodeDom میشه کد رو به سیستم داد و برنامه کامپایل شده رو تحویل گرفت! یعنی من به امید همین CodeDom به فکر این پروژه افتادم و فکر کنم بشه باهاش یه جوری عبارت رو به عدد تبدیل کرد. فقط باید جای متغیر ها عدد بزارم.

حالا سعی میکنم برنامه ای رو که گفتین رو بنویسم...

m2_farzan
پنج شنبه 03 آذر 1390, 17:09 عصر
برنامه رو اتچ کردم سورسشم چند دقیقه دیگه اتچ میکنم فعلا برنامه رو دانلود کن. (syntaxش C#‎‎ است)


//***************
به موضوعی برخوردم که تو این 2 سال برنامه نویسی با C#‎‎ بهش فکر نکرده بودم. اگه بخوام روی یک لیبل حاصل 5 به توان 3 نوشته بشه باید چیکار کنم؟؟؟:خجالت:
خودم فکر میکردم یه همچین چیزی باشه:

label1.Text = (5 ^ 3).ToString();

ولی حاصلش 6 میشه!!!

حتی این کدم همین مشکلو داره:

int s = 5 ^ 3;
label1.Text = s.ToString();

m2_farzan
پنج شنبه 03 آذر 1390, 17:19 عصر
اینم سورسش... فقط این دو نکته:

1- نمی دونم چه جوری باید توان رو باهاش حساب کرد شما از همون Syntax که داخل سی شارپ به کار میبری استفاده کن.

2- کامپیوترت باید درایو D داشته باشه حالا بعدا یه کاری میکنم که دیگه داشتن درایو D مورد نیاز نباشه.

سوداگر
پنج شنبه 03 آذر 1390, 19:39 عصر
سی شارپ عملگر توان نداره، ^ عملگر توان توی VB هست و من وقتی گفتم باید تبدیل اینفیکس به پستفیکس و .... رو استفاده کنی برای همین بود که کنترل برنامه رو خودت به دست بگیری و به جای Math.Pow از ^ استفاده بشه.
پنج به توان 3:
double s = Math.Pow( 5, 3);
label1.Text = s.ToString();
برنامه نویسیت خوبه، اگه یه خورده پروژه رو بیشتر تحلیل کنی حتما، زودتر به نتیجه میرسی.
موفق باشید.