Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> алгоритм корректировки числа на СИ 
V
    Опции темы
supercelt
Дата 5.3.2017, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Всем привет!

На СИ под микроконтроллер.

Задача:

есть целое число в 16 разрядной переменной типа uint16_t. Оно равно году = 2317. Год может быть любой из 4 чисел максимум.

Представьте, что это число отобразилось на дисплее, после набора его на клавиатуре. Но юзер ошибся, ведь сейчас 2017. И он нажимает backspace и курсор послушно двигаясь назад выводит на эран 231, потом нажимает ещё и 23, ещё раз и 2. Потом печатает уже 2017. Задача состоит в том, что бы когда юзер нажал первый раз на стирание, то в переменной бы стало 2310, ещё нажал -  2300, ещё - 2000, и наконец - 0. Задача скорее математическая. И надо учесть, что цифры могут быть абсолютно любые, нет привязки к тысячилетию и т.д. И работаем не со строкой, а с числом. Например может быть 5448 год. И тогда получится 5440 - 5400 - 5000 - 0
Помогите пожалуйста придумать как это сделать)
PM   Вверх
vpf
Дата 5.3.2017, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 14.11.2016
Где: Moscow

Репутация: нет
Всего: нет



Код

        int year = 2317;
        print("Скорректируйте число > " + year);
        for (int i = 0; i < 4; i++) {
            inkey();
            year /= 10;
            print("Новое значение >" + year);
        }
 //результаты на печать
Скорректируйте число > 2317
<
Новое значение >231
<
Новое значение >23
<
Новое значение >2
<
Новое значение >0

Общий смысл это последовательное деление на 10.
inkey() некая функция ввода с клавиатуры.




Это сообщение отредактировал(а) vpf - 5.3.2017, 18:55
PM MAIL IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
supercelt
Дата 5.3.2017, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



спасибо!
PM   Вверх
supercelt
Дата 5.3.2017, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Код

switch(count_symbol){
                                                                case 3:
                                                                        year = (year / 10) * 10;
                                                                break;
                                                                case 2:
                                                                        year = (year / 100) * 100;
                                                                break;
                                                                case 1:
                                                                        year = (year / 1000) * 1000;
                                                                break;
                                                                case 0:
                                                                        year = 0;
                                                                break;
                                                        }


Это сообщение отредактировал(а) supercelt - 5.3.2017, 19:51
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1082 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.