با سلام، بابت تاخیر طولانی مدت از شما عذر خواهی میکنم، در این پست قصد داریم با بررسی یک مثال از زبان سی کمی با شیوه کد نویسی در زبان سی آشنا شوید.
مثال اولدر ابتدا برنامه ای ساده ای در زبان سی خواهیم نوشت که توسط این برنامه شما مقدار پولی را وارد میکنید و این برنامه به شما می گویید که پول شما چند سکه 2 تومنی چند سکه 5 تومنی و چند اسکناس 10 تومنی و اسکناس 20 تومنی و 50 تومنی می شود. دقیقا مشابه آنچه که در دستگاه های عابر بانک رخ میدهد، شما مقداری را وارد می کنید و دستگاه به شما پول را با اسکناس های کوچکتر تحویل میدهد
کد زیر حتما خودتان تایپ کنید:
کد: انتخاب همه
#include <stdio.h>
#include <conio.h>
int main()
{
int i2,i5,i10,i20,i50,money,count=0,sum;
clrscr();
printf("Enter your Money=");
scanf("%d",&money);
for (i2=0;i2<=100;i2++){
for (i5=0;i5<=40;i5++){
for (i10=0;i10<=20;i10++){
for (i20=0;i20<=10;i20++){
for (i50=0;i50<=4;i50++){
sum=2*i2+5*i5+10*i10+20*i20+50*i50;
if(sum==money){
printf("2Rials=%d\t,5Rials=%d\t,10Rials=%d\t,",i2,i5,i10);
printf("20Rials=%d\t,50Rials=%d\n",i20,i50);
count++;
}
else
sum=0;
}
}
}
}
}
printf("Number of Correct Times:%d",count);
getch();
return 0;
}
سپس از منو گزینه RUN را انتخاب کنید و RUN را بزنید، برنامه اجرا می شود و از شما مقداری را به عنوان ورودی می خواهد. مثلا من عدد 15 را انتخاب کردم و کلید ENTER را زدم و نتیجه حاصل بصورت زیر شد:
اکنون شما یک نرم افزار بانکی ساختید!
تحلیل برنامه:اکنون بصورت ریز به ریز و جز به جز به تحلیل برنامه نوشته شده خواهیم پرداخت:
برنامه ی از سه قسمت ساخته شده:
1- سربرگ ها یا هدر ها:کد: انتخاب همه
#include <stdio.h>
#include <conio.h>
توسط این قسمت ما مشخص میکنیم که به چه هدر هایی نیازمند هستیم و زمانی که این هدر ها را فراخوانی کردیم به این معنی است که ما به توابع این هدرها نیازمندیم، هدرها بصورت مفصل در پست های قبلی شرح داده شده.
2- برنامه اصلی ما:کد: انتخاب همه
int main()
{
int i2,i5,i10,i20,i50,money,count=0,sum;
clrscr();
printf("Enter your Money=");
scanf("%d",&money);
for (i2=0;i2<=100;i2++){
for (i5=0;i5<=40;i5++){
for (i10=0;i10<=20;i10++){
for (i20=0;i20<=10;i20++){
for (i50=0;i50<=4;i50++){
sum=2*i2+5*i5+10*i10+20*i20+50*i50;
if(sum==money){
printf("2Rials=%d\t,5Rials=%d\t,10Rials=%d\t,",i2,i5,i10);
printf("20Rials=%d\t,50Rials=%d\n",i20,i50);
count++;
}
else
sum=0;
}
}
}
}
}
printf("Number of Correct Times:%d",count);
این قسمت برنامه اصلی ما می باشد.
در قسمت اول برنامه int main را مشاهده میکنید که در پست:
posting.php?mode=reply&f=41&t=32357#pr503999بصورت کامل در مورد آن توضیح داده شده است.
در خط بعد عبارت :
int i2,i5,i10,i20,i50,money,count=0,sum;
را می بینید، در این دستور ما به تعریف متغییر هایی به نام i2,i5,i10,i20,i50 کرده ایم، که بعد ها مقدار ورودی ما خورد می شود درون این متغییر ها قرار میگیرد و همچینن در ادامه متغییرهای money,count=0,sum را نیز تعریف کرده ایم. که مقدار count صفر تعریف شده است، لازم به ذکر است که
اگر مقدار اولیه ای برای متغییر تعریف نگردد سیستم عامل خود مقدار متغییر را صفر در نظر میگیرد.سپس توسط دستور clrscr(); صفحه نمایش کاملا از اطلاعات، اشکال و کارکترهای قبلی پاک می شود.
سپس توسطprintf که یک تابع می باشد، عبارتی را بروی صفحه چاپ میکند که از شما مقداری را درخواست میکند وظیفه تابعprintf نمایش یک عبارت برروی صفحه نمایش است، که در اینجا عبارت: Enter your Money را نمایش میدهد
این تابع را باید به صورت:
بکار برد.سپس با scanf مواجه می شوید این دستور مانند دستور بالا است هنگامی که شما عبارتی را برروی صفحه نمایش تایپ میکنید و کلید ENTER را میزنید عبارت تایپ شده درون متغییر scanf قرار میگیرد که در
money متغییر ماست و عبارت d% به معنای این است که عبارت وارد شده درون متغییر money قرار بگیرد.
سپس با حلقه For مواجه می شویم که قبلا درباره آن توضیح داده شده است میتوانید دوباره در زیر شرح آن را بخوانید:
*******************
حلقه for برای تکرار یک مجموعه از دستورات به تعداد مشخص به کار میرود. این حلقه در حالت کلی به شکل زیر نوشته میشود:
for (initialize_variables; conditions; expression)
{
statements;
}
حلقه for دارای سه قسمت است: قسمت initialize_variables برای مقداردهی اولیه متغیرهای حلقه به کار میرود؛ عبارت conditions شرط ادامه حلقه است و قسمت بعدی یعنی expression یک دستور C++ است که معمولا کار تغییر مقدار متغیر حلقه را انجام میدهد. اگر یک قسمت دارای چند عبارت باشد در این صورت میتوان آنها را با علامت "," از هم جدا کرد.
اگر قسمتهای مختلف حلقه for را خالی بگذاریم؛ در این صورت یک حلقه بینهایت ایجاد کردهایم:
for (;;)
{
statements;
}
مثال زیر اعداد فرد بین 1 تا 10 را در خروجی چاپ میکند:
int i;
for (i = 1; i <= 10; i++)
{
if (i % 2)
cout << i << endl;
}به نمایه از : http://professionalcpp.blogfa.com/post/24*******************
در خط بعدی باز با دستور printf مواجهه می شویم و سپس با دستور Count++ که توسط این دستور مقدار count یه یک واحد به آن اضافه می شود.
3-قسمت توابع وانتهای برنامه:
مقداری برای توضیح دادن در مورد مقادیر return و getch زود می باشد و در آینده درباره اینها بیشتر صحبت میکنیم
برنامه چگونه کار میکند؟اساس برنامه به این صورت است که از شما یک مقدار را میگیرید و سپس آن را در متغییری ذخیره میکند و سپس آن را توسط حلقه های تو در تو می شمارد و سپس حاصل را در خروجی نمایش می دهد.