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

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

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

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

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

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

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

  1. Формула, которая формирует новое число X:
    X = X * 10 + (a % 10), где a – исходное число.


    #include
    using namespace std;

    int main() {
    int x = 5678;
    int reverse_x = 0;

    while (x) {
    reverse_x = reverse_x * 10 + x % 10;
    x /= 10;
    }

    cout << reverse_x << endl;

    return 0;
    }

  2. А у меня ничего не получается я ничего не поннял просто
    я не знаю сколько надо долбить теорию

    1. //—————————————————————————
      #include
      #pragma hdrstop
      #include
      #include
      #include
      //—————————————————————————
      using namespace std;
      #pragma argsused
      int _tmain(int argc, _TCHAR* argv[])
      {
      double sum, res, srok;
      cout<<"5% prozentna stavka v RIK!!!"<<endl;
      cout<>sum;
      cout<>srok;
      res=sum*0.05*(srok/12);
      cout<<"Zarobitok za vesy termin = "<<res<<"$"<<endl;
      cout<<"Zarobitok za misyaz = "<<res/srok<<"$"<<endl;
      cout<<"Zarobitok za misyaz = "<<res+sum<<"$"<<endl;
      system("pause");
      return 0;
      }
      //—————————————————————————

  3. Не нужно долбить теорию…
    А нужно задачи решать, решать и решать.
    А если “ничего” не выходит, то нужно конкретно задавать вопросы – что там не выходит.

    P.S. Обсуждать здесь детали неудобно (из-за движка), но можно на форуме:
    http://rus-linux.net/forum/viewforum.php?f=31

  4. #include
    using namespace std;

    int main()
    {
    char number[] = "5678";
    setlocale(LC_ALL, "rus");
    cout << "Данное число: " << number << endl;
    cout << "Это же число в обратном порядке: " << number[3] << number[2] << number[1] << number[0] << endl;
    system("pause");
    return 0;
    }

    Мне такое решение больше нравится)

      1. Смысл в том, что у вас не число, а символьное изображение числа, строка символов. И в этом случае решение правильное.

        Но если число будет вводиться, да ещё и как строка, а, например, вычисляться, то вот тут уже такой подход не работает.

    1. Это решение реально круче и компактнее.
      Только хорошо, если бы пользователю прям при выполнении предоставляли возможность ввести число, типа:
      ……
      char number[ ] = “0”;
      cin>>number;
      ……
      cout << "Это же число в обратном порядке: " << number[3] << number[2] << number[1] << number[0] << endl;
      ……

      1. [code]
        int main()
        {
        setlocale(LC_ALL, “rus”);
        int a = 0;
        cout <> a;
        int b = 10;
        int c = a % b;
        int d = a / b;
        int e = d % b;
        int f = d / b;
        int g = f % b;
        int h = f / b;
        cout << "в обратном порядке цифры из которых сосотит это число – " <<c<<e<<g<<h<< endl;
        cout << "\n";
        return 0;

        }
        [/code]

  5. #include

    using namespace std;
    int main()
    {
    setlocale(LC_ALL,”rus”);
    int first = 5678;
    int second = 3087;
    cout << " Result " << first + second << endl;

    system("pause");

    return 0;
    }
    как мог

  6. Моё решение первой задачи.
    Работает с разным количеством знаков в числе.


    unsigned int iNumber(0);
    unsigned int iCurrent_digit;
    unsigned int iNumber_temp;
    int iBit (0);

    cout <> iNumber)
    {
    if (iNumber >= 1 && iNumber <= 4294967295) break;
    else cerr << "\nЧисло не из указанного диапазона. Введите ещё раз\n";
    }
    cout < 0; iBit++)
    {
    iNumber_temp = iNumber_temp / 10;
    }

    // Выводим числа в обратном порядке

    for ( ; iBit > 0 ; iBit--)
    {
    iCurrent_digit = iNumber % 10;
    if (iCurrent_digit == 0) break;
    cout << iCurrent_digit;
    iNumber /= 10;

    }

      1. Эта проблема уже решена. Добавляйте код в комментарии между code и /code в квадратных скобках

  7. Решение первой задачи,как вариант.
    [code]
    #include
    #include
    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, “rus”);

    int a = 5678;
    int b;
    cout << "Данное число: " << a << endl;
    cout << "Число наоборот: " ;
    for (int i(0); i < 4 ; i++)
    {
    b = (a%(int)(pow(10,i+1)))/(int)pow(10,i);
    cout << b;
    }
    _getch();
    return 0;
    }
    [/code]

  8. Как делить по модулю я честно говоря не догадался .
    Но с расчетом депозита вроде как сделал еще проще =)

      1. Задано ціле число A. Перевірити істинність висловлення: «Число

        A є непарним та негативним» Как сжелать этот код в с ++?

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

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