• ساختار معمولی برنامه ساختار کلی برنامه ای که به زبان C نوشته شده است چیست؟

    سخنرانی شماره 1

    موضوع: آشنایی با زبان سی پلاس پلاس. اپراتورها و انواع داده ها

    طرح

    3. متغیرها و انواع آنها

    4. عملگرها و توابع ریاضی

    5. عملگرهای I/O در C ++

    6. نمونه برنامه در C++

    1. تاریخچه توسعه زبان برنامه نویسی C++

    زبان C++ که ویژگی های زبان C و برنامه نویسی شی گرا را با هم ترکیب می کند، در دهه 90 به یکی از اصلی ترین زبان های برنامه نویسی تبدیل شد و در آغاز قرن بیست و یکم همچنان به قوت خود باقی می ماند. زبان C++ از زبان C ویژگی هایی مانند کارایی، فشرده بودن، سرعت اجرا و قابل حمل بودن برنامه ها را به ارث برده است. از برنامه نویسی شی گرا، زبان C++ یک روش برنامه نویسی جدید برای مقابله با افزایش پیچیدگی مشکلات برنامه نویسی مدرن دریافت کرد. و ویژگی‌های زبان مانند قالب‌های بهبودیافته، متدولوژی برنامه‌نویسی جدید دیگری را به زبان C++ می‌آورد: برنامه‌نویسی عمومی. این میراث سه گانه برای زبان C++ هم موهبت و هم لعنت است. آنها زبان را بسیار قدرتمند، اما در عین حال پیچیده می کنند. یعنی برنامه نویسان باید بیشتر یاد بگیرند.

    در چند دهه گذشته، فناوری کامپیوتر با سرعتی خیره کننده توسعه یافته است. زبان های برنامه نویسی نیز دستخوش تحولات قابل توجهی شده اند. در دهه 1970، زبان های برنامه نویسی مانند C و پاسکال به آغاز دوره ای از برنامه نویسی ساختاریافته کمک کردند که نظمی را در زمینه ای ایجاد کرد که شدیداً به آن نیاز داشت. زبان C ابزارهای لازم برای برنامه نویسی ساختاریافته و همچنین ایجاد برنامه های فشرده و سریع و توانایی آدرس دهی سخت افزاری را در اختیار برنامه نویس قرار می دهد، به عنوان مثال، توانایی کنترل پورت های ارتباطی و درایوهای موجود در آن. دیسک های مغناطیسی. این ویژگی ها به زبان C در دهه 1980 کمک کرد تا به زبان برنامه نویسی غالب تبدیل شود. با این حال، در طول این سال ها یک مدل برنامه نویسی جدید ظهور کرد: برنامه نویسی شی گرا یا OOP که در زبان هایی مانند SmallTalk و C++ تجسم یافته است.

    زبان C

    کارمند Bell Laboratories Ken Thompson زبان B (bi) را در سال 1969 برای ایجاد سیستم های نرم افزاری دیگر توسعه داد. با این حال، این زبان تفسیر شد که اجازه ایجاد مستقل را نمی داد فایل های اجرایی. با این وجود، این زبان پیشین زبان C بود.

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

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

    زبان C، مانند اکثر زبان های برنامه نویسی اصلی زمان ما، رویه ای است.

    زبان C++

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

    زبان C++، مانند زبان C، زاییده فکر آزمایشگاه‌های بل است. نویسنده Bjarni Stroustrup این زبان را در اوایل دهه 80 توسعه داد. به قول خودش، «زبان ++C اساساً طوری طراحی شده است که من و دوستانم مجبور نباشیم به زبان اسمبلی، C یا زبان‌های مختلف سطح بالا مدرن برنامه‌نویسی کنیم. هدف اصلی او این بود که نوشتن برنامه های خوب را برای برنامه نویسان راحت تر و لذت بخش تر کند.

    Stroustrup مبتنی بر C++ بر روی C بود زیرا C مختصر، مناسب برای برنامه نویسی سیستم ها، به طور گسترده در دسترس بود و ارتباط نزدیکی با سیستم عامل یونیکس داشت. بخش شی گرا زبان C++ تحت تأثیر زبان مدل سازی Simula67 بوجود آمد. Stroustrup عناصر OOP را به زبان C بدون تغییر قابل توجهی در خود زبان C اضافه کرد.

    نام C++ از عملگر افزایش ++ زبان C می آید که یک به مقدار متغیر اضافه می کند. نام C++ نشان می‌دهد که این زبان نسخه پیشرفته (++) C است.

    برنامه نویسی عمومی

    برنامه نویسی عمومی یکی دیگر از پارادایم های برنامه نویسی است که توسط زبان C++ پشتیبانی می شود. این یک هدف مشترک با OOP دارد - ساده کردن استفاده مجدد از کدهای برنامه. با این حال، در حالی که OOP بر روی داده ها تمرکز دارد، برنامه نویسی عمومی بر روی الگوریتم ها تمرکز می کند. و دامنه متفاوتی دارد. OOP ابزاری برای توسعه پروژه های بزرگ است، در حالی که برنامه نویسی عمومی ابزارهایی را برای انجام وظایف رایج مانند مرتب سازی داده ها فراهم می کند. اصطلاح عمومی به معنای ایجاد کد برنامه مستقل از نوع داده است. C++ دارای داده است انواع مختلف- اعداد صحیح، اعداد کسری، نمادها، رشته های کاراکتر، ساختارهای پیچیده تعریف شده توسط کاربر متشکل از داده های چند نوع. به عنوان مثال، اگر می خواهید داده های انواع مختلف را مرتب کنید، معمولاً برای هر نوع یک تابع مرتب سازی جداگانه ایجاد می کنید. برنامه نویسی عمومی زبان را به گونه ای گسترش می دهد که به شما امکان می دهد یک تابع برای یک نوع داده عمومی (یعنی تعریف نشده) یک بار بنویسید و سپس از آن برای انواع داده های واقعی استفاده کنید. این توسط قالب های زبان ++C ارائه شده است. (شروع)

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

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

    اکثر برنامه های ++C به شکل زیر هستند:

    بخش اتصال فایل هدر

    سربرگ برنامه (تابع)

    بدن عملکرد

    عنوان برنامه

    یک برنامه ++C از یک یا چند ماژول به نام توابع تشکیل شده است. اجرای برنامه با تابعی به نام main() شروع می شود، بنابراین برنامه باید تابعی با آن نام داشته باشد. اگر برنامه ای چنین عملکردی نداشته باشد، برنامه کاملی وجود ندارد. کامپایلر در این مورد نشان می دهد که تابع main() تعریف نشده است.

    شرح چنین عملکردی در قسمت سربرگ برنامه انجام می شود و به صورت زیر نوشته می شود:

    مهم است که این واقعیت را در نظر بگیرید که کامپایلر C++ به حروف کوچک و بزرگ حساس است. بنابراین، نام تابعی که در یک مورد متفاوت تایپ شده است (به عنوان مثال: Main() یا MAIN()) نامعتبر تشخیص داده می شود.

    بخش اتصال هدر

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

    هر برنامه ++C ابتدا یک دستورالعمل دارد مانند:

    #عبارتند از

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

    دستور #include باعث می شود که محتویات فایل iostream همراه با محتوای فایل منبع به کامپایلر ارسال شود. در اصل، محتویات فایل iostream جایگزین خط #include در برنامه می شود . فایل منبع تغییر نمی کند، اما فایل ترکیبی ایجاد شده از فایل منبع و فایل iostream در مرحله بعدی کامپایل پردازش می شود.

    فایل هایی مانند iostream را شامل فایل ها (چون در فایل های دیگر گنجانده شده اند) یا فایل های هدر (چون در ابتدای فایل گنجانده شده اند) می گویند. کامپایلرهای ++C با فایل‌های هدر زیادی عرضه می‌شوند که هر کدام از خانواده‌ای از ابزارها پشتیبانی می‌کنند. فایل های هدر C به طور سنتی دارای پسوند h هستند که ساده ترین راه برای شناسایی نوع فایل با نام آن است. به عنوان مثال، فایل هدر math.h از توابع مختلف ریاضی ++C پشتیبانی می کند.

    فایل های هدر در پوشه Include محیط توسعه Turbo C++ قرار دارند. اگر هنگام راه‌اندازی برنامه با خطایی مواجه شدید که نشان می‌دهد فایل هدر موجود نیست، باید آن را در محیط Turbo C++ پیکربندی کنید. برای این کار دستور Options - Directories را اجرا کنید، در قسمت Include Directories ..\INCLUDE و در قسمت Library Directories ..\LIB را وارد کنید.

    بدن عملکرد

    بدنه تابع حاوی دستورالعمل هایی برای رایانه است، به عنوان مثال. تعریف می کند که تابع در واقع چه کاری انجام می دهد.

    بدنه تابع به شکل زیر است:

    توصیف متغیرها؛

    اپراتورها؛

    همانطور که می بینید، بدنه تابع در بریس های فرفری محصور شده است. توضیح متغیرها در بخش بعدی سخنرانی مورد بحث قرار خواهد گرفت.

    اپراتور یک دستورالعمل برای کامپیوتر است. برای درک کد منبع، کامپایلر باید بداند که چه زمانی یک عبارت تمام می شود و یک عبارت دیگر شروع می شود. برخی از زبان های برنامه نویسی از جداکننده های بیانیه استفاده می کنند. در پاسکال، یک عبارت با نقطه ویرگول از عبارت بعدی جدا می شود. در برخی موارد، نقطه ویرگول را می توان در پاسکال حذف کرد، مانند بعد از یک دستور قبل از کلمه END، زمانی که هیچ جدایی واقعی از دو عبارت وجود ندارد. اما در زبان C++ و همچنین در زبان C به جای جداکننده از پایان دهنده (اشاره گر) استفاده می شود. پایان دهنده یک نقطه ویرگول است که پایان یک عبارت را نشان می دهد. بخشی از یک بیانیه است نه جداکننده بین گزاره ها. نتیجه عملی این است که در C++، شما هرگز نمی توانید نقطه ویرگول را حذف کنید.

    دستورالعمل RETURN 0 نشان می دهد که تابع خاتمه یافته و به برنامه فراخوانی باز می گردد. در تابع اصلی main()، این دستورالعمل را می توان حذف کرد.

    استفاده از نظرات در متن برنامه ها مجاز است. در C++، کامنت ها با اسلش های دوتایی (//) مشخص می شوند. در برنامه های ++C می توانید از نظرات زبان C استفاده کنید که بین /* و */ محصور شده اند.

    از آنجایی که یک کامنت C به پایان‌دهنده خط ختم نمی‌شود، بلکه با */ پایان می‌یابد، می‌تواند برای چندین خط ادامه یابد. برنامه ها می توانند از یکی از این دو نوع نظر یا هر دو استفاده کنند. (شروع)

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

    در ابتدا زبان C به عنوان جایگزینی برای اسمبلر برای نوشتن در نظر گرفته شد سیستم های عامل. از آنجایی که C یک زبان سطح بالا و معمارانه است، متن سیستم عامل به راحتی از یک پلتفرم به پلتفرم دیگر قابل حمل است. اولین سیستم عاملی که تقریباً به طور کامل به زبان C نوشته شد سیستم یونیکس. تقریباً تمام سیستم عامل های مورد استفاده امروزه به زبان C نوشته شده اند. علاوه بر این، ابزارهای نرم افزاری که سیستم عاملتوسعه دهندگان را ارائه می دهد برنامه های کاربردی(به اصطلاح API - Application Program Interface)، مجموعه ای از توابع سیستم در زبان C هستند.

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

    در این قسمت فقط مفاهیم اولیه زبان C (و تا حدی C++) ارائه خواهد شد. این جایگزینی برای خواندن یک کتاب درسی کامل C یا C++، مانند کتاب ها و .

    ما به جای C از کامپایلر ++C استفاده خواهیم کرد. واقعیت این است که زبان C تقریباً به طور کامل در C ++ گنجانده شده است. یک برنامه C معمولی یک برنامه C++ معتبر است. کلمه "عادی" به این معنی است که شامل ساخت و سازهای ناموفق باقی مانده از آن نیست نسخه های اولیه C و در حال حاضر استفاده نمی شود. کامپایلر C++ بر کامپایلر C ترجیح داده می شود زیرا کنترل خطای سخت تری دارد. علاوه بر این، برخی از ساختارهای C++ که به برنامه نویسی شی گرا مرتبط نیستند، بسیار راحت هستند و در واقع پیشرفتی در زبان C هستند. اینها، اول از همه، نظرات //، توانایی توصیف متغیرهای محلی در هر نقطه از برنامه، و نه فقط در ابتدای بلوک، و همچنین تنظیم ثابت ها بدون استفاده از عملگر #define پیش پردازنده هستند. ما از این ویژگی های C++ استفاده خواهیم کرد در حالی که اساساً در محدوده زبان C باقی می مانند.

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

    هر کدام کافی است برنامه بزرگدر C (برنامه نویسان از این اصطلاح استفاده می کنند پروژه) از فایل ها تشکیل شده است. فایل ها به طور مستقل توسط کامپایلر C ترجمه می شوند و سپس توسط برنامه سازنده وظیفه الحاق می شوند و در نتیجه فایلی با برنامه آماده برای اجرا ایجاد می شود. فایل های حاوی متون برنامه C نامیده می شوند اولیه.

    دو نوع فایل منبع در C وجود دارد:

    • هدر یا فایل های h.
    • فایل های پیاده سازی یا فایل های C.

    نام فایل های سرصفحه دارای پسوند ".h" است. نام فایل های پیاده سازی پسوندهای " .c " برای زبان C و " .cpp "، " .cxx " یا " .cc " برای زبان C++ دارند.

    متأسفانه، بر خلاف زبان C، برنامه نویسان نتوانسته اند روی یک پسوند نام فایل برای فایل های حاوی برنامه های C++ توافق کنند. ما از پسوند ".h" برای فایل های هدر و پسوند ".cpp" برای فایل های پیاده سازی استفاده خواهیم کرد.

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

    تعریف یک متغیر عدد صحیح x یک خطا است. در عوض، از توضیحات استفاده کنید

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

    فایل های پیاده سازی، یا فایل های C، حاوی متون توابع و تعاریف متغیرهای سراسری هستند. به بیان ساده، فایل‌های C حاوی خود برنامه‌ها هستند، در حالی که فایل‌های h فقط حاوی اطلاعات مربوط به برنامه‌ها هستند.

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

    فایل های پیاده سازی می توانند شامل توضیحات موجود در فایل های هدر باشند. خود فایل های هدر نیز می توانند از فایل های هدر دیگر استفاده کنند. فایل هدر با استفاده از دستور #include preprocessor گنجانده شده است. برای مثال، توضیحات تابع استاندارد ورودی/خروجی همراه با رشته گنجانده شده است

    #عبارتند از

    (stdio - از کلمات استاندارد ورودی / خروجی). نام فایل h روی آن نوشته شده است براکت های زاویهاگر این h-

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

    فرآیند اجرای برنامه

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

    الفبای زبان C++

    الفبای C شامل:
    حروف بزرگ و کوچک الفبای لاتین (A,B,...,Z, a, b,..., z) و
    زیر خط کشیدن
    ارقام: 0،1،2،3،4،5،6،7،8،9
    کاراکترهای ویژه: " , () | () * + - / % \ ; " . :؟< = >_ ! & # نویسه غیر قابل نمایش ("نویسه های فضای خالی عمومی")،
    برای جدا کردن واژگان از یکدیگر (مانند فضا،
    توقف زبانه، پرش به خط جدید).
    از حروف الفبا
    واژگان زبان شکل می گیرد:
    شناسه ها؛
    کلمات کلیدی (رزرو شده)؛
    علائم عملیات؛
    ثابت ها
    جداکننده (پرانتز، نقطه، کاما، کاراکتر فاصله).
    مرزهای توکن توسط توکن های دیگری مانند
    جداکننده ها یا علائم عملیاتی

    شناسه ها

    شناسه نام شی برنامه است. که در
    می توان از شناسه های لاتین استفاده کرد
    حروف، اعداد و زیرخط. حروف بزرگ و
    حروف کوچک متفاوت است شخصیت اول
    شناسه می تواند یک حرف یا یک علامت باشد
    تاکید می کند. که در آن:
    شناسه نباید با کلمات کلیدی مطابقت داشته باشد
    کلمات و اسامی استانداردهای مورد استفاده
    اشیاء زبان؛
    توصیه نمی شود که شناسه ها را با یک کاراکتر شروع کنید
    تاکید می کند؛
    شناسه ها می توانند از هر طولی باشند، اما
    کامپایلر بیش از 31 کاراکتر را در نظر نمی گیرد
    ابتدای شناسه؛
    نمونه های شناسه:
    KOM_16، اندازه 88، _MIN، TIME، زمان

    کلید واژه ها

    کلمات کلیدی شناسه های رزرو شده ای هستند که دارند
    ارزش ویژه برای کامپایلر فقط می توان از آنها استفاده کرد
    معنایی که آنها در آن تعریف می شوند. فهرست کنید کلید واژه ها C++ داده شده است
    جدول:
    INT
    CHAR
    شناور
    دو برابر
    ساختار
    اتحاد. اتصال
    بلند
    کوتاه
    بدون امضا
    خودکار
    CONST
    درست است، واقعی
    خارجی
    ثبت نام
    TYPEDEF
    استاتیک
    رفتن به
    برگشت
    SIZEOF
    زنگ تفريح
    ادامه هید
    اگر
    خالی
    جدید
    دیگر
    برای
    انجام دادن
    در حالی که
    تعویض
    مورد
    پیش فرض
    ورود
    و
    ساختار
    TYPEDEF
    BOOL

    علائم عملیات

    علامت عملیات یک یا چند است
    نمادهای عمل
    بیش از عملوندها علامت داخل
    فضاها مجاز نیستند
    عملیات به یکپارچه تقسیم می شود،
    باینری و سه تایی تعداد
    عملگرهای درگیر

    انواع داده های ساده

    نوع داده تعریف می کند:
    نمایش داخلی داده ها در حافظه
    کامپیوتر؛
    مجموعه ای از ارزش هایی که می توانند
    پذیرش مقادیر از این نوع؛
    عملیات و توابعی که می تواند باشد
    برای مقادیری از این نوع اعمال شود.
    زبان C++ شش استاندارد را تعریف می کند
    انواع داده های ساده برای نشان دادن
    عدد صحیح، واقعی، شخصیت و
    ارزش های منطقی

    انواع داده ها
    مشخص کننده های نوع عبارتند از:
    کاراکتر
    - نمادین؛
    ممیز شناور با دقت دو برابر واقعی؛
    شناور - نقطه شناور واقعی؛
    int - عدد صحیح؛
    طولانی
    - عدد صحیح افزایش یافته (عدد صحیح طولانی)؛
    عدد صحیح کوتاه با طول کوتاه (عدد صحیح کوتاه)؛
    امضا شده - امضا شده، i.e. عدد صحیح امضا شده (مهمترین بیت به عنوان
    نمادین)؛
    بدون امضا - بدون امضا، i.e. عدد صحیح بدون علامت (مهمترین بیت نه
    نمادین در نظر گرفته می شود).
    خالی
    - فقدان ارزش؛
    bool - boolean (فقط می تواند مقادیر true و false را بگیرد.
    نمایش داخلی false 0 (صفر) است.
    هر مقدار دیگری به عنوان درست تفسیر می شود.)
    برای توصیف ثابت ها، از کلمه سرویس const قبل استفاده کنید
    شرح نوع به عنوان مثال، const float g=9.8;

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

    یک برنامه ++C است
    یک یا چند تابع یکی از توابع
    باید main() نامیده شود. از این است
    تابع شروع به اجرای برنامه می کند و از
    این تابع، در صورت نیاز،
    توابع دیگر نامیده می شوند.
    ساده ترین تعریف تابع دارای فرمت زیر است:
    نام نوع return ([ پارامترها ])
    {
    عباراتی که بدن تابع را تشکیل می دهند
    }
    به عنوان یک قاعده، تابع برای محاسبه مقداری استفاده می شود
    مقادیر، بنابراین نام تابع قبل از نوع آن قرار می گیرد. اگر
    تابع نباید مقداری برگرداند، نوع void مشخص شده است.
    که در آن:
    – بدنه تابع در بریس های مجعد محصور شده است.
    - توابع را نمی توان تودرتو کرد.
    - هر عبارت با یک نقطه ویرگول (به جز
    عملگر مرکب).

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

    یک برنامه ممکن است از چندین ماژول (فایل منبع) تشکیل شده باشد و به طور معمول،
    شامل دستورالعمل های پیش پردازنده است. نمونه ای از ساختار برنامه حاوی
    توابع اصلی، f1 و f2:
    دستورالعمل های پیش پردازنده
    توضیحات
    int main()
    {
    عملگرهای تابع اصلی
    }
    int f1() (
    عملگرهای تابع f1
    }
    int f2() (
    عملگرهای تابع f2
    }
    /* مثالی از یک برنامه ساده */
    #عبارتند از
    int main()
    {
    printf ("سلام جهان!");
    بازگشت 0;
    }

    12. توابع ورودی/خروجی به سبک C

    توابع اولیه ورودی/خروجی به سبک C:
    int scanf (فرمت const char*...) // ورودی
    int printf(const char* format...) // خروجی
    آنها ورودی و خروجی فرمت شده تعداد دلخواه مقادیر را بر اساس رشته انجام می دهند
    قالب رشته قالب حاوی کاراکترهایی است که در جریان (به صفحه) یا
    از جریان (از صفحه کلید) در ورودی درخواست می شود، و مشخصات تبدیل با شروع
    علامت % که در حین ورودی و خروجی با مقادیر خاصی جایگزین می شوند.
    #عبارتند از
    int main() (
    int i;
    printf("یک عدد صحیح را وارد کنید\n");
    scanf("%d"، &i);
    printf("شما عدد %d را وارد کردید، متشکرم!"، i);
    بازگشت 0; )
    خط اول این برنامه یک دستورالعمل پیش پردازنده است که در متن برنامه درج می شود
    فایل هدر ، حاوی توضیحاتی از توابع ورودی/خروجی استفاده شده در برنامه است. همه
    دستورالعمل های پیش پردازنده با علامت # شروع می شوند.
    خط سوم شرحی از یک متغیر نوع صحیح به نام i است.
    تابع printf در خط چهارم دستور Enter یک عدد صحیح را چاپ می کند و به یک خط جدید می پرد.
    با توجه به \n دنباله فرار.
    تابع scanf عدد صحیح وارد شده از صفحه کلید را در متغیر i ذخیره می کند و عبارت زیر به چاپ می رسد
    رشته ای که در آن وجود دارد را نمایش دهید و مقدار آن عدد را جایگزین مشخصات تبدیل کنید.

    13. توابع I/O به سبک C++

    همان برنامه با استفاده از کتابخانه
    کلاس های C++ :
    #عبارتند از
    با استفاده از namespace std.
    int main()
    {
    int i;
    کوت<< "Введите целое число\n";
    cin >> i;
    کوت<< "Вы ввели число" << i << ", спасибо!"; return 0;
    }

    14. کتابخانه های استاندارد

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

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

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

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

    برای اتصال کتابخانه ها، استفاده کنید
    دستورالعمل پیش پردازنده
    # شامل [نام فایل]
    #شامل بخشنامه<имя_файла>درج می کند
    محتویات فایل مشخص شده تا آن نقطه
    فایل منبعی که در آن نوشته شده است.
    مثلا:
    #عبارتند از
    #include "mylib.h"

    17. #define Preprocessor Directive

    دستور #define یک جایگزین را در متن تعریف می کند
    برنامه ها. برای تعیین استفاده می شود
    ثابت های نمادین
    قالب تعریف ثابت نمادین:
    #define name substitution_text /*همه رخدادها
    نام ها با متن جایگزین جایگزین می شوند */
    مثال ها:
    #M 1000 را تعریف کنید
    #تعریف واسیا "واسیلی ایوانوویچ"

    18. برخی از کتابخانه های استاندارد

    ALLOC.H
    شرح عملکردهای مدیریت حافظه
    (تخصیص، تخصیص و غیره)
    BIOS.H
    شرح توابع مختلف مورد استفاده در
    دسترسی به زیربرنامه های بایوس (اصلی
    سیستم I/O).
    CONIO.H شرح توابع مختلف مورد استفاده در
    دسترسی به روال های DOS I/O با
    صفحه کلید
    GRAPHICS.H شامل نمونه های اولیه عملکرد گرافیکی است.
    MATH.H شامل توصیفی از نمونه های اولیه ریاضی است
    کارکرد
    STDIO.H انواع و ماکروهای مورد نیاز را تعریف می کند
    بسته استاندارد ورودی/خروجی نیز تعریف می کند
    جریان های ورودی/خروجی استاندارد stdin، stdout و
    زیربرنامه های I/O را توصیف می کند.
    STDLIB.H برخی از روال های عمومی را شرح می دهد:
    زیر برنامه هایی برای تبدیل، جستجو، مرتب سازی و موارد دیگر.
    STRING.H
    چندین روال پردازش رشته و
    کار حافظه

    19. تابع خروجی فرمت PRINTF

    ما قبلاً از رایج ترین آنها استفاده کرده ایم
    تابع خروجی در C زیربرنامه printf است. او
    هدف نوشتن اطلاعات روی صفحه است.
    فرمت آن هم ساده و هم انعطاف پذیر است:
    printf(<строка формата>, <объект>, <объект>, ...);

    20. تابع ورودی فرمت SCANF

    برای حالت ورودی تعاملی، احتمالاً می توان در آن استفاده کرد
    در بیشتر موارد، عملکرد scanf. scanf طبق تعریف یک تابع ورودی است
    معادل printf; فرمت آن به شکل زیر است:
    scanf(<строка формата>,<адрес>,<адрес>,...)
    با این حال، scanf یک تفاوت بسیار مهم دارد: اشیاء زیر
    رشته فرمت باید آدرس باشد نه مقادیر. به عنوان مثال، در
    این برنامه شامل تماس زیر است:
    scanf("%d %d"، &a، &b);
    این تماس به برنامه می گوید که باید از شما انتظار ورودی داشته باشد.
    دو عدد اعشاری (صحیح) که با فاصله از هم جدا شده اند. اولین اراده
    به a و دومی به b اختصاص داده شده است. توجه داشته باشید که در اینجا از عملیات استفاده می کنیم
    آدرس های (&) برای ارسال آدرس های a و b به scanf.

    21. رشته را قالب بندی کنید

    رشته فرمت رشته ای است که شروع می شود
    و با دو نقل قول ("مانند این") به پایان می رسد.
    هدف printf نوشتن این خط روی صفحه است. قبل از
    خروجی printf جایگزین همه چیز اضافی می شود
    اشیاء فهرست شده در خط بر اساس
    با مشخصات فرمت مشخص شده در
    خود خط مثالی از عبارت printf:
    printf(" d= %f \n",d);

    22. رشته را قالب بندی کنید

    %f در رشته فرمت مشخصات قالب است. همه
    مشخصات قالب با علامت درصد (%) شروع می شود و
    (معمولا) به دنبال آن یک حرف واحد نشان دهنده نوع است
    داده ها و نحوه تبدیل آنها
    %f استفاده شده در مشخصات، آنچه را که انتظار می رود می گوید
    تعدادی عدد واقعی در اینجا چند مشخصات فرمت رایج دیگر وجود دارد:
    - %u عدد صحیح بدون علامت
    - %ld عدد صحیح طولانی
    - مقدار نشانگر %p
    - %d عدد صحیح
    - %e عدد ممیز شناور به صورت نمایی
    - کاراکتر %c
    - رشته %s
    - %x یا %X عدد صحیح در قالب هگزادسیمال.

    23. رشته را قالب بندی کنید

    با قرار دادن آن می توانید عرض فیلد را تنظیم کنید
    بین % و حرف، به عنوان مثال فیلد اعشاری
    عرض 4 به عنوان %4d داده می شود. ارزش خواهد بود
    چاپ شده به سمت راست (در مقابل
    فضاها)، بنابراین کل عرض فیلد 4 است.
    یا مثلا %6.2f به این معنی است
    6 موقعیت برای یک عدد واقعی اختصاص داده شده است،
    و 2 - زیر قسمت کسری.
    اگر می خواهید علامت % را چاپ کنید، %% را وارد کنید.

    24. رشته را قالب بندی کنید

    \n در یک رشته مشخصات قالب نیست، اما
    (به دلایل تاریخی) به عنوان
    دنباله فرار، و نشان می دهد
    یک کاراکتر خاص که در یک رشته درج شده است. در این مورد
    \n یک کاراکتر را در شروع یک خط جدید درج می کند، بنابراین
    پس از خروجی خط، مکان نما به ابتدای خط جدید حرکت می کند
    خطوط
    - \f (ترجمه قالب یا صفحه شفاف)
    - \t (برگه)
    - \b (backspace<-)
    - \xhhh (کاراکتر با کد ASCII hhh، جایی که hhh وارد کنید
    شامل 1 تا 3 رقم هگزادسیمال)
    اگر نیاز به چاپ بک اسلش دارید
    درج \\.

    25. نمونه ای از برنامه C

    #عبارتند از
    #عبارتند از
    اصلی ()
    {
    شناور x1,y1,x2,y2;
    printf("دو عدد را وارد کنید:");
    scanf("%f%f%f%f",&x1,&y1,&x2,&y2);
    float d = sqrt(pow((x2-x1),2)+pow((y2-y1),2));
    printf("d= %f \n"، d);
    }

    26. سایر عملکردهای خروجی PUTS، PUTCHAR

    دو عملکرد خروجی دیگر وجود دارد که می تواند به شما کمک کند
    مورد علاقه: قرار می دهد و پوتچار. تابع puts یک رشته به خروجی می دهد
    صفحه نمایش داده می شود و خروجی را با یک کاراکتر خط جدید خاتمه می دهد.
    یک برنامه نمونه را در نظر بگیرید:
    #عبارتند از
    اصلی ()
    {
    puts("سلام، دانشجوی VKI NSU");
    }
    توجه داشته باشید که \n در انتهای خط حذف شده است. این ضروری نیست، زیرا
    خود قرار می دهد این شخصیت را اضافه می کند.
    برعکس، تابع putchar یک کاراکتر را می نویسد
    صفحه نمایش داده می شود و \n را اضافه نمی کند. putchar(ch) معادل است
    printf("%c"،ch).

    27. توابع GETS، GETCH

    main()
    {
    نام شخصیت ؛
    printf("نام شما چیست:");
    scanf("%s",name);

    }
    اگر نام خانوادگی و نام را وارد کنید، فقط نام خانوادگی نمایش داده می شود. زیرا
    فضایی که بعد از نام وارد می‌کنید تا انتهای ورودی را اسکن کنید
    خطوط
    با استفاده از تابع gets می توانید این مشکل را حل کنید.
    اصلی ()
    {
    نام شخصیت ؛
    printf("نام شما چیست:");
    می گیرد (نام)؛
    printf("سلام، %s\n"، نام);
    }

    28. توابع GETS، GETCH

    #عبارتند از
    #عبارتند از
    اصلی ()
    {
    clrscr();
    نام شخصیت ؛
    printf("نام شما چیست:");
    می گیرد (نام)؛
    printf("سلام، %s\n"، نام);
    getch();
    }
    در اینجا تابع getch منتظر می ماند تا هر کاراکتری وارد شود.
    تابع getch یک کاراکتر را از صفحه کلید بدون صدور می خواند
    آن را به صفحه نمایش (بر خلاف scanf و می شود). توجه داشته باشید که او ندارد
    پارامتر. اگر تابع را به یک متغیر نمادین نسبت دهیم، پس
    مقدار کاراکتر فشرده را دریافت می کند.
    به عنوان مثال: c=getch();

    29. عملیات واگذاری

    متداول ترین عملیات تخصیص است،
    برای مثال، p=a/b یا ch = getch(). در سی
    انتساب با یک علامت مشخص می شود
    برابری (=); در حالی که مقدار سمت راست علامت
    برابری به متغیر سمت چپ اختصاص داده می شود.
    شما همچنین می توانید از ترتیب استفاده کنید
    تکالیف، به عنوان مثال: sum=a= b. چنین
    موارد، انتساب در سمت راست انجام می شود
    در سمت چپ، یعنی b به a اختصاص داده می شود که در
    به نوبه خود به جمع اختصاص داده می شود، بنابراین همه
    سه متغیر یک مقدار (و
    یعنی مقدار اولیه b).

    30. عملیات حسابی. افزایش. کاهش.

    C از مجموعه معمول عملیات حسابی پشتیبانی می کند:
    - ضرب (*)
    - تقسیم (/)
    - تعیین باقی مانده تقسیم (%)
    - اضافه کردن (+)
    - منها کردن (-)
    برای افزایش یک متغیر، از افزایش (++) استفاده کنید.
    کاهش (--) برای کاهش یک.
    بنابراین:
    x++; // x را یک افزایش دهید
    y--; // y را یک کاهش دهید
    نمونه هایی از عملیات پسوند و پیشوند:
    a=2;
    a=2;
    x=18-2*a++;
    x=18-2*(++a);
    ما گرفتیم:
    a=3
    a=3
    x=14
    x=12

    31. عملیات ترکیبی

    در زیر چند نمونه از عبارات آورده شده است
    و راه های کاهش آنها:
    a = a + b به اختصار a += b;
    a = a - b; به اختصار a -= b;
    a = a * b; به اختصار a *= b;
    a = a / b; به اختصار a /= b;
    a = a % b; کاهش به %=b;

    32. مثال 1

    X3 و X10 را با استفاده از چهار ضرب برای محاسبه کنید
    مقدار صحیح X داده شده است.
    #عبارتند از
    int x,x2,x3,x5,x10;
    main() (
    printf("\n برنامه محاسبه X^3 و X^10\n");
    puts ("مقدار X را وارد کنید");
    scanf("%i"،&x);
    x2=x*x;
    x3=x*x2;
    x5=x2*x3;
    x10=x5*x5;
    printf("%i به توان سوم = %i \n",x,x3);
    printf("%i به توان دهم = %i",x,x10);
    }

    33. مثال 2

    زاویه بر حسب رادیان داده می شود. سینوس و کسینوس یک زاویه را محاسبه کنید.
    #عبارتند از
    #عبارتند از
    زاویه شناور، نتیجه 1، نتیجه 2;
    اصلی ()
    {
    printf("\nبرنامه محاسبه گناه و زاویه cos\n");
    puts("مقدار زاویه را بر حسب رادیان تنظیم کنید");
    scanf("%f"،&Angle);
    Result1=sin(زاویه);
    نتیجه2=cos(زاویه);
    printf("سینوس زاویه %f \n" است، Result1);
    printf("کسینوس زاویه %f است"، Result2);

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

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

    فرم کلی

    مثال

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

    #عبارتند از

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

    نام تابع اصلی

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

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

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

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

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

    gets(str);

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

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

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

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

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

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

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

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

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

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

    بخشنامه

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

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

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

    #define 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 کاراکتر است. نماد مربوط به یک کد داده شده توسط جدول کد استفاده شده تعیین می شود. بنابراین، مقدار یک متغیر از نوع کاراکترمی توان آن را به عنوان یک عدد صحیح یا به عنوان یک کاراکتر که کد آن برابر با این عدد است در نظر گرفت.

    لطفاً AdBlock را در این سایت متوقف کنید.

    امیدوارم قبلاً مقداری IDE را روی رایانه خود نصب کرده باشید و نحوه کامپایل برنامه ها را در آن یاد گرفته باشید. اگر نه، پس

    تمام برنامه هایی که به زبان C نوشته شده اند ساختار مشترکی دارند. که در این درس در مورد آن صحبت خواهیم کرد. اولین برنامه ما که در مرحله قبل نوشته شده است به ما در این امر کمک می کند.

    بیایید یک نقشه ساده را پر کنیم. در حال حاضر، ما می دانیم که برنامه ها وجود دارند، اما نمی دانیم که چگونه آنها در داخل چیده شده اند. بنابراین نقشه ما به این صورت خواهد بود.

    شکل 1 نقشه "ساختار برنامه های C." سطح اول.

    در طول دوره، ما به این نقشه باز می گردیم، آن را اصلاح می کنیم، آن را با عناصر و بلوک های جدید تکمیل می کنیم.

    حالا توجه نترس! در زیر کد منبع سه برنامه ساده آورده شده است. وظیفه شما این است که با دقت به آنها نگاه کنید و سعی کنید الگوهایی را در کد آنها پیدا کنید (چیزی که در هر برنامه رایج است).

    لیست 1. برنامه 1. چاپ "سلام، جهان!"

    #عبارتند از

    لیست 2. برنامه 2

    int main(void) (int a, b, c؛ a = 5؛ b = 10؛ c = a+b؛ return 0؛ )

    لیست 3. برنامه 3

    #عبارتند از int main(void) ( FILE *fp; fp = fopen("input.txt"، "w"); fprintf(fp، "این اسپارتا است!")؛ fclose(fp)؛ بازگشت 0؛ )

    برای تماشای ادامه درس و پاسخ صحیح به این مشکل وقت بگذارید. ابتدا سعی کنید به خودتان پاسخ دهید. پس از آن، روی دکمه "تماشا به ادامه!"

    بنابراین، پاسخ این است: در تمام برنامه های بالا، ساختار زیر وجود دارد:

    لیست 4. تابع اصلی هر برنامه C تابع اصلی است.

    int main(void) (return 0; )

    این چه نوع طراحی است. این اعلان تابع اصلی است. هر برنامه ای که به زبان C نوشته شده است چنین عملکردی دارد. چه یک برنامه بزرگ باشد یا یک برنامه کوچک، یک بازی کامپیوتری یا یک برنامه "Hello, World!" نوشته شما یا بیل گیتس -- اگر برنامه به زبان C نوشته شده باشد. - یک عملکرد اصلی دارد. این کارکرد اصلی برنامه ما است. وقتی یک برنامه را اجرا می کنیم، می توانیم خودمان را به عنوان اجرای عملکرد اصلی برنامه تصور کنیم.

    یک لحظه بایستیم. به نظر می رسد ما قبلاً چیزی در مورد ساختار برنامه ها در زبان C کشف کرده ایم. هر برنامه C باید یک تابع اصلی داشته باشد. بیایید این واقعیت را در نقشه دانش خود "ساختار برنامه های C" نشان دهیم.

    شکل 2 نقشه "ساختار برنامه های C." عملکرد اصلی

    حالا نقشه با خالی بودنش ما را آزار نمی دهد. بیایید به تحقیقات خود ادامه دهیم.

    اجازه دهید کمی در مورد تابع اصلی و به طور کلی در مورد توابع صحبت کنم.

    قبل از نام تابع با int آمده است که مخفف کلمه integer است که از انگلیسی به عنوان "کل" ترجمه می شود. چنین علامت گذاری به این معنی است که وقتی تابع اصلی کار خود را کامل می کند، باید یک عدد صحیح را به برنامه فراخوانی برگرداند (در مورد ما، این سیستم عامل است). معمولاً برای عملکرد اصلی این عدد صفر است که به سیستم عامل اطلاع می دهد: "می گویند همه چیز خوب است. هیچ حادثه ای رخ نداده است."

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

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

    در داخل براکت‌های فرفری، شرح عملکرد اصلی، یعنی. دقیقاً همان کاری که این تابع قرار است انجام دهد.

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

    ممکن است بپرسید چرا دقیقاً صفر است؟ و شیطان می داند! این همان روشی است که آنها معمولاً این کار را انجام می دهند. اصولاً می توانید یک عدد صحیح دیگر مانند 100 یا -236 را برگردانید. تا زمانی که یک عدد صحیح باشد. int را به خاطر دارید؟ بنابراین، کل.

    بنابراین ما تابع اصلی را فهمیدیم. یک لحظه دیگر آنچه در بریس‌های فرفری نوشته می‌شود معمولاً «بدنه عملکرد» (یا شرح عملکرد) نامیده می‌شود و قسمت اول، قسمت قبل از بریس‌های فرفری، هدر تابع نامیده می‌شود.

    بیایید به اولین برنامه "سلام، جهان" خود برگردیم و ببینیم چه چیزی چیست.

    لیست 5. برنامه "Hello, World".

    #عبارتند از int main(void) ( printf("Hello, World!\n"); return 0; )

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

    فهرست 6. بخشنامه شامل

    #عبارتند از

    این خط یک پیام به کامپایلر است. این پیام ها که با کاراکتر # شروع می شوند، دستورالعمل های کامپایلر نامیده می شوند. به معنای واقعی کلمه: "فایل stdio.h را وصل کنید". در حین کامپایل، محتوای فایل stdio.h به جای این خط درج می شود. حالا بیایید کمی در مورد این فایل صحبت کنیم. stdio.h (از STanDart Input Output) یک فایل هدر است که توابع مختلف استاندارد مربوط به ورودی و خروجی را توصیف می کند.

    یک سوال منطقی مطرح می شود، "چرا باید این خط را بنویسیم؟ اصلاً چرا باید این فایل را در اینجا وارد کنیم؟" این امر ضروری است تا در برنامه ما بتوانیم از تابع خروجی صفحه استاندارد printf () استفاده کنیم.

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

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

    به هر حال، وقت آن است که نقشه دانش خود را تکمیل کنیم. قبل از تابع اصلی، بیایید یک بلوک دیگر اضافه کنیم، بلوک برای اتصال فایل‌های هدر.

    شکل 3 نقشه "ساختار برنامه های C." بلوک اتصال فایل های هدر.

    بیایید به برنامه خود ادامه دهیم.

    لیست 7. تابع printf().

    Printf("سلام، جهان!\n");

    در این خط تابع استاندارد printf() را برای نمایش روی صفحه فراخوانی می کنیم. در این ساده‌ترین حالت، یک پارامتر را به آن پاس می‌دهیم، رشته‌ای که در گیومه نوشته شده است، که باید روی صفحه نمایش داده شود، در مورد ما Hello, World! \n اما صبر کنید، این چیست \n؟ هنگام شروع برنامه هیچ \n روی صفحه وجود نداشت. پس چرا این را اینجا نوشتیم؟ این دنباله یک کاراکتر خاص است که دستوری برای رفتن به خط بعدی است. مانند فشار دادن کلید Enter در MS Word است. چندین کاراکتر خاص وجود دارد، همه آنها با استفاده از کاراکتر "\" نوشته می شوند - یک بک اسلش. به این کاراکترهای خاص، کاراکترهای کنترلی گفته می شود. سپس آنها را به شما نشان خواهم داد. در غیر این صورت دقیقاً همان چیزی که در دو گیومه نوشته اید روی صفحه ظاهر می شود.

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

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

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

    فهرست 8. الگوی استاندارد برای برنامه های C.

    #عبارتند از int main(void) (return 0; )

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

    مهم ترین نکته در این درس البته ساختار کلی برنامه است. اما علاوه بر این، یاد گرفتیم که چگونه متن دلخواه را روی صفحه نمایش دهیم. به نظر می رسد که آنها اصلاً چیزی یاد نگرفته اند، اما همین کافی است که مثلاً در 8 مارس یک هدیه کوچک به مادر خود بدهید.


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