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

صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 از مجموع 15
Like Tree3نفر پسندیدند

موضوع: تاپیک جامع ++c ............(پرسش و پاسخ)

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


    آيا اين پست براي شما سودمند بود؟ بله | خیر

    تاپیک جامع ++c ............(پرسش و پاسخ)

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


    همانطور که میدونید برای رفتن به خط بعدی(نوسطر) از n\ ویا endl استفاده میشه.....
    تفاوت این دو چیه..؟
    کتاب دایتل قبلا خونده بودم که endl بعده رفتن ب خط بعدی بافر خروجی رو پاک میکنه..... میشه بیشتر توضیح بدید..؟؟!


    موضوعات مشابه:
    سه جمله برای کسب موفقیت: ..... 1. بیشتر از دیگران بدانید.....2. بیشتر از دیگران کار کنید......3. کمتر انتظار داشته باشید. ( ویلیام شکسپیر )

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


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    وقتی از \n استفاده میشه یک کارکتر به stdout فرستاده میشه که به معنی New line هست ، اما endl به end line هست و یک کنترل کننده buffer هست و buffer را flush (پاک) میکنه...
    حالا منظور از بافر اینجا چیست!؟
    یک حافظه میانجی بین جریان ها و دستگاه های ورودی و خروجی، که ما آن ها را به عنوان های stdout برای خروجی های استاندارد ، stdin ورودی های استاندارد و stderr جریان خطا های استاندارد میشناسیم ...
    صرفا تمام Stream object ها از بافر استفاده نمیکنند ، اگر اشتباه نکنم مثلا cout مستقیما میاد در خروجی مینویسه ، اما تو مثال زیر که نوشتم تا buffer فلاش نشه محتویات چاپ شده نشان داده نمیشه :
    کد:
    #include <QCoreApplication>
    #include <iostream>
    #include <QTextStream>
    #include "unistd.h"
    
    
    using namespace std;
    
    QTextStream writer(stdout);
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
        writer<<"hello!\n";
        sleep(1);
        writer<<"good!"; writer.flush();
        return a.exec();
    }
    البته من اینُ تو Qt و در لینوکس نوشتم برای تست تو ویندوز چون سرایند unistd را ندارید برای ایجاد delay میتونید از تابع ای که در پایین میزارم استفاده کنید :
    کد:
    void make_wait(int miliseconds) //Create Delay()
    {
        clock_t end_wait;
        end_wait=clock()+miliseconds;
        while (clock()<end_wait)
        {
            //Do Nothing
        }
    }
    برای استفاده از تابع بالا باید سرایند time.h را به برنامتون اضافه کنید...

    این دوتا لینک هم میتونه بسیار مفید باشه :
    http://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html
    http://publib.boulder.ibm.com/infocenter/comphelp/v101v121/index.jsp?topic=/com.ibm.xlcpp101.aix.doc/legacy/id00055.html

    ویرایش توسط returnx : 1st October 2013 در ساعت 02:03 PM

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


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    به نظر میرسه سرعت و کارایی n\ بهتر باشه چون از بافر استفاده نمیکنه..؟!! ...... حالا استفاده از بافر مزیتی هم داره ؟؟

    سه جمله برای کسب موفقیت: ..... 1. بیشتر از دیگران بدانید.....2. بیشتر از دیگران کار کنید......3. کمتر انتظار داشته باشید. ( ویلیام شکسپیر )

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


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط Tishab نمایش پست ها
    به نظر میرسه سرعت و کارایی n\ بهتر باشه چون از بافر استفاده نمیکنه..؟!! ...... حالا استفاده از بافر مزیتی هم داره ؟؟
    استفاده کردن از buffer بیشتر به object stream که استفاده می کنید بستگی داره ، مثلا در مثال بالا وقتی از QTextstream استفاده می کنیم ، داده ها ابتدا در بافر نوشته میشه و بعد از flush کردن بافر در stdout نوشته میشه اما در مثال زیر ببنید که با کامپایلر msvc تست کردم :
    کد:
    #include <iostream>
    #include <fstream>
    #include <time.h>
    
    using namespace std;
    
    fstream writer(stdout);
    void make_wait(int miliseconds) ;
    
    int main(int argc,char *argv[])
    {
        writer<<"test1\n";
        make_wait(1000);
        writer<<"test2\n";
        getchar();
        return 0;
    
    }
    
    void make_wait(int miliseconds) //Create Delay()
    {
        clock_t end_wait;
        end_wait=clock()+miliseconds;
        while (clock()<end_wait)
        {
            //Do Nothing
        }
    }
    بدون اینکه نیاز به flush کردن باشه ، رشته ی مورد نظر در خروجی نمایش داده میشه ، این نشان میده که fstream از buffer استفاده نمیکنه... (البته این موضوع میتونه در پیاده سازی های دیگه در کامپایلر های دیگه متفاوت باشه )
    اما چرا از buffer استفاده میشه :
    In most operating systems, a system call to read data from the ultimate producer or write it to the ultimate consumer is an expensive operation. If your applications can reduce the number of system calls they have to make, performance may improve. By acting as a buffer between the ultimate producer or ultimate consumer and the formatting functions, a stream buffer can reduce the number of system calls that are made.
    اینجا توضیح داده شده در بیشتر سیستم عامل ها خواندن داده از تولید کننده نهایی و نوشتن در مصرف کننده نهایی عملی پرهزینه است ، و اگر برنامه ها بتونند میزان فراخوانی سیستمی را برای خواندن و نوشتن کاهش بدن ، میتونند کارایی را بالا ببرند. با نقش آفرینی یک بافر بین تولید کننده نهایی یا مصرف کننده نهایی و قالب بندی توابع ، یک بافر میتونه این فراخوانی ها را کمتر کنه.
    برای مثال :
    بجای نوشتن کد به این شکل :
    کد:
        writer<<"test1\n";
        writer<<"test2\n";
    میشه اینطور نوشت :
    کد:
    writer<<"test1\n"<<"test2\n";



  5. #5
    عضو تازه وارد
    تاریخ عضویت
    2014 December
    ارسال ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    سلام
    دوستان تابع else در شرط یه برنامه چیکاری انجام می دهد
    تشکر


  6. #6
    Moderator
    تاریخ عضویت
    2011 November
    محل سکونت
    قائمشهر
    ارسال ها
    119
    تشکر
    210
    تشکر شده 359 بار در 122 پست
    نوشته های وبلاگ
    2


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط yaser_tak نمایش پست ها
    سلام
    دوستان تابع else در شرط یه برنامه چیکاری انجام می دهد
    تشکر
    سلام
    مثلا در سوال اومده تابعی بنویسید که دو مقدار a,b را دریافت کند و اگر a>=b بود حاصل a,b را باهم جمع کند در غیر اینصورت این دو را باهم ضرب کند و حاصل را برگرداند ...)

    Info
    (int sum(int a,int b
    }
    if a>=b
    return a+b
    else
    return a*b
    {



    به عنوان مثال اگر a=5,b=3 و یا a=b باشد تابع دو مقدار a,b را باهم جمع میکند و حاصل را به جایی از برنامه مان که تابع را صدا زده یا فراخوانی کرده برمیگرداند و دیگر ادامه تابع مان که else هست اجرا نمیشه و از تابع خارج میشود.
    وگرنه (else ) اگر a<b باشد مثلا a=3,b=5 باشد حاصل این دو را باهم ضرب میکند و دیگر عملیات a+b انجام نخواهد شد و حاصل را به فراخوانش برمیگرداند...

    ویرایش توسط AliReza : 1st January 2015 در ساعت 01:09 PM
    Tishab این نویسه را میپسندد.


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


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط yaser_tak نمایش پست ها
    سلام
    دوستان تابع else در شرط یه برنامه چیکاری انجام می دهد
    تشکر
    باید دقت کنید که اساسا else تابع نیست و کلمه ی کلیدی هست و جزئی از زبان برنامه نویسی...
    در واقع میشه برای بررسی نقیض شرط از else استفاده کرد ، به طور مثال اگر a>b بود عمل فلان انجام شود ، در غیر اینصورت (یعنی زمانی که شرط برقرار نیست ) عمل دیگری انجام شود...
    کد:
    if (a>b) 
        do x
    else 
        do y


    ویرایش توسط returnx : 3rd January 2015 در ساعت 11:45 AM
    Tishab این نویسه را میپسندد.

  8. #8
    عضو تازه وارد
    تاریخ عضویت
    2015 January
    ارسال ها
    2
    تشکر
    0
    تشکر شده 0 بار در 0 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    سلام به همه دوستان عزیز ازتون خواهش میکنم این سورس رو برام بزارید هر چی گشتم نبود که نبود

    هر کسی داره برام بزاره ممنون میشم سورسشو
    پیاده سازی دو پشته با یک آرایه
    ممنون میشم


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


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط dariush1373 نمایش پست ها
    سلام به همه دوستان عزیز ازتون خواهش میکنم این سورس رو برام بزارید هر چی گشتم نبود که نبود

    هر کسی داره برام بزاره ممنون میشم سورسشو
    پیاده سازی دو پشته با یک آرایه
    ممنون میشم
    ارجاع به:
    خواهشا کمک کنید . پیاده سازی دو پشته با یک آرایه

    سه جمله برای کسب موفقیت: ..... 1. بیشتر از دیگران بدانید.....2. بیشتر از دیگران کار کنید......3. کمتر انتظار داشته باشید. ( ویلیام شکسپیر )

  10. #10
    عضو تازه وارد
    تاریخ عضویت
    2015 April
    ارسال ها
    2
    تشکر
    3
    تشکر شده 0 بار در 0 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    چه جوری میشه یه دیتابیس(که با اکسس درستش کردم) رو به برنامه ای در سی پلاس پلاس متصل کنم؟


 

 
صفحه 1 از 2 12 آخرینآخرین

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

کلمات کلیدی این موضوع

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

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

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

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


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