М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Mimosa1233
Mimosa1233
26.12.2022 12:14 •  Информатика

Переделайте код с Python на C++:


Переделайте код с Python на C++:
Переделайте код с Python на C++:
Переделайте код с Python на C++:

👇
Ответ:
megakolbina
megakolbina
26.12.2022

Код:

#include <iostream>

#include <utility>

#include <vector>

#include <map>

#include <string>

#include <exception>

std::vector<int> get_number_sequence(const int N, const std::string& title_message) {

   std::vector<int> sequence(N);

   std::cout << title_message << std::endl;

   for(auto i = 0; i < N; ++i) {

       int number;

       std::cin >> number;

       sequence[i] = number;

   }

   return sequence;

}

template <typename TKey, typename TValue> std::multimap<TKey, TValue>

       zip(std::vector<TKey> first_sequence, std::vector<TValue> second_sequence) {

   std::multimap<TKey, TValue> store;

   if (first_sequence.size() != second_sequence.size()) {

       throw std::runtime_error("Argument exception. It can't zip vectors with different sizes");

   }

   for (auto i = 0; i < first_sequence.size(); ++i) {

       store.insert(std::pair<TKey, TValue> (first_sequence[i], second_sequence[i]));

   }

   return store;

}

template <typename T> std::multimap<T, int>

       reversed_zip(std::vector<T> sequence) {

   std::multimap<T, int> store;

   for (auto i = 0; i < sequence.size(); ++i) {

       store.insert(std::pair<T, int> (sequence[i], i+1));

   }

   return store;

}

template <typename T> std::multimap<int, T> zip(std::vector<T> sequence) {

   std::multimap<int, T> store;

   for (auto i = 0; i < sequence.size(); ++i) {

       store.insert(std::pair<int, T> (i+1, sequence[i]));

   }

   return store;

}

template <typename TKey, typename TValue> std::pair<std::vector<TKey>, std::vector<TValue>>

unzip(std::multimap<TKey, TValue> store) {

   std::vector<TKey> keys;

   std::vector<TValue> values;

   for (auto it = store.begin(); it != store.end(); ++it) {

       keys.push_back(it->first);

       values.push_back(it->second);

   }

   return std::pair<std::vector<TKey>, std::vector<TValue>>(keys, values);

}

template <typename TKey, typename TValue> std::pair<std::vector<TKey>, std::vector<TValue>>

reversed_unzip(std::multimap<TKey, TValue> store) {

   std::vector<TKey> keys;

   std::vector<TValue> values;

   for (auto it = store.begin(); it != store.end(); ++it) {

       keys.push_back(it->second);

       values.push_back(it->first);

   }

   return std::pair<std::vector<TKey>, std::vector<TValue>>(keys, values);

}

template <typename T>

void print_values(std::vector<T> sequence) {

   std::cout << sequence[0];

   for (auto i = 1; i < sequence.size(); ++i) {

       std::cout << " " << sequence[i];

   }

   std::cout << std::endl;

}

int main() {

   auto NT = get_number_sequence(2, "Enter the N and T values > ");

   auto N = NT[0];

   auto T = NT[1];

   auto pigs = reversed_zip(get_number_sequence(N, "Enter N pigs > "));

   auto cities = get_number_sequence(N, "Enter N cities > ");

   auto cent = get_number_sequence(N, "Enter N cents > ");

   auto calculated_cities = std::vector<int>(N);

   for(auto i = 0; i < N; ++i) {

       calculated_cities[i] = cent[i] - cities[i] * T;

   }

   auto stored_cities = reversed_zip(calculated_cities);

   auto sorted_pigs = reversed_unzip(pigs).first;

   auto sorted_cities = reversed_unzip(stored_cities).first;

   auto sorted_values = zip(sorted_cities, sorted_pigs);

   auto processed_values = unzip(sorted_values).second;

   std::cout << "Answer is ";

   print_values(processed_values);

   return 0;

}

4,5(55 оценок)
Открыть все ответы
Ответ:
Polly2970
Polly2970
26.12.2022

Есть конструкция for:

for (init-expression; cond-expression; loop-expression)

действие

init-expression - выражение, которое выполняется лишь раз при старте цикла, например, чтобы задать начальное значение счетчика.

cond-expression - условие, которое проверяется перед каждой итерацией.

loop-expression - выражение, которое выполняется после каждой итерации.

Данный вид цикла может как выполняться, так и нет, в зависимости от истинности условия.

Есть конструкция while:

while (cond-expression)

действие

cond-expression - условие, которое проверяется перед каждой итерацией.

Данный вид цикла может как выполняться, так и нет, в зависимости от истинности условия.

Есть конструкция do-while:

do {

действие

} while (cond-expression)

cond-expression - условие, которое проверяется после каждой итерацией.

Данный вид цикла выполняется минимум один раз

4,5(19 оценок)
Ответ:
Tractorust
Tractorust
26.12.2022

1) 2304 КБайт

2) 5625 КБайт, видеокарта на 64 МБайт

3) 112,5 МБайт

Объяснение:

Задача 1:

16 777 216 = 2^i,   i = 24

I = 1024 * 768 * 24 = 2^10 * 3 * 2^8 * 24 битов =

= 72 * 2^18 битов  = 72 * 2^15 байтов = 72 * 2^5 Кбайт = 72*32 КБайт =

= 2304 КБайт

Задача 2:

16 777 216 = 2^i,   i = 24

I = 1600 * 1200 * 24 = 100 * 2^4 * 75 * 2^4 * 24 битов =

= 25 * 2^2 * 2^4 * 75 * 2^4 * 3 * 2^3 битов = 25*75*3* 2^13 битов  = 5625* 2^10 байтов = 5625* 2^0 Кбайт = 5625 КБайт ≈ 5,5 МБ

Подойдет видеокарта на 64 Мбайт.

Задача 3:

75 Гц, значит в одной секунде 75 кадров.

Объем данных, передаваемых в секунду от видеопамяти к монитору:

75 * 16 * 1024 * 768 = 75 * 2^4 * 2^10 * 3 * 2^8 = 225 * 2^22 битов =

= 225 * 2^19 байт = 225 * 2^9 КБайт = 112,5 * 2^10 КБайт = 112,5 * 2^0 МБайт = 112,5 МБайт

4,4(35 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ