تعریف الگوریتم:

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

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

حل:

1 – شروع

2 – ابتدا عدد A را بگیر.

3 – عدد B را بگیر.

4 – عدد A و B را با هم جمع کن

5 – حاصل جمع را در خروجی نمایش بده (حاصل جمع A و B)

6 – پایان

توضیح: منظور از “عدد را بگیر” این است که عددی را از ورودی کیبورد رایانه دریافت کنیم. و منظور از “در خروجی نمایش بده” یعنی نمایش دادن در مانیتور است. حال میخواهیم این الگوریتم را به زبان ++C تبدیل کنیم. اعداد استفاده شده را اعداد صحیح در نظر میگیریم:


int A, B;
cin >> A;
cin >> B;
cout << A + B;

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

1 – شروع

2 – عدد A را بگیر

3 – عدد B را بگیر

4 – عدد C را بگیر

5 – اعداد A و B و C را با هم جمع کن و حاصل را در D ذخیره کن.

6 – عدد D را بر 3 تقسیم کن و حاصل را در D ذخیره کن.

7 – حاصل (D) را نمایش بده.

8 – پایان.

برای تبدیل الگوریتم به زبان برنامه نویسی ++C بایست به این نکته توجه کنیم که در اینجا چون از تقسیم استفاده میکنیم عدد D را از نوع float تعریف میکنیم تا قابلیت ذخیره و نمایش اعشار را داشته باشد اما میتوانیم اعداد A و B و C را به صورت عدد صحیح (int) تعریف کنیم چون در صورت مساله از ما خواسته نشده که این اعداد قابلیت نمایش اعشار داشته باشند:


int A, B, C;
float D;
cin >> A;
cin >> B;
cin >> C;
D = A + B + C;
D = D / 3;
cout << D;

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

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

1- شروع

2- عدد A را از ورودی دریافت کن.

3- عدد A را بر 2 تقسیم کن و باقیمانده تقسیم را در B ذخیره کن.

4- اگر B برابر با صفر بود در خروجی چاپ کن “زوج است” در غیر اینصورت چاپ کن “فرد است”

5- پایان

برای تبدیل این الگوریتم به زبان ++C میبایست از دستور شرطی if و همچنین از عملگر باقیمانده تقسیم (%) استفاده کنیم:


int A, B;
cin >> A;
B = A % 2;
if (B == 0)
{
cout << "Zoj Ast";
}
else
{
cout << "Fard Ast";
}

رسم فلوچارت این برنامه به صورت زیر خواهد بود:

فلوچارت و الگوریتم


 مثال: الگوریتم برنامه ای که اعداد کوچکتر از 10 را در خروجی چاپ کند.

حل: در اینجا نیاز به یک شمارنده داریم که از عدد 1 تا 9 را به صورت یکواحد به یکواحد شمرده و در خروجی نمایش دهد. باید یک شرط قرار دهیم که هر زمان این شمارنده از 10 بزرگتر شد برنامه متوقف شود.

1- شروع

2- عدد A را برابر با 1 قرار بده.

3- عدد A را در خروجی چاپ کن.

4- عدد A را با 1 جمع کن و حاصل را در A ذخیره کن.

5- اگر A کوچکتر از 10 بود به مرحله ی 3 برگرد.

6- پایان.

دقت داشته باشید که در مرحله 5 اگر A بزرگتر از 10 باشد، برنامه به مرحله 6 یعنی پایان میرود ولی اگر A کوچکتر از 10 باشد به مرحله 3 برمیگردد یعنی یک تکرار که به تکرار در برنامه نویسی در اصطلاح “حلقه” میگوییم. نمایش این برنامه (حلقه) به زبان ++C به این صورت است:


for (int A=1; A  < 10; A++)
{
cout << A;
}

 مثال: الگوریتم برنامه ای که اعداد زوج کوچکتر از 20 را در خروجی چاپ کند.

حل: ابتدا به یک شمارنده (A) نیاز داریم که بتواند اعداد 1 تا 19 تا بشمارد و اعداد زوج آن را در خروجی نمایش دهد. در مثال های قبلی دیدیم که وقتی باقیمانده تقسیم یک عدد بر 2 برابر با صفر بود یعنی آن عدد زوج است. پس در اینجا یک عدد دیگر (B) تعریف میکنیم که بتواند باقیمانده تقسیم A بر 2 را در خود ذخیره کند. اگر B برابر با صفر بود میفهمیم عدد زوج است.

1- شروع

2- عدد A را برابر با 1 قرار بده.

3- عدد A را با 1 جمع کن و حاصل را در A ذخیره کن.

4- عدد A را بر 2 تقسیم کن و باقیمانده تقسیم را در B ذخیره کن.

5- اگر A بزرگتر یا مساوی 20 بود برو به مرحله 8.

6- اگر B برابر با صفر بود در خروجی A را چاپ کن.

7- برگرد به مرحه 3.

8- پایان.

توجه داشته باشید که در مرحله 5 تنها زمانی که هر دو شرط برقرار باشد یعنی هم B برابر با صفر باشد و هم A کوچکتر از 20 باشد، عمل چاپ و رفتن به مرحله 3 انجام میشود در غیراینصورت از مرحله 5 گذر میکند و به مرحله 6 یعنی پایان میرود.


int A, B;
for (A=1; A  < 20; A++)
{
B = A % 2;
if (B == 0)
{
cout << A;
}
}

فلوچارت برنامه فوق به صورت زیر است:

فلوچارت و الگوریتم


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

حل: برای اینکه یکان یک عدد صحیح را بتوانیم مشخص کنیم، کافیست باقیمانده تقسیم آن عدد بر 10 را بگیریم. برای مثال اگر عدد صحیح 352 را در نظر بگیریم و آن را بر 10 تقسیم کنیم خارج قسمت عدد 35 و باقیمانده عدد 2 میشود که همان یکان آن است.

1- شروع

2- عدد A را از ورودی دریافت کن.

3- عدد A را بر 10 تقسیم کن و باقیمانده تقسیم را در B ذخیره کن.

4- عدد B را در خروجی چاپ کن.

5- پایان.


int A, B;
cin >> A;
B = A % 10;
cout << B;

جهت شناخت بیشتر انواع داده ها آموزش داده ها و متغیرها را مطالعه کنید.


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

حل: نیاز به یک شمارنده داریم که اعداد 1 تا 9 را بشمارد (توسط یک حلقه تکرار) و همچنین نیاز به یک متغیر دیگر داریم که بتواند مجموع این اعداد را در خود ذخیره کند. نام شمارنده را A میگذاریم و حاصل جمع را B مینامیم.

1- شروع

2- مقدار 1 را در عدد A قرار بده و مقدار 0 را در B قرار بده.

3- مقدار A را با B جمع کن و حاصل را در B ذخیره کن.

4- عدد A را با 1 جمع کن و حاصل را در A ذخیره کن.

5- اگر A کوچکتر از 10 بود برگرد به مرحله 3.

6- عدد B را در خروجی نمایش بده.

7- پایان.


int B = 0;
for (int A = 1; A  < 10; A++)
{
B = A + B;
}
cout << B;

لطفاً توجه داشته باشید که ما مقدار اولیه 0 را به B نسبت دادیم. دلیل این است که برای اولین بار که حلقه انجام میشود یعنی زمانی که دستور B=A+B میخواهد اجرا شود در سمت راست تساوی متغیر B باید دارای یک مقدار اولیه باشد تا بتواند در محاسبات ریاضی استفاده شود. به یاد داشته باشید که در کار با اعداد، سمت راست تساوی همیشه یک عملیات ریاضی است و در عملیات ریاضی تمام متغیرها باید دارای مقدار باشند.


 مثال: الگوریتم برنامه ای که 10 عدد را از ورودی دریافت کند و میانگین آنها را محاسبه و حاصل را در خروجی چاپ کند.

حل: به یک حلقه نیاز داریم که 10 بار تکرار شود. پس به یک شمارنده حلقه نیاز داریم که آن را A مینامیم. متغیری به نام B داریم که اعدادی که از ورودی میگیریم را در آن قرار میدهیم. به یک متغیر دیگر به نام C نیاز داریم که هر بار که عددی را از ورودی میگیرد آن را در C جمع کند تا در نهایت با استفاده از آن بتوانیم میانگین را حساب کنیم.

1- شروع

2- عدد A را برابر با 0 قرار بده.

3- عدد C را برابر با 0 قرار بده.

4- عدد B را از ورودی بگیر.

5- عدد B را با C جمع کن و حاصل را در C ذخیره کن.

6- عدد A را با 1 جمع کن و حاصل را در A ذخیره کن.

7- اگر A کوچکتر از 10 بود برو به مرحله 4.

8- عدد C را در خروجی نمایش بده.

9- پایان.


int A, B, C=0;
for (A=0; A <10; A++) { cin >> B;
C = C + B;
}
C = C / 10;
cout << C;

لطفاً توجه داشته باشید که در مثال فوق ما شمارنده A را از صفر شروع کردیم و در شرط حلقه A <10 را استفاده کردیم یعنی از 0 تا 9 که در مجموع میشود 10 عدد.


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

حل: به یک شمارنده برای ذخیره تعداد دانشجویان قبول شده نیاز داریم و به یک حلقه با تکرار 20 بار نیاز داریم که در هر بار تکرار یک نمره از ورودی بگیرد و بررسی کند که آیا آن نمره 10 یا بیشتر (نمره قبولی) بوده است یا خیر. شمارنده تعداد قبول شده ها را Count مینامیم و شمارنده حلقه را K و نمره ای که از ورودی میگیرد را Num نامگذاری میکنیم.

1- شروع

2- عدد Count را برابر با 0 قرار بده.

3- عدد K را برابر با 0 قرار بده.

4- عدد Num را از ورودی دریافت کن.

5- اگر Num بزرگتر یا مساوی 10 بود یکواحد به Count اضافه کن.

6- یک واحد به K اضافه کن.

7- اگر K کوچکتر از 20 بود برو به مرحله 4.

8- عدد Count را در خروجی نمایش بده.

9- پایان.

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


int Count = 0,
float Num;
for (int K=0; K  < 20; K++) {
cin >> Num;
if (Num >= 10)
{
Count = Count + 1;
}
}
cout << Count;

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

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

1- شروع

2- عدد A را از ورودی دریافت کن.

3- عدد A را بر 100 تقسیم کن و حاصل را در A ذخیره کن.

4- باقی مانده تقسیم عدد A بر 10 را در B ذخیره کن.

5- عدد B را در خروجی نمایش بده.

6- پایان.


int A, B;
cin >> A;
A = A / 100;
B = A % 10;
cout >> B;

برای مثال اگر عدد صحیح 1256 را در نظر بگیریم، میخواهیم صدگان آن یعنی عدد 2 را در خروجی نمایش دهیم. حال اگر یکبار آن را بر 100 تقسیم کنیم عدد 12 باقی میماند. اگر باقیمانده تقسیم عدد 12 بر 10 را در نظر بگیریم، عدد 2 باقی میماند که همان جواب مساله است. *واضح است که این برنامه فقط برای اعداد بزرگتر از 100 (که دارای صدگان هستند) جواب میدهد.


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

حل: در اینجا به یک شمارنده و یک حلقه نیاز داریم. شمارنده تعداد ارقام را مشخص میکند که در اینجا با نام Counter تعریف کرده ایم. میدانیم که با تقسیم هر عدد بر 10 میتوانیم یکان آن عدد را حذف کنیم. در اینجا به کمک حلقه، عدد مورد نظر را n بار بر 10 تقسیم میکنیم تا جایی که عدد صفر شود و با هر تقسیم یک واحد به شمارنده اضافه میکنیم.

1- شروع.

2- عدد A را از ورودی دریافت کن.

3- عدد A بر 10 تقسیم کن و حاصل را در A ذخیره کن.

4- عدد Counter را با 1 جمع کن و در Counter ذخیره کن.

5- اگر A بزرگتر از صفر بود، برو به مرحله 3.

6- عدد Counter را در خروجی نمایش بده.

7- پایان.


int A, Counter=0;
while (A > 0)
{
A = A / 10;
Counter = Counter + 1;
}
cout << Counter;

 

—> قسمت دوم آموزش الگوریتم نویسی <---

لینک های مفید:

پروژه نرم افزار دیتابیس آفلاین Access

انجام پروژه های برنامه نویسی پذیرفته میشود
لینک کانال تلگرام : http://t.me/cproject

آموزش الگوریتم در برنامه نویسی (بخش اول)

42 thoughts on “آموزش الگوریتم در برنامه نویسی (بخش اول)

  • 08/11/2018 at 15:08
    Permalink

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

    Reply
  • 08/25/2018 at 10:49
    Permalink

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

    الگوریتمی بنویسید که آرایه ای به طول n را از ورودی بگیرد و آرایه ای به طول n تولید کند به نحوی که هر خانه خروجی برابر حاصلظرب تمامی خانه های ورودی به غیر از خانه متناظر باشد

    Reply
    • 08/26/2018 at 13:18
      Permalink

      با فرض اینکه n=10:
      [code]
      int A[10];
      int B[10];
      for (int k=0;k<10;k++)
      {
      cin >> A[k];
      }
      for (int i=0; i<10;i++)
      {
      int multi = 1;
      for (int j=0;j<10;j++)
      {
      if ( j != i )
      {
      multi = multi * A[j];
      }
      }
      B[i] = multi;
      }
      for (int s=0;s<10;s++)
      {
      cout << B[s];
      }
      [/code]

      Reply
  • 08/25/2018 at 16:18
    Permalink

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

    Reply
    • 08/31/2018 at 00:36
      Permalink

      لطفاً بیشتر توضیح بفرمایید

      Reply
  • 09/28/2018 at 16:30
    Permalink

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

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

    Reply
    • 09/29/2018 at 18:29
      Permalink

      1- برنامه ای که محیط و مساحت مثلت را حساب کند (با فرض اینکه x قاعده و y ارتفاع مثلث باشد):
      [cpp]
      int x, y, z;
      cin >> x >> y >> z;
      cout << "Mohit:" << x+y+z;
      cout << "Masahat: " << x*y/2;
      [/cpp]

      2- برنامه تبدیل ثانیه به ساعت، دقیقه و ثانیه
      [cpp]
      int t;
      cin >> t;
      int H, M, Sec;
      H = t / 3600;
      M = (t / 60) % 60;
      Sec = t % 60;
      cout << H << ":" << M << ":" << Sec;
      [/cpp]

      Reply
  • 10/12/2018 at 14:14
    Permalink

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

    Reply
  • 10/16/2018 at 00:27
    Permalink

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

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

    Reply
    • 10/16/2018 at 18:17
      Permalink

      برنامه تغییر مقدار دو متغیر بدون کمک متغیر سوم:
      int A = 2;
      int B = 3;
      A = A + B;
      B = A – B;
      A= A- B;
      توضیح اینکه مقدار دو متغیر A و B را در ابتدا 2 و 3 در نظر گرفتیم که هر مقداری به دلخواه میتوانند باشند.

      Reply
  • 10/17/2018 at 22:35
    Permalink

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

    Reply
    • 10/18/2018 at 12:36
      Permalink

      برنامه حاصل جمع مقسوم علیه های یک عدد به زبان C++:

      [cpp]
      int n;
      int sum = 0;
      cout <<" Enter Number :";
      cin >>n;
      for(int i = 1; i <= n ; i++)
      {
      if( n % i == 0 )
      {
      sum = sum + i;
      }
      }
      cout << sum;
      [/cpp]

      Reply
  • 10/18/2018 at 16:38
    Permalink

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

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

    Reply
    • 10/18/2018 at 22:38
      Permalink

      برنامه حاصل جمع مقسوم علیه های یک عدد به فارسی:
      1- مقدار Sum را برابر صفر قرار بده
      2- مقدار n را از ورودی دریافت کن
      3- مقدار i را برابر با 1 قرار بده
      4- اگر i کوچکتر یا مساوی n بود برو به مرحله 5 در غیراینصورت برو به مرحله 7
      5- اگر باقیمانده تقسیم n بر i برابر با صفر بود، مقدار قبلی sum را با i جمع کن و در sum ذخیره کن
      6- یکواحد به i اضافه کن و برو به مرحله 4
      7- مقدار sum را در خروجی نمایش بده

      Reply
  • 10/19/2018 at 16:19
    Permalink

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

    *الگوریتمی بنویسید که تعداد ۵ عدد را از ورودی خوانده، اعداد زوج را در خروجی چاپ می کند

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

    Reply
    • 10/19/2018 at 16:35
      Permalink

      فرض کنید پنج عددی که از ورودی گرفته شده اینها هستند: 10-11-1-5-8
      در الگوریتم اول در خروجی چاپ میشود: 10-8 که در واقع اعداد زوجی هستند که در بین این پنج عدد وجود دارد
      اما در الگوریتم دوم در خروجی چاپ میشود: 2 که “تعداد” اعداد زوجی هستند که وجود دارند

      Reply
  • 10/20/2018 at 17:27
    Permalink

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

    Reply
    • 10/20/2018 at 20:49
      Permalink

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

      Reply
  • 10/20/2018 at 21:59
    Permalink

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

    Reply
    • 10/20/2018 at 22:14
      Permalink

      منظور از عدد کامل، عددی است که برابر باشد با مجموع مقسوم علیه هایش به جز خودش. اولین عدد کامل، عدد 6 است زیرا: 6=3+2+1 به طوریکه تمام اعداد 3 و 2 و 1 مقسوم علیه های عدد 6 هستند.
      حالا برای حل این مساله و نوشتن الگوریتم آن، همان الگوریتم قبلی که براتون نوشته بودم، یعنی: “برنامه ای که حاصل مجموع مقسوم علیه های یک عدد را چاپ کند” را با کمی تغییر به الگوریتم جدیدی تبدیل میکنیم.

      برنامه به زبان C++
      [cpp]
      int A[100];
      for (int k=0; k < 100; k++)
      {
      int n;
      int sum = 0;
      cout <<" Enter Number :";
      cin >>n;
      for(int i = 1; i < n ; i++)
      {
      if( n % i == 0 )
      {
      sum = sum + i;
      }
      }
      if (sum == n)
      {
      A[k] = n;
      }
      }
      for (int j=0; j<100; j++)
      {
      cout << A[j] << endl;
      }
      [/cpp]

      Reply
  • 10/20/2018 at 22:48
    Permalink

    خیلی عذر میخوام
    عدد کامل منظورم بود و اینکه میشه به زبان فارسی بنویسیدش چون هنوز اینجوری کار نکردیم
    واینکه زبان c با c++ فرقی داره؟

    Reply
    • 10/20/2018 at 23:01
      Permalink

      بله بنده هم عدد کامل رو نوشته بودم براتون، غلط املایی بود اصلاح شد.
      زبان C++ همان کامل شده زبان C هست. در حال حاضر زبان C تقریباً منسوخ شده و همه برنامه نویسان با C++ کار میکنند. ولی ایرادی هم نداره جهت یادگیری از C شروع کنید
      الگوریتم فوق به زبان فارسی:
      1- آرایه ای به نام A به طول 100 تعریف کن.
      2- مقدار K را برابر صفر قرار بده
      3- اگر k کوچکتر از 100 بود، برو به مرحله 4 در غیر اینصورت برو به مرحله 11
      4- مقدار sum را برابر صفر قرار بده و n را از ورودی دریافت کن
      5- مقدار i را برابر 1 قرار بده
      6- اگر مقدار i کوچکتر از n بود برو به مرحله 7 در غیر اینصورت برو به مرحله 9
      7- اگر باقیمانده تقسیم n بر i برابر صفر بود، مقدار قبلی sum را با i جمع کن و در sum ذخیره کن
      8- یکواحد به i اضافه کن و برو به مرحله 6
      9- اگر sum برابر با n بود، n را در خانه i ام آرایه A ذخیره کن.
      10- یکواحد به k اضافه کن و برو به مرحله 3
      11- مقدار j را برابر صفر قرار بده
      12- اگر j کوچکتر از 100 بود، برو به مرحله 13 در غیراینصورت برو به مرحله 15
      13- خانه j ام آرایه A را در خروجی نمایش بده
      14- یکواحد به j اضافه کن و برو به مرحله 12
      15- پایان

      Reply
  • 10/22/2018 at 16:15
    Permalink

    من الگوریتم اعداد دو رقمی مضرب 5 را می خواستم

    Reply
    • 10/22/2018 at 17:29
      Permalink

      الگوریتم اعداد دو رقمی مضرب 5:
      برای حل این مساله، با کمک یه حلقه از 10 تا 99 تمام اعداد را بررسی میکنیم به اینصورت که هر عددی که باقیمانده تقسیمش بر 5، برابر با صفر بود یعنی آن عدد بر 5 بخش پذیر است بنابراین مضربی از 5 است.
      1- شروع
      2- مقدار i را برابر 10 قرار بده
      3- اگر i کوچکتر یا مساوی 99 بود برو به مرحله 4 در غیر اینصورت برو به مرحله 6
      4- اگر باقیمانده تقسیم i بر 5 برابر صفر بود، i را در خروجی نمایش بده.
      5- یکواحد به i اضافه کن و برو به مرحله 3
      6- پایان

      برنامه به زبان C++:
      [cpp]
      for (int i=10; i<=99; i++)
      {
      if (i % 5 = 0)
      {
      cout << i << endl;
      }
      }
      [/cpp]

      Reply
  • 10/27/2018 at 23:07
    Permalink

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

    Reply
    • 10/28/2018 at 00:21
      Permalink

      ایمیلی برای بنده ارسال نشده متاسفانه

      Reply
  • 10/28/2018 at 08:40
    Permalink

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

    Reply
  • 11/02/2018 at 18:35
    Permalink

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

    برنامه ای بنویسید که سه عدد A, B ,C را از کاربر دریافت کند و سپس کوچکترین عدد را چاپ کند.

    برنامه ای بنویسید که سه عدد A, B ,C را از کاربر دریافت کند و سپس بزرگترین عدد را چاپ کند

    Reply
    • 11/02/2018 at 18:56
      Permalink

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

      int A,B,C;
      cin >> A >> B >> C;
      if (A > B && A > C)
      {
          cout << A;
      }
      if (B > A && B > C)
      {
          cout << B;
      }
      if (C > A && C > B)
      {
          cout << C;
      }

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

      1- الگوریتم پیدا کردن بزرگترین عدد بین چند عدد:

      int A[3];
      int max;
      for (int i=0; i< 3; i++)
      {
          cin >> A[i];
      }
      max = A[0];
      for (int j=0; j<3; j++)
      {
          if (A[j] > max)
          {
              max = A[i];
          }
      }
      cout << max;

      2- الگوریتم پیدا کردن کوچکترین عدد:

      int A[3];
      int max;
      for (int i=0; i< 3; i++)
      {
          cin >> A[i];
      }
      max = A[0];
      for (int j=0; j<3; j++)
      {
          if (A[j] < max)
          {
              max = A[i];
          }
      }
      cout << max;

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

      Reply
  • 11/06/2018 at 23:36
    Permalink

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

    Reply
    • 11/07/2018 at 17:18
      Permalink

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

      int A,B,C;
      int vatar, zel1, zel2;
      cin >> A >> B >> C;
      if (A > B && A > C)
      {
          vatar = A;
          zel1 = B;
          zel2 = C;
      }
      if (B > A && B > C)
      {
          vatar = B;
          zel1 = A;
          zel2 = C;
      }
      if (C > A && C > B)
      {
          vatar = C;
          zel1 = A;
          zel2 = B;
      }

      if (vatar*vatar == zel1*zel1 + zel2*zel2)
      {
          cout << "YES";
      }
      else
      {
          cout << "NO";
      }

      جهت تست برنامه سه عدد 10و24و26 را به برنامه بدهید.

      Reply
  • 11/16/2018 at 23:21
    Permalink

    سلام ممکنه اینارو حل کنین:
    برنامه اي بنويسيد كه عدد n را دريافت كرده و حاصل سري زير را چاپ كند: 1 + 3 – 5 + 7 – 9 + 11… – n

    برنامه اي بنويسيد كه عدد x را دريافت كرده و مجموع ارقام زوج و تعداد ارقام زوج را چاپ كند

    Reply
    • 11/18/2018 at 20:24
      Permalink

      سوال1: برنامه ای که n را بگیرید و حاصل سری 1+3-5+7-9+11…n را چاپ کند:
      حل: به زبان C++

      int n;
      cin >> n;
      int sign = 0;
      int sum = 1;
      for (int i = 3; i <= n; i = i + 2)
      {
          if (sign == 0)
          {
              sum = sum + i;
              sign = 1;
          }
          else if (sign == 1)
          {
              sum = sum - i;
              sign = 0;
          }
      }
      cout << sum;

      توضیح: sign یک علامت مشخص کننده منفی یا مثبت است که هربار عوض میشود و باعث میشود اعداد یکی درمیان جمع یا تفریق شوند.

      سوال2: برنامه ای که عدد x را از ورودی بگیرد، مجموع و تعداد ارقام زوج آن عدد را چاپ کند.
      حل: به زبان C++

      int x;
      cin<< x;
      int sum = 0, count = 0;
      while (x > 0)
      {
          int temp = x % 10;
          if (temp % 2 == 0)
          {
              count++;
              sum += temp;
          }
          x /= 10;
      }
      cout << "Sum is:" << sum;
      cout << "Count is:" << count;

      توضیح: در یک حلقه while تا زمانی که x بزرگتر از صفر باشد، باقیمانده تقسیم آن عدد بر 10 را میگیریم که همان یکان آن عدد است. سپس بررسی میکنیم که آیا باقیمانده تقسیم آن بر 2 برابر صفر است یا خیر. اگر بله باشد، یعنی عدد زوج است و میبایست یکواحد به شمارنده (count) اضافه کنیم و همچنین آن عدد را در مجموع ارقام (sum) نیز جمع کنیم.

      Reply
  • 11/30/2018 at 13:23
    Permalink

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

    Reply
    • 11/30/2018 at 22:29
      Permalink

      برنامه ای که دو عدد دریافت کند و مشخص کند که آیا بر هم بخش پذیر هستند یا خیر.

      int a,b;
      cin >> a >> b;
      if (a%b==0 || b%a==0)
          cout << "Yes";
      else
          cout << "No";
      Reply
  • 12/14/2018 at 15:18
    Permalink

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

    ۱-دو عدد بگیرد و تمام اعداد فرد بینشان شمال خود دو عدد(اگر‌فرد بودند) را چاپ کند.ضمنا نمی دانیم کدام عدد بزرگتر است
    ۲- ده عدد را گرفته و تعیین کند کدام زوج و کدام فرد است

    Reply
  • 12/19/2018 at 13:46
    Permalink

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

    Reply
  • 12/19/2018 at 15:50
    Permalink

    سلام میشه سوال های زیرا به بصورت برنامه بنویسید؟؟؟
    1_سه عدد را به عنوان اضلاع یک مثلث از ورودی بگیرد و نوع مثلث را تعیین کنید.
    2_ سه عدد را از ورودی بگیرد و آن ها را به ترتیب نزولی چاپ کند(اعداد نمی توانند برابر باشند.)
    3_ دو عدد دلخواه را از ورودی بگیرد و اعداد مضرب ۳ بین این دو عدد را چاپ کن .
    4- دو عدد را بگیرد و با استفاده از ضرب های متوالی اولی را به توان دومی برساند .
    5- تعدادی عدد را تا گرفتن عدد ۱- (منفی یک) از ورودی گرفته و مجموع و میانگین آن ها را چاپ کند.
    6- یک عدد را بگیرد و مجموع ارقام آن را اعلام نماید .
    7- دو عدد را بگیرد و اعداد کامل میان آن را اعلام نماید . ( تعداد تام یا اعداد کامل اعدادی را گویند که مجموع خارج قسمتشان با خودش برابر باشد .)
    8- تعدادی کاراکتر را تا گرفتن نقطه از ورودی گرفته و تعداد هریک از کاراکترهای حرفی مشاهده شده را اعلام نماید . (تعدادی از خانه های همگن که منطقا پشت سرهم هستند و هرکدام جای مشخصی دارند آرایه گفته می شود)

    9- 100 عدد را بگیرد و در آرایه ای قرار دهد. سپس مجموع عناصر دارای اندیس فرد را با مجموع اعداد زوج مشاهده شده مقایسه کند.
    10- بدون استفاده از آرایه 100 عدد را بگیرد و عناصر دارای اندیس فرد مجموع اعداد زوج مشاهده شده مقایسه کند .
    11- عناصر یک ماتریس4×4 را بگیرد و سپس مجموع اعداد روی قطر اصلی را اعلام نماید .
    12- عددی را به عنوان شمارنده روزی از سال بگیرد و تعیین کند چه روزی از کدامین ماه سال می باشد؟
    13- روز و ماه و سال را بگیرد و بگوید چندمین ماه سال است؟
    14- تعدادی عدد را تا گرفتن عدد صفر از ورودی خوانده و میانگین و بزرگترین و کوچکترین آن ها را چاپ کند .
    15- عددی چند رقمی را از ورودی بگیرد و اولا تعداد رقم یک موجود در آن را بشمارد و ثانیا آن را معکوس(به صورت مقلوب) در آورده و نمایش دهد .
    16- یک رشته کاراکتری را گرفته و پرتکرارترین حرف صدادار آن را مشخص کند .
    17- 100 عدد را از ورودی گرفته و در آرایه ای ذخیره کند . سپس تعداد و مکان تکرار یک عدد دلخواه را در آرایه مشخص نماید.
    18- دو ماتریس3×3 از ورودی گرفته و مجموع آن ها را در ماتریس سومی ذخیره کرده سپس چاپ نماید.
    19- یک رشته کاراکتری را از ورودی بگیرد و تعداد کاراکترهای آن را اعلام کند .
    20- یک رشته را گرفته و عکس آن را چاپ کند.
    21- حاصل جمع زیر را محاسبه کند.
    S=1/2 – 2/3 + 3/4 _ 4/5 +….

    21- یک ماتریس را گرفته و متقارن بودن را آن را مشخص کند.
    22- یک عدد را از ورودی گرفته و تعداد هریک از ارقام صفر تا نه مشاهده شده در آن را به تفکیک اعلام نماید .

    Reply
  • 01/15/2019 at 09:05
    Permalink

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

    Reply
  • 02/13/2019 at 17:49
    Permalink

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

    Reply
  • 06/30/2019 at 12:48
    Permalink

    به کمک ارایه ها برنامه ای بنوسید که اعداد بسیار بزرگ را جمع کند و بدون آنکه اعداد رو خلاصه کند چاپ مثل (E+137)
    بدون استفاده از توابع سی شارپ
    برنامه بالا رو با ضرب بنویسید

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

    Reply

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

16 + چهار =