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

صفحه 2 از 3 اولیناولین 123 آخرینآخرین
نمایش نتایج: از شماره 11 تا 20 از مجموع 22
Like Tree1نفر پسندیدند

موضوع: راهنمایی درمورد برنامه نویسی به روشهای ماجولار , ساخت یافته , رویه ای و شی گرا در سی شارپ

  1. #11
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    1 امتياز مثبت از 1 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط returnx نمایش پست ها
    نقل قول نوشته اصلی توسط Hossein نمایش پست ها
    اما در زبان پاسکال ما دقیقا یک همچین مفهومی رو داریم (توابع متداخل). یعنی شما میتونید در داخل یک تابع یک تابع (و یا بیشتر) دیگه رو ایجاد کنید و ازش استفاده کنید .
    Pascal Family تنها زبان هایی هست که هیچ وقت سراغشون نرفتم و از این موضوع اصلا اطلاع نداشتم !!! نکته ی جالبی بود...
    البته در C هم ظاهرا همچین چیزی امکان پذیر بود اما من اطلاع نداشتم ولی در C++ برداشته شد اما در C++ میشه با یک ترفند اینکار پیاده کرد ، اما توصیه میشه اصلا اینکار رو انجام ندین چون کار بیهوده ای است :
    void test()
    {
    struct local_func
    {
    static void test_func()
    {
    cout<<"Yes";
    }
    };

    local_func::test_func();
    }//End function


    البته روش دیگری که برای نوشتن تابع های تو در تو به ذهنم میرسه ، استفاده از تابع های inline است ، درسته که از لحاظ پیاده سازی جدا از هم نوشته میشن ، اما در زمان کامپایل تابع inline که صدا زده میشه به جای فراخوانی خودش نوشته میشه ، اینکار باعث میشه سرعت کامپایل کمی بالا تر هم بره ، اما اصولا از تابع های inline هم زیاد استفاده نمیشه در برنامه نویسی مدرن...

    در ضمن در مدل رویه ای حتی بازم میشه کد منُ به شکل زیر تغییر داد ، یعنی برای تشخصی عدد زوج یک تابع ، و برای فرد یک تابع دیگر و همدیگر را صدا بزنند:
    #include <iostream>
    #include <conio.h>

    using namespace std;

    void even(int a);
    void odd(int a);

    int main()
    {


    int input_number;
    cin>>input_number;
    // bool state=check_number(input_number);
    /*
    if (state)
    cout<<"even"<<endl;
    else
    cout<<"odd"<<endl;
    */
    odd(input_number);

    getch();
    return 0;
    }

    void even(int a)
    {
    if ((a%2)==0)
    cout<<"number is even"<<endl;
    else
    odd(a);
    }

    void odd(int a)
    {
    if ((a%2)!=0)
    cout<<"number is odd"<<endl;
    else
    even(a);
    }


    این کد رو از اینجا گرفتم ، هرچند در این مقاله هدف معرفی مفهوم دیگری بود اما خوب مثالش به کارمون اومد!!
    عالیه من واقعا لذت بردم
    شما فکر خیلی خلاقی دارید و این برای من خیلی خوشحال کننده اس که کسی مثل شما در بین ماست
    در مورد زبان سی اگه بتونید رفرنسی گیر بیارید خیلی خوب میشه چون من چیزی در این رابطه نمیدونم (هرچند سی کار نیستم ولی تو کتاب پرات هم اینطور اومده بود که سی چنین قابلیتی نداره بنظرم)
    در مورد نمونه هایی که مثال زدید من کمی نظرم متفاوته .
    استفاده شما از استراکت برای شبیه سازی نسبی خیلی جالب و قشنگ بود ,منتها این میشه استفاده از یه بیلدینگ بلاک و یک تایپ کاملا جداگانه و استفاده از اون تایپ .
    توابع inline هم منحصرا در سی ++ توسط کامپایلر مشخص میشن . درسته که برنامه نویس میتونه تابعی رو اینلاین تعریف کنه اما در زمان ایجاد کد این کامپایلر هست که مشخص میکنه کدی بصورت اینلاین ایجاد بشه یا خیر (فقط در ورژنهای قدیمی کامپایلرهای سی++ این اتفاق صورت نمیگره ورژنهای جدید تا جایی که من اطلاع دادم همه این چک رو اعمال میکنن )
    چیزی که به ذهن من میرسه برای شبیه سازی تعریف تابع تو تابع در سی ++ استفاده از lambda function ها هست:
    مثلا :

    #include <iostream>
    using namespace std;
    int main()
    {
    [] { cout << "In the name of God"; }();
    return 0;
    }

    یا



    #include <iostream>
    using namespace std;
    int main()
    {
    auto lambdafunction = [] { cout << "In the name of God"; };

    lambdafunction();
    return 0;
    }



    توابع لامبدا در اخرین ورژن زبان سی++ (سی++11) معرفی شدن و تازه چند ماهی میشه که کامپایلرها ازش پشتیبانی میکنن (gcc4.8 بعید میدونم ویژال استودیو 2012 پشتیبانی کاملی داشته باشه هنوز )
    توابع لامبدا همونطور که مشخص هستن گونه از توابع این لاین بشمار میان که برای انعطاف بیشتر زبان و سرعت بیشتر ایجاد شدن و مورد ستفاده قرار میگیرن . (این نوع با توابعی که به صورت Inline تعریف میشن متفاوتن که بالا توضیح دادم) توابع لامبدا هم چون واقعا کاربردی هستن و بعضی کاراها رو خیلی راحت میکنن استفاده های زیادی دارن.

    lambda expression و anonymous method تو سی شارپ هم معادل همین مفهوم سی ++ هستن که میشه ازشون استفاده کرد.
    نقل قول نوشته اصلی توسط jellyfish نمایش پست ها
    جناب حسین سلام . ببینین من الان موضوع صحبتم سی شارپه . در اموزش اون به دانشجوها در مبانی رویکرد consoleApplication هست . یعنی چیدمان دستورات برای اجرای کار با for . if . ... . در پیشرفته علیرغم اینکه هدف اموختن تکنیکهای نوشتن برنامه های بزرگه اساتید سریع شروع به توضیحات منوها میکنن . این یعنی دانشجوها کپی پیست و اصلا سبک برنامه نویسی رو ندارن و نمیدونن یعنی چی ؟ من سعی میکنم با جزئیات جلو برم که با دید بازتری کارکنم و با خوندن مثالهای مختلف تفاوتها رو میبینم . یعنی یک صورت سوال با چند روش . معلومه که اگر برنامه ای شی گرا باشه کم غلط تر . با توسعه بیشتر . خواندنی تر هست علیرغم اینکه در نوشتنی بودن بدتر . ولی چون من تازه کارم یک برنامه رو از هر روشی انجام میدم تا کارم بهتر بشه . در مورد پاسکال حق با شماست ولی ++c رو کار نکردم . از اونجایی که همیشه عجولم و زودی میخام جواب تو ذهنم رو پیدا کنم بد توضیح میدم . ببخشید . ولی از لینک دوستمون خیلی خوشم اومده . شما هم اصلا رو در باسی نکنید . اگر اشتباهی داشتم بگید . دوست دارم برنامه هام رو مثل ایشون منم بزارم . اونوقت میبینید که چی کار میکنم . فعلا بجای استفاده از متد ها و ... سعی میکنم از دستورات و نوشتن اونها استفاده کنم . مثل فاکتوریل . عدد نپر و ... . .
    سلام ممنونم که توضیح دادید متوجه سوالتون شدم .
    اما من بیشتر منظورم ویرایش پست اولتون با عنوان بهتر بود. الان ماژولار یعنی چی ؟ یکی برفرض مثال مشکل شما رو داشته باشه خیلی بعیده بتونه با استفاده از اسم تاپیک به این مطلب برسه . برای همین عرض کردم لطف کنید یه عنوان مناسبتر انتخاب کنید و پست اول رو ویرایش کنید که اگه یکی مثل شما این مشکل رو داشت بتونه این مطلب رو ببینه و احیانا مشکلش برطرف بشه .
    من رو دروایسی نمیکنم فقط مطلبی که به ذهنم میرسه سعی میکنم بگم و دوست ندارم سوء برداشتی بشه (ما متاسفانه چند مورد داشتیم برای همین حساسیم که خدای نکرده رفتار یا برخورد ما باعث نشه دوستان سوئ تفاهمی براشون پیش بیاد یا از ما ناراحت بشن )
    شما برنامه ها رو بزارید و لطف هم بکنید مثل جناب مهندس توضیح مناسب رو هم بدید عجول نباشید تا زحمتی که میکشید برای همه قابل استفاده باشه .

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

    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




  2. #12
    Moderator
    تاریخ عضویت
    2012 November
    ارسال ها
    128
    تشکر
    28
    تشکر شده 173 بار در 77 پست


    1 امتياز مثبت از 1 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر
    رای من خیلی خوشحال کننده اس که کسی مثل شما در بین ماست
    مطمئنا برای من هم خوشحال کننده است که میتونم با شما و دیگران تبادل اطلاعات کنم ، چون باعث میشه هم اطلاعات خودم بالا بره و بروز بشه و همینطور به بچه های دیگه کمکی کرده باشم البته اگر چیزی بلد باشم...
    نقل قول نوشته اصلی توسط Hossein نمایش پست ها
    چیزی که به ذهن من میرسه برای شبیه سازی تعریف تابع تو تابع در سی ++ استفاده از lambda function ها هست:
    با lambda expression تو C# آشنا بودم اما نمیدونستم تو C++ عبارات lambda اضافه شده ، با msvc2012 که تست کردم جواب داد با کامپایلر mingw هم تست کردم جواب داد...
    در مورد زبان سی اگه بتونید رفرنسی گیر بیارید خیلی خوب میشه چون من چیزی در این رابطه نمیدونم (هرچند سی کار نیستم ولی تو کتاب پرات هم اینطور اومده بود که سی چنین قابلیتی نداره بنظرم)
    میتونید در اینجا ببنید...

    ویرایش توسط returnx : 7th May 2013 در ساعت 01:27 AM

  3. #13
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    1 امتياز مثبت از 1 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط returnx نمایش پست ها
    نقل قول نوشته اصلی توسط Hossein نمایش پست ها
    چیزی که به ذهن من میرسه برای شبیه سازی تعریف تابع تو تابع در سی ++ استفاده از lambda function ها هست:
    با lambda expression تو C# آشنا بودم اما نمیدونستم تو C++ عبارات lambda اضافه شده ، با msvc2012 که تست کردم جواب داد با کامپایلر mingw هم تست کردم جواب داد...
    در مورد زبان سی اگه بتونید رفرنسی گیر بیارید خیلی خوب میشه چون من چیزی در این رابطه نمیدونم (هرچند سی کار نیستم ولی تو کتاب پرات هم اینطور اومده بود که سی چنین قابلیتی نداره بنظرم)
    میتونید در اینجا ببنید...
    خیلی ممنونم دیدم مقاله رو . اما اونجا هم اومده که خود زبان پشتیبانی نمیکنه منتها تو GCC براش یه لنگویج اکستنشن درنظر گرفتن و فقط اونجا پشتیبانی میشه ازش:
    Standard C and C++ do not support nested functions, but: GCC supports nested functions in C, as a language extension
    راستی برای تست ویژگیهای جدید از ویژوال سی++ استفاده نکنید بهتره چون پشتیبانی کامل نداره هنوز -مطمئن نبودم اجراش میکنه - اما جی سی سی 4.8 تا بحال همه رو پشتیبانی کرده (شاید نهایتا یکی دو مورد پپشتیبانی نشه اما ویژوال استودیو اینطور نیست ).
    ادیت: اینجا میتونید مقایسه کنید پشتیبانی این دوتا رو :
    C++11 Compiler Support: VS2012 vs GCC vs Clang - 3D Tech News and Pixel Hacking - Geeks3D.com
    این هم بخش مربوط به gcc : Status of Experimental C++11 Support in GCC 4.8 - GNU Project - Free Software Foundation (FSF)

    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




  4. #14
    کاربر فعـال
    تاریخ عضویت
    2013 March
    ارسال ها
    101
    تشکر
    154
    تشکر شده 124 بار در 75 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    سلام دوستان . من ++c کار نکردم . و لینکهای دوستمون باعث شد تا با فکر بهتری سرچ کنم . بیشتر وبلاگ ها رو دیدم . خوب هست ولی تو تریس زیاد جواب نمیده و من رو هر سوال وقت زیادی میزارم . لطفا در مورد سی شارپ لینکهای خوبی مثل اولین لینک معرفی تون که قسمتهای مشخصی شامل ارایه . توابع . ... . داره رو معرفی کنین . ممنون . .


  5. #15
    SUPERMODERATOR
    تاریخ عضویت
    2012 May
    ارسال ها
    430
    تشکر
    750
    تشکر شده 961 بار در 440 پست
    نوشته های وبلاگ
    4


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    به لینک های زیر یه نگاه بندازین : (#Functional programming in C)
    .
    1. Functional programming in C# - CodeProject
    .
    2. Functional C# - Home
    .
    3. Introduction to Functional Programming in C#
    .
    4. C# 4.0 - Lesson 02: Introduction to C# Projects


    ویرایش توسط Tishab : 7th May 2013 در ساعت 10:27 PM
    سه جمله برای کسب موفقیت: ..... 1. بیشتر از دیگران بدانید.....2. بیشتر از دیگران کار کنید......3. کمتر انتظار داشته باشید. ( ویلیام شکسپیر )

  6. #16
    Moderator
    تاریخ عضویت
    2012 November
    ارسال ها
    128
    تشکر
    28
    تشکر شده 173 بار در 77 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط jellyfish نمایش پست ها
    . لطفا در مورد سی شارپ لینکهای خوبی مثل اولین لینک معرفی تون که قسمتهای مشخصی شامل ارایه . توابع . ... . داره رو معرفی کنین . ممنون . .
    مطمئنا بهترین Reference برای یاد گیری C# خود msdn مایکروسافت است ، اما اگر می خواهید روی دات نت به صورت کامل مسلط شید ، و از جزئیات اون با خبر شید پیشنهاد میکنم کتاب CLR Via Csharp که اثر آقای جفری ریچر هستُ مطالعه کنید...


  7. #17
    کاربر فعـال
    تاریخ عضویت
    2013 March
    ارسال ها
    101
    تشکر
    154
    تشکر شده 124 بار در 75 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    ممنون جناب Tishab .اولیه رو دیده بودم .ولی در کل برای من دومی خیلی بهتره . سومی هم خوبه ولی چهار رومیه خوب نیست . در کل سی شارپ رو از کتاب طراحی سیستم های شی گرا با زبان #c از انتشارات فن اوری نوین ( بابل - چهار راه نواب - کاظم بیگی - جنب حسینیه منصور کاظم بیگی - طبقه همکف - کد پستی : 4716773447 - تلفن : (0111) 2256687 ) دنبال میکنم . این کتاب روش اموزشی جدید مثل فیلمهای اموزشی دانشگاههای انلاین رو داره و طوریه که به تنهایی میتونی پیش بری . امیدوارم همه استفاده کنن . من میخام وقتی یک برنامه رو شروع میکنم بتونم با یاد گرفتن مطالب جدید همون رو گسترش بدم . گیرم اینطوریه . مثلا سریها رو بلدم . الان دیگه هرچی فرمول بهم بدن میتونم برنامش رو بنویسم ولی تو متد همین سریها به خاطر تنوع زیاد و استثناها میمونم . منظورم ارسال و دریافت متغیرها با out . ref ... هست . در کل میخام مثال های حل شده رو پرینت بگیرم و بخونم . این چیزیه که دنبالشم . .


  8. #18
    کاربر فعـال
    تاریخ عضویت
    2013 March
    ارسال ها
    101
    تشکر
    154
    تشکر شده 124 بار در 75 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    جناب Tishab شما استادین ؟ نرم افزار ؟ اخه بچه ها استاد خطاب میکنن . من که دورم و تا حالا زیارتتون نکردم ولی فکر میکنم شما و فرشته خانم از دانشجوهای سابق و یا از اساتید فعلیه دانشگاه هستید . اگه اینطوریه یکم مثال برامون بزارین . ممنون .


  9. #19
    مدیر بخش صنایع
    تاریخ عضویت
    1970 January
    محل سکونت
    بابل
    سن
    31
    ارسال ها
    460
    تشکر
    863
    تشکر شده 985 بار در 478 پست
    نوشته های وبلاگ
    33


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    Tishab کی استاد شدی به ما خبر ندادی؟
    میترسیدی به ما شیرینی بدی؟ ما شیرینی نمی خواهیم حداقل به ما میگفتی بهت تبریک بگیم!

    الا بذکرالله تطمئن القلوب
    هر جای دنیایی دلم اونجاست
    من کعبمو دور تو میسازم
    من پشت کردم به همه دنیا
    تا رو به تو سجاده بندازم

  10. #20
    SUPERMODERATOR
    تاریخ عضویت
    2012 May
    ارسال ها
    430
    تشکر
    750
    تشکر شده 961 بار در 440 پست
    نوشته های وبلاگ
    4


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط jellyfish نمایش پست ها
    جناب Tishab شما استادین ؟ نرم افزار ؟ اخه بچه ها استاد خطاب میکنن . من که دورم و تا حالا زیارتتون نکردم ولی فکر میکنم شما و @Freshte فرشته خانم از دانشجوهای سابق و یا از اساتید فعلیه دانشگاه هستید . اگه اینطوریه یکم مثال برامون بزارین . ممنون .
    نه..... استاد نیستم ..!!

    ویرایش توسط Tishab : 8th May 2013 در ساعت 01:05 AM
    سه جمله برای کسب موفقیت: ..... 1. بیشتر از دیگران بدانید.....2. بیشتر از دیگران کار کنید......3. کمتر انتظار داشته باشید. ( ویلیام شکسپیر )

 

 
صفحه 2 از 3 اولیناولین 123 آخرینآخرین

کاربران برچسب خورده در این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  


Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 03:13 AM بر حسب GMT +4 می باشد.