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

Язык: c++

доп. требование: не использовать библиотеки, работающие исключительно на одной ос.

:

перевод координат вида буквы-число в вид число-число и наоборот. можно написать и две отдельные программы.

пример работы:

(ввод)=> (вывод)

a1=> 1 1

b9=> 2 9

aa11=> 27 11

1 5=> a5

9 10=> i10

28 19=> ab19

примечание: перед выводом в формате буквы-число необходимо сохранить выводимое в переменной формата string, а при выводе в формате число-число сохранить оба числа в формате int.

ограничения: требуется работо программы при вводе zz676

👇
Ответ:
Женька2597
Женька2597
05.03.2022

/*Работа программы ограничена размерностью 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});

}

4,7(97 оценок)
Открыть все ответы
Ответ:
Zufar1618
Zufar1618
05.03.2022
ответ:

30

Объяснение:

Присваиваем переменной x значение 7:

x:=7;

Присваиваем переменной s значение 0:

s:=0;

Объявляем цикл от 1 до 3, который будет каждый раз выполнять команды введённые между begin и end:

for i:=1 to 3 do begin

Присваиваем переменной s значение текущей s + x, то есть просто прибавляем x:

   s:=s+x;

Присваиваем переменной x значение текущей x + 3, то есть просто прибавляем 3:

   x:=x+3;end;

Итак, x изначально равен 7, а s - 0. Потом идёт цикл, в котором к s прибавляется x, после чего к s прибавляется 3. Цикл небольшой, можно и пройтись для наглядности:

i = 1        s := 0 + 7 = 7              x := 7 + 3 = 10i = 2       s := 7 + 10 = 17           x := 10 + 3 = 13i = 3       s := 17 + 13 = 30         x := 13 + 3 = 16

Как мы видим, конечное значение s равно 30.

4,5(49 оценок)
Ответ:
mimidoghoz
mimidoghoz
05.03.2022

2-вариант

1. Опишите понятия оглавление и сноска.

Оглавление Сноска

2. Дополните алгоритм «Вставить гиперссылку».

1) Выделите текст

2) Щелкните правой кнопкой мыши по тексту

3) В выпадающем меню выберите опцию

4)

3. Установите соответствие.

сноска

оглавление

ссылка

название

4. Определите и пронумеруйте очередность создания автооглавления.

диалоговом окне «Оглавление» выберите параметры оглавления и нажмите ОК. Поместите курсор в пустой абзац в том месте, куда нужно вставить оглавление.

меню Вставка выберите пункт «Ссылки», затем — «Оглавление».

5. Объясните понятие «Плагиат».

6. Впиши пропущенные слова:

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

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