رفتن به مطلب
جامعهٔ برنامه‌نویسان مُدرن ایران

پرچمداران

  1. کامبیز اسدزاده

    کامبیز اسدزاده

    بنیـــان گذار


    • امتیاز

      3

    • تعداد ارسال ها

      379



مطالب محبوب

در حال نمایش مطالب دارای بیشترین امتیاز از زمان سه شنبه, 24 تیر 1399 در همه بخش ها

  1. 1 امتیاز
    مراحل ساخت برنامه‌ در زبان سی‌پلاس‌پلاس پیش نویس ۰.۶ قبل از هر چیز به اینفوگرافی زیر توجه کنید که مراحل ساخت برنامه در سی‌پلاس‌پلاس را نشان می‌دهد. مقدمه‌ای بر همگردانی (کامپایل) و اتصال (لینک کردن) این سند مرور مختصری در رابطه با مراحل را برای شما فراهم می‌کند تا به شما در درک دستورات مختلف برای تبدیل و اجرای برنامه‌ی خودتان کمک کند. تبدیل مجموعه‌ای از فایل‌های منبع و هدر در سی‌پلاس‌پلاس به یک فایل خروجی و اجرایی در چندین گام (به طور معمول در چهار گام) پیش‌پردازنده (Preprocessors)، کامپایل و گرد‌آوری (Compilation)، اسمبلر (Assmbler) و پیوند دهنده (Linker) تقسیم می‌شود. قبل از هر چیز اگر در محیط توسعه‌ی Qt Creator داخل فایل .pro مقدار زیر را وارد کنید، تا بتوانید فایل‌های ساخته شده‌ی موقت در زمان کامپایل را مشاهده کنید. QMAKE_CXXFLAGS += -save-temps این دستور اجازه‌ی آن را خواهد داد تا فایل‌هایی با پسوند .ii و .s در شاخه‌ی بیلد پروژه تولید شوند که در ادامه به آن‌ها اشاره شده است. تعریف پیش‌پردازنده پیش‌پردازنده‌ها (Preprocessors) درواقع دستوراتی هستند که اجازه می‌دهند تا کامپایلر قبل از آغاز کردن مراحل کامپایل دستوراتی را دریافت کند. پیش‌پردازنده‌ها توسط هشتگ (#) مشخص می‌شوند این نماد در سی‌++ مشخص میکند که دستور فوق از نوع پیش‌پردازنده می‌باشد که نتیجه‌ی آن در قالب ماکرو (Macro) در دسترس خواهد بود. برای مثال ماکروی __DATE__ توسط پیش‌پردازنده‌ها از قبل تعریف شده است که مقدار تاریخ و زمان را بازگشت می‌دهد. بنابراین هرکجا که از آن استفاده شود کامپایلر آن را جایگزین متن خواهد کرد. در شکل زیر مرحله‌ای که از پیش‌پردازنده‌ها استفاده می‌شود آمده است: پیش‌پردازنده، کامپایل (گردآوری کردن)، لینک (پیوند کردن) و ساخت برنامه اجرایی فرایند تبدیل مجموعه‌ای از فایل‌های متنی هِدر و سورس سی‌++ را «ساخت» یا همان Building می‌گویند. از آنجایی که ممکن است کُد پروژه در بسیاری از فایل‌ها هدر و سورس سی++ توسعه و گسترش یابدمراحل ساخت در چند گام کوچک صورت می‌گیرد. یکی از رایج‌ترین موارد در مراحل گردآوری (ترجمه‌ی یک کد سی‌پلاس‌پلاس به دستورالعمل‌های قابل فهم ماشین) است. اما گام‌های دیگری نیز وجود دارد، پیش‌پردازنده و لینک (پیوند‌ها) این بخش به طور خلاصه توضیح می‌دهد که چه اتفاقی در هر یک از مراحل رُخ می‌دهد. یک کامپایلر یک برنامه‌ی خاص است که پردازش اظهارات (دستورات) نوشته شده در یک زبان برنامه‌نویسی خاص را به یک زبان ماشین که قابل فهم برای پردازنده می‌باشد تبدیل کند. به طور معمول یک برنامه‌نویس با استفاده از یک ویرایشگر که به محیط توسعه‌ی یکپارچه‌ی نرم‌افزار (IDE) مشهور است توسط زبان برنامه‌نویسی مانند ++C دستورات (اظهارات) را می‌نویسد. فایل ایجاد شده با نام (filename.cpp در زبان برنامه‌نویسی سی‌پلاس‌پلاس) شامل محتوایی است که معمولاً به عنوان دستورات برنامه‌نویسی سطح بالا نامیده می‌شود. سپس برنامه‌نویس کامپایلرِ مناسب برای زبان برنامه‌نویسی مانند سی++ را اجرا می‌کند و نام فایل‌هایی که حاوی دستورات هستند را برای کامپایل مشخص می‌کند که این انتخاب و مشخص سازی توسط IDE به راحتی قابل مدیریت است. پس از آن، کار کامپایلر این است که فایل‌های منبع .cpp را جمع آوری کرده و پیش‌پردازنده‌ها را بررسی کند تا دستورات احتمالی را اجرا نماید که نتیجه‌ی این مرحله در فایلی با پسوند .ii ر قالب filename.ii تولید می‌شود که در این فرایند نیز خط به خط کُد‌های موجود در آن‌ها را بررسی می‌کند تا خطاهای احتمالی نحو (سینتکس - Syntax) بررسی می‌شود و آن‌ها را به طور ترتیبی به دستورالعمل‌های سطح ماشین تبدیل کند. توجه داشته باشید که هر نوع پردازنده‌ی کامپیوتر دارای مجموعه‌ای از دستورالعمل‌هایِ ماشین خودش است. بنابراین کامپایلر تنها برای سی++ نیست، بلکه برای اهداف و مقاصد خاص هر پلتفرم است. پس کد‌هایی که توسط پیش‌پردازنده سی‌پلاس‌پلاس به زبان اسمبلی برای معماری مورد نظر در پلتفرم مقصدترجمه شده‌اند نتایج آن در فایلی با پسوند .ss در قالب filename.ss قابل نمایش هستند که در حالت عادی قابل رویت نیست. توجه داشته باشید که باید در این مرحله باید مشخص شود برنامه قرار است توسط چه نوع پردازنده‌ای تحتِ چه نوع معماری مونتاژ (اسمبل) شود. برای مثال پردازنده‌ها با انواع معماری‌های مختلف وجود دارند که برخی از آن‌ها به صورت x86-x64، x64، ARMv7، aarch64 غیره ... می‌باشند. شکل یک (کامپایل یک فایل منبع ++C) مرحله‌ی سوم را در نظر داشته باشید که عمل کامپایل فایل سی‌پلاس‌پلاس در دو مرحله قبلی یک فایل اجرایی را تولید نمی‌کند. برنامه‌ای که توصیف شده است، احتمالاً توابعی را در رابط‌های برنامه‌نویسی (API) و یا توابع ریاضی یا توابع مرتبط با I/O را فراخوانی کند که ممکن است شامل فایل‌های هدر مانند iostream یا fstream و حتی ماژول‌های دیگری که در زبان‌ تعبیه شده‌اند را داشته باشد که فایل تولید شده توسط کامپایلر در این مرحله یک فایل شیء نامیده می‌شود که با پسوند .o به صورت filename.o تولید خواهد شد که علاوه بر دستورالعمل‌های تبدیل شده به کد ماشین، شامل توابع و دستورالعمل‌های خارجی نیز می‌باشد. هرچند در این مرحله دستورات تبدیل به دستورالعمل‌های قابل فهم توسط پردازنده شده‌اند اما فعلاً قابل اجرا نیستند چرا که باید این توابع خارجی افزوده شده را به آن لینک کرد که در مرحله‌ی بعد یعنی مرحله‌ی چهارم اتفاق می‌افتد. در نهایت مرحله‌ی چهارم فایل با پسوند .o که شامل کد‌های تولید شده توسط کامپایلر به زبان ماشین است که پردازنده‌ها می‌توانند این دستورات را درک کنند که همراه با کد‌های تولید شده‌ی هر کتابخانه‌ی دیگری که مورد نیاز است توسط لینکر (لینک شده) و در نهایت جهت تولید یک فایل اجرایی مورد استفاده قرار می‌گیرند که نوع آن فایل از نوع اجرایی یا در واقع Executable File خواهد بود. شرح کامل فرایند ساخت فایل اجرایی اکثر پروژه‌ها دارای مجموعه‌ای از فایل‌های هدر سی++ هستند، که امکان ماژولار شدن در آن را فراهم می‌کند و مجموعه‌ای از آن می‌تواند به عنوان بخش‌های کوچکی از برنامه محسوب شوند. برای ساخت چنین پروژه‌هایی هر فایل سی‌پلاس‌پلاس باید کامپایل شود و سپس فایل‌های ساخته شده در قالب شیء (آبجکت) باید همراه توابع و کتابخانه‌های دیگر لینک (پیوند) شوند. البته هر گام از مراحل کامپایل شامل یک مرحله پیش‌پردازنده است که دستورالعمل # عمل تغییرات و اصلاحیه‌ها را در فایل متن اعمال می‌کند. شکل زیر فرایند ساخت چند فایل به صورت همزمان را نشان می‌دهد:
  2. 1 امتیاز
    با سلام، در این پُست ما قصد داریم در رابطه با نحوهٔ آغاز یادگیری کیوت توضیح دهیم. اینکه به عنوان یک تازه‌کار چه پیش‌نیازاتی را باید مطالعه و در نهایت چگونه و تحتِ چه منابعی این کتابخانهٔ قدرتمند را بیاموزیم. همچنین پاسخ برخی از سوالات شما را در این پُست به طور شفاف ارائه شده است که طیِ چندین سال سوال علاقه مندان بوده‌اند. پیش‌نیازات برای یادگیری کتابخانه‌ Qt دانش متوسط و به بالا در رابطه با زبان‌ برنامه‌نویسی مُدرن سی‌پلاس‌پلاس نسخه‌‌های ۱۱ به بعد، (بنابراین اگر شما هیچ اطلاعی در رابطه با ساختار برنامه‌های سی‌پلاس‌پلاس و نحوهٔ عملکرد آن ندارید، شانس موفقیت شما بسیار پایین خواهد بود و ممکن است برنامهٔ تولید شدهٔ شما به بدترین شکل ممکن پیاده سازی شود). ما پیشنهاد می‌کنیم قبل از آن با زبان سی‌پلاس‌پلاس آشنا شوید. آشنایی با کامپایلر و نحوهٔ عملکرد آن در پلتفرم‌های مختلف از جمله ویندوز، مک‌او‌اِس، لینوکس، اندروید و آی‌او‌اِس آشنایی با برنامه‌نویسی در معماری‌های مختلف مانند x86، x86-64، Arm و غیره... آشنایی با معماریِ سیستم‌عامل‌ها، برای مثال اگر قرار است از خاصیت چند-سکویی کیوت استفاده کنید تا یک برنامهٔ تحت اندروید را توسعه دهید، در این صورت باید در نظر داشته باشید که شما بدون درکِ معماری سیستم‌عامل اندروید و پیکربندی برنامه در مراحل توسعه نمی‌توانید به راحتی از پسِ این کار بر آیید. آشنایی با اصطلاحات و مفاهیم تجربهٔ کاربری و رابط کاربری جهت طراحی مناسب با فناوری‌های Qt Widget و Qt Quick (در صورتی که علاقه‌مند به طراحی ظاهر برنامه‌های خلاقانه دارید) آشنایی Xml و JavaScript برای طراحی رابط گرافیکی تحت فناوری‌های فوق در پلتفرم‌های موبایل گاهاً نیاز است تا بر اساس رابط‌های برنامه‌نویسی پیشفرض آن‌ها کد‌های خود را توسعه دهید، بنابراین آشنایی به ساختار برنامه‌های iOS و Android یکی از الزامات است. آیا کیوت یک زبان برنامه‌نویسی است؟ چرا نحوِ (Syntax) آن با سی‌پلاس‌پلاس استاندارد فرق می‌کند؟ خیر، کیوت ابتدا به عنوان یک کتابخانهٔ رابط گرافیکی کاربر توسعه داده شده است که بعد‌ها برای توسعه اهدافِ بیشتری شامل کتابخانه‌های شبکه و غیره شده است که در قالب یک چهارچوب (فریم‌وُرک) که تحت زبان برنامه‌نویسی سی‌پلاس‌پلاس برای این زبان توسعه یافته است و در زمینه‌های مختلفی کاربرد‌های فراوان دارد. دلیل زیبایی و ظاهر سادهٔ آن ساختار بسیار قدرتمند آن است که موجب شده همانند چهارچوب‌های قدرتمند دیگری خودنمایی کند. (اما قول این ظاهر و سادگی آن را نخورید، چون با سی‌پلاس‌پلاس طرف هستیم) آیا کیوت از سرویس‌ها و قابلیت‌های اختصاصی‌ِ اپلیکیشن‌های اندروید و آی‌او‌اِس را به طور کامل پشتیبانی می‌کند؟ به صورت پیش‌فرض خیر، هیچ ابزاری به صورت چند-سکویی فعلاً (تاکید می‌کنیم - فعلاً تا به این تاریخ) وجود ندارد که تمامی امکانات اختصاصی این پلتفرم‌ها را بدون کد نویسی اختصاصی پشتیبانی کند. اما این به این معنی نیست که جواب منفی خواهد بود، لذا شما در برنامه‌نویسی سی‌پلاس‌پلاس به راحتی می‌توانید برای پلتفرم‌های فوق با سرویس‌های آن‌ها ارتباط برقرار کنید. این کار کمی نیاز به دانش فنی بالایی خواهد داشت! برای مثال (دسترسی به سرویس‌های اندروید یا آی‌او‌اس) با ترکیب کُد‌های آبجکتیو-سی و جاوا امکانپذیر است و یا باید با توجه به SDK‌های پلتفرم‌های مورد نظر آن‌ها را سفارشی نویسی کنید. این کار به راحتی قابل انجام خواهد بود و کافی است شما در رابطه با نحوهٔ ترکیب کُد‌های آن آشنا باشید. کیفیت خروجی برنامه‌های تحت کیوت چگونه است؟ اگر شما واقعاً یک برنامه‌نویسِ ماهرِ سی‌پلاس‌پلاس باشید می‌توانید برنامه‌ای را تولید کنید که بسیار خوش دست‌تر و سریعتر از برنامه‌های پیشفرضِ پلتفرم‌ها باشد. در بارهٔ دلایل آن به ساختار برنامه‌های نوشته شده توسط این زبان به این مقاله مراجعه کنید. اگر غیر از این باشد برنامهٔ شما بسیار بد و کُند عمل خواهد کرد و بهتر است سراغ زبان‌های پیشنهادی (هر پلتفرم) بروید. هرچند سی‌پلاس‌پلاس یک زبان بومی برای تمامی پلتفرم‌ها محسوب می‌شود اما این ریسک برای افراد مبتدی پیشنهاد نمی‌شود. معمولاً برنامه‌های گسترده و عظیم توسط سی‌پلاس‌پلاس توسعه داده می‌شوند که برنامه‌نویسان آن واقعا حرفه‌ای و با قوانین این زبان آشنا هستند. آیا برای تولید برنامه‌های مک و آی‌او‌اس نیاز به سیستم خاصی داریم؟ بله، شما بدون وجود سیستم‌عامل مک نمی‌توانید برنامه‌ای را بر روی دستگاه‌های اپِل کامپایل کنید. این امر مستلزمِ سیستم عامل اختصاصی این شرکت بوده و باید توسعه دهنده دارای حساب کاربری معتبر سالانه باشد تا بتواند برنامهٔ خود را بر روی دستگاه‌های مورد نظر اجرا کند. در غیر این صورت تنها می‌تواند برنامهٔ خود را بر روی سیستم خود مورد آزمایش و خطا قرار دهد. آیا کیوت در ایران بازار کار مناسبی دارد، آیا ارزش دارد من این کتابخانه را یاد بگیرم؟ خوشبختانه کیوت بیشتر از ۲۰ سال است که در دنیا مورد استفاده قرار می‌گیرد و کشور‌های پیشرفته از آن استقبال می‌کنند. در کشور ما مدتی است این کتابخانه مورد استقبال قرار گرفته و بسیاری از شرکت‌ها مایل به ساخت و توسعهٔ برنامه‌های خود تحت این کتابخانه هستند که برخی از دلایل آن (بهره بردن از قابلیت‌های زبان سی و سی‌پلاس‌پلاس و ویژگی‌های خاص آن است). از طرفی کیوت به عنوان یک کتابخانهٔ چندسکویی، مناسب برای تولید و توسعهٔ محصولات در قالب اپلیکیشن‌های موبایل و برنامه‌های کاربردی بر روی دسکتاپ است که در نوع خود کم نظیر است. استفاده از این کتابخانه، موجب سهولت و افزایش سرعت توسعهٔ تولید و طراحی نرم‌افزار می‌شود و شما می‌توانید با توجه به حفظ کیفی کد‌های خود از یک محیط مجهز به ابزار‌های طراحی پیشرفته استفاده کنید. پشتیبانی بسیار خوب از زبان فارسی و به خصوص تاریخ شمسی و دیگر موارد، طراحی به شیوهٔ استاندارد راست‌ به چپ و رعایت اصول در آن یکی از دلایلی است که می‌توان تضمین کرد کیوت یک ابزار مناسب در طراحی و توسعهٔ برنامه‌های بومی به زبان فارسی است. چه کسانی یا شرکت‌هایی از این فریم‌ورک استفاده می‌کنند؟ جالب است بدانید کتابخانهٔ کیوت محدود به فرد یا شرکت خاصی نیست، با توجه به دو نسخهٔ تجاری و رایگان آن، شرکت‌های خصوصی، افراد و توسعه‌دهندگان بسیار هستند که از آن به عنوان یک فریم‌ورک طراحی و تولید برنامه استفاده می‌کنند. معمولاً شرکت‌های توسعه‌دهندهٔ تجهیزات سخت‌افزاری، پزشکی، رباتیک، صنعتی و دیگر موارد از آن استفاده می‌کنند. همچنین بازار طراحی نرم‌افزار‌های هوشمند موبایل، نرم‌افزار‌های کاربردی و پرکاربرد از این کتابخانه استفاده می‌کنند. اما تبلیغات در این زمینه به دلیل عدم شناخت، تسلط و آشنایی به سی++ نسبت به دیگر ابزار‌ها کم‌تر است. درآمد و هزینه‌هایی که می‌توان از انجام پروژه‌های کیوت دریافت کرد چگونه است؟ به طور کلی نمی‌توان در مورد یک تعرفهٔ مشخص صحبت کرد، این بستگی به نوع مهارت شخصی و کیفیت کار دارد. اما در این مقاله می‌توان به این اشاره کرد که برنامه‌نویسی سی++ و کیوت یکی از خوش درآمد‌ترین مباحثی هستند که می‌توان به آن اشاره کرد که البته بستگی به مهارت و تسلط کافی توسعه‌دهنده دارد. آیا کیوت از سکوی وِب پشتیبانی می‌کند؟ کیوت از تمامی پلتفرم‌ها پشتیبانی می‌کند، مخصوصاً با پشتیبانی از ماژول‌های QtWebEngine و QtWebAssembly این امر امکانپذیر است که برنامه‌های خود را تحت فناوری‌های وِب نیز توسعه دهید. آیا من حتماً باید به زبان سی‌پلاس‌پلاس مسلط باشم؟ ما بر این تاکید نمی‌کنیم که شما حتماً باید سی‌پلاس‌پلاس را کامل یاد بگیرید، این زبان به قدری گسترده است که نمی‌توان دربارهٔ آن به این راحتی مدعی شد. اما قوانین و اصول اولیه و عامیانهٔ زبان بسیار نیاز است. کتاب‌ها و مقالات مربوط به این زبان را بیاموزید و تا جایی که می‌توانید خود را ارتقاء دهید. من دانشجو یا متخصص رشتهٔ کامپیوتر نیستم، آیا می‌توانم این کتابخانه را یاد گرفته و از آن در توسعه برنامه‌های مورد نظر خود استفاده کنم؟ بله، اما ممکن است در تجزیه و تحلیل رفتار‌های سیستم‌عامل، مدیریت خطاها و پیکربندی ابزار‌های تخصصی (برنامه‌نویسی) با مشکلاتی مواجه شوید که تنها متخصصات این رشته می‌توانند آن را درک و حل کنند. آیا واقعاً حجم برنامه‌های کیوت نسبت به Net. یا Java بیشتر است !؟ خیر، به طور ذاتی برنامه‌های توسعه داده شده توسط سی‌++ دارای کمترین حجم برنامه هستند، معمولاً کتابخانه‌های استاندارد این زبان به صورت پیشفرض بر روی سیستم عامل‌ها تعبیه شده و در دسترس قرار دارند. اما شما در ویندوز زمانی که با دات‌نت برنامه‌نویسی می‌کنید، فریمورک مربوطه از قبل بر روی سیستم عامل ویندوز نصب بوده و بدون آن هیچ برنامهٔ نوشته شده توسط دات‌نِت قابل اجرا نمی‌باشد. اما چون از قبل این کتابخانه بر روی سیستم‌عامل تعبیه شده است شما نیاز به تنها داشتن فایل اجرایی دارید و نیازی نیست فریم‌ورک دات‌نت را در کنار فایل اجرایی خود مستقر کنید. بنابراین حجم مربوط به چهارچوب به چشم نیامده و اینطور به نظر می‌رسد که برنامه‌های تحت دات نت بسیار سبُک‌تر هستند! متاسفانه این تفکری اشتباه است برنامه‌های تحت سی‌پلاس‌پلاس نسبت به زبان‌های دیگر کم حجم‌تر و سبُک‌تر بوده و شما کافی است فایل‌های مربوط به کتابخانه را در کنار برنامهٔ خود داشته باشید. در رابطه با کتابخانهٔ Qt نیز باید گفت کیوت به عنوان یک چهارچوب مانند دات نت شامل کلاس‌ها و ماژول‌هایی است که باید همانند دات نت بر روی سیستم عامل تعبیه شود اما چون اینکار به صورت جداگانه در کنار برنامهٔ شما قرار می‌گیرد اینگونه تصور می‌شود که برنامه‌های مبتنی بر کیوت نسبت به دات نت از حجم بیشتری برخوردار هستند. این کاملاً طبیعی بوده و به عنوان نکته ضعف نیست. من علاقهٔ خاصی به سی‌پلاس‌پلاس دارم و می‌خواهم کیوت را یاد بگیرم، از کجا و چه تحت منابعی باید شروع کنم؟ خوشبختانه کیوت از لحاظ مستندات بسیار جامع است و شما می‌توانید از این آدرس به تمامی مستندات مورد نیاز خود دسترسی داشته باشید. همچنین اگر نگران اینترنت خود هستید و یا به آن دسترسی مداوم ندارید می‌توانید از داخل محیط توسعهٔ کیوت کریتور از بخش Help آن مستندات مورد نیاز خود را به صورت آفلاین دریافت کنید. من دنبال کتاب آموزشی کیوت هستم، آیا کیوت کتاب‌های آموزشی مفیدی در این زمینه از مقدمه تا پیشرفته دارد؟ بله، در این بخش شما می‌توانید کتاب‌هایی را در این زمینه مشاهده کنید که مرجع رسمی‌ِ کیوت آن‌ها را تایید کرده است. من به زبان انگلیسی تسلط کافی ندارم، ترجیح می‌دهم که از مراجع فارسی معتبر استفاده کنم، آیا کیوت در این زمینه منابعی دارد که معتبر باشند؟ خوشبختانه کیوت به قدری طعمِ جذابی برای برنامه‌نویسان دارد که ما اقدام به تألیف و پیاده سازی آموزش‌هایی در این زمینه کرده‌ایم، شما می‌توانید دو کتاب مقدماتی و پیشرفتهٔ این کتابخانه را تهیه کنید که در کتاب‌خانهٔ ملی کشور به صورت رسمی به ثبت رسیدهاند و عبارتند از نسخه‌‌های مقدماتی برای Qt Widgets و نسخهٔ پیشرفته برای Qt Quick (این کتاب‌ها تجاری هستند). آیا مقالات یا کتاب‌های آموزشی رایگانی هم برای کیوت وجود دارد؟ تنها مرجع آموزشی که در این رابطه به زبان فارسی توضیح می‌دهد، آی‌او‌استریم است، تقریباً هیچ مقاله یا کتاب جامع و کاملی به صورت رسمی به زبان فارسی خارج از مرجع آی‌او‌استریم (به رایگان) وجود ندارد. آیا لیستی برای مشاهدهٔ برنامه‌های توسعه یافته توسط Qt داریم؟ بسیاری از برنامه‌های قدرتمند و خارق‌العاده‌ای توسط سی‌پلاس‌پلاس توسعه داده می‌شوند که می‌توان لیست عظیمی از آن‌ها را نام برد. اما در این میان لیستی از برنامه‌هایی که تحت کیوت توسعه داده شده‌اند در این بخش آمده است. برای یادگیری استاندارد سی‌پلاس‌پلاس و تقویت مهارت خود در این زبان کدام مقالات و کتاب‌ها را پیشنهاد می‌کنید؟ علاوه بر این که شما می‌توانید در مرجع به دنبال آموزش‌های مرتبط با این زبان باشید، پیشنهاد ما این است که از مراجع رسمی آن نیز استفاده کنید. برخی از آن‌ها به صورت زیر آمده‌اند: cppreference.com http://www.cplusplus.com/ Learn C++ C++ Tutorial | SoloLearn: Learn to code for FREE! Learn C++ (Introduction and Tutorials to C++ Programming) اگر سوالی داشته باشم کجا می‌توانم آن را مطرح کرده و به پاسخ خود برسم؟ شما می‌توانید برای سوال و پرسش در انجمن‌های این مرجع اقدام کنید. اساتید و دوستان با تجربه سوالات شما را دریافت و مناسبترین پاسخ‌ها را ارائه خواهند داد. همچنین شما می‌توانید ما را در گروه سی‌پلاس‌پلاس و کانال تلگرامی دنبال کنید. نکته (در این پُست بنابر اهداف فرهنگ‌سازی برای حق چاپ) فایل‌های مرتبط با کتاب‌های آموزشی زبان اصل و یا زبان فارسی قرار داده نشده است. کتاب‌های زیادی در رابطه با این زبان وجود دارند که به زبان اصلی می‌باشند اما برای احترام به نویسندهٔ آن‌ها از ارسال چنین فایل‌هایی معذوریم. این پُست ممکن است ویرایش یا به‌روز رسانی شود.
  3. 1 امتیاز
    کامپایلر Cling یک مترجم تعاملی برای سی‌پلاس‌پلاس است، این مترجم تحت بالاترین کتابخانه‌های Clang و LLVM ساخته شده است. در واقع از آن‌جایی که کامپایلر Clang از آخرین ویژگی‌ها و استاندارد‌های زبان سی‌پلاس‌پلاس پشتیبانی می‌کند، Cling اجازه می‌دهد تا توسعه‌دهندگان اسکریپت‌های خود را با استفاده از C و C++ بنویسند. اگر شما به طور مستقیم مترجم را اجرا کنید، یک محیط زنده برای آغاز برنامه نویسی با سی‌پلاس‌پلاس را خواهید داشت که به عنوان بخشی از استاندارد نحو سی و سی‌پلاس‌پلاس به شمار می‌آید. همچنین می‌توانید دیگر دستورات را با نقطه‌ی "." آغاز در اختیار داشته باشید. وقتی از مترجم تعاملی استفاده می‌کنید، می‌توانید کد زیر را بنویسید: #include <stdio.h> printf("hello world\n"); همانطور که می‌بینید نیازی نیست تا در مورد حوزه‌ی دامنه‌ها نگران باشید؛ کافی است شما تابع مورد نظر خود را صدا بزنید. اگر قصد شما این است که از Cling به عنوان یک مترجم برای ساخت اسکریپت‌ها استفاده کنید، باید همه چیز را در داخل یک تابع قرار دهید.چرا که نقطه‌ی ورود به اسکریپت به طور پیش‌فرض همانند نام فایل می‌باشد. می‌توان آن را برای صدا زدن دیگر توابع سفارشی سازی کرد. بنابراین مثال قبل می‌توانید به شکل زیر تغییر کند: #include <stdio.h> void _01_hello_world() { printf("foo\n"); } یک نسخه‌ی دیگر در قالب سی‌پلاس‌پلاس #include <iostream> void _02_hello_world() { std::cout << "Hello world" << std::endl; } مثال‌ها کاملاً ساده هستند، اما آن‌ها به شما نشان می‌دهند که چگونه باید شروع کنید. در مورد کیوت چطور؟ #include <QtWidgets/qapplication.h> #include <QtWidgets/qpushbutton.h> void _03_basic_qt() { int argc = 0; QApplication app(argc, nullptr); QPushButton button("Hello world"); QObject::connect(&button, &QPushButton::pressed, &app, &QApplication::quit); button.show(); app.exec(); } اما توجه داشته باشید که کد قبلی کار نخواهد کرد، شما باید برخی از پارامتر‌های سفارشی را در Cling مشخص کنید. cling -I/usr/include/x86_64-linux-gnu/qt5 -fPIC -lQt5Widgets 03_basic_qt.cpp شما می‌توانید Cling را برای خودتان بر اساس آن چیزی که برای اسکریپت خود نیاز دارید سفارشی سازی کنید. همچنین شما می‌توانید Cling را به عنوان یک کتابخانه در اپلیکیشن‌های خود آورده و از سی‌پلاس‌پلاس به عنوان زبان برنامه‌نویسی استفاده کنید. این پُست در آینده ادامه خواهد داشت. ?
این صفحه از پرچمداران بر اساس منطقه زمانی تهران/GMT+04:30 می باشد
×
×
  • جدید...