Основы программирования на С++ для начинающих

Задачи: арифметические операции в С++

Если вы уже прочитали статью Арифметические операции в С++ можно приступать к практике.

1. Распространённая задача:  Дано четырехзначное число (к примеру 5678), вывести на экран  в обратном порядке цифры из которых это число состоит. То есть мы должны увидеть на экране 8765. Подсказка: чтобы взять из числа отдельные цифры, надо применять  деление по модулю на 10.

2. На сайте практически любого коммерческого банка, можно встретить так называемый Депозитный калькулятор, который позволяет людям, не желающим углубляться в формулы расчета процентных ставок, узнать какую прибыль они получат. Для этого им достаточно заполнить определённые поля, нажать на кнопку и увидеть результат. Это простая программа, которую уже сможет написать каждый из вас. Итак, задача: Пользователь вводит сумму депозита и количество месяцев хранения денег в банке. Необходимо провести расчет и показать на экран прибыль с депозита в месяц,  за весь срок депозита, и общую сумму к выплате в конце срока.  Валюта пусть будет – доллар США. Процентная ставка – 5% годовых.  Формула  расчета  процентов  в  месяц    –                      СуммаДепозита * (ПроцентнаяСтавка / 100)  / ДнейВГоду * ДнейВМесяце.

Возможно у вас возникли вопросы по решению задач – задавайте их в комментариях!

151 thoughts on “Задачи: арифметические операции в С++

  1. float stavka = 1.05;
    int srok = 0;
    float dohod = 0;
    float dohodVmes = 0;
    int vklad = 0;
    cout << "введите сумму вклада" <> vklad;
    cout << "введите срок депозита" <> srok;
    dohodVmes = (stavka*vklad-vklad) / 12;
    dohod = (vklad*srok*stavka)/12;
    cout << "ваша прибыль в месяц = " << dohodVmes << endl;
    cout << "сума к выплате в конце срока= " << dohod << endl;

    Здравствуйте…извините конечно, я вот так сразу и с замечаниями )))
    Мой вариант считает более корректно. Вся суть в том, что у вас не правильно считается месячная прибыль. Вы привязались к количеству дней, а оно в разных месяцах разное! Поэтому расчет и в итоге будет не совсем правильный. Да и банки считают помесячно. Ваш вариант будет считать правильно если разбить ежемесячный доход на 12 месяцев и учесть кол-во дней в каждом.
    Если 1000 долларов под 5% положить на год, то прибыль будет 50 у.е )) ..как ни крути ))

  2. Мой вариант программы. Оцените.
    #include
    using namespace std;
    int main(void)
    {
    setlocale(LC_ALL, "Russian");
    double deposit; //ваш депозит
    double rate; //ваш процент
    int month; //количество месяцев
    int Num; //количество дней в месяце
    cout << deposit;
    cout << month;
    cout << Num;
    cout <<rate;
    double S = (deposit*(rate/100)) / month;
    cout << "Ваш месячный процент=" << S;
    cout << "\n";
    cout << "Ваш процент за год=" << S*month<<endl;
    }

  3. Не дочитал условия и сделал по своей формуле….но все работает отлично!!

    #include
    #include
    using namespace std;
    int main()
    {
    setlocale(LC_ALL, "rus");
    float deposit = 0;
    float stavka = 0;
    float kol_mes = 0;
    float preb = 0;
    cout << deposit;
    cout << stavka;
    cout << kol_mes;
    preb = kol_mes * (deposit / 100) * (stavka / 12);
    cout << "Ваша прибыль составит " << preb << endl;
    _getch();
    return 0;
    }

  4. 1. Можно и так :
    #include
    #include

    using namespace std;

    int main() {
    setlocale(LC_ALL , “Russian”);
    short int a, b, c, d, e;
    a=b=c=d=0;
    cout << "Введите 4 значительное число \t:" <> e ;
    d = e%10;
    c = e/10%10;
    b =e/10/10%10;
    a = e/10/10/10%10;
    cout << "Ваши цифры в обратном порядке – " << d << c << b << a << endl;
    return 0;
    }

    1. > 1. Можно и так :

      Можно и так…
      Только тогда уже “по мотивам вашего решения” лучше сделать вот так:

      #include
      using namespace std;

      int main() {
      unsigned long long e;
      while( true ) {
      cout <> e;
      cout << "Введенные цифры в обратном порядке : ";
      for( ; e != 0; e /= 10 )
      cout << e % 10;
      cout << endl;
      }
      return 0;
      }

      И число здесь не 4-х значное, а любой разрядности, и код короче.

  5. Кстати, в этой задаче (№1) можно … и хорошо бы “обмануть” пользователя. Обмануть тем, что cin первоначально вводит символьные данные и только затем преобразовывает их в требуемый тип. Можно просто не делать вообще никаких преобразований:

    #include
    using namespace std;

    int main() {
    string e;
    while( true ) {
    cout << "Введите любое положительное целое : ";
    getline( cin, e );
    cout << "Введенные цифры в обратном порядке : ";
    for( string::const_reverse_iterator i = e.rbegin(); i != e.rend(); i++ )
    cout << *i;
    cout << endl;
    }
    }

    1. 2-й обман здесь состоит в том, что мне удалось обмануть этот придурастый движок сайта, который сжирает:

      cin >> e;

      Если оно следует за cout …

  6. #include

    using std::cout;
    using std::cin;
    using std::endl;
    int main()
    {
    setlocale(0, "Russian");

    float Deposit = 0;
    int month = 0;
    float procent = 5;
    float result = 0;

    cout << "Введите сумму депозита:" <> Deposit;
    cout << "Введите кол-во месяцев:" <> month;
    result = Deposit * (procent / 100) / 365 * 31;
    cout << "Сумма по окончанию срока депозита:" << result + Deposit << endl;

    return 0;
    }

    Вот мой код, работает, но я поленился вводить переменные для кол-ва дней

  7. Объясните по следующему моменту:
    Если расчет ставки делать так – amountMonth = deposit * (5 / 100) / 365 * 31;
    то значения равны 0.
    Если присвоить значение переменной 5, и вставить в скобки, то все работает…
    float procent = 5;
    amountMonth = deposit * (procent / 100) / 365 * 31;
    Почему первый вариант не просчитывает корректно?

  8. #include
    using std::cout;
    using std::cin;

    int main()
    {
    float sumDeposit = 0, hranenie = 0, otvet = 0, procentStav = 0;
    int dneyvMes9ce = 0, dneyvGody = 0;
    cout<<dneyvGody;
    cout<<dneyvMes9ce;
    cout<<sumDeposit;
    cout<<hranenie;
    cout<<procentStav;
    //formula rac4eta procentov v mesac:
    otvet = sumDeposit * (procentStav / 100) / 365 * 30;
    cout<<"============================================\n";
    cout<<"Procent v mes9c po formule: "<<sumDeposit<<" * "<<procentStav<<"% / "<<dneyvGody<<" * "<<dneyvMes9ce<<" = "<<otvet<<"$";
    cout<<"\nProcent za vec' srok: "<<otvet*hranenie+sumDeposit<<"$";

    return 0;
    }

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *