پروژه سی پلاس پلاس

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

صورت مساله

فرض کنید شما تو یه بقالی کار میکنید! مشتری میاد از شما خرید میکنه، یه پولی بهتون میده و شما باقیمانده پول رو میخواهید بهش برگردونید. مشتری دوست داره پولی که از شما میگیره پول درشت باشه یعنی مثلا اگر قراره  23 هزار تومن بهش بدید دوست نداره 23 تا هزار تومنی بگیره. حالت بهینه اش اینه که دو تا 10 هزار تومنی، یه دونه  هزار2 تومنی و یه دونه هزار تومنی دریافت کنه. صورت مساله ما هم دقیقا همینه. من ساده شده سوال رو بهتون میگم:

برنامه‌ای بنویسید که یک عدد صحیح از ورودی دریافت و مشخص کند برای خورد کردن چنین مقدار پولی با اسکناسهای 10 هزارتومانی، 5 هزارتومانی، 2 هزار تومانی و هزار تومانی به حداقل چند اسکناس نیاز دارید

 

چه جوری باید کد این مساله رو بنویسم؟

سوالی که همیشه بچه ها از من میپرسن اینه:

چه جوری باید یک مساله رو حل کنم؟

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

 

اما برای این مساله میخوام یه نکته دیگه بهتون بگم.شما میخواهید کد این مساله رو بنویسید. در قدم اول الگوریتم و کدنویسی رو بذارید کنار. بیاید این مساله رو اینجوری بهش نگاه کنید که مثلا من میخوام 27 هزار تومن رو خورد کنم، با چه اسکناسهایی میتونم این کار رو کنم؟

قطعا شما به این سوال خیلی راحت جواب میدید: دو تا اسکناس 10 تومنی، یکی اسکناس 5 هزار تومنی و یه اسکناس 2 هزار تومنی. اما این جواب رو از کجا آوردید؟ مغزتون این مساله رو حل کرد. الان هنر شما میتونه این باشه که بیاید و ریز بشید به این موضوع که مغز من چه جوری این مساله رو حل کرد؟ اگه اینو بتونید کشف کنید در واقع الگوریتم مسالتون رو تونستید پیدا کنید. برای عدد 27 هزارتومن مغز شما اول عدد 2 رو پیدا میکنه! 2 تا اسکناس 10 هزار تومنی. درسته؟ به این معنی که از اسکناس درشت تر شروع میکنه. 2 رو چه جوری پیدا کرد؟ با تقسیم صحیح 27 هزار بر 10 هزار. در قدم بعدی همین الگوریتم رو با عدد 7 هزار تومن و اسکناس 5 هزارتومنی جلو میره. 7 هزار از کجا اومد؟  20000 – 27000 یا میتونیم بگیم خارج قسمت 27 هزار بر 10 هزار. پس عدد 7000 رو گه پیدا کرد بر 5000 تقسیم میکنه و تعداد اسکناسهای 5000 تومنی رو پیدا میکنه، باقیمانده 7هزار بر 5 هزار محاسبه میشه و به همین صورت الگوریتم تا اسکناس هزار تومنی دنبال میشه.

با این توضیحات بریم و کد این مساله رو  ببینیم.

پیاده سازی پروژه

بدون هیچ توضیح اضافه ای شما میتونید کد این مساله رو ببینید:

#include <iostream>
using namespace std;

int main()
{
    
    int amount;
    cout<<"Che Mablaghi Bargardoonam? ";
    cin>>amount;

    int a10,a5,a2,a1;
    a10=a5=a2=a1=0;

    a10 = amount / 10000;
    amount %= 10000;

    a5 = amount / 5000;
    amount %= 5000;

    a2 = amount / 2000;
    amount %= 2000;

    a1 = amount / 1000;
    
    cout<<"\n"<<a10<<" Eskenas 10 Hezar Tomani \n";
    cout<<"\n"<<a5<<" Eskenas 5 Hezar Tomani \n";
    cout<<"\n"<<a2<<" Eskenas 2 Hezar Tomani \n";
    cout<<"\n"<<a1<<" Eskenas 1 Hezar Tomani \n";

    



    
    cout<<"\n\n";    
    return 0;
} 

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

نمونه سوالات سی پلاس پلاس

کلی سوال برنامه نویسی!

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

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