نوشته‌ها با موضوع برنامه‌نویسی در الگوریتمستان

نوشته‌ها با موضوع برنامه‌نویسی در الگوریتمستان


یکی از مؤثرترین روش‌ها برای یادگیری برنامه‌نویسی، بررسی و تحلیل مثال‌های کاربردی است. مجموعه ویدئوهای «پایتون پیشرفته» که با همکاری آکادمی ایرانسل ضبط و منتشر شده‌اند، فرصتی است برای یادگیری مفاهیم این زبان از طریق مثال‌های عملی، پروژه‌های کوچک و توضیح گام‌به‌گام مباحثی که معمولا در دوره‌های مقدماتی کمتر به آن‌ها پرداخته می‌شود ...
پایتون پیشرفته آکادمی ایرانسل

پیش‌پردازنده (Preprocessor) بخشی از فرایند کامپایل است که قبل از ترجمه‌ی واقعی برنامه اجرا می‌شود و کد را بر اساس نوع دستور بازنویسی کرده و آماده‌ی کامپایل می‌کند. مشهورترین دستور پیش‌پردازنده include است که ما برای اضافه کردن کتابخانه به کد استفاده می‌کنیم ...
ماکروها در زبان C

زبان ++C همانند اکثر زبان‌های برنامه‌نویسی دیگر، ساختاری به نام آرایه دارد که امکان تعریف مجموعه‌ای از متغیرهای هم‌نوع (اصطلاحا مجموعه عناصر همگن) را فراهم می‌کند. چنین ساختاری به صورت زیر تعریف می‌شود: type name[number of elements]; که در آن type یکی از انواع داده‌های استاندارد ++C، ساختمان و یا کلاس است ...
آرایه ایستا و پویا در ++C

عامل‌های هوش مصنوعی (AI Agents) نسل جدید از سامانه‌های هوشمند هستند که تنها محدود به پاسخ‌گویی پرسش‌های کاربر نبوده و می‌توانند مانند یک همکار مستقل فکر کنند، تصمیم بگیرند، ابزارهای مختلف را به‌کار بگیرند و حتی در صورت نیاز مسیر خود را اصلاح کنند ...
کتاب AI Agents - The Illustrated Guidebook

یکی از دغدعه‌های مهم برخی از افرادی که در حوزه‌هایی مانند رمزنگاری برنامه‌نویسی می‌کنند کار با اعداد بسیار بزرگ صحیح است. در چنین حوزه‌هایی نیاز زیادی به عملیات ریاضی روی اعداد بزرگ وجود دارد. تا کنون کلاس‌ها و توابع زیادی روی اینترنت برای حل این مشکل از طرف برنامه‌نویسان معرفی شده است ...
کلاس اعداد بزرگ در ++C

وب‌سایت CodinGame.com یک ابزار آنلاین تمرین برنامه‌نویسی و حل مسئله بر اساس حل معماهای مختلف برنامه‌نویسی است. در این وب‌سایت معماهای مختلف برنامه‌نویسی در قالب طراحی عامل هوشمند و در سطوح مختلف وجود دارد که به کاربر کمک می‌کند با شروع از سطوح آسان استفاده از انواع ابزارهای برنامه‌نویسی برای حل مسئله را تمرین کند ...
ابزار CodinGame

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

ویدئوهای راه حل سوالات مسابقه جهانی ACM-ICPC 2016 را در کانال آپارات الگوریتمستان مشاهده کنید: aparat.com/algorithmha ...
راه حل سوالات مسابقه جهانی ACM-ICPC 2016

زمانی پیش میاد که بخوایم اطلاعات دیتابیس رو به صورت چند بخشی پردازش کنیم؛ مثلا وقتی که نیاز داریم یه لیست رو در چند صفحه نشون بدیم. در این حالت یه راه اولیه اینه که کل اطلاعات رو از دیتابیس بخونیم و بعد متناسب با نیازمون یه بخش از اون رو انتخاب کنیم ...
عملگر OFFSET در SQL

زبان برنامه‌نویسی ++C علاوه بر ابزارهایی مانند cin و cout برای عملیات I/O، توابع scanf و printf را هم برای همین کارها از زبان برنامه‌نویسی C به ارث برده است. هر کدام از این دو دسته مزایایی دارند که ممکن است بخواهیم از هر دو در برنامه‌نویسی استفاده کنیم ...
sync_with_stdio در زبان ++C

بعد از نصب Qt ممکن است زمان اجرا با خطای Cannot find -lGL برخورد کنید. در این حالت باید نصب بودن کتابخانه‌ی libgl-dev بررسی شود. ...
خطای Cannot find -lGL

ابزار Microsoft Solver Foundation امکان اجرای شبیه‌سازی‌های ریاضی، مدل‌سازی و حل مسائل بهینه‌سازی با استفاده از بستر Net. را فراهم می‌کند. به عنوان مثال می‌توان با این ابزار هر نوع مساله‌ی بهینه‌سازی خطی را حل کرد ...
ابزار Microsoft Solver Foundation

برای محاسبه زمان اجرای کد در ++C می‌توان از دو تابع clock یا time استفاده کرد. تابع clock، تعداد کلاک‌های در اختیار برنامه از CPU تا آن لحظه را برمی‌گرداند که با تقسیم بر CLOCKS_PER_SEC به ثانیه تبدیل می‌شود ...
نکته‌ای در محاسبه‌ زمان اجرای کد

وب‌سایت Virtual Judge این امکان را فراهم می‌کند که با ترکیب دلخواهی از سوالات وب‌سایت‌های مخزن سوالات برنامه‌نویسی همچون UVA ، Codeforces و خود سوالات ACM-ICPC ، مسابقه مجازی برگزار کرد. از این حیث برای تمرین تیم‌های مسابقات ACM-ICPC بسیار مناسب و کارا است ...
ابزار VJudge

هنگام شرکت در مسابقات برنامه‌نویسی تایپ اسم تک تک هدرفایل‌های مورد نیاز برای اجرای برنامه به زبان ++C زمان نیاز دارد. هدر فایل bits/stdc++.h این زحمت را کم می‌کند. زمانی که این هدر را include می‌کنیم، تمام فایل‌های سرآیند استاندارد به برنامه اضافه می‌شوند و اصولا نیاز به اضافه کردن هدرفایل جدیدی نیست ...
هدر فایل bits/stdc++.h

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

گاهی لازم است یک برنامه خارجی را از برنامه خودمان اجرا و خروجی آن را استفاده کنیم. این برنامه می‌تواند یک برنامه اجرایی دیگر یا یکی از ابزارهای سیستم عامل مانند ping یا حتی اجرای یک برنامه java باشد. آنچه که مهم است اجرا شدن از خط فرمان و تولید خروجی متنی است ...
تابع popen در زبان ++C

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

ساختمان داده map (یا dictionary) از ابزارهای مهم و کاربردی هر زبان برنامه‌نویسی است که برای برقراری نگاشت بین هر نوع کلید و مقدار متناظر استفاده می‌شود. آرایه‌های معمولی یک عدد صحیح را به عنوان کلید به یک مقدار از هر نوع کلاس یا نوع داده نگاشت می‌کنند ...
نکته‌ای در استفاده از map

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

فایل سرآیند (هدر فایل) algorithm از جمله فایل‌های سرآیند تعاریف کتابخانه‌ قالب استاندارد (STL) زبان برنامه‌نویسی ++C‌ است که به طور عمده شامل توابعی برای کار با مجموعه‌ای از داده‌ها (آرایه‌ها و لیست‌ها) است ...
فایل سرآیند algorithm

زبان برنامه‌نویسی ++C از کلاس‌های حافظه‌ (Storage Classes) مختلفی برای تعریف متغیرها پشتیبانی می‌کند. کلاس حافظه اتوماتیک (auto) این کلاس اصلی‌ترین کلاس حافظه زبان ++C محسوب می‌شود. متغیرهایی که توسط این کلاس تعریف می‌شوند، با خروج از محدوده تعریف به طور خودکار از بین می‌روند ...
کلاس‌های حافظه در ++C

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

اجتناب از بررسی تساوی در اعداد اعشاری اعداد اعشاری در محاسبات ریاضی - مانند عمل تقسیم یا محاسبه توابع مثلثاتی و غیره - ممکن است حاوی مقدار بسیار ناچیزی خطا باشند که عموما ناشی از عملیات گرد کردن و قطع کردن نتایج مراحل میانی محاسبات هستند ...
نکات مهم در برنامه‌نویسی به زبان ++C

توابع دوست کلاس‌ها از‌ جمله موارد بحث برانگیز برنامه‌نویسی شی‌ءگرا به زبان ++C هستند. چرا که یکی از اصول اساسی شیءگرایی، یعنی پنهان‌سازی اطلاعات، را نقض می‌کنند. با این وجود به خاطر کاربردهای متعددی که دارند از حضورشان نمی‌توان چشم‌پوشی کرد ...
توابع دوست کلاس در ++C

همانطور که می‌دانید، شیوه معرفی اشیاء کلاس‌های تعریف شده در ++C همانند متغیرهای عادی هستند. به عنوان مثال اگر کلاسی به نام myclass تعریف کرده باشیم، عبارت زیر یک شیء از این کلاس به نام a تعریف می‌کند: myclass a; اما اشیاء کلاس یک تفاوت اساسی با متغیرهای معمولی (مانند int ،float ،char و ...
سربارگذاری عملگرها در ++C

زبان برنامه‌نویسی C از دو نوع متغیر پشتیبانی می‌کند: متغیرهای معمولی و اشاره‌گرها (متغیرهای حاوی آدرس حافظه). زبان ++C نوع سومی را به این مجموعه اضافه کرده است: متغیرهای مرجع (Reference). متغیرهای مرجع از روی دو نوع دیگر ساخته می‌شود و به نوعی می‌توان گفت نام مستعار برای متغیر اصلی به حساب می‌آید ...
متغیرهای مرجع در ++C

آرایه‌های دو بعدی کاربردهای بسیاری از جمله جداول و ماتریس‌ها دارند. اهمیت تعریف آرایه‌های پویای دو بعدی کمتر از آرایه‌های یک بعدی نیست. آرایه‌های پویای دو بعدی یک ویژگی جالب در مقایسه با آرایه ایستا دارند ...
آرایه پویای دو بعدی در ++C

یکی از مهمترین مباحث کاربردی هر زبان برنامه‌نویسی، اشاره‌گر و مفهوم آن است که کاربرد گسترده‌ای در شاخه ساختمان داده‌ها نیز دارد. در این فرصت با مفهوم اشاره‌گر و همینطور روش تعریف آن در زبان ++C آشنا می‌شوید ...
اشاره‌گرها در زبان ++C

یکی از امکانات جالب و مفید زبان ++C قالب‌ها (Templates) هستند که انعطاف زیادی به کدنویسی می‌دهند. فرض کنید در یک برنامه نیاز به تعویض مقادیر دو متغیر هست. یعنی مثلا می‌خواهیم مقادیر a و b را با هم عوض کنیم ...
قالب‌ها در ++C