В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
нияз35
нияз35
14.04.2023 18:11 •  Информатика

Выполните алгоритм с ветвлением для исходного числа 9 и запишите полученный результат.

Показать ответ
Ответ:
mt111
mt111
06.04.2021 17:06

/*Работа программы ограничена размерностью int, то есть за переполнением надо следить отдельно. Распознавание возможно и для координат больших ZZ и 702.  Реализация основных функций, вс функции перевода из строки в целое число и пример использования приведены ниже. Ввод строки std::string желательно организовывать в виде std::getline(std::cin, str); В функции let_to_number(std::string) пришлось возвращать пару int, а не std::string(из-за условия), поэтому в main необходима проверка на корректное преобразование: пара (0, 0) - некорректное, иначе - корректное.*/

#include <iostream>

#include <string>

std::string numb_to_letter(std::string source);

int str_to_i(std::string);

std::pair<int, int> let_to_number(std::string source);

int main()

{

std::string source1 = "53 12";

std::string source2 = "AA12";

std::cout << numb_to_letter(source1) << std::endl;

std::pair<int, int> a = let_to_number(source2);

if (a.second == 0)

{

 std::cout << "Error! Incorrect input\n";

}

else

{

 std::cout << a.first << " " << a.second << std::endl;

}

return 0;

}

std::string numb_to_letter(std::string source)

{

const std::size_t pos = source.find(" ");

if (pos == std::string::npos)

{

 return "Error! Incorrect input\n";

}

std::string result;

int x = str_to_i(source.substr(0, pos)), y = str_to_i(source.substr(pos + 1));

if (x == 0 || y == 0)

{

 return "Error! Incorrect input\n";

}

while (x != 0)

{

 result = char(-1 + 'A' + (x % 26 == 0 ? 26 : x % 26)) + result;

 x -= (x % 26 == 0 ? 26 : x % 26);

 x /= 26;

}

result += std::to_string(y);

return result;

}

int str_to_i(std::string source)

{

int n = 0;

for (auto i = 0; i < static_cast<int>(source.size()); i++)

{

 if (!('0' <= source[i] && source[i] <= '9'))

 {

  return 0;

 }

 n = n * 10 + source[i] - '0';

}

return n;

}

std::pair<int, int> let_to_number(std::string source)

{

std::string result;

std::size_t pos = 0;

while ('A' <= source[pos] && source[pos] <= 'Z' && pos < source.size())

{

 pos++;

}

if (pos == source.size() || pos == 0)

{

 return std::pair<int, int> {0, 0};

}

std::string tmp = source.substr(0, pos);

int x = 0;

for (auto i = 0; i < static_cast<int>(tmp.size()); i++)

{

 x += (source[i] - 'A' + 1) * static_cast<int>(pow(26, pos - 1 - i));

}

if (source[pos] == ' ')

{

 pos++;

}

if (source[pos] == ' ')

{

 return std::pair<int, int> {0, 0};

}

int y = str_to_i(source.substr(pos));

return (y == 0 ? std::pair<int, int>{0, 0} : std::pair<int, int>{x, y});

}

0,0(0 оценок)
Ответ:
Даша222000111777
Даша222000111777
01.07.2020 16:00
Вопросы очень не конкретные потому и ответы будут соответствующими
1) админ сети
2) много, это целая наука. Основное это разделить тех кому давать доступ к информации, а кому нет
3)Требования к пользователям - отвечать за последствия своих действий. Очень часто это требование не соблюдается
4) разграничивать доступ
5) законы связанные с этим делом
6) какой страны? обычно все акты касающиеся айти основаны на стандартах ISO
7) разграничение доступа. а конкретно в зависимости от информации и где она хранится и как используется
8) -
9) использование чужих данных в корысных целях
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота