دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

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

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 17

موضوع: مقدمات زبان c - آموزش c

  1. #1
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض مقدمات زبان c - آموزش c

    زبان C در سال ۱۹۷۰ توسط دنیس ریچی طراحی گردید. این زبان تکامل یافته زبان BCPL
    میباشد که طراح آن مارتین ریچاردز است ،و زبان BCPL از زبان B که طراح آن
    کن تامپسون می باشد ، نتیجه شده است .
    زبان C معمولا” یک زبان میانی نامیده می شود . این بدان معنی نیست که آموزش
    این زبان مشکل است ، یا قدرت آن از زبان های برنامه سازی مثل پاسکال و بیسیک
    کمتر است و یا این که مشکلاتی مشابه زبان اسمبلی برای برنامه نویس ایجاد می کند.
    علت میانی بودن زبان C این است که عناصر زبان های سطح بالا را با خصیصه تابعی
    زبان اسمبلی درهم آمیخته است .برای پی بردن به جایگاه زبان C درمقایسه با سایر
    زبان های برنامه سازی به جدول (۱) مراجعه نمایید .
    جدول (۱) . سطوح زبان های برنامه سازی
    زبان C همانند سایر زبانهای میانی با مفاهیم بیت ، بایت و آدرس که از عناصر
    ابتدایی ماشین هستند سر و کار دارد . یعنی در این زبان می توان محتویات بیت ها
    و بایت ها را تیز تغییر داد .
    برنامه های نوشته شده به زبان C براحتی از ماشینی به ماشین دیگر قابل انتقال
    می باشند . مثلا” برنامه نوشته شده برای کامپیوتر APPL در کامپیوترهای IBM قابل
    اجرا است . این خصیصه را قابل حمل بودن (Portability) زبان می گویند .
    کلیه زبان های برنامه سازی سطح بالا و میانی دارای نوعهای داده (data types)
    هستند . هر نوع داده ، مجموعه ای از مقادیر را مشخص می کند که اعمال خاصی روی
    آنها قابل انجام است . نوع داده ای که در اکثر زبانها وجود دارد عبارتند از :
    اعداد صحیح ، کاراکتری و اعداد اعشاری . C دارای ۵ نوع داده اصلی است که در آن
    تقریبا” تبدیل هر نوع داده به نوع دیگر امکان پذیر است . مثلا” در یک عبارت
    می توان نوع کاراکتری را با نوع عددی صحیح و یا اعشاری ترکیب کرد .
    زبان C خطای زمان اجرا مثل boundray checking را چک نمی کند . منظور از boundray checking
    این است که در آرایه ها تجاوز از حدود مشخص شده ، به راحتی
    امکان پذیر بوده و از نظر کامپایلر با خطایی مواجه نمیشود. این مساله برمیگردد
    به این که در زبان C آرایه یک اشاره گر (pointer) است . در این راستا ، نوع
    پارامترها و آرگومان های توابع نیز در گونه های قدیمی C با یکدیگر مطابقت نشده و
    از نظر کامپایلر با خطا مواجه نمی شد ولی در گونه های جدید C با معرفی الگوی
    تابع (Function prototype) این مشکل رفع شده است . C
    همانند زبان های ALGOL، PASCAL، و… یک زبان ساخت یافته است . یک زبان
    برنامه سازی ساخت یافته امکانات زیادی ، از جمله استفاده از چند ساختار حلقه سازی
    مثل while، do-while،و forو را فراهم می کند . در این گونه زبان ها از goto به
    ندرت استفاده می شود و نوشتن دستورات برنامه در هر ستونی از خط و در هر جای
    فایل امکان پذیر بوده ، مثل زبان فرترن مقید به ستون های خاصی نیستند. استفاده
    از زیربرنامه ها و بلاک ها نیز از خصیصه های این نوع زبان ها هستند . ذکر اسامی
    چند زبان ساخت یافته و غیر ساخت یافته ، در انتخاب زبان برنامه سازی جهت برنامه
    نویسی مفید است . ( جدول (۲) ) .
    جدول (۲) . بعضی از زبانهای ساخت یافته و غیرساخت یافته
    هر برنامه در زبان C دارای خصیصه هایی است که بعضی از آنها عبارتند از : ۱
    در زبان C هر دستور برنامه به یک ; ختم می شود . ۲
    هر دستور میتواند درچند خط ادامه داشته و یک خط ممکن است شامل چند دستور
    باشد . ۳
    حداکثر طول یک خط برنامه ۲۵۴ کاراکتر است . ۴
    در زبان C برنامه نویس می تواند در هر نقطه از برنامه ، بااستفاده از علائم {
    و }و یک بلاک را مشخص کرده و هر متغیری را که می خواهد در آنجا تعریف نماید .
    این متغیرها فقط در آن بلاک معنی خواهند داشت . توجه داریم که هر بلاک مجموعه ای
    از دستورات وابسته به یکدیگر خواهد بود :
    ؤؤ { |
    بلاک | ; مجموعه دستورات } |
    ؤؤ ۵
    برای داشتن توضیحات در برنامه کافی است آنها را دربین /*و *و/ قرار داد: *
    توضیحات /* C
    یک زبان ساخت یافته بلاکی نیست . این بدان معنی است که تعریف یک زیربرنامه
    ( در اینجا تابع ) در زیربرنامه دیگر ( همانند پاسکال ) امکان پذیر نیست و این
    امر از مساله coupling می کاهد . C
    زبان برنامه نویسی سیستم است . منظور از برنامه های سیستم عبارتند از : ۱
    سیستم عامل (Operating system) 2
    مفسر (Interpreter) 3
    ویراستار (Editor) 4
    اسمبلر (Assrmbler) 5
    کامپایلر (Compiler) 6
    مدیریت بانکهای اطلاعاتی (Database management)
    امروزه C در اکثر امور برنامه نویسی مورد استفاده قرار می گیرد . زیرا این
    زبان هم دارای خصیصه ” قابل حمل بودن ” است و هم دارای کارآیی خوبی می باشد و
    سرعت زیاد C بر محبوبیت آن افزوده است . مساله قابل حمل بودن ، یک مساله بسیار
    مهم است زیرا هم موجب صرفه جویی در وقت شده و هم باعث صرفه جویی در هزینه ها
    می گردد .
    زبان C فقط دارای ۳۲ کلمه کلیدی است ( جدول (۳) ) که ۲۷ کلمه کلیدی آن توسط
    ریچی ( طراح زبان ) معرفی شده و ۵ کلمه کلیدی دیگر توسط موسسه استاندارد سازی
    زبان به آن اضافه شده است . این تعداد در مقایسه با ۱۵۹ کلمه کلیدی که در زبان
    بیسیک وجود دارد قابل توجه است .
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  2. کاربرانی که از پست مفید آبجی سپاس کرده اند.


  3. #2
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض پاسخ : مقدمات زبان c - آموزش c

    انواع داده
    همان طور که قبلا” گفته شد در هر زبان برنامه سازی تعدادی از نوع های داده
    وجود دارند که بازه ای را شامل بوده و اعمال خاصی روی آنها انجام پذیر است و در C
    پنج نوع داده اصلی وجود دارد که عبارتند از : char، int،، float،، double، و void
    . در این زبان اندازه و محدوده ای که هر نوع داده اختیار می کند بستگی به
    نوع پردازشگر (Processor) و نحوه پیاده سازی کامپایلر دارد. شناسه هایی ( متغیر
    برچسب ، اسامی توابع و … ) که از نوع char باشند برای ذخیره کردن مقادیری که
    توسط کاراکترهای اسکی تعریف شده اند به کار می روند. شناسه هایی از نوع int برای
    ذخیره کردن مقادیر صحیح ، و از نوع floatو doubleو برای ذخیره کردن اطلاعات عددی
    اعشاری به کار میروند که محدوده آنها توسط تعداد ارقام و دقت آنها مشخص میشود.
    نوع void در مورد توباع به کار می رود .
    نوعهای داده اصلی ( به جز void ) می توانند با عباراتی مثل signed، long، unsigned
    و shortو ترکیب شده و نوع های دیگری را به وجود آورند .



    char
    |
    | 8 | 127- تا | ۱۲۷ unsigned char
    |
    | 8 | 0 تا | ۲۵۵ signed char
    |
    | 8 | 127- تا | ۱۲۷ int
    |
    | 16 | 32767- تا | ۳۲۷۶۷ unsigned int
    |
    | 16 | 0 تا | ۶۵۵۲۵ signed int
    |
    | 16 | 32767- تا | ۳۲۷۶۷ short int
    |
    | 16 | 32767- تا | ۳۲۷۶۷ unsigned
    |
    | 16 | 0 تا | ۶۵۵۲۵ | | | short int |
    signed
    |
    | 16 | 32767- تا | ۳۲۷۶۷ | | | short int |
    long int
    |
    | 32 | َ۲۱۴۷۴۸۳۶۴۷- تا | ۲۱۴۷۴۸۳۶۴۷ |
    float | 32 | 6 رقم دقت | |
    double | 64 | 10 رقم دقت | |
    long double | 128 | 10 رقم دقت | |
    signed | 32 | َ۲۱۴۷۴۸۳۶۴۷- تا | ۲۱۴۷۴۸۳۶۴۷ | | | long int |
    |
    | uunsigned long int 32 | 0 تا | ۴۲۹۴۹۶۷۲۹۵
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  4. کاربرانی که از پست مفید آبجی سپاس کرده اند.


  5. #3
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض پاسخ : مقدمات زبان c - آموزش c

    متغیر
    متغیر، نامی برای یک محل حافظه است که محتویات آن در طول اجرای برنامه ممکن
    است تغییر کند . اسم هر متغیر شامل حروف aتا zا، A،تا Zا ، ارقام ۰تا ۹ا و خط
    ربط است . به طوری که با یکی از حروف و یا خط ربط شروع شده باشند . طول نام هر
    متغیر بستگی به نوع کامپایلر دارد که معمولا”از ۱ز تا ۳۱ کاراکتر قابل استفاده
    است . بعضی از اسامی مجاز و غیر مجاز در زیر آمده اند :
    اسامی مجاز برای متغیرها | اسامی غیرمجاز برای متغیرها | | ۱count | count |
    | high! there | test123 |
    | grad.1 | high | تعریف نوع متغیر
    برای استفاده از متغیرها درC باید ابتدا آنها را تعریف کنیم . تعریف متغیرها
    شامل نامگذاری و تعیین نوع آنها است که به صورت زیر انجام می شود :
    <نوع> <اسامی متغیرها>
    یکی از انواع است که قبلا<نوع>” شامل متغیرهایی <اسامی متغیرها> ذکر کردیم و
    است که می خواهیم دارای آن نوع باشند . برای تعریف چند متغیر در یک دستور باید
    اسامی با کاما از یکدیگر جدا گردد : int var1/ var2; دستور فوق دو متغیر به اسامی var2و var1و را از نوع int تعریف می کند . float flovar1/ flovar2;
    دستور فوق ، دو متغیر به نام های flovar2و flovar1و را از نوع float تعریف
    می کند . double d1;
    char ch;
    اولین دستور ، d1 را از نوع double و دستور دوم متغیر ch را از نوع char
    تعریف می کند .
    مقدار دادن به متغیرها
    برای مقدار دادن به متغیرها می توان به دو طریق عمل کرد: ۱ به هنگام تعریف
    متغیر . ۲ پس از تعریف متغیر . به عنوان مثال : int a=0;
    int b/ c/ d/ e=0;
    char ch= ‘a’;
    b=0;
    c=d=0;
    دستور اول ضمن تعریف a از نوع int مقدار آن را برابر با ۰ قرار می دهد .
    دستور دوم چهار متغیرb، c،، d،و eو را از نوع int تعریف کرده وفقط مقدار متغیر ch
    را از نوع کاراکتری تعریف کرده و مقدار آن را برابر با حرف a قرار می دهد .
    دستور چهارم مقدار متغیر b را برابر با ۰ قرار می دهد . دستور پنجم مقدار دو
    متغیر cو dو را برابر صفر قرار می دهد و این دستور ، انتساب چندتایی را مشخص
    می کند .
    همان طور که قبلا”گفته شد مقدار متغیرها ممکن است در طول اجرای برنامه تغییر
    کند . با استفاده از کلمه کلیدی const می توانیم متغیرهایی را تعریف کنیم که
    مقدار آنها در طول اجرای برنامه ثابت باشد . برای تعریف این نوع متغیرها بصورت
    زیر عمل می شود :
    <نوع> <اسامی متغیرها>const
    نوع ، یکی از نوع هایی است که قبلا” ذکر شده و اسامی متغیرها ، مشخص کننده
    متغیرهایی است که باید به صورت ثابت تعریف شوند : const int a = 10 / b = 20;
    دستور فوق دو متغیر aو bو را از نوع int تعریف کرده و مقادیر آنها را برابر می دهد . این مقادیر در طول اجرای برنامه قابل تغییر هستند .
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  6. کاربرانی که از پست مفید آبجی سپاس کرده اند.


  7. #4
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض پاسخ : مقدمات زبان c - آموزش c

    عملگرها
    عملگرها نمادهایی هستند که برای انجام اعمال خاصی مورداستفاده قرارمیگیرند.
    عملگرها در زبان C از تنوع زیادی برخوردارند . در C چهار دسته عملگر به نامهای
    ( محاسباتی ، رابطه ای ، منطقی و دستکاری بیت ها ) وجود دارند که آنها را بررسی
    می کنیم .
    عملگرهای محاسباتی
    عملگرهای محاسباتی که در C مورد استفاده قرار می گیرند در جدول (۱) فهرست
    شده اند .
    ردیف | عملگر | نام | مثال | ۱ | - | تفریق و منهای یکانی | |-xx/x-y 2 | + | جمع | | x+y 3 | * | ضرب | | x*y 4 | / | تقسیم | | x/y 5 | % | باقیمانده تقسیم | | x%y 6 | - - | کاهش یک واحد * | - -xیا xا - |- ۷ | ++ + | افزایش یک واحد * | x+ + یا | + +xا * decrement ** increment جدول (۱) . عملگرهای محاسباتی
    عملگرهای ردیف ۱تا ۴ا در جدول (۱) تقریبا” در همه زبانهای برنامه سازی وجود
    دارند. عملگر % که در بقیه زبانها با علامت دیگری ( مثلا” در بیسیک به صورت MOD)
    وجود دارد باقیمانده تقسیم دو عدد را محاسبه می کند : x= 13;
    y= 5;
    z= x%y;
    اگر سه دستور فوق را توسط ماشین اجرا کنیم مقدار۳ که باقیمانده تقسیم ۱۳ بر ۵
    است در z قرار می گیرد .
    عملگر کاهش ، یک واحد از عملوند مربوط کم می کند . x= 10;
    - - x;
    دستور x - - از x یک واحد کم می کند و نتیجه را در x قرار می دهد که معادل
    دستور ۱ + َx = x-1 است .
    عملگر افزایش ، یک واحد به عملوند مربوطه اضافه می کند : x= 40;
    ++x;
    دستور ++x معادل دستور x = + 1 است که موجب افزودن یک واحد به x می شود .
    عملگرهای افزایش و کاهش یک واحد را می توان بعداز عملوند مربوطه نیز به کار
    برد مثل : x + + و - - x .
    اگر در یک عبارت از عملگرهای افزایش و کاهش یک واحد ، استفاده کنیم به کار
    بردن این عملگرها در قبل و بعد از عملوند مربوطه ، با یکدیگر متفاوت است . بدین
    معنی که اگر این عملگرها قبل از عملوند باشند مقدار فعلی عملوند مورد استفاده
    قرار گرفته و سپس عملگرها بر روی آن عمل میکنند، ولی اگر بعد از عملوند مربوطه
    باشند پس از انجام عمل افزایش و کاهش یک واحد به آنها مقادیر جدید ، در عبارت
    مورد استفاده قرار می گیرند. استفاده ازعملگرهای افزایش و کاهش یک واحد ، سرعت
    محاسباتی را بالا می برد .
    اگر در یک عبارت از چند عملگر محاسباتی استفاده شود ، مساله تقدم عملگرها
    مطرح می شود . ( جدول (۲) ) .
    بالاترین تقدم - - | + + |
    تفریق یکانی - | | * / % |
    |
    پایین ترین تقدم - | + جدول (۲) . تقدم عملگرهای محاسباتی همان طور که در جدول (۲) مشاهده می شود ، عملگرهای افزایش و کاهش یک واحد
    دارای بالاترین تقدم و عملگرهای جمع و تفریق دارای کمترین تقدم هستند و منهای
    یکانی ، دارای دومین تقدم است . عملگرهایی که در یک سطر آمده اند ، مثل - و +
    بدین معنی است که دارای تقدم مکانی نسبت به یکدیگر هستند. در این صورت هر کدام
    از غملگرها که اول ظاهر شود ، زودتر انجام خواهد شد .
    عملگرهای رابطه ای
    عملگرهای رابطه ای برای تشخیص ارتباط بین عملوندها یا مقایسه آنها مورد
    استفاده قرار می گیرند ( جدول (۳) ) .
    عملگر | نام | مثال | > | بزرگتر | y >x | > = >|> بزرگتر مساوی | =y >x | > < | کوچکتر | y < = <|< کوچکتر مساوی | =y < == | = مساوی بودن | | x=x==y != | ! نامساوی | | x=x!=y جدول (۳) . عملگرهای رابطه ای نکته قابل ذک درمورد عملگرهای رابطه ای این است که عملگر== برای تشخیص مساوی
    بودن دو عبارت مورد استفاده قرار می گیرد. این عملگر با عملگر= که برای انتساب
    یک عبارت به یک متغیر استفاده می شود متفاوت است .
    عملگرهای منطقی
    عملگرهای منطقی ( جدول (۴) ) بر روی عملوندهای منطقی عمل میکنند. عملوندهای
    منطقی دارای دو ارزش درستی و نادرستی هستند .
    عملگر | نام | مثال | && | & و(AND) z || x || | | یا (OR) z || x ! | نقیض (NOT) | !x | جدول (۴) . عملگرهای منطقی ارزش نادرستی درزبان C با مقدار صفر و ارزش درستی با مقادیر غیراز صفر مشخص
    میشود. عملگر منطقی ! دارای بالاترین تقدم و عملگر || دارای کمترین تقدم در بین
    عملگرهای منطقی هستند . چون عملگرهای منطقی رابطه نزدیکی با عملگرهای رابطه ای
    دارند می توان تقدم آنها را نسبت به یکدیگر بیان کرد ( جدول (۵) ) .
    بالاترین تقدم | ! | > >= < <= |
    | == != |
    | && |
    |
    پایین ترین تقدم | || جدول (۵) . تقدم عملگرهای منطقی و رابطه ای عملگرهای محاسباتی و رابطه ای با یکدیگر ترکیب شده و عملگرهای دیگری را بنام
    عملگرهای محاسباتی رابطه ای ایجاد می کنند ( جدول (۶) ) . تقدم این عملگرها از
    سایر عملگرها پایین تر است .
    عملگر | نام | مثال | += | + انتساب جمع | x+=y | = | انتساب تفریق | x-=y | *= | * انتساب ضرب | x*=y | /= | / انتساب تقسیم | x/=y | %= | % انتساب باقیمانده تقسیم | x%=y |
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  8. کاربرانی که از پست مفید آبجی سپاس کرده اند.


  9. #5
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض پاسخ : مقدمات زبان c - آموزش c

    عملگرهای محاسباتی و رابطه ای در جدول (۶) ، عبارت x + = y معادل با x = x + y است و عبارت x % = y معادل y
    x = x % است که موجب انتساب باقیمانده تقسیم xبر yربه x می شود : int a=10;
    int b=20;
    a+= b;
    با اجرای دستورات فوق متغیر a برابر۳۰ خواهد بود. زیرا دستور a + = b معادل
    دستور a = a + b است .
    عملگر دستکاری بیت ها
    ازآنجایی که زبان C طوری طراحی شده است که بتواند دربسیاری ازموارد جایگزین
    زبان اسمبلی گردد. باید قادر باشد کلیه اعمال ( یا حداقل بسیاری از اعمال ) که
    در زبان اسمبلی قابل انجام هستند را انجام دهد . یکی از اعمالی که در زبان
    اسمبلی براحتی انجام پذیر است . انجام اعمالی بر روی بیت های یک بایت یا یک
    کلمه از حافظه است که در زبان C برای انجام این منظور از عملگرهایی استفاده
    می شود که به عملگرهای بیتی معروفند ( جدول (۷) ) . این عملگرها انجام اعمال
    تست ، مقدار دادن و یا انتقال (shift) بیت ها را در یک بایت یا کلمه حافظه
    امکان پذیر می نمایند. عملگرهای بیتی فقط بر روی متغیرهایی از نوع charیا intا
    عمل می کنند و بر روی متغیرهایی از نوع float، double،، long double،، void، و
    یا سایر متغیرها قابل اجرا نیستند . عملگرهای بیتی &، |،و ~و(AND(، OR،و NOTو)
    مشابه عملگرهای منطقی AND، OR،و NOTو عمل می کنند با این تفاوت که عمل آنها بر
    روی یک بیت است . با فرض این که pو qو دو بیت مختلف باشند ، نحوه عمل عملگر ^
    را در ذیل مشاهده می نمایید .
    p | q | p^q |
    0 | 0 | 0 |
    1 | 0 | 1 |
    1 | 1 | 0 |
    عملگرهای بیتی در جدول (۷) مشاهده می شوند .
    عملگر | نوع عمل |
    & | AND ( و ) |
    | | OR ( یا ) |
    ^ | XOR ( یا انحصاری ) |
    ~ | NOT ( نقیض یا متمم یک ) |
    >> | انتقال به سمت راست (shift right) |
    << | انتقال به سمت چپ (shift left) |
    جدول (۷) . عملگرهای بیتی
    همان طور که مشاهده شد ، نتیجه عملگر بیتی ^ وقتی یک (۱) است که یکی از
    عملوندهای آن صفر و دیگری یک باشد . به عبارت دیگر ، نتیجه عملگر بیتی ^ وقتی
    صفر است که هر دو عملوند آن صفر و یا هر دو یک باشند .
    عملگرهای &، |،و ^و و << ، >> بر روی دو عملوند عمل می کنند اما عملگرهای ~
    به صورت ذیل به کار می روند: >> و <<بر روی یک عملوند عمل می کنند . عملگرهای
    متغیر >>تعداد انتقال
    متغیر <<تعداد انتقال
    و <<در روش کلی فوق ، متغیر ، یک بایت یا کلمه ای از حافظه است که عملگرهای
    باید بر روی آن عمل کنند . تعداد انتقال عددی است که مشخص می کند بیت های >>”
    متغیر ” باید چند محل به سمت راست و یا چپ انتقال یابند . همان طور که قبلا”
    برای انتقال به چپ مورداستفاده << برای انتقال به راست و عملگر>>گفته شد عملگر
    قرار می گیرد . هر انتقال به چپ ، معادل با تقسیم کردن مقدار متغیر به ۲ و هر
    انتقال به راست ، معادل ضرب کردن در ۲ است .
    مثال ۱ :
    تعداد عددی متغیر | x مقدار بیتی متغیر | x دستورات زبان | C
    | char x; | | |
    | x=7 ; | 00000111 | 7 |
    | x<<1 ; | 00001110 | 14 |
    | x<<3 ; | 01110000 | 112 |
    | x<<2 ; | 11000000 | 192 |
    | x>>1 ; | 01100000 | 96 |
    | x>>2 ; | 00011000 | 24 |
    همان طور که مشاهده می کنید پس از اجرای دستور ۲<< x< اطلاعات واقعی از بین
    می روند و مساله ضرب در ۲ شدن ، در اینجا صدق نمی کند .
    عملگر ~ در یک بایت یا کلمه حافظه ( یک متغیر ) کلیه بیت ها را نقیض میکند.
    یعنی بیت صفر را به بیت یک و بیت یک را به بیت صفر تبدیل می نماید . لذا اگر
    این عملگر دو بار بر روی یک متغیر عمل کند وضعیت بیت های متغیر به حالت اول
    برمی گردند .
    مثال ۲ : x :00101100
    ~x :11010011
    ~x :00101100
    همان طور که مشاهده می شود بیت های ردیف اول و ردیف آخر دارای یک وضعیت
    میباشند ( بیت های ردیف آخر نتیجه دوبار اجرای عملگر نقیض بر روی متغیر است ).
    نکته ای که در مورد عملگرهای بیتی باید در نظر داشت این است که این عملگرها
    معمولا” در مبدل های دستگاهها (device drivers) مورد استفاده قرار می گیرند .
    مثل برنامه هایی که برای کار با modem و با چاپگر نوشته می شوند . زیرا در این
    گونه موارد معمولا” تست کردن بیت های یک متغیر مد نظر خواهد بود .
    عملگر ?
    عملگر ? با تست یک شرط ، مقداری را به یک متغیر نسبت می دهد . این عملگر به
    صورت زیر استفاده می شود : exp3
    := exp1 ? exp2 متغیر exp1
    ، exp2،و exp3و سه عبارت هستند . نحوه عمل ? به این صورت است که : ابتدا
    عبارت اول (exp1) ارزیابی می شود چنانچه این عبارت دارای ارزش true ( ارزش
    درستی ) باشد مقدار exp2 پس از ارزیابی ، در متغیر ذکر شده قرار می گیرد وگرنه
    عبارت سوم (exp3) ارزیابی شده و نتیجه آن به متغیر ذکر شده منتقل می شود . x= 10;
    y= x>9 ? 100 :200;
    نحوه عمل در دو دستور فوق به این صورت است که عبارت ۹> x> ارزیابی می شود .
    چون این عبارت یک ارزش منطقی true دارد ( ۹> x> است ) لذا عدد ۱۰۰ در متغیر y
    قرار می گیرد .
    عملگرهای &و *و
    عملگر & یک عملگر یکانی است که آدرس عملوند خود را مشخص می کند و به صورت
    زیر به کار می رود : ;
    نام عملوند &
    مثل : int num;
    p= &num;
    با اجرای دستورات فوق آدرس متغیر num در متغیر p قرار می گیرد. لذا عملگر &
    به معنی ” آدرس ” است . عملگر * همانند عملگر & یک عملگر یکانی است که محتویات
    یک آدرس حافظه را مشخص می کند و به صورت زیر به کار می رود . ;
    نام عملوند *
    مثل : p= &num;
    m= *p;
    دستور اول ، آدرس متغیر num را در p قرار میدهد و دستور دوم ، محتویات محلی
    را که آدرس آن در p قرار دارد ( محتویات num ) ، را در m قرار میدهد. بنابراین
    مفهوم ” * محتویات آدرس ” می باشد . دو دستور فوق معادل دستور m = num; است که
    موجب انتقال محتویات متغیر num به متغیر m می شود .
    عملگر کاما (/)
    عملگر کاما برای انجام چند عمل در یک دستور ، به کار رفته و به صورت زیر
    استفاده می شود :
    ( عبارت ۲ و عبارت ۱) =) متغیر
    عملگر کاما موجب می شود تا ” عبارت ” ۱ ارزیابی شده و سپس نتیجه ارزیابی ”
    عبارت ” ۲ با یکدیگر ارتباط دارند . x =( y = 3 / y + 5);
    ابتدا y باربر با ۳ قرار می گیرد و نتیجه عبارت y + 5 که برابر ۸ است در x
    قرار خواهد گرفت .
    عملگر sizeof
    این عملگر که عملگر زمان ترجمه نامیده می شود، برای محاسبه طول یک نوع و یا
    یک متغیر به کار رفته و به صورت زیر استفاده می شود . ;
    (نوع) sizeof ;
    متغیر sizeof
    اگر بخواهیم با استفاده از این عملگرها، طول یک نوع مثل int، double و غیره
    را محاسبه کنیم باید آن را در داخل پرانتز قرار دهیم : اما اگر بخواهیم طول یک
    متغیر را محاسبه کنیم نیازی به استفاده از پرانتز نیست . به عنوان مثال : int a/ b/ c;
    a= sizeof( int);
    b= sizeof c;
    دستور اول سه متغیر a، b،ز cز را به صورت int تعریف می کند . دستور دوم طول
    نوع int را محاسبه کرده و در متغیر a قرار می دهد . دستور سوم طول متغیر c را
    محاسبه کرده و در متغیر b قرار می دهد. این دستور برای مساله portability زبان C
    بسیار مفید است . بعنوان مثال ممکن است طول نوع int از ماشینی به ماشین دیگر
    متفاوت باشد . نکته ای که در مورد این عملگر باید توجه داشت این است که معمولا”
    روش اول مورد استفاده قرار می گیرد و روش دوم چندان جالب نیست .
    تقدم عملگرها در حالت کلی
    وقتی که در یک عبارت چندین عملگر مورد استفاده قرار می گیرند تقدم عملگر به
    صورت جدول (۸) خواهد بود .
    بالاترین تقدم () | | ! ~ + + - - * & sizeof |
    | * / % |
    | + - |
    | << >> |
    | << = >> = |
    | == =! |
    | & |
    | ^ |
    | | |
    | && |
    | || |
    | ? |
    | = +=- = *= /= %= |
    | / | جدول (۸) . تقدم عملگرها در حالت کلی اگر در یک عبارت چندین عملگر وجود داشته باشد و درآن از پرانتز نیز استفاده
    شود ، تقدم پرانتز از سایر عملگرها بیشتر بوده و عبارت داخل پرانتز زودتر
    ارزیابی می شوند .
    مثال ۳ : int x=5/ y=10/ k=4;
    int s;
    s= x*((x+y-)3)/k;
    درنتیجه اجرای چند دستور فوق مقداری که درs قرار می گیرد برابر با ۱۵ خواهد
    بود . سپس عدد ۳ از ۱۵ کم می شود که ۱۲ حاصل می گردد و بعداز آن عمل ضرب انجام برابر با ۶۰ ( ۵ * ۱۲ ) می باشد و عملگر تقسیم (/) آخرین
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  10. کاربرانی که از پست مفید آبجی سپاس کرده اند.


  11. #6
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض پاسخ : مقدمات زبان c - آموزش c

    تبدیل انواع
    وقتی که متغیرهای با نوع های مختلف در یک عبارت با یکدیگر ترکیب می شوند
    باید تبدیل نوع صورت گیرد . قاعده کلی این است که نوع های با طول کوچک تر به
    نوع هایی با طول بزرگتر تبدیل می شوند . مثلا” اگر دو متغیر از نوع کاراکتری و
    عددی صحیح با یکدیگر ترکیب شوند ، نوع کاراکتری به عددی صحیح تبدیل می شود .
    مثال ۱: char ch;
    int i;
    float f;
    double d;
    result =( ch/i )+( f*d( - )f+i)
    | | | | | |
    int |double | | float
    | | | | | |
    | | | | | |
    ؤؤؤ ؤؤؤ ؤؤؤ | | |
    int double float
    | | |
    | | |
    |
    ؤؤؤؤؤؤؤؤؤ | |
    | |
    double |
    | |
    | |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤ |
    double
    همان طور که از مثال ۱ پیداست ، نوع نتیجه double خواهد بود .
    علاوه بر تبدیل انواع در عبارات ، در احکام انتساب نیز ممکن است تبدیل انواع
    صورت گیرد . در تبدیل انواع اطلاعاتی از بین می روند که باید در نتیجه حاصل از
    احکام انتساب دقت کافی به خرج داد. در ذیل تبدیل انواع در احکام انتساب مشاهده
    می شود : int x;
    char ch;
    float f;
    ch= x;
    x= f;
    f= ch;
    f= x;
    کلیه احکام انتساب فوق قابل انجام بوده و از طرف کامپایلر زبان C هیچ گونه
    خطایی گزارش نمی شود . اطلاعاتی که ممکن است در تبدیل انواع از بین بروند . در
    جدول (۱) آمده است .
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
    نوع منبع | نوع مقصد | اطلاعاتی که ممکن است از بین برود |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
    | signed char | char اگر مقدار بزرگتر از۱۲۷ باشد مقصد منفی خواهد شد |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
    | short 8 | char بیت با ارزش |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
    | int 8 | char بیت با ارزش |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
    | long int | char َ۲۴ بیت با ارزش |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
    | long int | int َ۱۶ بیت با ارزش |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
    | float | int قسمت کسری یا بیشتر و نتیجه حاصل گرد می شود |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
    | double | float قسمت کسری و یا بیشتر و نتیجه حاصل گرد می شود |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ
    جدول (۱) . تبدیل انواع
    دو نکته را باید در مورد تبدیل انواع ( جدول (۱) ) به خاطر داشته باشیم : ۱
    بعضی از تبدیل انواع در جدول فوق وجود ندارد مثل doubleبه int . در این
    موارد می توان double را به float تبدیل کرده و سپس float را به int تبدیل نمود. ۲
    وقتی نوع بزرگتری به نوع کوچکتری انتساب داده می شود . قسمتی از اطلاعات
    از دست می روند . همان طور که می دانیم ، معمولا” اعداد صحیح (int) در ۲ بایت و
    اطلاعات از نوع char در یک بابت ذخیره می شوند :
    ؤؤؤؤؤؤؤؤؤؤؤ char
    ؤؤؤؤؤؤؤؤؤؤؤ
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ int
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ
    بایت کم ارزش بایت باارزش
    وقتی یک متغیر int به یک متغیر char انتساب داده می شود بایت کم ارزش متغیر
    از نوع int به متغیر char منتقل شده ولی با ارزش متغیر int در متغیر char جایی میگوییم در انتساب متغیرintبه char ، ۸، بیت با ارزش از دست میرود.
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  12. کاربرانی که از پست مفید آبجی سپاس کرده اند.


  13. #7
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض پاسخ : مقدمات زبان c - آموزش c

    ساختمان زبان C و چند تابع ورودی خروجی
    همانطور که قبلا” گفته شد C زبان ساخت یافته است و هر برنامه در این زبان
    شامل یک یا چند تابع است . یکی از این توابع که اسم آن ()main است به عنوان
    تابع اصلی برنامه و بقیه توابع بعنوان تابع عرضی هستند . اجرای برنامه با تابع
    اصلی ، یعنی ()main شروع می شود. در نوشتن برنامه ، باید تابع اصلی و سپس بقیه
    توابع را بنویسیم . تعریف یک تابع در داخل تابع دیگر امکان پذیر نیست ولی هر
    تابع می تواند یک یا چند تابع دیگر را فراخوانی نماید .
    برخلاف زبانهای دیگر که زیر روال و توابع دو چیز جداگانه ای هستند در C همگی
    تحت عنوان تابع بررسی می شوند .
    کلیه متغیرهایی که در برنامه استفاده می شوند باید تعریف شوند و منظور از
    تعریف متغیر ، نامگذاری و تعیین نوع آن است . متغیرها در C مقدار اولیه ندارند
    و تا متغیری مقدار نگیرد قابل استفاده نخواهد بود . شکل (۱) ساختمان ساده یک
    برنامه به زبان C را نشان می دهد که پس از مطالعه مفاهیم دیگری از زبان C ، آن
    را تکمیل تر خواهیم کرد .
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤ | main )(|
    | { |
    |
    تعریف متغیرها | | . |
    | . |
    | . |
    | } |
    | f1 )(|
    | { |
    | . |
    | . |
    | . |
    | } |
    | f2 )(|
    | { |
    | . |
    | . |
    | . |
    | } |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤ
    شکل (۱) . ساختمان ساده ای از برنامه C
    اولین تابع برنامه ، ()main است . ابتدا متغیرهای مورد استفاده این تابع
    تعریف ، سپس دستورات تابع اصلی با یک { شروع و به } ختم می شود . بعضی از
    دستورات تابع اصلی ممکن است فراخوانی توابع ()f1 ، ()f2 وغیره نیز باشند. ()f1
    ()f2 دو تابع فرعی هستند که در برنامه وجود دارند همانطوری که مشاهده می گردد
    تعریف توابع فرعی پس از تابع اصلی صورت می گیرد. در زبان C فرض میشود که نتایج
    حاصل از تابع بصورت int است که اگر غیر از این باشد ، باید ضمن تعریف متغیرها وع توابع استفاده شده در برنامه به کامپایلر اعلان شود
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  14. کاربرانی که از پست مفید آبجی سپاس کرده اند.


  15. #8
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض پاسخ : مقدمات زبان c - آموزش c

    تابع ()printf
    این تابع برای انتقال اطلاعات از کامپیوتر به صفحه نمایش مورد استفاده قرار
    می گیرد و بصورت زیر استفاده می شود : ;
    ( عبارت دیگر ” / عبارت ” ۱) printf) ”
    عبارت ” ۱ شامل تعدادی کاراکترهای کنترلی ، کاراکترهای قالب جهت تعیین شکل
    خروجی و رشته های دیگری است که باید به خروجی منتقل شوند . ” عبارت دیگر ” شامل
    اطلاعاتی هستند که با فرمت مشخص شده در ” عبارت ” ۱، باید به خروجی منتقل شوند.
    کاراکترهایی که برای تعیین فرمت خروجی مورد استفاده قرار می گیرند با کاراکتر %
    شروع می شوند ( جدول ۱ ) .
    کاراکتر | نوع اطلاعات که باید به خروجی منتقل شود | %C | % یک کاراکتر | |
    %d | % اعداد صحیح دهدهی مثبت و منفی | |
    %i | % اعداد صحیح دهدهی مثبت و منفی | |
    %e | % نمایش علمی عدد همراه با حرف e | |
    %E | % نمایش علمی عدد همراه با حرف E | |
    %f | % عدد اعشاری ممیز شناور | |
    %g | % اعداد اعشاری ممیز شناور | |
    %G | % اعداد اعشاری ممیز شناور | |
    %O | % اعداد مبنای ۸ مثبت | |
    %S | % رشته ای از کاراکترها ( عبارت رشته ای ) | |
    %U | % اعداد صحیح بدون علامت ( مثبت ) | |
    %x | % اعداد مبنای ۱۶ مثبت با حروف کوچک | |
    %X | % اعداد مبنای ۱۶ مثبت با حروف بزرگ | |
    %p pointer | % ( اشاره گر ) | |
    %n | % موجب میشود تا تعداد کاراکترهایی که تا قبل | |
    | ازاین کاراکتر به خروجی منتقل شده اند شمارش | |
    | شده و در پارامتر متناظر با آن قرار گیرد . | |
    %% | % علامت % | جدول (۱) . کاراکترهای فرمت در تابع ()printf کاراکترهای کنترلی که در تابع ()printf بکار میروند در جدول (۲) آمده است .
    بعضی از کاراکترهای کنترلی برای انتقال خروجی به یک محل معین از صفحه نمایش
    مورد استفاده قرار می گیرند .
    | کاراکتر عملی که انجام می شود | \f | \ موجب انتقال کنترل به صفحه جدید می شود | |
    \n | \ موجب انتقال کنترل به خط جدید می شود | |
    \t | \ انتقال به ۸ محل بعدی صفحه نمایش | |
    \” | \ چاپ کوتیشن (”) | |
    \’ | \ چاپ کوتیشن (’) | |
    \۰ NULL | \ رشته تهی | | back slash | \\ |
    |
    \V | \ انتقال کنترل به ۸ سطر بعدی | |
    \N | \ ثابت های مبنای ۸( N( عدد مبنای ۸ است ) | |
    \xN | \ ثابت های مبنای ۱۶( N( عدد مبنای ۱۶ است ) |
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  16. کاربرانی که از پست مفید آبجی سپاس کرده اند.


  17. #9
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض پاسخ : مقدمات زبان c - آموزش c

    کاراکترهای کنترلی چند دستور متوالی که شامل تابع ()print باشند ، خروجی خود را بر روی یک سطر
    منتقل یم کنند . مگر این که با پارامتر کنترلی \n کنترل را به سطر بعدی منتقل
    کنیم .
    مثال ۱:
    main)(

    {

    printf(" i like %c "/'c' );

    printf("%s"/"very much." );

    } خروجی حاصل از اجرای برنامه فوق بصورت ذیل خواهد بود : i like c very much.
    با استفاده از \n می توانیم خروجی را در چند سطر داشته باشیم . main)(
    {
    printf(”this is second program.\n” );
    printf(”output is in two line.” );
    }
    خروجی حاصل از اجرای برنامه فوق بصورت ذیل است : this is second program.
    output is in two line.
    مثال ۲: main)(
    {
    int num ;
    printf(”the address of num is:” );
    printf(” %p”/ &num );
    }
    در مثال فوق عبارت &num آدرس متغیر num را مشخص می کند که برای نوشتن آن از
    کاراکتر فرمت %p استفاده شده است . نمونه ای از خروجی مثال ۲ بصورت زیر است . the address of num is : 6A30:OFE4
    اگر در تابع ()printf چند کاراکتر فرمت داشته باشیم ، هر کاراکتر با یک عنصر
    داده که باید به خروجی برود تطبیق داده می شود : main)(
    {
    int a=10 ;
    float b=20 ;
    printf(” a is:%d/b is :%f”/a/b);
    }
    خروجی حاصل از اجرای برنامه فوق بصورت ذیل است : a is:10/b is:20:000000
    مثال ۳: main)(
    {
    unsigned int num ;
    num=100 ;
    printf(”the value of num is:%u”/num);
    }
    همانطوری که در مثال ۳ مشاهده می شود ، برای چاپ عدد num که بصورت عدد صحیح
    بدون علامت تعریف شد ، از %u استفاده شده است .
    خروجی حاصل از اجرای برنامه مثال ۳ به صورت ذیل است : the value of num is:100
    مثال ۴: main)(
    {
    double d ;
    d=le+007 ;
    printf(”the value of d is:%e\n”/d);
    printf(”the value of d is:%E\n”/d);
    printf(”the value of d is:%g\n”/d);
    }
    خروجی حاصل از اجرای برنامه مثال ۴ بصورت ذیل خواهد بود : the value of d is:1.00000e+07
    the value of d is:1.00000E+07
    the value of d is:1e+07
    همانطور که مشاهده می شود برای چاپ اعدادی که بصورت نماد علمی باشند میتوان
    از کاراکترهای فرمت % e، % E،و % gو استفاده کرد .
    مثال ۵: main)(
    {
    float f=12.50 ;
    int t=10 ;
    printf(”\n f is:%f”/f );
    printf(” tenper is:%%%d”/t );
    }
    خروجی حاصل از اجرای برنامه فوق بصورت زیر است : f is:12.500000/tenper is:%10
    در مثال ۵ برای چاپ علامت % از کاراکتر %% و برای چاپ متغیر f از نوع float
    می باشد از %f استفاده شده است .
    کاراکتر فرمت %n از سایر کاراکترهای فرمت متفاوت است . این کاراکتر بجای
    انتقال مقادیری به خروجی ، موجب می شود تا تعداد کارکترهایی که تا قبل از این
    کاراکتر به خروجی منتقل شده اند ، شمارش شده و در پارامتر متناظر با آن قرار
    بگیرد .
    مثال ۶: main)(
    {
    printf(”\neach\tword\tis\n” );
    printf(”tabbed\tover\tonce” );
    }
    خروجی از اجرای برنامه فوق بصورت زیر خواهد بود : each word is
    tabbed over once
    کاراکتر کنترلی \b موجب انتقال مکان نما به اندازه یک کاراکتر به عقب میشود
    ( بسمت چپ ). کاراکترهای کنترلی \ “و \و برای چاپ کوتیشن درخروجی مورد استفاده
    قرار می گیرند .
    تعیین طول میدان در تابع ()printf
    در حین انتقال اطلاعات توسط تابع ()printf میتوانیم طول میدان خروجی را مشخص
    کنیم . در این مورد می توانیم محل نقطه اعشار و تعداد ارقام اعشار را نیز تعیین
    کنیم . تعیین طول میدان در جدول بندی ها بسیار مفید است . طول میدان ، بصورت w.d
    است که در اعداد اعشاری ممیز شناور ، w طول میدان و d تعداد ارقام اعشار را
    مشخص می کند .
    مثال ۷: main)(
    {
    printf(”\n%8.1f %8.1f %8.1f\n”
    /3.0/12.5/523.3 );
    printf(”\n%8.1f %8.1f %8.1f\n”
    /300.0/1200.5/5300.3 );
    }
    خروجی حاصل از اجرای برنامه فوق بصورت زیر است : ۳٫۰ ۱۲٫۵ ۵۲۳٫۳
    ۳۰۰٫۰ ۱۲۰۰٫۵ ۵۳۰۰٫۳
    همانطورکه مشاهده می گردد طول میدان برابر با ۸ و تعداد ارقام اعشار، برابر
    با یک که در منتهاالیه سمت راست میدان قرار گرفته ، منظور شده است . برای توضیح
    بیشتر ، عدد ۵۳۰۰/۳ را در حافظه نشان می دهیم :
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤ | | | ۵ | ۳ | ۰ | ۰ | . | ۳ |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤ
    اگر فرمت w.d که طول میدان را مشخص می کند در مورد رشته ها استفاده گردد ، w
    حداقل طول میدان و d حداکثر کاراکترهای قابل چاپ را مشخص می کند .
    اگر w.d در مورد اعداد صحیح بکار برده شود ، w مشخص کننده حداقل طول میدان
    و d تعیین کننده حداکثر طول میدان است .
    مثال ۸: main)(
    {
    printf(”%7.4f\n”/123.1234567 );
    printf(”%3.8d\n”/1000 );
    printf(”%10.16a\n”/”this is a” );
    printf(” simple test” );
    }
    خروجی حاصل از اجرای برنامه فوق بصورت زیر است : ۱۲۳٫۱۲۳۵
    ۰۰۰۰۱۰۰۰
    this is a simple
    در خروجی اول ، تعداد ارقام اعشاری ۴ در نظر گرفته شده که بقیه ارقام حذف
    شده اند و ضمنا” عدد حاصل گرد شده است .
    در خروجی دوم که : میدان ۳/۸ است عدد صحیح ۱۰۰۰ چاپ شده است .
    در خروجی سوم از رشته this is a simple به اندازه ۱۶ کاراکتر چاپ شده است .
    در حالت معمولی ، خروجی حاصل در سمت راست میدان قرار می گیرد که می توان با
    قرار دادن علامت منها ( - ) بلافاصله پس از علامت % ، اطلاعات را در سمت چپ میدان
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  18. کاربرانی که از پست مفید آبجی سپاس کرده اند.


  19. #10
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض پاسخ : مقدمات زبان c - آموزش c

    تابع ()scanf
    این تابع برای خواندن اطلاعات از ورودی استاندارد ( صفحه کلید ) بکار رفته و
    بصورت زیر استفاده می شود : ;
    (آدرس متغیرها ، ” کاراکترهای فرمت “) scanf
    کاراکترهای فرمت ، نوع اطلاعاتی که باید خوانده شوند را مشخص می کند. و آدرس
    متغیرها، مشخص کننده محل هایی از حافظه هستند که اطلاعات ورودی باید درآن محلها
    قرار گیرند. همانطور که قبلا” دیده ایم آدرس متغیرها را با عملگر & مشخص میکنیم .
    در تابع scanf همانند تابع printf از تعدادی کاراکترهای فرمت استفاده می شود .
    ( جدول ۱ ) .
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤ |
    | کاراکتر اطلاعاتی که خوانده می شوند |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤ |
    %c | % یک کاراکتر | |
    %d | % یک عدد صحیح دهدهی | |
    %i | % یک عدد صحیح دهدهی | |
    %e | % عدد اعشاری ممیز شناور | |
    %f | % عدد اعشاری ممیز شناور | |
    %g | % عدد اعشاری ممیز شناور | |
    %o | % عدد مبنای ۸ | |
    %x | % عدد مبنای ۱۶ | |
    %p | % یک اشاره گر | |
    %n | % مشخص کننده تعداد کاراکترهایی است که تا | %%n |
    | ورودی خوانده شده اند | |
    %u | % عدد صحیح مثبت | |
    %s | % رشته ها |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤ
    جدول (۱) . کاراکترهای فرمت در تابع ()scanf
    مثال ۱: main)(
    {
    char ch ;
    printf(”\n enter a character :”);
    scanf(”%c”/&ch );
    printf(”\n ch=%c”.ch );
    }
    اجرای فرمان فوق ، ضمن صدور یک پیام ، کاراکتری را از ورودی خوانده در متغیر ch
    قرار می دهد . نمونه ای از خروجی را در زیر مشاهده می کنیم : enter a character : s
    ch=s
    مثال ۲: main)(
    {
    int year ;
    printf(”enter your age in year:”);
    scanf(”%d”/&year );
    printf(”\n your age is”);
    printf(” %d day.”/year*365);
    }
    نمونه ای از خروجی را در زیر مشاهده می کنیم : enter your age in year:19
    your age 6935 day.
    این برنامه ، سن شما را از ورودی دریافت کرده و آن را به روز تبدیل میکند و
    سپس به خروجی می برد . لازم به ذکر است که در مثال ۲ تابع ()scanf بر روی خطی
    عمل می کند که تابع ()printf اولی عمل کرده است . تابع ()printf دومی به علت
    وجود \n ، بر روی خط بعدی از صفحه نمایش عمل خواهد کرد . استفاده از سایر
    کاراکترهای قالب در تابع ()scanf همانند تابع ()printf است که ذکر مثال درمورد
    آنها ضروری به نظر نمی رسد .
    قالب دیگری که باید در مورد آن توضیح داده شود %n است که مشابه آن را در
    تابع ()printf داشته ایم . %n در تابع ()scanf تعداد کاراکترهای خوانده شده توسط
    این تابع تا %n را به متغیری که آدرس آن متناظر با %n ذکر شده است منتقل میکند.
    برای خواندن چند متغیر از ورودی توسط تابع ()scanf ، اسامی متغیرها را که
    به همراه & ( عملگر آدرس ) ذکر می شوند با کاما از یکدیگر جدا کرده و در حین
    ورود اطلاعات می توانیم آنها را با فاصله (blank) ، کلید enter و یا tab جدا
    کنیم .
    مثال ۳: main)(
    {
    int a/b/c ;
    float ave ;
    printf(”\n enter three number :”);
    scanf(”%d %d %d”/&a/&b/&c );
    ave=(a+b+c)/3 ;
    printf(”\n average is:%f”/ave );
    }
    به نتیجه اجرای برنامه و چگونگی ورود سه عدد ۲۰ ، ۱۹ و ۱۸ بعنوان اطلاعات
    ووردی توجه کنید : enter three number :20 19 18
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  20. کاربرانی که از پست مفید آبجی سپاس کرده اند.


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

اطلاعات موضوع

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

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. مقاله: آموزش و پرورش در اسپانیا
    توسط *مینا* در انجمن علوم تربیتی
    پاسخ ها: 0
    آخرين نوشته: 20th November 2009, 10:49 PM
  2. گذری بر تاریخچه خط در ايران زمين
    توسط Admin در انجمن ایران شناسی
    پاسخ ها: 1
    آخرين نوشته: 15th March 2009, 07:24 PM

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

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

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