اطلاعیه

Collapse
No announcement yet.

c++ گروهی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #46
    پاسخ : c++ گروهی

    در رابطه با این تاپیک:

    البته من امروز دیدمش وگرنه یک پیشنهاد هایی داشتم:

    فکر کنم چون میخواید در رابطه با ++C صحبت بشه پس مطالب ابتدایی سی دیگه مربوط بهش نمیشه. به نظره من بهتر بود از همون اول به مفاهیم شی گرایی که در سی وجود ندارد و در سی++ مطح میشود ، پرداخته میشه.

    ولی خوب الانم مشکلی نیست.

    به نظرم حالا که در رابطه با سی داره بحث میشه، به مبحث اشاره گرها و استراکچر و همچنین تخصیص حافظه به صورت داینامیک به تفضیل پرداخته میشه.(اینها از مهمترین مسائل هست که در شی گرایی بهش نیاز میشه - بنده خودم تدریس میکنم و میدونم اکثر افراد در این مباحث مشکل دارن)

    بهترین مثال در رابطه با این مباحث ایجاد لیست پیوندی است.


    در رابطه با اشاره گرها و استراکچر میتونید به پست واقع در امضای بنده برید : "کوچ از کدویژن به اتمل استادیو"
    مختصری دراین رابطه پرداختم ولی به صورت کلی بوده و مخصوص زبان سی است و مستقل از کامپایلر و ماشین. کلا به مفاهیم پرداخته شده.





    اضافه شده در تاریخ :
    نوشته اصلی توسط negin-bahadori

    میآ‌شه براش یه مثال بزنین؟
    شما پست های زیر را بخونید به نتیجه میرسید:
    انواع متغییرها از نظر حوزه دسترسی و LifeTimeم : http://www.eca.ir/forum2/index.php?topic=81025.msg499601#msg499601

    چندی در رابطه با پیشوند volatile در سی: http://www.eca.ir/forum2/index.php?topic=81025.msg499818#msg499818 و http://www.eca.ir/forum2/index.php?topic=81025.msg499866#msg499866

    دیتا آبجکت چیست و معرفی استراکچر: http://www.eca.ir/forum2/index.php?topic=81025.msg504542#msg504542

    مختصری در باب اشاره گرها در سی و عملگر <-- : http://www.eca.ir/forum2/index.php?topic=81025.msg504661#msg504661


    درضمن اگر با ویژوال استادیو کار میکنید و دیباگینگ بلد نیستید ، در پس اول همون تاپیک بهش پرداخته شده

    Atmel Studio خیلی شبیه به Visual Studio است.

    یه جمله هم اضافه میکنم:
    اصل کار زبونه ( C ) و اینکه چه لهجه ای دارید( کامپایلر C ) مهم نیست.


    اضافه شده در تاریخ :
    راستی در رابطه با جمله ی زیر:

    برای عملگر ++ تایپ دیتا آبجکت بسیار مهم است. به طوری که اگر اندازه ی آن دو بایت باشد بعد از مقدار 0xFFFF در محل آن دیتا آبجکت 0x0000 قرار داده میشود و zero flag ست میشود
    اگر سخت گیرانه بخوایم بهش بپردازیم ، غلط است.

    در اصل تابع cout هست که تایپ دیتا آبجکت براش مهمه.

    مثال میزنم :

    با casting که آشنا هستید؟

    به عنوان مثال همون مثال جناب SAJAD-G را به شکل دیگه در میارم که کامل متوجه قضیه بشید:

    کد:
    #include <iostream>
    using namespace std;
    void main()
    {
    	for(int x=0;;x++)
    	{
    		cout<<(char)x<<"\n";
    	}
    }
    اجراش کنید . میفهمید چی میشه :mrgreen:
    فقط قبلش برای اینکه اعصابتون خورد نشه اسپیکر را قطع کنید :rolleyes:

    مهم برداشتیه که cout از دیتا آبجکتی که بهش میدید داره.
    راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
    کوچ کردن از کدويژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
    نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
    http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
    انشالله به زودي تاپيک ها به روز رساني خواهد شد،

    دیدگاه


      #47
      پاسخ : c++ گروهی

      نوشته اصلی توسط RubeuS
      اصل کار زبونه ( C ) و اینکه چه لهجه ای دارید( کامپایلر C ) مهم نیست.
      اینجا یهویی ۱۰ تا پست زده میشه آدم دیگه گم میکنه بحث رو.
      اون مسیله هم چند تا دلیل داره که بعضی هاش به سیستم عامل برمیگرده. بیاید در خصوص سیستم عامل اینجا بحث نکنیم.
      اما اینکه Bash و امثال اینها همه اسکرول رو روی رم میریزن، باید بگم کار درستی نیست. علتش هم همین جا دارید میبینید. کافیه برنامه توی چرخه بدون انتها شروع کنه به خروجی دادن که عملا باعث میشه رم پر بشه.

      ولی این جمله ای که نوشتید (و من اینجا تو این مربعه گذاشتمش)، ببینید بعضی از کامپایلرها اصلا کامپایلر نیستند. میان برنامه رو به بایت کامپایل تبدیل میکنند.
      خوب کاملا واضحه در این صورت شما با خود C کار نمیکنید بلکه با چیزی شبیه به C کار میکنید که همه امکانات C رو نداره و حتی شاید همه جا هم قابل استفاده نباشه.
      مثلا بعضی از کامپایلرها دستوراتی دارن که اصلا جزء دستورات استاندارد C++ نیست. خوب مسلمه که اگر شخص دیگری بخواد اون ها رو روی کامپایلری که از اون دستورات استفاده نمیکنه اجرا کنه به مشکل بر میخوره.
      من معتقدم سعی کنید از کامپایلری استفاده کنید که استاندارد خود c++ باشه. درسته اینها به نسبت ویژوال استودیو و ... سخته کار کردن باهاشون ولی عوضش درست یاد میگیرید.
      در ضمن سعی کنید از این IDE ای هایی که دستورات رو براتون کامل میکنن استفاده نکنید. خیلی چیزها رو یاد نمیگیرید با اینها.

      اضافه شده در تاریخ :
      نوشته اصلی توسط RubeuS
      راستی در رابطه با جمله ی زیر:

      اگر سخت گیرانه بخوایم بهش بپردازیم ، غلط است.

      در اصل تابع cout هست که تایپ دیتا آبجکت براش مهمه.

      مثال میزنم :

      با casting که آشنا هستید؟

      به عنوان مثال همون مثال جناب SAJAD-G را به شکل دیگه در میارم که کامل متوجه قضیه بشید:

      کد:
      #include <iostream>
      using namespace std;
      void main()
      {
      	for(int x=0;;x++)
      	{
      		cout<<(char)x<<"\n";
      	}
      }
      اجراش کنید . میفهمید چی میشه :mrgreen:
      فقط قبلش برای اینکه اعصابتون خورد نشه اسپیکر را قطع کنید :rolleyes:

      مهم برداشتیه که cout از دیتا آبجکتی که بهش میدید داره.
      البته بازرشونم باید بکشن بیرون برای اینکه کاراکتر ۷ بوق بازر رو فعال میکنه.

      دیدگاه


        #48
        پاسخ : c++ گروهی

        نوشته اصلی توسط hamidreza.nayeri
        اینجا یهویی 10 تا پست زده میشه آدم دیگه گم میکنه بحث رو.
        اون مسیله هم چند تا دلیل داره که بعضی هاش به سیستم عامل برمیگرده. بیاید در خصوص سیستم عامل اینجا بحث نکنیم.
        اما اینکه Bash و امثال اینها همه اسکرول رو روی رم میریزن، باید بگم کار درستی نیست. علتش هم همین جا دارید میبینید. کافیه برنامه توی چرخه بدون انتها شروع کنه به خروجی دادن که عملا باعث میشه رم پر بشه.

        ولی این جمله ای که نوشتید (و من اینجا تو این مربعه گذاشتمش)، ببینید بعضی از کامپایلرها اصلا کامپایلر نیستند. میان برنامه رو به بایت کامپایل تبدیل میکنند.
        خوب کاملا واضحه در این صورت شما با خود C کار نمیکنید بلکه با چیزی شبیه به C کار میکنید که همه امکانات C رو نداره و حتی شاید همه جا هم قابل استفاده نباشه.
        مثلا بعضی از کامپایلرها دستوراتی دارن که اصلا جزء دستورات استاندارد C++ نیست. خوب مسلمه که اگر شخص دیگری بخواد اون ها رو روی کامپایلری که از اون دستورات استفاده نمیکنه اجرا کنه به مشکل بر میخوره.
        من معتقدم سعی کنید از کامپایلری استفاده کنید که استاندارد خود c++ باشه. درسته اینها به نسبت ویژوال استودیو و ... سخته کار کردن باهاشون ولی عوضش درست یاد میگیرید.
        در ضمن سعی کنید از این IDE ای هایی که دستورات رو براتون کامل میکنن استفاده نکنید. خیلی چیزها رو یاد نمیگیرید با اینها.
        بله درست میفرمایید . ولی شما به اون تاپیک که گفتم مراجعه کردید؟ به همین موضوع هم پرداخته شده.

        اینجاهم میگم : "ویژوال استادیو جزء عجایب جهان است" و البته کار باش اصلا مشکل نیست اتفاقا معروفه به یک IDE که user friendly هست . همینش خوبه که کار باش لذت بخشه. حتما برید اون تاپیک رو بخونید. Atmel Studio همون ویژوال استادیو است( نوه شه :icon_razz خیلی شبیه شه.

        بنده هنوز پشت جمله ام ( اصل کار زبونه ( C ) و اینکه چه لهجه ای دارید( کامپایلر C ) مهم نیست. ) وایسادم.

        اگه بخوام اصل تفاوت کامپایلر های مختلف یک زبان خاص مثل سی را بگم ، اون زبان ماشین هدف است( ISA پردازنده ( مراجعه شود به معماری کامپیوتر) )

        اصل زبان سی است همین و بس.



        اضافه شده در تاریخ :
        نوشته اصلی توسط hamidreza.nayeri
        البته بازرشونم باید بکشن بیرون برای اینکه کاراکتر 7 بوق بازر رو فعال میکنه.
        بله درست میفرمایید اون صدا از بازر کیس میاد ولی بنده اسپیکر را گفتم چون خودم با لپتاپ کار میکنم. (اسپیکر لپتاپ قطع بشه کاراکتر a/ هم صداش نمیاد)
        راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
        کوچ کردن از کدويژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
        نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
        http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
        انشالله به زودي تاپيک ها به روز رساني خواهد شد،

        دیدگاه


          #49
          پاسخ : c++ گروهی

          نوشته اصلی توسط RubeuS
          بله درست میفرمایید . ولی شما به اون تاپیک که گفتم مراجعه کردید؟ به همین موضوع هم پرداخته شده.

          اینجاهم میگم : "ویژوال استادیو جزء عجایب جهان است" و البته کار باش اصلا مشکل نیست اتفاقا معروفه به یک IDE که user friendly هست . همینش خوبه که کار باش لذت بخشه. حتما برید اون تاپیک رو بخونید. Atmel Studio همون ویژوال استادیو است( نوه شه :icon_razz خیلی شبیه شه.

          بنده هنوز پشت جمله ام ( اصل کار زبونه ( C ) و اینکه چه لهجه ای دارید( کامپایلر C ) مهم نیست. ) وایسادم.

          اگه بخوام اصل تفاوت کامپایلر های مختلف یک زبان خاص مثل سی را بگم ، اون زبان ماشین هدف است( ISA پردازنده ( مراجعه شود به معماری کامپیوتر) )

          اصل زبان سی است همین و بس.
          من با کلیات حرفتون مشکل ندارم ولی همین قدر بگم که موقعی که میخواستم برای اینتراپت ها در مد ۱۶ و ۳۲ بیتی با C برنامه بنویسم فهمیدم که C اصلا از این قابلیت پشتیبانی نمیکنه و اون چیزی هم که توی CodeVision و ... میبینیم امکانی است که خودشون بهش اضافه کرده اند.
          یا مثلا C از سیگنالینگ پشتیبانی نمیکنه ولی بعضی از کامپایلر هاش مثل ویژوال استودیو این امکان رو دارند.
          خوب استفاده از این امکانات اصلا بد نیست شاید خیلی هم خوب باشه ولی برنامه نویس وقتی میخواد برای یک محیط استاندارد برنامه بنویسه تازه میفهمه که کجای کاره.

          حالا یک سوال جانبی. من ۷-۸ سال پیش با ویژوال استودیو کار کردم و بعد هم ولش کردم. اون موقع یادمه برای .Net کامپایل میکرد. هنوز هم همین طوریه؟

          دیدگاه


            #50
            پاسخ : c++ گروهی

            خروجی من شد تکرار این حروف:
            کد:
            	
            
             !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377
            اولش که حروف اسکی هستن و قابل پیشبینی بودن ولی از \200 تا \377 رو چه جوری حساب کرده نمیدونم :-?
            هر int رو با sizeof گرفتم، 4 بایته
            ;()((void (*)(void))0x0000))

            دیدگاه


              #51
              پاسخ : c++ گروهی

              نوشته اصلی توسط hosseinam1370
              سلام.
              ببینید من جدیدا رفتم سراغ یاد گیری زبان سی++ ،اما یه کتاب خود آموز سی دارم .
              به نظر شما این خوبه یا برم کتاب سی ++ بخرم؟
              اصلا فرقی هم داره؟ :nerd: :nerd:
              برای C++ بگیرید. بین C و C++ خیلی فرقه.
              C تقریبا از رده خارج شده وکسی با خودش برنامه نمینویسه مگر این که مجبور باشن.
              کلا در همه موارد میشه به طور قریب به یقین گفت که C++ بهتره.

              اضافه شده در تاریخ :
              نوشته اصلی توسط SAJAD-G
              خروجی من شد تکرار این حروف:
              کد:
              	
              
               !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377
              اولش که حروف اسکی هستن و قابل پیشبینی بودن ولی از \200 تا \377 رو چه جوری حساب کرده نمیدونم :-?
              هر int رو با sizeof گرفتم، 4 بایته
              ببخشید عجله کردم تو جواب دادن.
              نباید بالاتر از ۱۲۸ یا ۲۵۶ بهتون عدد بده.
              وقتی تایپی به نوع char تبدیل میشه باید مثل char عمل بکنه. یعنی از -۱۲۸ تا ۱۲۷

              اضافه شده در تاریخ :
              این از ۲۰۰ تا ۳۷۷ نیست.
              مبنای ۸ اعدادیه که نمیتونه نمایش بده.

              اضافه شده در تاریخ :
              نوشته اصلی توسط SAJAD-G
              خروجی من شد تکرار این حروف:
              کد:
              	
              
               !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377
              اولش که حروف اسکی هستن و قابل پیشبینی بودن ولی از \200 تا \377 رو چه جوری حساب کرده نمیدونم :-?
              هر int رو با sizeof گرفتم، 4 بایته
              ای رو در ادامه پست قبلی زدم چون به نظرم خیلی نا مفهوم بود.

              شما دارید cast میکنید به نوع char بنابراین ۴ بایتتون رو نمیتونه ذخیره کنه و عملا فقط بایت پایینیشون رو نگه میداره.
              اون اعداد هم ۲۰۰ تا ۳۷۷ نیستند. مبنای ۸ کاراکترهای نیمه بالایی جدول ASCII هستند.
              چون نمیتونسته نمایش بده (یا حال نکرده با این کار) مبنای ۸ شون رو نمایش داده.

              دیدگاه


                #52
                پاسخ : c++ گروهی

                نوشته اصلی توسط hamidreza.nayeri
                من با کلیات حرفتون مشکل ندارم ولی همین قدر بگم که موقعی که میخواستم برای اینتراپت ها در مد 16 و 32 بیتی با C برنامه بنویسم فهمیدم که C اصلا از این قابلیت پشتیبانی نمیکنه و اون چیزی هم که توی CodeVision و ... میبینیم امکانی است که خودشون بهش اضافه کرده اند.
                یا مثلا C از سیگنالینگ پشتیبانی نمیکنه ولی بعضی از کامپایلر هاش مثل ویژوال استودیو این امکان رو دارند.
                خوب استفاده از این امکانات اصلا بد نیست شاید خیلی هم خوب باشه ولی برنامه نویس وقتی میخواد برای یک محیط استاندارد برنامه بنویسه تازه میفهمه که کجای کاره.

                حالا یک سوال جانبی. من 7-8 سال پیش با ویژوال استودیو کار کردم و بعد هم ولش کردم. اون موقع یادمه برای .Net کامپایل میکرد. هنوز هم همین طوریه؟
                بله اون دییگه مربوط به ماشین میشه . میدونید چرا اینجوریه؟ چون میکروهایی از اون دست سیستم عامل نداره و میشه راحت با i/o کار کرد .(البته تا قبل ویندوز 95 هم سیستم عامل اجازه ی کار با i/o را میداد :eek: )
                در سیستم عامل های جدید کار با i/o در kernel mode قابل انجام است. پس کامپایلر مستقیم نمیتونه با دستور گرفتن از برنامه نویس راحت با رجیسترها و روتین وقفه ها کار کنه.
                برای اینکار مثلا ویندوز به شکل زیر یک رابط ساخته:
                کار با API ها مثل همون اینتراپت دادن و کار با i/o است.


                در رابطه با جمله آخرتون هم فقط توجهتون را به عبارت زیر جلب میکنم:

                ماکروسافت = ویژوال استادیو = Net framework.


                ---------------------------------------
                ویرایش:

                ماکروسافت = ویژوال استادیو = Net framework. = ویندوز :mrgreen:
                راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
                کوچ کردن از کدويژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
                نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
                http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
                انشالله به زودي تاپيک ها به روز رساني خواهد شد،

                دیدگاه


                  #53
                  پاسخ : c++ گروهی

                  نوشته اصلی توسط RubeuS
                  بله اون دییگه مربوط به ماشین میشه . میدونید چرا اینجوریه؟ چون میکروهایی از اون دست سیستم عامل نداره و میشه راحت با i/o کار کرد .(البته تا قبل ویندوز 95 هم سیستم عامل اجازه ی کار با i/o را میداد :eek: )
                  در سیستم عامل های جدید کار با i/o در kernel mode قابل انجام است. پس کامپایلر مستقیم نمیتونه با دستور گرفتن از برنامه نویس راحت با رجیسترها و روتین وقفه ها کار کنه.
                  برای اینکار مثلا ویندوز به شکل زیر یک رابط ساخته:
                  کار با API ها مثل همون اینتراپت دادن و کار با i/o است.


                  در رابطه با جمله آخرتون هم فقط توجهتون را به عبارت زیر جلب میکنم:

                  ماکروسافت = ویژوال استادیو = Net framework.


                  ---------------------------------------
                  ویرایش:

                  ماکروسافت = ویژوال استادیو = Net framework. = ویندوز :mrgreen:
                  من این رو میدونم که سیستم عامل کارش چیه و چی کار میکنه.
                  منظورم این بود که من میخواستم سیستم عامل بنویسم و بعد فهمیدم که خود C یا C++ این امکان رو ندارند بنابراین حتما باید با Assembly تلفیق شن که کار رو خیلی سخت میکنه.
                  البته شدنیه ولی سخته.

                  در خصوص .Net هم من خیلی باهاش کار نکرده ام ولی یکی از دوستان میگفت برنامه هایی که با دات نت به صورت DLL نوشته میشن تا ۶ برابر سرعتشون افت میکنه. خوب این به خاطر Run DLL ویندوزه و عملا به خاطر اینه که وقتی دات نت وسط باشه چیزی کامپایل نمیشه بلکه برنامه ها بایت کامپایل میشن.
                  من وقتی توی لینوکس با GCC برنامه ها رو به صورت Shared Library در میارم اصلا سرعتشون افت نمیکنه. با همون سرعت یک برنامه که روی پردازنده اجرا میشه کار میکنن.
                  من به خاطر همین هم با دات نت مشکل دارم. دقیقا به همین علت هم از Java خوشم نمیاد.

                  پ.ن:
                  البته این رو هم بگم ها نمیخوام اینجا بحث راه بندازم که دات نت بهتره یا چیزی دیگه، ویندوز بهتره یا لینوکس و ...
                  اتفاقا دات نت برای نوشتن برنامه های گرافیکی خیلی راحته و بازار خوبی هم توی ایران داره.

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

                  دیدگاه


                    #54
                    پاسخ : c++ گروهی

                    نوشته اصلی توسط hamidreza.nayeri
                    من این رو میدونم که سیستم عامل کارش چیه و چی کار میکنه.
                    منظورم این بود که من میخواستم سیستم عامل بنویسم و بعد فهمیدم که خود C یا C++ این امکان رو ندارند بنابراین حتما باید با Assembly تلفیق شن که کار رو خیلی سخت میکنه.
                    البته شدنیه ولی سخته.

                    در خصوص .Net هم من خیلی باهاش کار نکرده ام ولی یکی از دوستان میگفت برنامه هایی که با دات نت به صورت DLL نوشته میشن تا ۶ برابر سرعتشون افت میکنه. خوب این به خاطر Run DLL ویندوزه و عملا به خاطر اینه که وقتی دات نت وسط باشه چیزی کامپایل نمیشه بلکه برنامه ها بایت کامپایل میشن.
                    من وقتی توی لینوکس با GCC برنامه ها رو به صورت Shared Library در میارم اصلا سرعتشون افت نمیکنه. با همون سرعت یک برنامه که روی پردازنده اجرا میشه کار میکنن.
                    من به خاطر همین هم با دات نت مشکل دارم. دقیقا به همین علت هم از Java خوشم نمیاد.

                    پ.ن:
                    البته این رو هم بگم ها نمیخوام اینجا بحث راه بندازم که دات نت بهتره یا چیزی دیگه، ویندوز بهتره یا لینوکس و ...
                    اتفاقا دات نت برای نوشتن برنامه های گرافیکی خیلی راحته و بازار خوبی هم توی ایران داره.

                    این ها رو مینویسم که کسانی که میخوان برنامه نویس بشن از همین الان بدونن فرق اینها چیه بتونن یواش یواش راهشون رو انتخاب بکنن.
                    در کل من وقتی که میخاستم زبانی رو واسه یاد گیری انتخاب کنم،فهمیده بودم که ویرژال بیسیک جای خودشو داده به vb.net
                    و وقتی رفتم که اینو یاد بگیرم ،دیدم که اگه من برنامه ای با vb.net یا C# حالا در محیط دات نت بنویسم و رابط گرافیکیشو ردیف کنم،و حالا برنامه با دات نت رو تموم کنم و اگه اونو بدم به دوستم واسه نصب ،در کنارش باید برنامه ی سنگین دات نت فریم ورک که حدودا 40 مگابایته رو هم همراهش بدم،یعنی مثلا اگه برنامه ای که من نوشتم سره جمع بشه 5 مگ ،باید این 40 مگی رو هم بزارم و سره جمع بشه 45 مگ.که این به نظرم جالب نبود،چون نهایت برنامه ای که ما بنویسیم بخایم چندتا دستور رو از پورت ها به میکرو ارسال کنیم دیگه،حالا بشه 5 مگ ،چرا باید اون 45 مگ حجم رو هم روش اضافه کنیم.
                    به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
                    (پيش به سوي هدف)

                    دیدگاه


                      #55
                      پاسخ : c++ گروهی

                      نوشته اصلی توسط hosseinam1370
                      در کل من وقتی که میخاستم زبانی رو واسه یاد گیری انتخاب کنم،فهمیده بودم که ویرژال بیسیک جای خودشو داده به vb.net
                      و وقتی رفتم که اینو یاد بگیرم ،دیدم که اگه من برنامه ای با vb.net یا C# حالا در محیط دات نت بنویسم و رابط گرافیکیشو ردیف کنم،و حالا برنامه با دات نت رو تموم کنم و اگه اونو بدم به دوستم واسه نصب ،در کنارش باید برنامه ی سنگین دات نت فریم ورک که حدودا 40 مگابایته رو هم همراهش بدم،یعنی مثلا اگه برنامه ای که من نوشتم سره جمع بشه 5 مگ ،باید این 40 مگی رو هم بزارم و سره جمع بشه 45 مگ.که این به نظرم جالب نبود،چون نهایت برنامه ای که ما بنویسیم بخایم چندتا دستور رو از پورت ها به میکرو ارسال کنیم دیگه،حالا بشه 5 مگ ،چرا باید اون 45 مگ حجم رو هم روش اضافه کنیم.
                      من بشون تو پیام خصوصی توضیح دادم ، چون اصلا این مسائل مربوط به تاپیک نمیشه و بحث منحرف میشه.

                      برای سرعت و... شیوه ی برنامه نویسی Native را سرچ کنید . میفهمید چه خبره.

                      درکل دات نت و... در و دوکونه . بدرد حسابداری نوشتن و... تو ویندوز میخوره .
                      راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
                      کوچ کردن از کدويژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
                      نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
                      http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
                      انشالله به زودي تاپيک ها به روز رساني خواهد شد،

                      دیدگاه


                        #56
                        پاسخ : c++ گروهی

                        خوب بریم سر وقت سی پلاس.
                        میگم که تو این کامپایلر که من رفتم تو پوشه include خود برنامه دیدم که وایی چقدر توابع با پسوند .h وجود داره(مثل iostream.h یا هرچی دیگه)
                        خوب حالا من چجوری باید بفهمم که تو کدوم چه دستوراتی هست،مثلا تو math.h میدونم که توابع سینوسی و در کل من 3تاشو میدونم :nerd:که چه دستوراتی رو تو خودشون جای دادن،حالا اون بقیه هارو باید از کجا بفهمم که چه توابعی در خود جای دادن؟
                        یا توابع گرافیکی کودومآ هستن؟
                        2.اینا همون api های ما هستن؟
                        یا کتابخونه هستن؟
                        ممنونم از شما.
                        جز تشکر کاری از دستم بر نمیآد که :redface:
                        به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
                        (پيش به سوي هدف)

                        دیدگاه


                          #57
                          پاسخ : c++ گروهی

                          نوشته اصلی توسط hosseinam1370
                          خوب بریم سر وقت سی پلاس.
                          میگم که تو این کامپایلر که من رفتم تو پوشه include خود برنامه دیدم که وایی چقدر توابع با پسوند .h وجود داره(مثل iostream.h یا هرچی دیگه)
                          خوب حالا من چجوری باید بفهمم که تو کدوم چه دستوراتی هست،مثلا تو math.h میدونم که توابع سینوسی و در کل من 3تاشو میدونم :nerd:که چه دستوراتی رو تو خودشون جای دادن،حالا اون بقیه هارو باید از کجا بفهمم که چه توابعی در خود جای دادن؟
                          یا توابع گرافیکی کودومآ هستن؟
                          2.اینا همون api های ما هستن؟
                          یا کتابخونه هستن؟
                          ممنونم از شما.
                          جز تشکر کاری از دستم بر نمیآد که :redface:
                          برای اینکار میتونید به MSDN مراجعه کنید
                          از سایت مرجع http://www.cplusplus.com/reference/ هم میتونید استفاده کنید.


                          خیر اینها یک سری کتابخانه ی استاتیک هستند . API یک سری کتابخانه ی داینامیک مخصوص سیستم عامل ویندوز است.
                          کلا فرق دارند باهم
                          راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
                          کوچ کردن از کدويژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
                          نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
                          http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
                          انشالله به زودي تاپيک ها به روز رساني خواهد شد،

                          دیدگاه


                            #58
                            پاسخ : c++ گروهی

                            نوشته اصلی توسط hosseinam1370
                            در کل من وقتی که میخاستم زبانی رو واسه یاد گیری انتخاب کنم،فهمیده بودم که ویرژال بیسیک جای خودشو داده به vb.net
                            و وقتی رفتم که اینو یاد بگیرم ،دیدم که اگه من برنامه ای با vb.net یا C# حالا در محیط دات نت بنویسم و رابط گرافیکیشو ردیف کنم،و حالا برنامه با دات نت رو تموم کنم و اگه اونو بدم به دوستم واسه نصب ،در کنارش باید برنامه ی سنگین دات نت فریم ورک که حدودا 40 مگابایته رو هم همراهش بدم،یعنی مثلا اگه برنامه ای که من نوشتم سره جمع بشه 5 مگ ،باید این 40 مگی رو هم بزارم و سره جمع بشه 45 مگ.که این به نظرم جالب نبود،چون نهایت برنامه ای که ما بنویسیم بخایم چندتا دستور رو از پورت ها به میکرو ارسال کنیم دیگه،حالا بشه 5 مگ ،چرا باید اون 45 مگ حجم رو هم روش اضافه کنیم.
                            این رو اشتباه زدم.
                            چطور میشه حذفش کرد؟

                            اضافه شده در تاریخ :
                            نوشته اصلی توسط RubeuS
                            برای اینکار میتونید به MSDN مراجعه کنید
                            از سایت مرجع http://www.cplusplus.com/reference/ هم میتونید استفاده کنید.


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

                            در خصوص راهنما هم من سایت دومی رو به MSDN ترجیح میدم.

                            دیدگاه


                              #59
                              پاسخ : c++ گروهی

                              msdn??!!!!
                              ها؟!!!این دیگه چیه؟
                              به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
                              (پيش به سوي هدف)

                              دیدگاه


                                #60
                                پاسخ : c++ گروهی

                                نوشته اصلی توسط hosseinam1370
                                msdn??!!!!
                                ها؟!!!این دیگه چیه؟
                                سایت مربوط به پشتیبانی و گسترش ماکروسافته.
                                توش توضیحات در خصوص API های ماکروسافتی و ... داره.
                                در خصوص کتابخونه های استاندارد C++ هم توش مطلب هست.

                                دیدگاه

                                لطفا صبر کنید...
                                X