Klavyeden girilen param miktarı içerisinde kaç tane 10, 20 ve 50'ilk kağıt para olduğunu bularak ekrana yazan
programin akış diyagramını oluşturunuz. Kullanıcı 10 ve katları girmek zorundadır.
c dili


Cevap :

#include <bits/stdc++.h>

/*Vektörün ilk indisi 10TL adetini,

ikinci indisi 20TL adetini,

üçüncü indisi 50TL adetini,

ve devam eden indislerde 100 ve varsa 200TL miktarını göstermektedir.

*/

std::vector<int> count;

std::string cash_type[6] = {" ","10TL","20TL","50TL","100TL","200TL"};

static int cash=0;

int main(int argc, char* argv[]) {

   //Para girişini yapıyoruz.

   std::cout << "Mevcut miktari girin: ";

   std::cin >> cash;

   

   //assertion kullanıyoruz ki girilen para 10'un katı olsun.

   assert(cash%10==0);

   

   //Hesaplama işlemi

   for(int i=5;i>0;i--) {

       //İlk 5 terim için 10,20,50,100,200'ü veren genel dizi terimi

       long int g_term = ((10*pow(i,4))-(100*pow(i,3))+(430*pow(i,2))-(660*i)+400)/(8);

       count.push_back(cash/g_term);

       cash -= (cash/g_term)*g_term;

   }

   

   std::cout << "\nGirilen paranin icerisinde:\n---------------------------\n";

   for(int i=5;i>0;i--) {

       std::cout << count.at(5-i) << " adet " << cash_type[i] << " vardir.\n";

   }

   return 0;

}