Задача: двухтарифный электросчетчик

Задача: двухтарифный электросчетчик
5 (100%) 1 vote

Задача: составить программу для расчета стоимости электроэнергии по показаниям двухтарифного электросчетчика. Имеется двухтарифный электросчетчик. Показания снимаются в конце месяца. Данные для расчета — разница между показаниями за предыдущий месяц и за текущий (дневного и ночного тарифа.) Исходные данные:

  • Дневной тариф (с 7-00 утра до 23-00);
  • Ночной тариф (с 23-00 до 7-00 утра );
  • Первая тарифная зона — до 100 кВт*час: 0.456 грн
  • Вторая тарифная зона — от 100 до 600 кВт*час: 0.789 грн
  • Третья тарифная зона — свыше 600 кВт*час: 1.479 грн
  • Ночной тариф — 50% от стоимости каждой дневной тарифной зоны

Рассылка новых уроков по программированию:

Задача: двухтарифный электросчетчик: 8 комментариев

  1. Добрый день. Хочу показать вам мой вариант решения. Мне кажется, он несколько попроще, предложенного выше.

    1. И еще вопрос к создателю задачи: зачем в условии указано время когда считаются дневные, а когда ночные кВт*ч. Думала, куда это можно всунуть, в for что ли чтобы от начального значения до конечного считать сутки и делить показания на день и ночь. Но решила не мудрить. И в итоге в вашем решении не увидела применения этих данных. Так вот и вопрос — зачем? Наверное, чтобы порадовать мозг новой информацией и заставить немного задуматься о сути данных :)

  2. Спасибо большое за задачу.
    мне кажется что моя программа немного полегче, но вроде как считает также, если я не права, поправьте пожалуйста.

  3. Невнимательный, извиняюсь, то что выше можно удалить )
    Плюшки вроде текста с информацией и цикл while для повтора, можно допилить самостоятельно, решение:

  4. Режет половину текста… (
    Если прокатит, то вот сама функция подсчета:
    double summ(double value)
    {
    double result = 0;
    double do100 = 0.456;
    double do600 = 0.789;
    double ot600 = 1.479;

    if (value > 600)
    {
    result += ((value — 599) * ot600);
    value = value — (value — 599);
    }
    if (value > 100)
    {
    result += ((value — 99) * do600);
    value = value — (value — 99);
    }
    result += (value * do100);

    return result;
    }

    ночной и дневной тариф считаются, одинаково, при выводе делим ночной на 2 и суммируем результаты…

    1. Не пишите в комментарии свой код!
      Он никому здесь не нужен, комментарии делались вовсе не для этого.

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

Код размещайте в тегах: <pre class="lang:c++ decode:true ">YOUR CODE</pre>