الگوریتم چیست؟ مثال‌های واقعی الگوریتم به زبان ساده

زمان مطالعه: حدود 14 دقیقه / 274 گفتگو

الگوریتم‌ها امروزه به جز جدایی‌ناپذیری از زندگی ما تبدیل شده‌اند، هرچیزی که در زندگی روزمره‌ی خود با آن سروکار داریم به نوعی از یک الگوریتم تشکیل شده است، اجازه دهید قبل از هرچیزی این موضوع را با یک مثال ساده برای شما توضیح دهیم، یک ماشین لباسشویی را در نظر بگیرید که به صورت خودکار مراحل شستشوی لباس‌ها را برای شما انجام می‌دهد، این لباس‌شویی به‌گونه‌ای برنامه‌ریزی شده که در هر مرحله فرایند خاصی را انجام دهد:

  • ماده‌ی شوینده
  • چرخش مخزن
  • آبکشی لباس‌ها

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

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

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

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

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

برای شروع احتیاجی به این محاسبات پیچیده نداریم، هرچند که باید بدانیم اساس کار برنامه‌های کامپیوتری بر مبنای همین محاسبات پیچیده است.

دونالد کنوت“ یکی از دانشمندان بزرگ علوم کامپیوتر می‌گوید: علم کامپیوتر چیزی جز مطالعه‌ی الگوریتم‌ها نیست.

راه حل مسائل پیچیده و بزرگی که بر سر راه یک برنامه نویس پیش می‌آیند، تسلط بر الگوریتم‌هاست؛ زیرا با نوشتن یا تصور یک الگوریتم منطقی می‌توان بر تمام مسائل غلبه کرد.

برای نوشتن یک الگوریتم مناسب باید سه عامل اصلی را در صورت مسئله شناسایی کنیم:

  • مقادیر معلوم: اطلاعاتی که در اختیار ما قرار داده شده و باید به کمک آن‌ها به حل مسئله بپردازیم (داده‌ها)
  • خواسته‌های مسئله: نتایجی که در اثر انجام محاسبات بر روی داده‌های مسئله حاصل می‌شود (مقادیر مجهول)
  • عملیات محاسباتی: دستورات و روابط منطقی که برای رسیدن به خواسته‌های مسئله بر روی داده‌ها و مقادیر مجهول انجام می‌شود.

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

در این مثال:

داده‌ها: وزن سیب‌ها (W) و قیمت هر کیلوگرم سیب (P)
خواسته‌ها: محاسبه‌ی قیمت کل سیب‌ها (T)
عملیات محاسباتی: قیمت کل = وزن سیب‌ها * قیمت هر کیلوگرم

مراحل حل مسئله به صورت زیر است:
T=W×P

الگوریتم چیست؟

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

همچنین تعریفی که برای الگوریتم در ویکی‌پدیا ارائه شده است:

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

حال بیایید یک نمونه الگوریتم که مطمئنا بسیاری از ما تا به‌حال طبق آن عمل کرده‌ایم را به هم بررسی کنیم.

به عنوان مثال فرض کنید میخواهیم مراحل رفتن به دانشگاه را به صورت مرحله به مرحله بنویسیم!

  1. شروع
  2. بیدار شدن از خواب
  3. شستن دست و صورت
  4. خوردن صبحانه
  5. پوشیدن لباس مناسب
  6. برداشتن وسایل مورد نیاز (کتاب و …)
  7. خروج از خانه
  8. رفتن به دانشگاه
  9. ورود به کلاس
  10. پایان

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

چگونه الگوریتم بنویسیم؟ (آموزش با مثال)

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

  1. شروع
  2. تهیه‌ی آرد
  3. تهیه‌ی شکر
  4. تهیه‌ی تخم‌مرغ
  5. تهیه‌ی آب
  6. مخلوط کردن، آرد، شکر، تخم‌مرغ و آب
  7. ریختن محتویات در ظرف مخصوص
  8. قرار دادن ظرف در فر یا مایکروویو
  9. روشن کردن حرارت
  10. صبر کردن تا پخت کامل کیک
  11. خارج کردن کیک از فر
  12. برش کیک به قطعات دلخواه
  13. پایان

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

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

مثال کاربردی از الگوریتم‌ها در برنامه‌نویسی

فرض کنید قصد داریم برنامه‌ای ایجاد کنیم که یک عدد را دریافت کرده و در صورت فرد بودن عدد عبارت Fard و در صورت زوج بودن عبارت Zoje را چاپ کند، مراحل این الگوریتم به شرح زیر است:

  1. عدد را دریافت کن
  2. عدد را تقسیم بر 2 کن
  3. اگر باقی مانده برابر با 1 بود عبارت Fard را نمایش بده در غیر این صورت عبارت Zoje را نمایش بده.
  4. پایان

جالب است بدانید، راه‌های زیادی برای نوشتن یک الگوریتم وجود دارد، آن‌هم الگوریتمی که دقیقا یک نتیجه‌ی یکسان را در پی داشته باشد، آیا می‌توانید چند پاسخ دیگر نیز برای سوال بالا بنویسید؟ الگوریتم‌های نوشته‌شده‌ی خود را در بخش دیدگاه‌ها به ما و سایر کاربران نشان دهید!

نکات مهمی که باید در نوشتن الگوریتم به آن‌ها توجه داشته باشید

رعایت این موارد برای نوشتن یک الگوریتم صحیح لازم و ضروری است:

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

به یاد داشته باشید، نمادهای ریاضی که از آن‌ها برای حل الگوریتم استفاده می‌کنید باید در صفحه کلید رایانه شما نیز وجود داشته باشند! خیلی از نمادهای ریاضی (مانند خط کسری، توان و…) را نمی‌توانید بر روی کیبورد خود بیابید در نتیجه اجازه ندارید برای نوشتن الگوریتم از آن‌ها استفاده کنید.

فرض کنید میخواهید عبارت زیر را به صورت قابل فهم برای رایانه (به صورت الگوریتم) بنویسید:

Picture1

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

Picture2

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

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

چگونه یک الگوریتم بنویسیم؟

یک الگوریتم شامل تعدادی از دستورات است:

  • دستورات ورودی
  • دستورات خروجی
  • دستورات محاسباتی
  • دستورات شرطی
  • دستورات تکرار

در ادامه به صورت کامل با تمام این حالات آشنا می‌شویم:

دستورات ورودی

این دستورات برای دریافت داده‌های ورودی استفاده می‌شوند، شما میتوانید یک نام اختصاری را به متغیرهای ورودی تخصیص دهید. (بخوان، دریافت کن، بگیر و… جزو این نوع دستورات میباشند)

دستورات خروجی

این دستورات برای نمایش نتایج الگوریتم یا نمایش پیام‌های مورد نیاز به کار می‌روند (نمایش بده، چاپ کن و… از جمله دستورات خروجی هستند)

مثال: الگوریتمی بنویسید که اعداد مثبت کوچک‌تر از 6 را نمایش بدهد.
  1. شروع
  2. اعداد 1، 2، 3، 4، 5 را نمایش بده.
  3. پایان

مثال: الگوریتمی بنویسید که یک عدد را از کاربر دریافت کرده و آن‌را در خروجی نمایش دهد.
  1. شروع
  2. N را دریافت کن.
  3. N را نمایش بده.
  4. پایان

(در این مثال N یک متغیر است که مقدار ورودی در آن ذخیره میشود)

دستورات محاسباتی

این دستورات نحوه‌ی ارائه و محاسبات دستورات را با فرمول‌های ریاضی بیان کرده و به زبان ریاضی نیز نوشته میشوند که شامل 3 جز اصلی میباشد:

  • متغیر
  • عملگرهای محاسباتی
  • عملوندهای محاسباتی

متغیر: عنوان‌هایی متشکل از حرف و عدد که مقدار آن‌ها قابل تغییر است (a, b, n, s2 …)

عملگرهای محاسباتی: عملگرهای ریاضی از پیش تعریف شده در دستگاه الگوریتم (+ , – , * , / , % , =)

عملوندهای محاسباتی: اعداد و عباراتی که محاسبات بر روی آن‌ها انجام میشود (شامل اعداد و متغیرها)

معرفی عملگرهای مورد استفاده در نوشتن الگوریتم:

( ) پرانتز ⇐ برای نشان دادن اولویت انجام مجاسبات استفاده میشود.

× یا * ضرب برای ضرب دو یا چند عبارت استفاده می‌شود.

/ تقسیم برای تقسیم کردن عبارات استفاده می‌شود.

% باقی‌مانده برای نشان دادن باقی‌مانده تقسیم دو عدد از علامت درصد استفاده میشود.

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

– تفریق برای تفریق کردن دو عدد استفاده می‌شود.

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

مثال: حاصل عبارت 2*5 را در متغیر P ذخیره کنید.

  1. شروع
  2. P=2*5
  3. پایان

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

اولویت عملگرهای ریاضی به ترتیب زیر است:

  1. پرانتز
  2. ضرب، تقسیم و باقی‌مانده
  3. جمع و تفریق

اگر در یک سطر اولویت‌ها یکسان باشند عملیات به ترتیب از چپ به راست انجام خواهد شد.

مثال: الگوریتمی بنویسید که دو عدد را از کاربر دریافت کرده و حاصل ضرب آن ها را نمایش دهد.

  1. شروع
  2. a و b را دریافت کن.
  3. zarb=a*b
  4. zarb را نمایش بده.
  5. پایان

مثال: الگوریتمی بنویسید که میانگین 3 عدد را محاسبه کرده و نمایش دهد.

  1. شروع
  2. اعداد a , b , c را دریافت کن.
  3. 3/(a+b+c) نمایش بده.
  4. پایان

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

آموزش نوشتن الگوریتم دستورات شرطی

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

اگر شرط برقرار بود آنگاه دستوری خاص را انجام بده، در غیر این‌صورت دستور دیگری را انجام بده.

با یک مثال ساده شروع میکنیم: اگر تلفن‌همراه شارژ نداشت، شارژر را به آن متصل کن. در این مثال شرط ما داشتن یا نداشتن شارژ است، اگر شرط برقرار باشد دستور اجرا میشود. همانگونه که دیدید میتوانیم بخش “در غیر این صورت” را از دستور حذف کنیم، در این حالت اگر شرط برقرار نباشد دستور خاصی اجرا نمیشود و ادامه الگوریتم از سر گرفته میشود.

از چه دستوراتی میتوانیم در شرط استفاده کنیم؟

شما از دستورات خاصی می‌توانید در قسمت شرطی الگوریتم خود استفاده کنید، که شامل موارد زیر می‌شوند:

  • عملگرهای مقایسه‌ای (کوچکتر، بزرگتر، مساوی، نامساوی و…)
  • عملگرهای منطقی (and, or, not)

عملگرهای مقایسه‌ای

عملگرهای مقایسه‌ای که می‌توانید در نوشتن الگوریتم شرطی خود از آن‌ها استفاده کنید شامل دستورات زیر می‌شوند:

  • == عملگر تساوی مثال 4 == 4
  • =< عملگر بزرگ‌تر مساوی مثال 1 =< 5
  • => عملگر کوچک‌تر مساوی مثال 5 => 1
  • < عملگر بزرگ‌تر مثال 2 < 3
  • > عملگر کوچک‌تر مثال 4 > 2
  • =! عملگر نامساوی مثال 2 =! 3

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

  1. شروع
  2. N را دریافت کن.
  3. اگر 0 =< N آنگاه “Mosbat” را نمایش بده، در غیر این‌صورت “Manfi” را نمایش بده.
  4. پایان

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

  1. شروع
  2. a و b را دریافت کن
  3. sum=a+b
  4. ave=sum/2
  5. اگر ave >= 20 آنگاه “Yes” را چاپ کن
  6. اگر ave < 20 آنگاه “No” را نمایش بده
  7. پایان

مثال: الگوریتمی بنویسد که 3 عدد را دریافت کرده و بزرگ‌ترین را در میان آن‌ها بیابد.

  1. شروع
  2. a, b, c را دریافت کن.
  3. max=a
  4. اگر b > max آنگاه max=b
  5. اگر c > max آنگاه max=c
  6. max را نمایش بده.
  7. پایان

عملگرهای منطقی

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

  • and: عملگر “و” منطقی (and منطقی) این عملگر شرط‌ها را بررسی میکند و اگر تمام آن‌ها درست باشند دستورات شرط برقرار میشود، اما اگر تنها یکی از شرط‌ها برقرار نباشد، دستورات شرط اجرا نخواهند شد.
  • or: عملگر “یا” منطقی (or منطقی) این عملگر شرط‌ها را بررسی میکند و اگر تنها یکی از آن‌ها نیز درست باشد دستورات شرط برقرار میشود، فقط در صورتی که هیچ کدام از شرایط برقرار نباشد دستورات اجرا نمیشود.
  • not: عملگر “نقیض” این عملگر تمام دستورات را نقض میکند، یعنی عبارات صحیح غلط و عبارات غلط صحیح می‌شوند.

مثال: عدد 1 را به عنوان مقدار صحیح (True) و عدد 0 را به عنوان مقدار نادرست (False) در نظر بگیرید. در این صورت:

  • 1 و 1 و 0 و 1 مقدار غلط به دلیل وجود 0 و and منطقی.
  • 1 یا 0 یا 0 یا 0 مقدار صحیح به دلیل وجود 1 و or منطقی.
  • not 1 مقدار غلط 1 مقدار صحیح را داشت ولی به خاطر وجود عملگر not نقض شده و معکوس میشود.
  • 1 و 1 و 1 مقدار صحیح ⇐ چون تمام مقادیر صحیح هستند پس مقدار and منطقی صحیح میشود.
  • 0 یا 0 مقدار غلط ⇐ چون تمام مقادیر غلط هستند or منطقی نیز غلط میشود.

مثال: الگوریتمی بنویسید که دو عدد را دریافت کرده و مشخص کند مجموع آن دو عدد بین 0 تا 20 هست یا خیر.

  1. شروع
  2. m و n را دریافت کن.
  3. sum=m+n
  4. اگر sum>0 و sum<20 آنگاه چاپ کن “Yes” در غیر این‌صورت “No” را چاپ کن.
  5. پایان

(همانگونه که مشاهده میکنید در دستور شرط از and منطقی “و” استفاده کردیم، بدین ترتیب برای اجرای دستور باید هر دو شرط همزمان برقرار باشد، با اینکار توانستیم بازه‌ی اعداد را مشخص کنیم)

آیا تا به‌حال به این فکر کرده‌اید چگونه باید یک دستور را به تعداد زیاد تکرار کنید، به‌عنوان مثال فرض کنید قصد داریم الگوریتمی بنویسیم که اعداد 1 تا 10000 را به ترتیب نمایش دهیم، مطمئنا در چنین حالتی نمی‌توان به‌تعداد 10000 بار یک دستور تکراری را نوشت، اینجاست که الگوریتم‌های تکرار (حلقه‌ها) به کمک برنامه‌نویس می‌آیند.

آموزش الگوریتم دستورات تکرار (حلقه‌ها)

دستور تکرار (حلقه) از 4 بخش اصلی تشکیل میشود:

  1. شمارنده: متغیری عددی که تعداد دفعات تکرار را کنترل می‌کند و مقدار آن در هر بار اجرای حلقه افزایش یا کاهش می‌یابد.
  2. مقدار اولیه: مقداری که قبل از شروع حلقه برای شمارنده تعیین می‌شود.
  3. شرط حلقه: شمارنده را کنترل کرده و پایان تکرار (خروج از حلقه) را مشخص می‌کند.
  4. دستورات حلقه: دستورات مورد نظر ما که در حلقه اجرا (و تکرار) می‌شوند.

مثال: الگوریتمی بنویسید که عدد 10 را 100 بار نمایش دهد.

  1. شروع
  2. count=1
  3. “10” را نمایش بده
  4. count=count+1
  5. اگر count<=100 به مرحله‌ی 3 برو
  6. پایان

توضیح مثال بالا: پس از شروع الگوریتم، مقدار اولیه‌ی 1 را در متغیر count قرار می‌دهیم، در مرحله‌ی بعد عدد 10 را یک‌بار نمایش میدهیم، در مرحله‌ی 4 یک واحد به مقدار اولیه اضافه می‌کنیم و مجددا آن را در متغیر شمارنده (count) قرار می‌دهیم، سپس بررسی می‌کنیم اگر شمارنده کوچک‌تر از 100 بود مجددا دستور 3 (نمایش عدد 10) را تکرار میکنیم، مجددا مراحل را طی میکنیم تا به مرحله‌ی بررسی شرط برسیم، اگر شرط برقرار بود مجددا دستور اجرا می‌شود(به مرحله‌ی 3 بازمیگردیم)، این فرآیند آنقدر تکرار می‌شود تا شرط حلقه از حالت برقرار بودن خارج شود (یعنی شمارنده به عدد 101 برسد) در این حالت دستور شرط (رفتن به مرحله‌ی 3) انجام نمی‌شود و الگوریتم از اجرای حلقه خارج می‌شود، نتیجه‌ی این الگوریتم نمایش عدد 10 به اندازه‌ی 100 مرتبه است!

مثال: الگوریتمی بنویسید که محیط و مساحت 12 دایره را محاسبه کرده و نمایش دهد.

  1. شروع
  2. count=1
  3. R را دریافت کن
  4. P=2*3.14*R
  5. S=3.14*R*R
  6. S و P را نمایش بده
  7. count=count+1
  8. اگر count<=12 آنگاه به مرحله‌ی 3 برو.
  9. پایان

مثال: الگوریتمی بنویسید که اعداد مثبت کوچک‌تر از 50 را نمایش دهد.

  1. شروع
  2. count=1
  3. count را نمایش بده
  4. count=count+1
  5. اگر count<50 به مرحله‌ی 3 برو
  6. پایان

مثال: الگوریتمی بنویسید که اعداد طبیعی کوچک‌تر از عدد دلخواه N را نمایش دهد.

  1. شروع
  2. N را دریافت کن
  3. count=1
  4. count را نمایش بده
  5. count=count+1
  6. اگر count<N آنگاه به مرحله‌ی 4 برو
  7. پایان

مثال: الگوریتمی بنویسید که مجموع اعداد طبیعی کوچک‌تر از N را نمایش دهد.

  1. شروع
  2. N را دریافت کن
  3. count=1
  4. sum=0
  5. sum=count+sum
  6. count=count+1
  7. اگر count<N به مرحله‌ی 5 برو
  8. sum را نمایش بده
  9. پایان

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

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

  1. شروع
  2. count=0
  3. N را دریافت کن
  4. count=count+1
  5. اگر N>=0 به مرحله‌ی 3 برو
  6. count را نمایش بده
  7. پایان

توضیح مثال بالا: در این الگوریتم ابتدا یک شمارنده به نام count ایجاد کردیم تا با استفاده از آن تعداد اعداد وارد شده را شمارش کنیم، سپس عدد N را دریافت می‌کنیم و بلافاصله یک واحد به شمارنده اضافه می‌کنیم، سپس بررسی می‌کنیم و اگر عدد وارد شده مثبت باشد (منفی نباشد) مجددا به مرحله 3 رفته و عدد بعدی را دریافت می‌کنیم و یک واحد نیز به شمارنده اضافه می‌کنیم، حال شرط را چک کرده و در صورت برقرار بودن مجددا دستورا اجرا می‌شوند و در نهایت تعداد اعداد وارد شده (count) نمایش داده می‌شود.

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

برای درک بهتر این آموزش تمرین‌های زیر را انجام دهید:

  1. داده‌ها و خواسته‌های مسئله برای حل یک معادله‌ی درجه 2 را بنویسید.
  2. فرض کنید طول (L)، عرض (W) و ارتفاع (H) یک مکعب مستطیل به شما داده شده و حجم آن (V) را از شما میخواهند، نحوه حل این مسئله را به صورت مرحله به مرحله بنویسید.
  3. اگر a=5 و b=3 و c=10 باشد حاصل عبارات زیر را بیابید و آن‌‌ها را در متغیر p ذخیره کنید.
    • a-b*c
    • a-b)*c)
    • c%a
    • c/a*b
  4. الگوریتمی بنویسید که شعاع یک دایره را دریافت کرده و محیط و مساحت آن‌ را نمایش دهد.
  5. الگوریتمی بنویسید که 3 عدد را دریافت کرده، سپس کوچک‌ترین و بزرگ ترین مقدار را مشخص کند.
  6. الگوریتمی بنویسید که نمرات چهار درس ریاضی، فیزیک، زبان و ورزش یک دانش آموز را دریافت کرده، سپس میانگین آنها را محاسبه کند و با توجه به شرایط زیر رتبه‌ی دانش‌آموز را محاسبه کرده و نمایش دهد.
    • میانگین بزرگ‌تر از 18 برابر رتبه‌ی A
    • میانگین بین 16 تا 18 و ریاضی بزرگ‌تر از 17 برابر رتبه‌ی B
    • میانگین بین 14 تا 16 و ریاضی یا فیزیک بزرگ‌تر از 15 برابر رتبه C
    • میانگین کمتر از 12 و ریاضی و فیزیک کمتر از 12 برابر رتبه E
  7. الگوریتمی بنویسید که مجموع و تعداد اعداد طبیعی مضرب 3 و کوچک‌تر از 100 را نمایش دهد.
  8. الگوریتمی بنویسید که مقدار عددی‌ ‌!‌N‌ (مقدار N فاکتوریل) را برای عدد دلخواه N محاسبه کرده و نمایش دهد.

کتاب جامع آموزش نوشتن الگوریتم و فلوچارت

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

شما یک گام جلوتر از دیگران باشید! اگر به آی‌تی و تکنولوژی علاقه‌مندید و دوست دارید سریع‌تر در این زمینه پیشرفت کنید، همین حالا به جمع 14,946 عضو همیار آی‌تی بپیوندید، دسترسی به تمام آموزش‌های پریمیوم، دریافت جدیدترین آموزش‌های کاربردی مرتبط با آی‌تی و استفاده از مشاوره‌ی رایگان، برخی از مزایای عضویت در سایت هستند، شما نیز به کاربران همیار پیوسته و همین حالا وارد دنیای حرفه‌ای‌ها شوید... من هم می‌خواهم عضو ویژه‌ی همیار شوم

274 گفتگو

در بحث‌‌ پیرامون این مقاله شرکت کنید، سوالات شما توسط کارشناسان همیار آی‌تی پاسخ داده می‌شود...

  1. Mohammad Sadeghi گفت:

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

  2. محمد گفت:

    سلام من می خوام برنامه ای بنویسم که یک رشته کاراکتری را بصورت ورودی اول دریافت کند، سپس به تعداد ورودی دوم (منفی یا مثبت) اقدام به گردش درون رشته کرده و در نهایت انرا چاپ میکند

    مثال
    1234567890 -4
    5678901234

    یا

    1234567890 3
    8901234567
    میشه یک کمک به من کنید

  3. ناشناس گفت:

    سلام کسی هست یک پروژه در خصوص الگدریتم ها انجام بده واسم شبیه سازی انجام بده .

  4. نرگس گفت:

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

  5. رضا گفت:

    در امد یک ماهیگیر را به صورت روزانه هفتگی ماهانه و سالانه محاسبه کند و درامد هر روز متغیر است الگوریتم این چی میشه ؟؟

    1. ناشناس گفت:

      درآمد هرروز رو بگیره و در متغیری قرار بده و متغیری بنام sum داشته باشه و هرروز رو مقادیرشو با روز قبلی جمع کنه …اینطور در امد روزانه و ماهانه رو داره و هر ۷ دوز رو هم در یه متغیر قرار بده

  6. ناشناس گفت:

    سلام من در نوشتن الگوریتم مشکل دارم نمیدونم باید چجوری بنویسم چیکار کنم؟؟

  7. شیلا یوسفی گفت:

    میشه لطفا الگوریتم مجموع و تعداد اعداد طبیعی مضرب 3 کوچکتر از 100 رو بنویسید.

  8. یونس اربابی گفت:

    دوستان هرگز نا امید نشین من خودم سه دور خوندم تا فهمیدم چی به چیه

  9. سعید گفت:

    سلام وقت بخیر
    راهنمایی در مورد نوشتم الگریتم مدیریت سرمایه سرمایه گذاران در یک سبد مشترک را از خدمتتون داشتم، فرضا افراد با سرمایه های متفاوت و در زمانهای متفاوت جهت سرمایه گذاری پولشون رو به یک سبدگردان دادند،سبدگردان چطور میتونه با یه برنامه محاسباتی در اکسل سود یا زیان سرمایه گذاران رو با حفظ درصد سرمایه آنها نگهداری بکنه ؟
    ممنونم

  10. Nazi گفت:

    سلام ببخشید شما زبان برنامه نویسی پاسکال هم بلد هستین؟؟

  11. ناشناس گفت:

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

  12. حسینی گفت:

    سلام من یک الگوریتم میخواهم که نشان دهد عدد ورودی اول است یانه

    1. ناشناس گفت:

      سلام اگه باقی مانده عدد صفر بود عدد اول نیست، اما اگر باقی مانده صفر نبود عدد اول است.

  13. احمدی گفت:

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

  14. Neda گفت:

    سلام خسته نباشید. میشه بگید الگوریتم سِری کسری که مخرج هاش فاکتوریل داره و یک در میان منفی هست رو چجوری بنویسیم؟

    1. ناشناس گفت:

      ولا من میخام روال الکپریتم بازی انفجار را بدونم که چطوری حساب کنم

  15. Yalda Hesarkhan گفت:

    سلام وقتتون بخیر
    اگر بخوایم الگوریتمی بنویسم که یک مثلث رو نشان دهد چگونه نوشته میشه؟؟
    برای پایه نهم است این مسئله .

    1. Avatar photo فرشاد گوهری گفت:

      سلام، در کل برای نوشتن یک الگوریتم، سعی کنید مراحلش رو به زبان ساده برای خودتون تصور کنید و همون‌ها رو بیارید روی کاغذ، مثلا شما برای کشیدن یک مثلث اول از همه باید نوعش رو بدونید (متساوی‌الاضلاع و…) و بعد با توجه به نوع زاویه‌ها رو رسم کنید و ضلع‌ها رو بکشید؛ پس احتمالا الگوریتم‌تون یک چنین چیزی میشه:
      ۱. شروع
      ۲. نوع مثلث را دریافت کن
      ۳. اگر متساوی‌الاضلاع بود یک زاویه‌ی ۶۰ درجه رسم کن
      و…
      به همین ترتیب تا انتها باید پیش برید.

  16. ناشناس گفت:

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

    1. محمد حسین گفت:

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

    2. ناشناس گفت:

      اول:عدد را وارد کنید
      دوم:باید کدی بنویسی که عدد را بخواند
      سوم:از دستور شرطی ifمیری
      و دستور اینه که اگر عدد بالاتر از صفر بود مثبت را نمایش دهد
      اگر خود صفر بود عدد صفر را نمایش دهد
      و اگر پایین تر از صفر بود منفی را نمایش دهد
      چهارم:کد نمایش خروجی

  17. فاطمه گفت:

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

    1. . گفت:

      عدد رو دریافت کن عدد رو تقسیم 2 کن اگر جواب 0 شد نمایش بده اگه جواب در غیر ایصورت شد نمایش نده

  18. At گفت:

    سلام میخاستم بدونم برای توابع چحوری بایدالگوریتم رو گفت؟

  19. پرهیزکار گفت:

    سلام من میخواهم عضو شوم ولی یکبار وارد شدم و نام کاربریم رو فراموش کردم باید چیکار کنم ؟!

    1. Avatar photo فرشاد گوهری گفت:

      سلام، به جای نام کاربری، ایمیل‌تون رو وارد کنید، ضمنا اگر کلمه‌ی عبورتون رو فراموش کردید، می‌تونید از اینجا بازیابی کنید:
      https://www.hamyarit.com/wp-login.php?action=lostpassword

  20. امیر گفت:

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

    میخواستم بدونم مثلا من میخام یه برنامه ای بنویسم که هر عددی که براش میفرستنو ضربدر 9 کنه و پاسخ رو ارسال کنه
    الگوریتم این برنامه میشه
    دریافت عدد
    ضربدر 9
    ارسال پاسخ
    سوالم اینه که چه جوری اینا تبدیل به کد برنامه نویسی کنم؟

    1. Avatar photo فرشاد گوهری گفت:

      سلام، کدنویسی کاملا بستگی داره به زبانی که انتخاب می‌کنید، هر زبان برنامه‌نویسی سینتکس (قواعد و دستور) مربوط به خودش رو داره و باید طبق همون سینتکس الگوریتم‌تون رو به کدهای اون زبان تبدیل کنید، می‌تونید نمونه‌هایی از زبان‌های برنامه‌نویسی رو در این بخش ببینید:
      https://www.hamyarit.com/programing/

  21. مهدی گفت:

    اسم کتابتون چیه؟

  22. K گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

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

  23. mitra گفت:

    با عرض سلام
    من می خوام برای دستور پایین الگوریتم بنویسم ولی درست در نمیاد میشه راهنمایی کنید🙏🏻
    الگوریتمی بنویسید که عدد طبیعی Nرا دریافت کرده و اعداد اول کوچکتر از این عددکه مجموع ارقام آن عدد برابر با 4 باشد چاپ کند (مثال عدد ١٣ یک عدد اول که مجموع ارقامش برابر ۴ است.)

    1. Avatar photo فرشاد گوهری گفت:

      سلام دوست عزیز، جواب مستقیم این مسئله نمی‌تونیم بگیم، به این دلیل که خودتون باید حلش کنید تا به خوبی یاد بگیرید، اما راهنمایی‌تون می‌کنم، باید یک حلقه تشکیل بدید و داخلش با یک دستور شرطی اول بودن عدد رو چک کنید (تشخیص عدد اول هم الگوریتم خودش رو داره: اگر به هر عددی بخش‌پذیر باشه یا کمتر یا مساوی ۱ باشه، اول نیست) بعد از اون، هر عدد که اول بود رو باید از طریق محاسبه‌ی باقی‌مانده هر رقم، جداگانه محاسبه کنید و با هم جمع‌شون کنید (شما دو بار که عدد ۱۳ رو بر ۱۰ تقسیم کنید به باقی‌مانده‌های اون، یعنی ۱ و ۳ می‌رسید و می‌تونید مسئله‌تون رو حل کنید)

    2. مهناز دشمیر گفت:

      سلام خسته نباشید کااش مبحث حلقه هارو بیشتر سوال میزاشتین

    3. Avatar photo فرشاد گوهری گفت:

      سلام دوست عزیز، آیا کتاب PDF الگوریتم (که در انتهای مقاله قرار گرفته) رو دانلود کردید؟ توی اون کتاب مثال‌های اضافه‌تری قرار داده شده که می‌تونید ازشون استفاده کنید.

  24. بانو گفت:

    خیلی ممنون .

  25. بانو گفت:

    یا عرض سلام
    سپاس از زحمات شما.
    میشه لطفا چند شغل مرتبط به الگوریتم معرفی کنید؟!

    1. Avatar photo فرشاد گوهری گفت:

      سلام، خواهش می‌کنم، بله زمینه‌های کاری مثل برنامه‌نویسی، مهندسی نرم‌افزار، تحلیل و بهینه‌سازی نرم‌افزارها (در کل هر شغلی که به برنامه‌نویسی و نرم‌افزار ارتباط داره) پیش‌نیازش آشنایی با الگوریتم‌هاست.

  26. ناشناس گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

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

  27. amir farsi گفت:

    سلام خسته نباشید برای یاد گیری الگوریتم کتابی مد نظر دارید یا منبعی ؟؟

    1. Avatar photo فرشاد گوهری گفت:

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

    2. محمد گفت:

      کتاب آشنایی با الگوریتم ها
      انتشارات فاطمی
      برای المپیاد کامپیوتر بود قبلا خوندم خیلی مفیده و قشنگ مطالب رو توضیح داده

  28. M گفت:

    سلام اگه بخوایم این الگوریتم رو به شبه کد تبدیل کنیم چجوری میشه: 99=>i برو به خط ۳

    1. Avatar photo فرشاد گوهری گفت:

      سلام دوست عزیز، باید به شکل دستور شرطی بنویسید:
      if (i<=99)

  29. M گفت:

    سلام اگه بخوایم این الگوریتم رو به شبه کد تبدیل کنیم چجوری میشه: 99=>i ?

  30. mahsa jalali گفت:

    میخواستم بدونم که توی سایتتون زبان php آموزش میدین یا سایتی رو میشناسید که آموزش بده؟

    1. Avatar photo فرشاد گوهری گفت:

      سلام دوست عزیز
      می‌تونید در مقاله‌ی زیر با مفاهیم زبان PHP آشنا بشید:
      https://www.hamyarit.com/blog/php/

  31. فاطمه گفت:

    برای این برنامه میخاهم بنویسم ولی نمیتوانم میشه راهنمایی کنین؟
    الگوریتمی بنویسید که a*b با جمع های متوالی محاسبه کنید

    1. Avatar photo فرشاد گوهری گفت:

      سلام، ما اینجا جواب مستقیم رو نمیگیم دوست عزیز، چراکه این موضوع باعث میشه مفاهیم رو به خوبی یاد نگیرید، اما کمکتون می‌کنم که الگوریتمشو بنویسید، سعی کنید یکبار ضرب دو عدد رو برای خودتون مثال بزنید و اون رو با جمع بنویسید، مثلا 3*4 میشه 3+3+3+3 حالا کافیه همین موضوع رو مرحله به مرحله بنویسید تا الگوریتمش تشکیل بشه.

  32. ? R گفت:

    سلام ممنون از این که زود جواب سوالارو میدین میخواستم بدونم مفهوم سمبل ها در هر زبانی متفاوته یا فرق نمیکنه؟

    1. Avatar photo فرشاد گوهری گفت:

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

  33. محمد محنتی گفت:

    سلام، خسته نباشید
    ۲تا سوال داشتم
    اول اینکه برای طراحی سایت بهتره چه زبانی رو یاد بگیریم و البته برای طراحی ظاهری یا به عبارتی فراند اند منظورم هست؟!
    و اگه لطف کنید الگوریتم پایین رو بگین،ممنون
    ✔️الگوریتمی بنویسید که یک عدد صحیح مثبت را به عدد معادل مبنای دو نمایش دهد.

    1. Avatar photo فرشاد گوهری گفت:

      سلام دوست عزیز،‌ در خصوص طراحی سایت،‌ لازمه که حتما HTML و CSS رو یاد بگیرید، بعد از این‌ها می‌تونید JavaScript رو هم یاد بگیرید، این آموزش می‌تونه اطلاعات کاملی در خصوص طراحی سایت بهتون بده:
      https://www.hamyarit.com/blog/web-design/
      در مورد سوال دومتون، ما معمولا راه‌حل مسائل رو نمیگیم، چون اخیرا متوجه شدیم که اینکار در روند یادگیری افراد تاثیر منفی می‌گذاره، اما برای اینکه بتونید جواب سوالتون رو پیدا کنید من چند راهنمایی به شما میگم، اول روش ریاضی تبدیل اعداد به مبنای دو رو پیدا کنید، اون رو که پیدا کردید خیلی راحت می‌تونید الگوریتمی که می‌خواین رو بنویسید (می‌تونید همینجا هم بفرستید تا مجددا کمکتون کنم مرحله به مرحله)

    2. محمد محنتی گفت:

      ممنون بابت راهنمایی
      میشه بفرمائید این درسته یا نه؟
      شروع کن
      درا دریافت کن
      M=N/2
      تازمانی که خارج قسمت مخالف صفر است عملیات زیر را تکرار کن
      W=M/2
      اگر خارج قسمت صفر شد باقی مانده های تقسیم ها را از آخر به اول چاپ کن
      توقف کن

    3. Avatar photo فرشاد گوهری گفت:

      سلام مجدد، در مرحله‌ای که W=M/2 رو انجام دادید، باید بعدش مجدد W رو در M قرار بدید و تقسیم رو تکرار کنید (برای تبدیل اعداد به مبنای ۲ از تقسیم‌های متوالی استفاده می‌کردیم) نکته‌ی دیگه هم این که در هر مرحله که تقسیم رو انجام میدید باید باقی‌مانده‌ها رو هم در یک متغیر ذخیره کنید (برای اینکه الگوریتم‌تون واقعا صحیح باشه و بتونید بعدا به برنامه تبدیلش کنید)

  34. ? R گفت:

    سلام ببخشید بنظر شما اسان ترین زبان برنامه نویسی برای یه مبتدی چه زبانیه؟

    1. Avatar photo فرشاد گوهری گفت:

      سلام،‌ اگر قبل از این برنامه‌نویسی نکردید و تازه قصد دارید شروع کنید، به نظر زبان پایتون می‌تونه برای شما مناسب باشه، چون سینتکس خیلی ساده‌ای داره و کتابخانه‌های خیلی زیادی هم تا‌به‌حال براش نوشته شده، توصیه می‌کنم مقاله‌ی زیر که در مورد پایتون هست رو بخونید:
      https://www.hamyarit.com/blog/python/

  35. ? R گفت:

    سلام استاد اگه من بخوام با موبایل شروع به یادگیری کنم کنم شما چه برنامه ها و ابزارهایی به من پیشنهاد میکنید لطفا هر برنامه ای در این زمینه میشناسید بهم معرفی کنید🙏سپاس

    1. Avatar photo فرشاد گوهری گفت:

      سلام دوست عزیز، اگر منظورتون شروع برنامه‌نویسی هست کار کردن با موبایل خیلی سخته و عملا امکان‌پذیر نیست، کدنویسی رو باید با کامپیوتر انجام بدید، اما اگر می‌خواین اصول و پایه‌ی کار رو یاد بگیرید، خوندن کامل آموزش‌های زیر خیلی می‌تونه برای شما مفید و کاربردی باشه:
      https://www.hamyarit.com/programing/

  36. اسفندی گفت:

    برای مثال الگوریتم پخت کیک در انتها این دو سوال مطرح شود دانش آموز یا دانشجو با مفهوم حلقه معین و نامعین آشنا خواهد شد.
    • اگر بگوییم با این مقدار خمیر 10 عدد شیرینی درست کنید یک حلقه معین ایجاد نموده اید
    • اما اگر ذکر شود با این مقدار خمیر چه تعداد شیرینی می توان پخت یک حلقه نامعین ایجاد کرده اید

  37. گاماتا پورحیدربیگی گفت:

    سلام من دیزاینر ui ux هستم ، الان بر حسب نیاز باید برنامه React Native Mobile رو یاد بگیرم ، تا حالا برنامه بجز یکم css اصلا برنامه مویسی نکردم ، سرچ کردم یه آموزش مرتبط با زبان مذکور پیدا کردم که تو پیشنیازاش نوشته بود آشنایی با برنامه نویسی ، میخواستم بپرسم با توجه به شرایط من شما چه پیشنهادی دارین و باید از کجا شروع کنم ؟
    ممنون میشم اگه راهنمایی بفرمایین

    1. Avatar photo فرشاد گوهری گفت:

      سلام
      React Native زبانی هست بر پایه‌ی جاوا اسکریپت، بنابراین خوبه که قبل از شروع تا حدودی با HTML, CSS و JS آشنا باشید:
      https://www.hamyarit.com/blog/html/
      https://www.hamyarit.com/blog/css/
      https://www.hamyarit.com/blog/javascript/

      بعد از اینکه با پایه و اساس این زبان‌ها آشنا شدید، می‌تونید برید سراغ شروع ری‌اکت نیتیو:
      https://reactnative.dev/docs/getting-started

  38. Exo -L گفت:

    سلام ببخشید من یه سوال داشتم برای نوشتن برنامه تو اندروید آیا برنامه هایی وجود داره که بشه کد نویسی کرد یا فقط باید تو کامپیوتر یا لبتاپ انجام داد ؟
    سوال بعدی هم اینکه برای کد نوشتن برای یک تازه کار بهتره از سی سی پلاس شروع کنه یا سی شارپ یا کلا یه زبان دیگه ؟؟
    ممنون می شم اگه جواب بدین و واقعا ممنون به خاطر سایته خوبتون 🙏🙏👌👌👌😁😁😁

    1. Avatar photo فرشاد گوهری گفت:

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

    2. ناشناس گفت:

      نمی دونم

  39. Reza گفت:

    سلام خسته نباشید میخواستم بدونم در چه زبان های از الگوریتم استفاده می شود؟؟

    1. Avatar photo فرشاد گوهری گفت:

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

  40. فهیم بانو گفت:

    عاااالی بود عااالی، جامع و کامل. موفق باشید

    1. Avatar photo فرشاد گوهری گفت:

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

  41. محسن گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

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

  42. امیرحسین شورزند گفت:

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

  43. امیرحسین شورزند گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

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

  44. امیرحسین شورزند گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

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

  45. فاطمه گفت:

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

    1. میثم پوراسماعیلی گفت:

      سلام وقتتون بخیر
      من در حقیقت مثل خیلی از عزیزان یک آماتور هستم؛ اما چیزی که به نظرم میرسه اینه:
      1- شروع
      2- گرفتن عدد
      3- مشخص کردن تعداد ارقام عدد به عنوان n (یا هر مجهول دیگه ای)
      4- نمایش n
      5- پایان
      موفق باشید

  46. Amir گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

      سلام امیر عزیز، به طور کلی مطالب همیار آی‌تی به صورتی نوشته میشه که برای افراد علاقه‌مند به آی‌تی و کامپیوتر مناسب هست، اگر قصد دارید در ادامه در زمینه‌ی کامپیوتر یا آی‌تی فعالیت داشته باشید خوندن تمام آموزش‌ها رو بهتون توصیه می‌کنم، اما اگر فقط به فیلد برنامه‌نویسی علاقه‌مند هستید، می‌تونید مقالات موجود در لینک زیر که در دسته‌ی برنامه‌نویسی هستند رو مطالعه کنید:
      https://www.hamyarit.com/programing/

  47. پیمان گفت:

    سلام میخوام یه کدرو که از یه نفر گرفتم تبدیل به عدد کنم

  48. پیمان گفت:

    سلام چجوری میتونم یه کدرو که از کسی گرفتم تبدیل به الگوریتم کنم

    1. Avatar photo فرشاد گوهری گفت:

      معمولا یک برنامه از دستورات شرطی، حلقه‌ها و توابع تشکیل شده، سعی کنید در مرحله‌ی اول کدتون رو به زیربخش‌های کوچک‌تر تقسیم کنید و بعد اون‌ها رو به صورت شبه‌کد و الگوریتم در بیارید، اگر می‌خواین الگوریتم‌تون رو در قالب فلوچارت نمایش بدید می‌تونید از برنامه‌هایی مثل Visual Paradigm یا Rational Rose برای رسم UML‌ها استفاده کنید.

  49. hgfhgft گفت:

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

    1. عبداللهی گفت:

      سلام خدا قوت
      آیادر محاسبات اعداد مخلوط ترتیب عملیات واولویت علامتها باید رعایت شود ممنون می شم اگه جواب بدید

    2. Avatar photo فرشاد گوهری گفت:

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

  50. فرشاد گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

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

  51. وحید گفت:

    سلام من از برنامه نویسی فعلا چیز زیادی سرم نمیشه ولی یه مطلبی هست که برا خیلی سواله؟ مثلا تو برنامه code blocks یه کد مینویسم مثل پایین
    1-شروع
    2-اعداد a , b , c را دریافت کن.
    3-۳/(a+b+c) نمایش بده.
    4-پایان
    حالا من بعد از نوشتن این کد تو کجا باید عدد بدم و خروجی بگیرم ممنون میشم جواب بدین.

    1. Avatar photo فرشاد گوهری گفت:

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

  52. zzz گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

      سلام دوست عزیز
      راز اینکه بتونید به خوبی فلوچارت رسم کنید اینه که الگوریتمش رو به خوبی درک کنید، چون فلوچارت چیز خاصی نیست، یکسری شکل قراردادی هست که از روی الگوریتم رسم میشه، بنابراین اگر در کشیدن فلوچارت مشکل دارید باید بیشتر روی فهم الگوریتم‌ها وقت بگذارید، همچنین می‌تونید از این آموزش برای تبدیل الگوریتم به فلوچارت استفاده کنید:
      https://www.hamyarit.com/blog/flowchart/

  53. سعید گفت:

    سلام.
    سه تا سوال داشتم هر کاری کردم به جوابش برسم نشد. اگر جوابش رو بدید ممنون میشم
    1.الگوریتمی که عدد مثبت در مبنای 10 دریافت کند وعدد درمبنای 2 در خروجی چاپ کند
    2.الگوریتمی که یک عدد از کاربر دریافت کند و بگوید اول است یا نه؟
    3 الگوریتمی که یک عدد را دریافت کند و وارون عدد را چاپ کند

  54. آناهیتا گفت:

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

  55. پوریا گفت:

    این الگوریتم ها رو میشه در نرم افزار RAPTOR نوشت؟

    1. Avatar photo فرشاد گوهری گفت:

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

  56. مصطفی گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

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

  57. سینا گفت:

    سلام میشه بی زحمت الگوریتم پنچر گیری رو بگین؟

    1. ناشناس گفت:

      1. باز کردن پیچهای چرخ
      2. قرار دادن جک زیر ماشین
      3. خارج کردن چرخ از جای خود
      4. تعمیر (پنچرگیری) چرخ
      5. قرار دادن چرخ سرجای خود
      6. بستن پیچها
      7. جمع کردن جک

  58. ناشناس گفت:

    ممنون من از این اطلاعات استفاده کرده و یک نمکره بیست گرفتم

    1. Avatar photo فرشاد گوهری گفت:

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

  59. امیر گفت:

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

  60. ناشناس گفت:

    عالی بود فقط

  61. ناشناس گفت:

    عالی بود

    1. ناشناس گفت:

      سلام داد

  62. سعید گفت:

    سلام روزتون بخیر ممنون بابت مطالب خوبتون .میخوام سه تا مسئله ی ارضای محدودیت رو با لگوریتم کرم شبتاب فلوچارتشو تو یه فلوچارت رسم کنم امکانش هست راهنمایی کنید ؟

    1. Avatar photo فرشاد گوهری گفت:

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

  63. محمد گفت:

    چقد خئب توضیح داده بودید مثال ها هم عای ممنون

  64. کیاوش گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

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

  65. محمد گفت:

    سلام جناب گوهری
    مطالب خیلی مفید بودن ولی کاش درکنار تمام این الگوریتم هایی که به زبان فارسی بیان الگوریتم اصلی به زیان پایتون هم میذاشتید

    1. Avatar photo فرشاد گوهری گفت:

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

  66. سراجیان اصل گفت:

    از لطف شما ممنونم جناب مهندس

  67. سراجیان اصل گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

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

  68. روش های صحیح مطالعه و یادگیری گفت:

    عالی دمت گرم

  69. DJ گفت:

    سلام…مرسی استاد عزیز….میگم من برای یاد گرفتن هرچه بهتر الگوریتم که بتونم اگه به یک مسئله برخوردم حلش کنم چیکار باید بکنم؟…اینجا شما خیلی خوب توضیح دادی…اما فک کنم به اندازه کافی زیاد نباشه
    ممنون میشم اگه راه حل خوبی رو بهم بدید…درضمن من یک کتاب هم دارم الگوریتم و فلوچارت(همون مبانی برنامه نویسی)…خیلی گنگه و به اندازه کافی نمیتونه کمکم کنه

    1. Avatar photo فرشاد گوهری گفت:

      سلام دوست عزیز، برای اینکه بتونید به‌خوبی الگوریتم رو درک کنید باید گام‌های مختلف رو در ابتدا متوجه بشید، که شامل موارد زیر هست:
      – دستورات شرطی
      – حلقه‌های تکرار
      این 2 مورد رو به‌خوبی فرا بگیرید تقریبا قادرید انواع الگوریتم‌ها رو بنویسید، چون بخش اعظم کدهای برنامه‌نویسی از دستورات شرطی و حلقه‌ها ساخته شدند.
      بعد از اون هم باید قدرت منطق و تجزیه‌تحلیل خودتون رو تقویت کنید که فقط از طریق تمرین و حل کردن مثال‌های مختلف امکان‌پذیر هست.
      موفق باشید.

  70. ارتور گفت:

    سلام استاد وقتتون بخیر.
    من بخاطر مشکلات مالی نمیتونم کلاس برم خودم تمرین میکنم .من چطور میتونم پروژه های ساده پایتون که برای مبتدیها باشه رو پیدا کنم و انجام بدم.ترجیحا فارسی باشه.حل مساله خیلی کمک میکنه تو یادگیریم.ممنون

    1. Avatar photo فرشاد گوهری گفت:

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

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

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

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

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

  71. تبسم گفت:

    میشه فایل pdf همه آموزش هاتونو قرار بدین؟

    1. Avatar photo فرشاد گوهری گفت:

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

  72. maedemmmmmmmmmmmmmm گفت:

    الگوریتم پایه ی ششمه؟؟؟؟

    1. Avatar photo فرشاد گوهری گفت:

      خیر، اینها الگوریتم‌های مورد استفاده در برنامه‌نویسی هستند، اما برای پایه‌ی ششم هم قابل استفادست، اما بهتره موارد ساده‌تری رو آموزش ببینید، برای پایه‌ی ششم آموزش زیر رو مطالعه کنید:
      https://www.hamyarit.com/blog/algorithm/

  73. علی گفت:

    ممنونم توضیحاتتون عالی بود

  74. farnaz گفت:

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

  75. 01Reza02 گفت:

    سلام خسته نباشید میشه اطفا همه آموزش هاتون توی پی دی اف هم باشه آخر هر مقاله سپاس

    1. Avatar photo فرشاد گوهری گفت:

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

  76. m....... گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

      خب چه مشکلی در نوشتن این الگوریتم دارید دوست عزیز؟
      شما کافیه دقیقا شرط رو بررسی کنید، به عنوان مثال برای سوال بالا به صورت X<0 (یعنی X عدد منفی هست) و X>0 (یعنی X عدد مثبت هست)

  77. m گفت:

    سلام میشه الگوریتم ک شرط دارن کمکم کنین

    1. Avatar photo فرشاد گوهری گفت:

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

    2. Reza گفت:

      سلام خسته نباشید الگوریتم در چه زبان هایی مورد استفاده قرار میگیره؟؟

  78. m گفت:

    سلام واسه الگوریتم زوج یافردبودن ازکجابفهمم تقسیم بردوکنم اگه شرط باشه اینطوره

    1. Avatar photo فرشاد گوهری گفت:

      سلام
      هر عدد زوجی که بر 2 تقسیم بشه باقی‌مانده‌اش همیشه 0 هست دوست عزیز.
      به کمک باقی‌مانده می‌تونید متوجه زوج یا فرد بودن عدد بشید.

  79. Naziz گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

      الگوریتم این سوال رو براتون توضیح میدم، می‌تونید به راحتی فلوچارت رو از روی الگوریتم رسم کنید.

      شما برای حل این سوال باید در ابتدا یک حلقه‌ی خارجی (از نوع While) تعریف کنید که مقادیر رو به صورت نامحدود دریافت کنه و شرط حلقه رو به صورت X!=0 قرار بدید (X عدد ورودی هست که از کاربر دریافت میشه)
      در داخل حلقه مقدار X*X رو محاسبه و در یک متغیر کمکی ذخیره کنید و بعد از اون مقدار این متغیر کمکی رو با متغیر اصلی (مثلا Y) جمع کنید.
      بدین ترتیب جمع مربعات اعداد در متغیر X ذخیره می‌شه و در پایان می‌تونید چاپش کنید.

      اگر جایی رو به خوبی متوجه نشدید مجددا بپرسید تا توضیحش بدم براتون.
      موفق باشید

  80. ناشناس گفت:

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

  81. علی احمدی گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

      سلام دوست عزیز، هدیه از طریق ایمیل برای شما ارسال خواهد شد (در قالب کد تخفیف)

  82. ارشیا گفت:

    سلام پاسخ این الگوریتم چیست = الگوریتمی بنویسید که مقسوم علیه یک تقسیم را نشان دهد

    1. Avatar photo فرشاد گوهری گفت:

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

  83. ارشیا گفت:

    معلم من یه اگوریتم درباره ی مقسوم علیه که من نتونستم حل کنم

  84. ارشیا گفت:

    معلم من یه الگوریتم در باره ی مقسوم علیه گفت که من نمیتونستم حل کنم

  85. ارشیا گفت:

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

  86. ارشیا گفت:

    سلام لطفا یک الگوریتم در باره ی مقسوم علیه بگویید ….ممنون

    1. Avatar photo فرشاد گوهری گفت:

      سلام
      لطفا منظورتون رو واضح‌تر بیان کنید دوست عزیز.

  87. مهسان گفت:

    یک الگوریتم شکلی برای بستن ماست

  88. وحد گفت:

    ممنون از پاسخ دقیقتون…
    ایا بین زبان هایی مثل php,html با زبان c++ و…
    به لحاظ نیاز به الگوریتم تفاوت وجود دارد؟
    برخی میگند زبانهای نوشتار سایت نیاز به دانش الگوریتم ندارد…
    همچنین به لحاظ موقعیت شغلی و درامد برنامه نویسی هم اگر بفرمایید ممنون میشم.
    سپاس

    1. Avatar photo فرشاد گوهری گفت:

      زبانهایی مثل HTML و CSS زبان های برنامه‌نویسی نیستند دوست عزیز، اینها زبان نشانه‌گذاری هستند و به الگوریتم هم احتیاج ندارند.

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

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

      اما در خصوص کشور ما در حال حاضر، توی زمینه وب و اندروید موقعیت‌های شغلی زیادی وجود داره.

      یکسری تکنولوژی جدید هم مثل node js یواش یواش داره جای خودش رو باز می‌کنه و به نظر میاد آینده خوبی داشته باشه.

  89. وحید گفت:

    سلام.
    میگویند برای برنامه نویسی باید طراحی الگوریتم یاد بگیریمو برای طراحی الگوریتم، ساختمان گسسته. نظر شما چیه؟
    ممنون

    1. Avatar photo فرشاد گوهری گفت:

      سلام، بله، الگوریتم برای تقویت مهارت برنامه‌نویسی شدیدا مورد نیازه، ولی در حدی که خودتون بتونید از پس تجزیه و تحلیل منطق برنامه‌نویس بربیایید، وگرنه منظور از طراحی الگوریتم اون درسی نیست که در دانشگاه‌ها تدریس میشه (این مواردی که گفتید اسم دوتا درس رشته‌ی کامپیوتر هم هستند)
      ساختمان گسسته در حدی لازمه که فقط ارتباطات منطقی مورد استفاده در منطق برنامه‌نویسی رو بدونید (در حد شناخت and و or و not منطقی) وگرنه بیشتر از اون چندان به کارتون نمیاد.
      تاکید اکثر برنامه‌نویس‌ها روی یادگیری الگوریتم هست، چراکه اگر شما الگوریتم رو ندونید به هیچ‌وجه نمی‌تونید منطق برنامه‌هاتون رو بنویسید.
      به نظر من بیشتر وقتتون رو روی یادگیری الگوریتم قرار بدید، ما آموزش‌های رایگانی در این زمینه منتشر کردیم، توصیه می‌کنم مطالعه کنید، اطلاعات خوبی بهتون میده:
      https://www.hamyarit.com/blog/algorithm/
      آین آموزش‌ها رو مطالعه کنید و سوالاتتون رو بپرسید، من و سایر دوستان راهنماییتون می‌کنیم دوست عزیز.

  90. Sarah گفت:

    سلام. چه موقع باید شمارنده رو صفر و چه موقع ۱ قرار بدیم ؟ میشه توضیح بدین. ممنون

    1. Avatar photo فرشاد گوهری گفت:

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

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

  91. ناشناس گفت:

    الگوریتمی را بنویسید که سن یک شخص را از ورودی گرفته و مشخص کنید که شخص کودک، نوجوان، جوان و یا کهنسال می باشو، در غیر این صوررت عدد وارد شده صحیح نمی باشد
    نکته: اگر سن طرف بین
    ۷تا۰ کودک
    ۱۸تا ۸ نوجوان
    ۴۵تا ۱۹ جوان
    ۱۳۰تا ۴۶ کهنسال
    لطفا جواب بدید

    1. Avatar photo فرشاد گوهری گفت:

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

    2. ناشناس گفت:

      چیکار کنم

    3. Avatar photo فرشاد گوهری گفت:

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

  92. ناشناس گفت:

    سلام من هم یک سوال دارم، الگوریتمی بنویسید که دو عدد را از ورودی گرفته و مشخص کند کدام یک بزرگ تر می باشد؟

  93. ناشناس گفت:

    سلام وقت تون بخیر . یه سوال دارم در مورد الگوریتم . استاد یه عدد ۶ رقمی داده و گفته الگوریتم باید جوری طراحی بشه که اعداد با موقعیت های فرد این عدد حذف بشه و عدد باقی مانده جواب نهایی بشه . من نمیدونم چطور میتونم برای موقعیت های زوج و فرد این عدد الگوریتم تعریف کنم. لطفا کمک کنید

    1. Avatar photo فرشاد گوهری گفت:

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

    2. ناشناس گفت:

      الگوریتم چطوری بنویسیم

    3. Avatar photo فرشاد گوهری گفت:

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

    4. ناشناس گفت:

      من نمی تونم جواب رو در بیارم لطفا جواب رو واسم بنویسید

    5. Avatar photo فرشاد گوهری گفت:

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

  94. ع گفت:

    سلام میسه الگوریتم تهیه ی قند میشه برام بنویسید

    1. Avatar photo فرشاد گوهری گفت:

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

  95. REZA گفت:

    سلام لطفا این سوال رو برام حل کنید
    الگوریتمی بنویسید که دو عدد صحیح از ورودی دریافت کند و عدد اول را به توان عدد دوم برساند و نتیجه اش رانمایش دهد؟

    1. Avatar photo فرشاد گوهری گفت:

      برای حل این الگوریتم کافیه یک حلقه تعریف کنید که از 1 تا مقدار عدد دوم شمارش کنه و داخل حلقه با هربار اجرا عدد اول در خودش ضرب بشه (توان، به ریاضی یعنی عددی به تعداد دفعات مشخص در خودش ضرب بشه)

  96. reza گفت:

    سلام لطف کنید فلوچارت این سوال <> رو بنویسید

  97. ثریا گفت:

    سلام الگوریتم پیدا کردن مد برای یک مجموعه اعداد و میخوام

  98. ناشناس گفت:

    سلام ببخشید من یه الگوریتم میخوام بنویسم که مثلا 1و1 میشه 2 یا 8و5بشه 13چطوریه؟؟؟!!

    1. Avatar photo فرشاد گوهری گفت:

      سلام، متاسفانه من دقیق متوجه منظورتون نشدم، این مثالی که شما زدید همون عملیات جمع ریاضی هست.

  99. Ehsan گفت:

    سلام خسته نباشید استاد ما جلسه اول 2 تا مثال زد تموم دیگه چیزی نگفت نامفهموم موند برام
    الان میشه الگوریتم این سوال برا من بگید هرچند میدونم سادس براتون ولی من تازه شروع کردم
    _الگوریتمی بنویسید ک عدد n را دریافت کرده و اعداد زوج 1تاn را از بزرگ ب کوچک چاپ کنید؟
    ممنون میشم کمک کنید

    1. Avatar photo فرشاد گوهری گفت:

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

  100. ناشناس گفت:

    سلام لطفا یک الگوریتم درباره لوازم خانگی بگید خیلی لازم دارم ممنون میشم زودتر بگید

    1. Avatar photo فرشاد گوهری گفت:

      سلام خدمت شما دوست گرامی
      لطفا واضح‌تر سوال مورد نظرتون رو توضیح بدید، دقیقا به چه الگوریتمی احتیاج دارید؟

  101. Mda گفت:

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

    الگوریتم ساخت یک کیک ؟؟

    1. ناشناس گفت:

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

  102. میلاد گفت:

    سلام .من امسال برنامه نویسی دارم .c++استاد بهمون تدریس میده .میشه خواهش کنم الگریتم نویسی pdfبهم بدید .تا مطالعه کنم استاد که من حرفشو نمیفهمم گنگ درس میده .ممنونم.

    1. Avatar photo فرشاد گوهری گفت:

      سلام، در حال حاضر PDF از آموزش‌ها منتشر نکردیم دوست عزیز، در صورت تمایل می‌تونید این مجموعه آموزش‌ها رو مطالعه کنید:
      https://www.hamyarit.com/blog/algorithm/
      به طور کامل در خصوص الگوریتم‌های مختلف توضیح داده شده.

    2. mbaghshani10 گفت:

      سلام ممنون خیلی مفید بود😘

  103. محمد گفت:

    تشکر از وقتی که گذاشتید..

  104. محمد گفت:

    خیلی ممنون از توضیحتون…. جواب 134400ساعت میاد.پس با این حساب چون تا ساعت11صبح خواسته باید 13 ساعت کم کنیم؟

  105. محمد حسین گفت:

    میتونید به سوال من جواب بدید .برا داداشم میخوام توی نمونه سوالاش بود نتونستم جوابشو پیدا کنم.
    ساعت عمر شما را تا تاریخ 97.7.23وساعت11صبح محاسبه کنید.(تاریخ تولد خودش82.7.3).پیشاپیش ممنون

  106. محمد گفت:

    لطفن میشه این سوال منو جواب بدین…. داداشم میخواست ازم پرسید دیدم بلد نیستم گفتم ازتون بپرسم.
    ساعت عمر شما را تا تاریخ 97.7.23وساعت 11صبح محاسبه کنید.(تاریخ تولد خودش 82.7.3)منتظرم.ممنون

    1. Avatar photo فرشاد گوهری گفت:

      سلام، برای حل این الگوریتم، اول باید دو تاریخ رو از هم کم کنید، بعد تعداد روزهای به دست آمده رو در 24 (ساعت) ضرب کنید، مقدار ماه به دست آمده رو در 24*31 (تعداد ساعات ماه) و مقدار سال به دست آمده رو در 24*31*12 (تعداد ساعات سال) ضرب کنید و تمام مقادیر رو باهم جمع کنید تا نتیجه‌ی نهایی بر حسب ساعت به‌دست بیاد دوست عزیز.

    2. ناشناس گفت:

      سلام الگریتم چطوری

  107. محمد گفت:

    سلام لطفا جواب این الگوریتمو بگید خیلی نیاز دارم
    الگوریتمی بنویسید که ساعات عمر فرد را از 92.7.3 تا 97.7.23 و ساعت 11 صبح حساب کند

  108. ℳmo گفت:

    سلام ببخشید میشه جواب این الگورتیمتو بنویسید خیلی لازم دارم
    الگوریتمی بنویسید که سن دانش آموزی را از 82.7.3 تا 97.7.23 و ساعت 11’صبح حساب کند ممنون منتظر جوابتون هستم

  109. پریسا گفت:

    سلام.خسته نباشید
    الگوریتم های شرطی چجوری نوشته میشه؟
    مثلا الگوریتمی بنویسید که شعاع دایره از ورودی دریافت کرده و محیط و مساحت را محاسبه کند اگر مساحت بدست امده بزرگتر از ۵۰بود مساحت و محیط بدست امده را نمایش دهد در غیر اینصورت فقط محیط بدست امده را نمایش دهد

    1. Avatar photo فرشاد گوهری گفت:

      سلام، در همین آموزش به طور کامل توضیح داده شده دوست عزیز:
      در بخش مثال ها میتونید چند نمونه الگوریتم که دستورات شرطی داخلش به کار رفته رو ببینید.

  110. ک گفت:

    سلام می خواستم روش الگوریتم روند نما رفتن به دانشگاه رو توضیح بدید

    1. Avatar photo فرشاد گوهری گفت:

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

  111. دانیال گفت:

    ۵ الگوریتم محاسبه ای

  112. ناشناس گفت:

    میشه الگوریتم ساعات زندگی منو تا 23/7/97ساعت١١صبح بیان کنه من متولد٣١/١/٨٣هستم

    1. Avatar photo فرشاد گوهری گفت:

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

  113. ناشناس گفت:

    خوب بود

  114. fati-F-A گفت:

    لطفا جواب تمرین های کتب وبژوال بیسیک رو بزارید

    1. Avatar photo فرشاد گوهری گفت:

      لطفا سوالات مورد نظرتون رو مطرح کنید، یا خود ما و یا سایر کاربران پاسختون رو خواهند داد دوست عزیز.

  115. Niki گفت:

    اگه بشه جواب تمرینارم بذارین خیلی خوب میشه

    1. Avatar photo فرشاد گوهری گفت:

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

  116. ناشناس گفت:

    10 الگو ریتم روند نما میخوام لطفا پاسخ دهید

    1. Avatar photo فرشاد گوهری گفت:

      تعدادی الگوریتم در همین آموزش به عنوان مثال قرار داده ‌شده دوست عزیز، میتونید از همین موارد استفاده کنید.
      اگر نمی‌دونید چطور باید الگوریتم رو به روندنما تبدیل کرد این آموزش رو مطالعه کنید:
      https://www.hamyarit.com/blog/flowchart/
      راهنمای کامل رسم فلوچارت در آموزش بالا وجود داره.

  117. ناشناس گفت:

    بابا مثال آماده لطف کنید

    1. Avatar photo فرشاد گوهری گفت:

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

  118. مهسا گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

      در کامنت قبلی تقریبا گفتم پاسخ رو ولی کاملش به این صورت هست:
      (البته به دلیل اینکه اینجا نمیتونم تصویر رو رسم کنم، الگوریتمش رو میگم فکر میکنم خودتون بتونید به فلوچارت تبدیلش کنید)

      1. شروع
      2. عدد N را بگیر
      2. a را برابر 1 قرار بده
      3. اگر a<=N آنگاه x را دریافت کن در غیر اینصورت به مرحله‌ی 6 برو 4. x=x+x 5. به مرحله‌ی 3 برو 6. x را چاپ کن 7. پایان امیدوارم به راحتی متوجه شده باشید که بتونید فلوچارتش رو رسم کنید.

  119. مهسا گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

      اینجور سوالات رو اگر سعی کنید خودتون حل کنید خیلی در پیشرفتتون موثر خواهد بود، به همین علت من الگوی کلی رو به شما میگم، اگر مجددا نتونستید حلش کنید بگید تا جوابش رو بگم.
      راه‌حل: می‌تونید از حلقه‌ی while استفاده کنید، یعنی در ابتدا عدد N رو دریافت کنید، سپس از 1 تا N دور حلقه بچرخید (از 1 تا a<=N) (a اسم شمارنده هست) در هر بار اجرای حلقه، مقدار ورودی رو با مقادیر قبلی جمع کنید و در نهایت پس از خروج از حلقه مقدار مجموع رو چاپ کنید.

  120. fatemeh گفت:

    مطالب خوبی بود

  121. مریم گفت:

    سلام من می خوام یه الگو ریتم درباره ی مشکلات مدرسه بنویسم

    1. Avatar photo فرشاد گوهری گفت:

      سلام
      توضیحاتتون واضح نیست دوست عزیز، چجور الگوریتمی می‌خواهید بنویسید؟

  122. ناشناس گفت:

    سلام یه سوال داشتم میخواستم ببینم اگه بخوام برنامه نویس بشم باید چکار کنم نیاز به رفتن کلاس برای یادگیری هست

    1. Avatar photo فرشاد گوهری گفت:

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

  123. امیر حسن گفت:

    عالی بود😗😗😗

    1. ناشناس گفت:

      الگوریتم با جدول

  124. رپورتاژ تبلیغاتی گفت:

    ممنون توضیحاتی خوبی در
    مورد رپورتاژ بود

  125. سایت کوتاه کننده لینک گفت:

    سلام بسیار ممنونم خیلی مطلب عالی و مفیدی بود

  126. سایت کوتاه کننده لینک گفت:

    سلام ممنونم عالی بود

  127. danial گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

      سلام
      نرم‌افزارهایی که برای برنامه‌نویسی استفاده میشن، IDE نام دارند، به عنوان مثال شما برای کامپایل زبان C میتونید از IDE ویژوال استدیو استفاده کنید که مال خود مایکروسافت هم هست (هرچند خیلی پیشرفته و کامله و زبان‌های خیلی بیشتری رو هم پشتیبانی میکنه)
      در مورد سوال دومتون هم، بله، با ویندوز هم میشه برنامه‌نویسی کرد.

  128. S123 گفت:

    ممنون
    بسیار عالی بود

  129. محمد گفت:

    سلام بخشید مثال دو تو عملکرد های مقاسه ای مشکل نداره؟

    1. Avatar photo فرشاد گوهری گفت:

      سلام خدمت شما کاربر گرامی
      خیر فک نمیکنم، چه مشکلی مد نظرتون هست؟

  130. علی گفت:

    سلام میخواستم بدونم میتونم از اطلاعات سایت شما مخصوصا این مطلب با درج منبع استفاده کنم؟

    1. Avatar photo فرشاد گوهری گفت:

      بله دوست عزیر، در صورتی که با ذکر منبع و ترجیها لینک فعال باشه هیچ مشکلی نداره

    2. ناشناس گفت:

      نه

  131. معراج گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

      اگر به کامپیوتر علاقه داشته باشید بله، صد درصد آینده‌ی درخشانی در انتظارتون هست

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

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

      پیروز و سربلند باشید

  132. sara گفت:

    الگوریتم فلوچارت سخت بگین استاد ما سخت گیر یاد بدین

  133. محمد گفت:

    سلام
    وقتتون بخیر
    من رشتم ریاضی کاربردیه و زبون هایی مثل ++C و #C رو کار کردم و بلدم(همچنین با زبون های قسمت فرانت اند سایت مثل CSS و HTML و JavaScript هم آشنام) ولی حس میکنم یه جای کار میلنگه :/
    این که پایه و بیس کار یعنی منطق و الگوریتم رو نمیدونم، داره اذیتم میکنه(به سینتکس های زبون ها آشنام ولی الگوریتم و منطق رو نه) نمیدونم از کجا باید شروع کنم به مطالعه. میشه راهنماییم کنید؟ ممنون

    1. Avatar photo فرشاد گوهری گفت:

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

      https://www.hamyarit.com/blog/computer-programming/
      https://www.hamyarit.com/blog/flowchart/

      باز هم اگر سوالی بود من در خدمتم
      موفق و سربلند باشید

  134. imAN گفت:

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

  135. محمد گفت:

    سلام خسته نباشید با اجازه کپی کردم برا تحقیق
    البته منبعشم ذکر خواهم نمود
    3پاس
    پایدار باشید

    1. Avatar photo فرشاد گوهری گفت:

      سپاس
      موفق باشید

  136. منا گفت:

    لطفا شکلش رو هم نشان دهید

    1. حسن گفت:

      شروع تمام و توقف با بیضی.دریافت اعداد و چاپ عدد متوازی الاضلاع. شرط لوزی.انجام محاسبات مستطیل.

    2. ناشناس گفت:

      چجوری

    3. Avatar photo فرشاد گوهری گفت:

      الگوریتم دستورات شرطی با نماد لوزی در فلوچارت نشون داده میشه دوست عزیز.

  137. سیما گفت:

    ممنون خیلی خوب بود

  138. F گفت:

    عالی بود

  139. اسلامی گفت:

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

  140. ..ــ گفت:

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

    1. علی گفت:

      بهتره تمرینای دانشگاهتو خودت انجام بدی. شما ترم اولی احتمالا و اینا مباحث بیسیک خیلی در اینده به دردت میخوره

    2. Avatar photo فرشاد گوهری گفت:

      بنده هم شدیدا با این حرفتون موافقم دوست عزیز، به همین دلیل جواب سوال این دوستمون رو هم به عهده‌ی خودشون گذاشتم و پاسخی ندادم بشون

    3. ناشناس گفت:

      غت

    4. ناشناس گفت:

      باشه

  141. علی گفت:

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

    1. Avatar photo فرشاد گوهری گفت:

      ببینید دوست عزیز، من کتابی به زبان فارسی سراغ ندارم که کامل همه چیزو توضیح داده باشه، اما اگر می‌خواین الگوریتم و مقدمات برنامه‌نویسی رو یاد کامل بگیرید توصیه می‌کنم بتون لینک زیر رو مطالبش رو مطالعه کنید:
      https://www.hamyarit.com/blog/programming-basics/

  142. علی گفت:

    سلام سوالی داشتم برای یادگرفتن زبانهای طراحی صفحات وب مثلhtmlوزبانهای سطح بالاتر یادگرفتن الگوریتم نویسی بازهم واجب هست یانه؟

    1. Avatar photo فرشاد گوهری گفت:

      سلام دوست عزیز
      برای طراحی بک‌اند سایت (سمت سرور که برنامه‌نویسی لازم داره) بله الگوریتم لازم هست، اما قسمت فرانت‌اند (ظاهر سایت) خیر احتیاجی به بلد بودن الگوریتم نداره، به عنوان مثال php یا asp لازمشون بلد بودن الگوریتم هست ولی html و css خیر

  143. َAmir Hossein گفت:

    سلام من 15 سالمه ولی به کامپوتر و برنامه نویسی خیلی علاقه دارم به نظرتون با این سن میتونم برنامه نویسی رو خوب یاد بگیرم ؟!
    بخاطر این اموزش های سایت خیلی ممنون

    1. Avatar photo فرشاد گوهری گفت:

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

      این مقاله رو مطالعه کنید:
      https://www.hamyarit.com/blog/computer-programming/

  144. صبغت الله گفت:

    White_ Hate:
    سلام دوستان:
    از پروژه (کد)کسی دیگری که در جاوا درست کرده چگونه مفهوم بگیرم.

    1. ناشناس گفت:

      سلام
      منظورتون چیه؟ ینی چی مفهوم بگیرید؟

  145. ناشناس گفت:

    ممممنون ????????

  146. بابک گفت:

    واقعا ممنون

  147. امیرحسین گروسی گفت:

    متن خوبی بود

  148. ناشناس گفت:

    سپاس.

  149. صدرا گفت:

    تشکر فراوان از شما

  150. سندباد گفت:

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

  151. مهربانو نوری گفت:

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

  152. حامد گفت:

    از مطالب خوبتون خیلی خیلی تشکر می کنم.

    1. hgfhgft گفت:

      قابل شمارو نداشت

  153. آموزش طراحی سایت گفت:

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

    1. امیر قایدی گفت:

      سلام اقای گوهر خسته نباشید ببخشید من اگه بهتون فلاچارت بدم حل می کنید

    2. Avatar photo فرشاد گوهری گفت:

      سلام امیر جان
      خیر :‌)
      هدف ما اینه که کاربرانمون این مفاهیم رو یاد بگیرند، مطمئنم اگر آموزش رو کامل مطالعه کنید و نظراتی که درج شده رو هم بخونید، خودتون می‌تونید تمرینتون رو انجام بدید.
      موفق باشید