• ساختار برنامه ها در زبان C. مبانی زبان C: ساختار یک برنامه C، انواع اساسی و ساخت انواع، عملیات و عبارات جدید

    ساختار یک برنامه C.

    استفاده از زبان برنامه نویسی C در حل مسائل اقتصادی

    برنامه ها و داده ها

    مزایای زبان C

    1) ج - زبان مدرن، ساختار آن برنامه نویس را تشویق می کند تا از روش هایی در کار خود استفاده کند: طراحی از بالا به پایین، برنامه نویسی ساخت یافته، ساختار مدولار برنامه ها.

    2) ج - زبان موثر. برنامه های C فشرده و سریع اجرا می شوند.

    3) C - زبان قابل حمل یا موبایل.

    4) C یک زبان قدرتمند و انعطاف پذیر است.

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

    6) C زبان مناسبی است، ساختاری دارد و در عین حال آزادی برنامه نویسان را خیلی محدود نمی کند.

    7) C یک زبان نوع کامپایل است. از آنجایی که C یک استاندارد، مستقل از دستگاه، به طور گسترده است زبان موجود، برنامه ای که به زبان C نوشته شده است اغلب می تواند با تغییرات اندک یا بدون تغییر در طیف گسترده ای از برنامه ها اجرا شود سیستم های کامپیوتری. کامپیوتر، علیرغم سرعت و قدرت محاسباتی که دارد، است دستگاه ساده، که اعداد باینری را دستکاری می کند. تنها اعداد باینریتوسط کامپیوتر به عنوان دستور و دیگران به عنوان داده تفسیر می شود. برای اینکه یک کامپیوتر کاری مفید انجام دهد، باید یک برنامه بنویسید.

    برنامه نويسيفعالیت های برنامه نویسی

    برنامه شرحی از الگوریتم برای حل مسئله است که در زبان کامپیوتر ارائه شده است.

    تیمدستورالعمل برای مرحله بعدی

    مثال دستورات: С=А+В، که در آن عملیات A، В-عملگرها، +-.

    عمل کاری است که کامپیوتر باید طبق هر دستور انجام دهد.

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

    مثال شماره 1:

    #عبارتند از

    (void main(void) //header تابع اصلی برنامه

    خارج کردن<< “Здравствуй, С!\ n”;

    1 خط: اتصال کتابخانه های کمکی متمرکز بر ورودی و خروجی داده های انواع مختلف به جریان.

    خط 2:سربرگ عملکرد اصلی برنامه عبارت Cout برای اطلاعات خروجی<< – помещение в класс данных, \n-переход к новой строке вывода.

    برنامه دنباله‌ای از دستورالعمل‌ها است که یک الگوریتم را پیاده‌سازی می‌کند، مجموعه‌ای از نسخه‌ها که به طور منحصربه‌فرد محتوا و ترتیب عملیات را برای حل مسائل تعیین می‌کند.

    استفاده از S.

    1. برنامه ها و داده ها.

    2. طرح اجرای برنامه در کامپیوتر:

    مثال شماره 1:

    #عبارتند از< stdio.h>

    printf ("من در BSUIR\ n")

    خط 1: دستور شامل پیش پردازنده شامل فایل stdio.h که عملکرد کتابخانه printf را توصیف می کند.

    خط 2: تعریف تابعی به نام main که هیچ آرگومان نمی گیرد. بیانیه اصلی در بریس های فرفری محصور شده است. تابع اصلی تابع کتابخانه printf را برای چاپ فراخوانی می کند که به ترتیب کاراکتر داده می شود. اسلش (\n) - خط جدید تحت اللفظی، انتقال به خط جدید.

    برای اجرای برنامه در PVEM باید موارد زیر را انجام دهید:

    1) برنامه ای را به زبان برنامه نویسی بنویسید.

    2) آن را به استاندارد این زبان پخش کنید.

    3) آن را با برنامه ها و عملکردهای لازم مرتبط کنید.

    4) در رم بارگیری کنید.

    5) بدوید و نتیجه بگیرید.


    طرح تالیف

    مترجم یک برنامه کامپیوتری است که یک برنامه نوشته شده به زبان برنامه نویسی را به شکلی ترجمه می کند که کامپیوتر بتواند آن را بفهمد. خروجی کامپایلر یک فایل با پسوند obj است. یک فایل اجرایی یا ماژول بارگذاری فایلی است که حاوی یک برنامه کامپایل شده و آماده اجرا است. Borland C++ یک محیط توسعه برای برنامه هایی است که هم شامل کامپایلر و هم برخی ابزارهای دیگر است.

    ساختار یک برنامه C.

    هر برنامه C از یک یا چند تابع و عنصر تشکیل شده است. توابع مختلف را می توان هر نامی داد. توابع حاوی دستورالعمل ها (فرمان هایی) هستند که اقدامات را در مرحله خاصی از اجرا تجویز می کنند و متغیر مقادیر مورد استفاده در فرآیند این اقدامات را ذخیره می کند. چنین اقداماتی می تواند تخصیص مقادیر به متغیرها، بررسی برخی شرایط باشد. تابعی به نام main. اجرای هر برنامه با تابع اصلی شروع می شود.

    الف) ساختار کلی یک برنامه C بدون ارجاع به یک زیربرنامه:

    ب) ساختار کلی یک برنامه C با ارجاع به پروژه های فرعی:

    آرگومان ها یکی از مکانیسم های تعامل بین توابع هستند. لیست آرگومان های داخل پرانتز از نام تابع پیروی می کند. بریس های فرفری ابتدا و انتهای یک برنامه را قاب می کنند. دستورالعمل هایی که بدنه برنامه ها را از عملگرها و عملوندها تشکیل می دهند. در C، هر دستور و هر خط تابعی که فراخوانی می شود با یک نقطه ویرگول به پایان می رسد. استثنا دستورات پیش پردازنده و نام توابع است که در ابتدای یک واحد برنامه ظاهر می شوند. هدف اکثر برنامه ها حل مشکل از طریق تبدیل های مختلف داده های منبع است. برای این امر لازم است.

    آخرین به روز رسانی: 1396/05/18

    یک برنامه C از مجموعه ای از دستورالعمل های پیش پردازنده، تعاریف تابع و اشیاء سراسری تشکیل شده است. دستورالعمل های پیش پردازنده نحوه تبدیل متن را قبل از کامپایل کنترل می کند. اشیاء جهانی داده های مورد استفاده یا وضعیت برنامه را تعریف می کنند. و توابع رفتار یا اقدامات یک برنامه را تعریف می کنند. ساده ترین برنامه C که در مباحث قبلی تعریف شده است:

    #عبارتند از int main(void) ( printf("سلام دنیا!\n"); return 0; )

    دستورالعمل ها

    ساده ترین بلوک های سازنده یک برنامه C عبارت هستند. هر دستور عمل خاصی را انجام می دهد. دستورات C با نقطه ویرگول (;) به پایان می رسد. این علامت به کامپایلر می گوید که دستورالعمل را کامل کند. مثلا:

    printf ("سلام دنیا!");

    فراخوانی تابع printf که رشته "Hello world!" یک عبارت است و با نقطه ویرگول به پایان می رسد.

    مجموعه ای از دستورالعمل ها ممکن است یک بلوک از کد را نشان دهد. بلوک کد با بریس های فرفری فرمت شده است، دستورالعمل هایی که بدنه این بلوک را تشکیل می دهند بین بریس های فرفری باز و بسته قرار می گیرند:

    ( printf("سلام دنیا!"); printf("بای دنیا!")؛ )

    دو دستورالعمل در این بلوک کد وجود دارد. هر دو دستورالعمل یک فراخوانی به تابع printf() را نشان می دهند و یک رشته خاص را در کنسول چاپ می کنند.

    دستورالعمل های پیش پردازنده

    مثال بالا از تابع printf() برای خروجی داده ها به کنسول استفاده می کند، اما برای استفاده از این تابع، به طوری که اصلاً در برنامه C در دسترس ما قرار گیرد، لازم است فایل هدر stdio.h را در آدرس قرار دهیم. ابتدای فایل کد منبع با استفاده از دستورالعمل include.

    دستورالعمل شامل یک دستورالعمل پیش پردازشگر است. علاوه بر این شامل، تعدادی دستورالعمل پیش پردازنده وجود دارد، به عنوان مثال، تعریف کنید.

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

    دستورالعمل "شامل" مستقیماً تعیین می کند که کدام فایل ها باید در یک مکان معین در متن برنامه گنجانده شوند. به‌طور پیش‌فرض، می‌توانیم فایل‌های استاندارد را از فهرستی از به اصطلاح «فایل‌های هدر» که معمولاً با کتابخانه‌های استاندارد کامپایلر عرضه می‌شوند، اضافه کنیم. و فایل "stdio.h" تنها یکی از این فایل های هدر است.

    به طور کلی اصطلاح "هدر فایل" (هدر فایل) به معنای درج متن فایل در همان ابتدا یا سربرگ برنامه است. بنابراین، فایل های هدر، به عنوان یک قاعده، در ابتدای کد منبع گنجانده می شوند. علاوه بر این، فایل هدر باید قبل از فراخوانی توابعی که تعریف می کند گنجانده شود. به عنوان مثال، فایل stdio.h تعریف تابع printf را ذخیره می کند، بنابراین این فایل باید قبل از فراخوانی تابع printf گنجانده شود.

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

    هنگام کامپایل کد منبع، ابتدا پیش پردازنده فعال می شود، که کد منبع را برای خطوطی که با کاراکتر # شروع می شوند اسکن می کند. این خطوط توسط پیش پردازنده به عنوان دستورالعمل در نظر گرفته می شوند. و به جای این بخشنامه ها، متن دگرگون می شود. مثلا به جای بخشنامه #include کد از فایل stdio.h درج شده است.

    عملکرد اصلی

    نقطه شروع برای هر برنامه C تابع main() است. با این تابع است که اجرای برنامه شروع می شود. نام اصلی آن ثابت است و همیشه برای همه برنامه های C یکسان است.

    یک تابع نیز یک بلوک از کد است، بنابراین بدنه آن توسط پرانتزهای فرفری قاب شده است، که بین آنها مجموعه ای از دستورالعمل ها وجود دارد.

    لازم به ذکر است که در ادبیات و نمونه های مختلف می توان تغییراتی در این تابع یافت. به طور خاص، به جای تعریف بالا، می توانیم متفاوت بنویسیم:

    #عبارتند از void main() ( printf("سلام دنیا!")؛ )

    #عبارتند از int main() ( printf("سلام دنیا!"); return 0;)

    استفاده از این تعاریف خطا نخواهد بود و برنامه همچنین رشته "Hello world" را در کنسول چاپ می کند. و برای اکثر کامپایلرها، این خوب خواهد بود.

    ما بعداً نگاه دقیق‌تری به تعاریف تابع خواهیم داشت، اما در اینجا جنبه دیگری وجود دارد که باید در نظر داشت. تعریف تابع به شکل int main(void) در استاندارد زبان C11 ثابت شده است. کامپایلرها در درجه اول توسط استاندارد زبان، مشخصات آن هدایت می شوند. بنابراین، اگر از تعریفی که در استاندارد زبان آمده است استفاده کنیم، احتمال بیشتری وجود دارد که توسط همه کامپایلرها پشتیبانی شود. اگرچه باز هم تکرار می کنم در استفاده از گزینه دوم یا int main () اشتباه بزرگی رخ نخواهد داد.

    آخرین استاندارد کامل C11 را می توان در اینجا مشاهده کرد

    هر برنامه ای که به زبان C نوشته شود از یک یا چند "عملکرد" ​​تشکیل شده است، که ماژول های اصلی هستند که از آنها مونتاژ می شود.

    نمونه ای از ساختار یک برنامه ساده C:

    فرم کلی

    مثال

    دستورالعمل های پیش پردازنده

    #عبارتند از

    # N 10 را تعریف کنید

    نام تابع اصلی

    شروع بدنه عملکرد اصلی

    اعلان های متغیر و آرایه

    intx=1; چارستر[N];

    بیانیه های برنامه

    قرار می دهد("وارد نام");

    gets(str);

    printf("\n %s، شما %d مهمان من هستید!",str,x);

    انتهای بدنه عملکرد اصلی

        1. دستورالعمل های پیش پردازنده

    بخشی از کامپایلر برنامه ای است به نام پیش پردازنده. پیش پردازنده قبل از ترجمه برنامه از یک زبان سطح بالا به زبان ماشین کار می کند و تبدیل اولیه آن را انجام می دهد. هر دستورالعمل پیش پردازنده با یک کاراکتر # (عدد) شروع می شود و کل خط را در بر می گیرد. دستورالعمل هایی که در یک خط نمی گنجند ممکن است در خط بعدی ادامه یابد. کاراکتر ادامه خط، کاراکتر بک اسلش (\) در خط در حال ادامه است.

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

    # عبارتند از < نام>

    جایی که نامنام فایل موجود در متن برنامه است.

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

    # عبارتند از < ریاضی. ساعت>

    به شما امکان می دهد از توابع ریاضی استاندارد در برنامه استفاده کنید، مانند sin x، cos x، ln x و غیره. لیست توابع ریاضی استاندارد در زیر آورده شده است.

    بخشنامه

    # عبارتند از < stdio. ساعت>

    به برنامه اجازه می دهد تا از توابع ورودی-خروجی استاندارد استفاده کند.

    یکی دیگر از دستورالعمل های رایج، دستورالعمل تعریف است.

    # تعریف S1 S2

    جایی که S1، S2- رشته ای از شخصیت ها

    پیش پردازنده به دنبال رشته ای از کاراکترها در متن برنامه می گردد اس1 و آن را با رشته جایگزین می کند اس2 . مثلا از جمله بخشنامه

    # تعريف كردن پ printf

    به شما اجازه می دهد تا یک حرف را روی صفحه کلید تایپ کنید پبه جای یک کلمه printf.

    این جایگزینی در داخل رشته های متنی (لفظی)، ثابت کاراکترها و کامنت ها، یعنی. اقدام دستوری # تعريف كردندر مورد متون محدود شده با علامت نقل قول، آپستروف و در داخل نظرات اعمال نمی شود.

        1. عملکرد اصلی

    هر برنامه C باید حاوی یک اعلان تابع باشد اصلی(), که تابع اصلی نامیده می شود . به طور معمول، این تابع هیچ پارامتری ندارد و هیچ مقداری را بر نمی گرداند. این کلمه برای نشان دادن این واقعیت به کار می رود. خالی. بنابراین، خط با نام تابع اصلی معمولاً به نظر می رسد:

    خالی اصلی (باطل)

    void main()

        1. متغیرها و آرایه ها

    آرایه گروهی از متغیرهای هم نوع با یک نام مشترک است. نام یک متغیر یا آرایه یک شناسه است - دنباله ای متشکل از کاراکترها:

    a - z، A - Z، 0 - 9،_(زیر خط)،

    و اولین کاراکتر نمی تواند رقمی باشد. حروف کوچک و بزرگ الفبای لاتین به عنوان کاراکترهای مختلف درک می شوند. کلمات کاربردی زبان C را نمی توان به عنوان نام یک متغیر یا آرایه استفاده کرد. کلمات تابع اصلی زبان C در پیوست آورده شده است.

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

    در زبان C می توان از متغیرها و آرایه های مختلف استفاده کرد. هر نوع داده تعداد مشخصی بایت حافظه را اشغال می کند و می تواند مقادیری را از یک محدوده مشخص بگیرد. مقدار این حافظه و بر این اساس، محدوده مقادیر پذیرفته شده در پیاده سازی های مختلف زبان C ممکن است متفاوت باشد. تعداد بایت های حافظه اشغال شده توسط متغیری از نوع خاصی برای اجرای خاصی از زبان C را می توان با استفاده از عملیات تعیین کرد. اندازه(نوع). به عنوان مثال، می توانید مقدار حافظه اختصاص داده شده برای یک متغیر از نوع عدد صحیح را به صورت زیر تعیین کنید:

    k = sizeof(int);

    printf(« تحت یک متغیر از نوعبین المللی%d بایت حافظه اختصاص داده است.ک);

    در این دستورالعمل ها، سه نوع اصلی از متغیرها و آرایه ها در نظر گرفته شده است، مقادیر معمولی مقدار حافظه اشغال شده و محدوده مقادیر آورده شده است (جدول 1):

    میز 1

    نوع مشخص کننده (کلید واژه)

    معنی

    اندازه

    حافظه (بایت)

    محدوده ارزش

    عدد صحیح

    32768 . . . +32767

    2147483648 . . . +2147483647

    معتبر

    شماره نوع واقعی

    3.4¼10 -38. . . 3.4$ 10 38

    (مدول)

    نمادین

    128 . . . +127

    بیایید نگاهی دقیق تر به متغیر نوع بیندازیم کاراکتر. همانطور که از جدول مشخص است. 1، متغیر را تایپ کنید کاراکتر یک بایت حافظه را اشغال می کند. یک بایت حافظه می‌تواند شامل یک عدد صحیح بدون علامت از محدوده یا یک عدد صحیح علامت‌دار از محدوده [-128, 127] باشد. این شماره کد یکی از 256 کاراکتر است. نماد مربوط به یک کد داده شده توسط جدول کد استفاده شده تعیین می شود. بنابراین، مقدار یک متغیر از نوع کاراکترمی توان آن را به عنوان یک عدد صحیح یا به عنوان یک کاراکتر که کد آن برابر با این عدد است در نظر گرفت.

    شکل 1 ساختار برنامه در زبان C.

    ساختار داخلی برنامه

    برنامه اجراییدر C از 4 بخش تشکیل شده است: ناحیه فرمان، ناحیه داده ایستا، ناحیه داده پویا، ناحیه پشته. شکل 2 را ببینید.

    1. ناحیه فرمان شامل دستورات ماشین است. دستورالعمل هایی که باید توسط ریزپردازنده اجرا شوند.

    2. ناحیه ای از داده های ثابت برای ذخیره متغیرهایی که برنامه با آن کار می کند.

    3. ناحیه داده پویا برای قرار دادن داده های اضافی که در طول عملیات برنامه ظاهر می شوند (مثلاً متغیرهای موقت).

    4. پشته برای ذخیره موقت داده ها و برگرداندن آدرس ها از توابع استفاده می شود.


    بدن عملکرد/*بدنه عملکرد*/

    printf ("سلام جهان!");

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



    خط 2 - نام تابع اصلی main()، این تابع هیچ پارامتری را بر نمی گرداند (در این مورد کمی بعد صحبت خواهم کرد). یک برنامه C همیشه یک تابع دارد main().اجرای برنامه را شروع می کند.

    خط 3 - آغاز بدن تابع. () بدنه تابع را تعریف کنید (در پاسکال اینها شروع و پایان هستند)

    خط 4 - یک نظر، جمع آوری نشده است، بلکه فقط آنچه را که انجام می شود توضیح می دهد.

    خط 5 - تابع کتابخانه - چاپ روی صفحه، عبارت داخل پرانتز در این خط یک پارامتر تابع است، همیشه نقل قول می شود.

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

    نکاتی برای خوانایی برنامه:

    1) نام های معنی دار را انتخاب کنید

    2) از نظرات استفاده کنید

    3) از خطوط خالی برای جدا کردن یک قسمت از یک تابع از دیگری استفاده کنید

    4) هر عبارت را در یک خط متفاوت قرار دهید.

    عناصر اساسی زبان C

    عناصر اجباری که یک برنامه C باید با آن طراحی شود را در نظر بگیرید:

    1. نظرات برای مستندسازی برنامه استفاده می شود. هر برنامه ای باید حاوی نظرات باشد: از چه الگوریتمی استفاده می شود، برنامه چه کاری انجام می دهد ...

    Ø 1 راه: /* متن */ - در هر نقطه از برنامه.

    به محض اینکه کامپایلر با /**/ مواجه شد، آنها را پرش می کند. کامپایلر /* */ را نادیده می گیرد زیرا نمی تواند زبانی غیر از C را تفسیر کند. یعنی اگر می خواهید خطی را از کامپایل حذف کنید، آن را در /**/ محصور کنید.

    Ø 2 راه: اگر نظر بزرگ است، از این نوع استفاده کنید

    /* خط 1 - برای یک نظر با هر طول

    رشته 3*/

    Ø 3 راه: // - متن را تا انتهای خط ارسال کنید.

    2. مشخص کننده - این نامی است که به یک شی (متغیر) نسبت داده می شود. از حروف بزرگ و کوچک، اعداد و زیرخط استفاده می شود. حروف کوچک و بزرگ متفاوت است. (در بیسیک تفاوتی با هم ندارند). اگر یک متغیر را با نام، Name یا NAME فراخوانی کنید، اینها متغیرهای متفاوتی خواهند بود.

    شناسه ها با یک حرف یا زیرخط شروع می شوند. به عنوان مثال، _name. اما شروع با _ توصیه نمی شود، زیرا این کاراکتر برای نام های سراسری کل زبان C استفاده می شود.

    که در برنامه نویسی مدرناغلب برای ایجاد شناسه ها از نماد مجارستانی استفاده می شود، که در آن از کاراکترهای خاصی برای مشخص کردن شناسه استفاده می شود، به عنوان مثال:

    ب - بایت؛ ch یک کاراکتر یک بایتی است.

    w یک کلمه است؛ f - پرچم؛

    l یک کلمه طولانی است. fn یک تابع است.

    u بدون امضا است. p یک اشاره گر است.

    ج - شمارنده؛ د – اختلاف دو قبل از x

    cz - رشته; و غیره.

    3. کلمات خدماتی - اینها کلماتی هستند که معانی معنایی خاصی در زبان با آنها مقایسه می شود و نمی توان از آنها برای مقاصد دیگر استفاده کرد. اینها نام عملگرها، توابع کتابخانه، دستورات پیش پردازنده و غیره هستند. از این کلمات نمی توان برای ایجاد نام توابع، متغیرها استفاده کرد.

    داده ها در برنامه C

    هر برنامه با داده ها. آنها به صورت متغیر و ثابت در برنامه وجود دارند.

    داده هایی که می توانند در حین اجرای برنامه تغییر کنند یا مقادیری به آنها نسبت داده شود نامیده می شود متغیرها.

    داده هایی که روی مقادیر خاصی تنظیم می شوند و مقادیر خود را در طول برنامه حفظ می کنند. ثابت نامیده می شوند.

    ثابت ها

    ثابت ها مقادیر ثابتی هستند. مقدار، پس از تنظیم، دیگر تغییر نمی کند. ثابت ها انواع مختلفی دارند. انواع با توجه به اصل قرارگیری در حافظه کامپیوتر و برای شخص با توجه به نوع رکورد متفاوت است. در C 7 عدد وجود دارد کلید واژه هابرای نشان دادن استفاده می شود انواع مختلفداده ها: int، long، short، unsigned، char، float، double.

    انواع ثابت :

    آ) اعداد صحیح و بلند . آنها در سیستم های اعداد اعشاری، هشت و هگزادسیمال نوشته می شوند. آنها می توانند امضا یا بدون امضا باشند.

    سیستم اعشاری: ثابت های عدد صحیح را اشغال کند 16 بیت حافظه، و طیف وسیعی از مقادیر را بگیرید: -32768 به +32767 (2 15) . اگر ثابت بدون علامت باشد، دامنه دو برابر می شود: 0 تا 65535(با توجه به این واقعیت است که رقم 15 - یک علامت برای یک عدد استفاده می شود). برای نشان دادن یک عدد بدون علامت، از پسوند استفاده کنید تو (بدون امضا)، به عنوان مثال 123u.

    اگر عدد بزرگتر از 40000 باشد، کامپایلر به طور خودکار آن را به آن تبدیل می کند یک عدد منفی، پس پسوند تومورد نیاز: 40000u. در مثال 123u، کامپایلر اهمیتی نمی دهد که پسوند وجود داشته باشد یا نه، زیرا این عدد در محدوده 32767 است.

    عدد صحیح بلند طول می کشد 32 بیت ، محدوده مقادیر

    ±2147483648 (امضای طولانی - طولانی). اگر پسوند بگذارید ل، سپس با وجود عدد، 32 بیت اشغال می شود. به عنوان مثال: -5326 ل

    0 – 4294967295 بدون امضا طولانی- (بدون امضاء بلند). دامنه با بیت 31 افزایش می یابد. از پسوندها استفاده می شود ulبه عنوان مثال، 32659ul.

    سیستم اکتال :

    اگر یک عدد با 0 شروع شود، به عنوان یک عدد هشتی تعبیر می شود

    16 بیت 0 ¸ 077777

    0100000 ¸ 0177777u

    32 بیت 0200000 ¸ 01777777777l

    020000000000 ¸ 037777777777ul

    سیستم هگزادسیمال :

    اگر عدد با کاراکتر 0x شروع شود، به عنوان هگزادسیمال تفسیر می شود

    16 بیت 0x0000 ¸ 0x7FFF

    0x8000 - 0xEFFFu

    32 بیت 0x10000 ¸ 0x7FFFFFFFFl

    0x80000000 ¸ 0xFFFFFFFFFul

    ب) ثابت های واقعی. اینها اعداد ممیز شناور هستند. مقدار دارای بخش کسری است. به طور پیش فرض، تمام ثابت های واقعی از نوع double هستند. دو برابر . در حافظه اشغال کنید 8 بایت (حتی اگر 0.0 باشد). محدوده ارزش 307±10*10 , می تواند به شکل علمی نیز نوشته شود، به عنوان مثال: 0.5e + 15 یا

    1.2e-3 \u003d 1.2 * 10 -8 \u003d 0.0012.

    می‌توانید فرمت را مجبور کنید که دقیق باشد شناور . عدد خواهد گرفت 4 بایت ، از پسوند استفاده می شود f(5.7 f). در نتیجه، دامنه باریک می شود. ±1*10±37

    و همچنین دقت بیشتر طولانی دوبل - 10 بایت . (3.14 لیتر)

    علامت + را می توان حذف کرد. مجاز به حذف نقطه اعشار یا قسمت نمایی است، اما نه هر دو (.2؛ 4e16). شما نمی توانید یک قسمت کسری یا صحیح بنویسید، اما نه در همان زمان (100.; 0.8e-5)

    ج) ثابت های نمادین.این مجموعه نمادهایی است که در رایانه ها استفاده می شود.

    آنها به 2 گروه تقسیم می شوند: چاپی و غیرچاپی(کدهای کنترلی). یک کاراکتر ثابت فقط شامل 1 کاراکتر است که باید در آپستروف ها و گرفته ها محصور شود 1 بایت حافظه

    هر کاراکتری نمایش دوگانه خود را در جدول ASCII دارد. در برنامه، ثابت های کاراکتر به صورت نقل قول تکی وارد می شوند؛ هنگام کامپایل، برنامه با مقدار عددی کاراکتر از ASCII جایگزین می شود. یک کاراکتر 1 بایت را اشغال می کند.

    کاراکتر "A" "a" "" ""\n"

    کد او 65 97 32 10 است

    چگونه نوع عدد صحیحداده "A"=0101 8 , 01000001 2 , 41 16 , 65 10 . لازم نیست کدها را به خاطر بسپارید.

    کدهای کنترل با \ شروع می شوند و همچنین در آپاستروف ها قرار می گیرند. رایج ترین کدهای کنترلی عبارتند از:

    \n - خط جدید

    \t - جدول بندی (تغییر مکان نما با مقداری ثابت)

    \b - گام به عقب (یک موقعیت به عقب تغییر دهید)

    \r - بازگشت کالسکه (بازگشت به ابتدای خط)

    \f - فید فرم (کاغذ را به 1 صفحه بدهید)

    \' - آپستروف

    \" - نقل قول ها

    سه شخصیت آخر می توانند بازی کنند ثابت های کاراکترو همچنین در تابع printf() استفاده می شود، بنابراین استفاده از آنها به عنوان کاراکتر ممکن است منجر به خطا شود. به عنوان مثال، اگر بخواهیم رشته "کاراکتر \ یک اسلش نامیده می شود" را نمایش دهیم، دستور باید به شکل زیر باشد:

    printf("کاراکتر \\ یک اسلش نامیده می شود");

    آ) ثابت های رشته ای - حاوی دنباله ای از 1 یا چند کاراکتر باشد که در " " محصور شده است. 1 بایت برای هر کاراکتر + 1 بایت برای به اصطلاح کاراکتر صفر خرج می شود - نشانه ای از پایان خط. کاراکتر null عدد صفر نیست، به این معنی است که تعداد کاراکترهای رشته (N) باید 1 بایت بیشتر باشد (N + 1) تا پایان رشته را نشان دهد (کامپایلر آن را به طور خودکار اضافه می کند). به عنوان مثال: "خط متن" (13+1) بایت را اشغال می کند.

    "جهان" -

    قبل از شروع برنامه نویسی، باید ساختار برنامه ها را در زبان برنامه نویسی C++ مطالعه کنید. به عبارت دیگر، ساختار برنامه‌ها نشانه‌گذاری ناحیه کاری (منطقه کد) به منظور تعریف واضح بلوک‌های اصلی برنامه‌ها و نحو است. ساختار برنامه ها بسته به محیط برنامه نویسی کمی متفاوت است. ما بر روی Microsoft IDE تمرکز می کنیم استودیوی تصویری، و بنابراین برنامه های نمونه به طور خاص برای MVS نشان داده می شود. اگر از یک IDE متفاوت استفاده می کنید، انتقال کد از MVS به محیط های توسعه دیگر برای شما دشوار نخواهد بود و به مرور زمان نحوه انجام آن را خواهید فهمید.

    ساختار برنامه های Microsoft Visual Studio.

    // struct_program.cpp: نقطه ورودی برنامه کنسول را تعریف می کند. #include "stdafx.h" // در اینجا ما تمام دستورالعمل های لازم پیش پردازنده را در int main() اضافه می کنیم (// ابتدای تابع اصلی به نام main // در اینجا شما خواهد بود. کد برنامه نویسی }

    خط 1 در مورد نقطه ورود برای برنامه کنسول صحبت می کند، به این معنی این برنامهرا می توان از طریق اجرا کرد خط فرمانویندوز با تعیین نام برنامه، مانند struct_program.cpp. خط 1 یک نظر تک خطی است زیرا با کاراکترهای // شروع می شود، در مقاله بعدی بیشتر در مورد نظرات صحبت خواهد شد. خط 2 شامل فایل هدر "stdafx.h" است. این فایلبه نظر می رسد یک ظرف است، از آنجایی که دستورالعمل های اصلی پیش پردازنده در آن متصل هستند (آنهایی که کامپایلر هنگام ایجاد برنامه کنسول به آن متصل شده است)، دستورالعمل های کمکی (که توسط برنامه نویس متصل می شوند) نیز می توانند دقیقاً در آنجا متصل شوند.

    شامل یک دستورالعمل پیش پردازنده است، یعنی پیامی به پیش پردازنده. خطوطی که با نماد # شروع می شوند قبل از کامپایل شدن برنامه توسط پیش پردازنده پردازش می شوند.

    دستورالعمل‌های پیش‌پردازنده نیز می‌توانند در خطوط گنجانده شوند، که پس از #include "stdafx.h" قبل از شروع تابع اصلی شروع می‌شوند. علاوه بر این، این روش اتصال کتابخانه ها اصلی است و استفاده از "stdafx.h" است فرصت اضافیاتصال فایل هدر، که فقط در MVS موجود است. از خط 4 تا 6، تابع اصلی اعلام می شود. خط 4 سرفصل تابع است که از نوع داده بازگشتی (in این مورد int)، این تابع، و نام تابع، و همچنین پرانتزهایی که در آن پارامترهای تابع اعلان شده است.

    int - نوع داده عدد صحیح

    بین براکت های فرفری کد برنامه اصلی قرار می گیرد که بدنه تابع نیز نامیده می شود. این ساده ترین ساختار برنامه است. این ساختارنوشته شده در Microsoft Visual Studio. همه موارد فوق برای سایر کامپایلرها نیز صادق است، به جز خط 2. هیچ کانتینری "stdafx.h" در هیچ کجا به جز MVS وجود ندارد.

    ساختار برنامه برای C++ Builder.

    هنگامی که یک برنامه کنسول ایجاد می کنید، New Project Wizard به طور خودکار کد زیر را تولید می کند:

    //دستورالعمل پیش پردازنده به طور خودکار توسط جادوگر ایجاد پروژه #include اضافه می شود int main() (بازگرداندن 0;)

    می بینیم که نوع داده تابع int است. این به ما می گوید که تابع پس از تکمیل مقداری عدد صحیح را برمی گرداند، در مورد ما 0. Integer زیرا int نوع داده برای اعداد صحیح مانند 4، 5، 6، 456، 233 و غیره است.

    نکته اصلی که باید به خاطر داشته باشید این است که اگر نوع داده بازگشتی تابع main int یا هر نوع دیگری به جز void باشد، باید خطی مانند این بنویسید: return<возвращаемое значение>;

    در خط 2، کتابخانه vcl.h متصل است - به طور خودکار توسط جادوگر ایجاد برنامه متصل می شود، بنابراین نباید آن را حذف کنید، در غیر این صورت پروژه کار نخواهد کرد.

    به طور کلی، ویزارد به طور خودکار ساختار برنامه ای را ایجاد می کند که کمی با آنچه در نظر گرفته ایم متفاوت است، اما ماهیت یکسان باقی می ماند.

    مثلا:

    int main(int argc، char* argv) (بازگشت 0؛ )

    چنین ساختار نمونه ای توسط جادوگر در MVS2010 ایجاد شده است. این اصلی کمی متفاوت است. بعداً با جزئیات بیشتری به آن نگاه خواهیم کرد، اما من می گویم که این اصلی این شکل را دارد، زیرا در ابتدا برای پشتیبانی از یونیکد طراحی شده بود.

    یونیکد یک استاندارد رمزگذاری کاراکتر است که می تواند کاراکترهای تقریباً همه زبان های نوشتاری را نشان دهد. بعداً در مورد یونیکد بیشتر صحبت خواهیم کرد.

    وجود داشته باشد نسخه های مختلف main ، اما هیچ ایرادی در آن وجود ندارد، زیرا main تابع اصلی بود، بنابراین همینطور باقی می ماند، بنابراین هر آنچه در بالا گفته شد مرتبط باقی می ماند.

    نمونه ای از ساختار یک برنامه MVS با کتابخانه های مرتبط.

    #include "stdafx.h" #include با استفاده از namespace std. int main() ()

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

    نحو برای گنجاندن فایل‌های هدر عبارت است از:

    #عبارتند از<имя заголовочного файла>

    فایل‌های هدر قدیمی‌تر به این صورت گنجانده شده‌اند (این سبک گنجاندن کتابخانه‌ها از زبان برنامه‌نویسی C به ارث رسیده است):

    #عبارتند از<имя заголовочного файла.h>

    تفاوت این است که پس از نام پسوند .h قرار می گیرد.

    زبان برنامه نویسی C++ به حروف بزرگ و کوچک حساس است. مثلا:
    بازگشت 0; - اشتباه است، یک خطای کامپایل وجود خواهد داشت.
    بازگشت 0; - درست!!!

    این مقاله ساختار برنامه های C++ را در محیط هایی مانند MVS و Borland مورد بحث قرار می دهد. و همانطور که قبلاً متوجه شدید، این ساختارها تقریباً یکسان هستند. بنابراین، این مقاله برای هر IDE مرتبط است. اگر هنوز در مورد انتخاب IDE تصمیم نگرفته اید، بخوانید.