vdk81816778
?>

Напишите алгоритм вычисления платы за пользование телефоном для введённого времени разговоров в месяц. Услуги телефонной сети оплачиваются последующемуправилу: за разговоры до а минут – b рублей в месяц, а разговоры сверх установленнойнормы оплачиваются дополнительно из расчёта c рублей за минуту.Нужно составить математическую модель и алгоритм в виде блок-схемы.

Информатика

Ответы

Lyudmila-Popova

#define UPPERLIMIT 1000

#define LOWERLIMIT 0

#include <iostream>

#include <vector>

#include <cstddef>

#include <algorithm>

#include <ctime>

using namespace std;

class Massive {

public:

   virtual void fill() = 0;

   virtual int get_max() = 0;

   virtual int get_min() = 0;

   virtual void reverse(int start, int end) = 0;

   virtual void out() = 0;

};

class MassiveHandler : public Massive {

private:

   std::vector<int>::iterator result;

public:

   std::vector<int> array;

   MassiveHandler(std::size_t n) : array(n) {

       this->fill();

   }

   void fill() override {

       srand(time(0));

       for (int i = 0; i < this->array.size(); ++i)

           this->array[i] = rand() % (UPPERLIMIT - LOWERLIMIT + 1) + LOWERLIMIT;

   }

   void routine() {

       this->reverse(this->get_min(), this->get_max());

   }

   void reverse(int start_v, int end_v) override {

       if (start_v > end_v)

           swap(start_v, end_v);

       for (int i = start_v, j = end_v; i < j; i++, j--)

           swap(this->array[i], this->array[j]);

   }

   int get_max() override {

       this->result = std::max_element(this->array.begin(), this->array.end());

       return std::distance(this->array.begin(), result);

   }

   int get_min() override {

       this->result = std::min_element(this->array.begin(), this->array.end());

       return std::distance(this->array.begin(), result);

   }

   void out() override {

       for (int i = 0; i < this->array.size(); ++i)

           cout << this->array[i] << " ";

       cout << endl;

   }

};

int main() {

   int n;

   cin >> n;

   MassiveHandler *MH = new MassiveHandler(n);

   cout << "MAX: " << MH->array[MH->get_max()] << endl;

   cout << "MIN: " << MH->array[MH->get_min()] << endl;

   cout << endl;

   cout << "Before: ";

   MH->out();

   MH->routine();

   cout << "After:  ";

   MH->out();

}

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите алгоритм вычисления платы за пользование телефоном для введённого времени разговоров в месяц. Услуги телефонной сети оплачиваются последующемуправилу: за разговоры до а минут – b рублей в месяц, а разговоры сверх установленнойнормы оплачиваются дополнительно из расчёта c рублей за минуту.Нужно составить математическую модель и алгоритм в виде блок-схемы.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Васильева-Александрович
Бражинскене_Алексей
ievlevasnezhana7
Alekseevna
d892644813661946
vickuznetsova8677
Tatianamir765654
Shtorm-Shoe
tol1974656
Dmitrii_Shamilevich2019
ivanrancev
Berezovskaya
Михайлович_гергиевич315
kassel1b
suny84