Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
18 / 18 / 15
Регистрация: 27.11.2013
Сообщений: 470

Проверить корректность 16-ричной системе в edit

25.04.2017, 02:14. Показов 1948. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Повесил у edit обработчик события keypress, в котором проверяется соответствие вводимых символов 2, 8, 10 и 16 системам счисления.
Сделал это следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//Проверка на вводимые символы для двоичной системы
    if (RadioGroup2->ItemIndex==0 && RadioGroup1->ItemIndex == 0) {
        if(!((Key >= '0' && Key <= '1') || Key == VK_BACK))
        {
            Key = 0x00;
            ShowMessage("В двоичной системе счисления нельзя указывать другие цифры, кроме 0 и 1");
        }
    }
    //Проверка на вводимые символы для 8-ричной
    if (RadioGroup2->ItemIndex==0 && RadioGroup1->ItemIndex == 1) {
        if(!((Key >= '0' && Key <= '7') || Key == VK_BACK))
        {
            Key = 0x00;
            ShowMessage("В восьмеричной системе счисления можно указывать только цифры от 0 до 7");
        }
    }
 
    //Проверка на вводимые символы для 10-ричной
    if (RadioGroup2->ItemIndex==0 && RadioGroup1->ItemIndex == 2) {
        if(!((Key >= '0' && Key <= '9') || Key == VK_BACK))
        {
            Key = 0x00;
            ShowMessage("В десятичной системе счисления можно указывать только цифры от 0 до 9");
        }
    }
Но, как вы видите, для 16-ричной я так ничего и не придумал. Кто-нибудь может подсказать как реализовать проверку ввода символов для этой системы счисления?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.04.2017, 02:14
Ответы с готовыми решениями:

Проверить корректность введения дробного числа в Edit
Здравствуйте. Нужно проверить корректность введённого пользователем в Edit дробного числа. Например, если пользователь вводит в Edit...

сделать сложения двух чисел (одно в троичной системе второе в 8-ричной) и вывести результат в 8-ричной
Привет всем, сегодня столкнулся с такой вот задачей, нужно сделать сложения двух чисел (одно в троичной системе второе в 8-ричной) и...

Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления
На вычислительной практике дали такое задание: С клавиатуры вводятся 2 положительных целых числа: число A (в системе счисления с...

10
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
25.04.2017, 07:36
FaNaT_96,
разбиваешь число на 9 и остаток прим 13 = 9 , 4
потом уже сравнение
0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
25.04.2017, 10:24
C++
1
if(!((Key >= '0' && Key <= '9') || (Key >= 'A' && Key <= 'F') || (Key >= 'a' && Key <= 'f') Key == VK_BACK))
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
25.04.2017, 10:51
isxdigit же для лентяев, правда? Мы будем все вручную прописывать...
2
 Аватар для GoldenId
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 877
Записей в блоге: 10
25.04.2017, 10:55
volvo, вот скажите, как можно знать весь C++ reference?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
25.04.2017, 10:59
А не надо его знать весь. Нужно просто знать, для чего предназначен тот или иной заголовочный файл, а там уже в списке функций/макросов находить нужное. Неужели кто-то еще думает, что в C++ (а тем более в библиотеках Билдера) чего-то не хватает, и нужно писать вручную такие трехэтажные конструкции?
3
18 / 18 / 15
Регистрация: 27.11.2013
Сообщений: 470
25.04.2017, 12:02  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Нужно просто знать, для чего предназначен тот или иной заголовочный файл
Спасибо, Ваш способ подошел.
И раз уж тема зашла о готовых функциях, то, думаю, стоит спросить: есть ли в C++ что-нибудь, позволяющее складывать, умножать или вычитать числа не только в 10-ой системе?
Потому что я опять собираюсь "изобрести колесо" примерно следующим алгоритмом:
- выбрать систему счисления, в которой будет произведено действие;
- ввести два числа;
- перевести их в 10-ю систему счисления;
- выполнить выбранную операцию (+, - или *);
- полученное число вернуть в исходную систему счисления.
0
 Аватар для GoldenId
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 877
Записей в блоге: 10
25.04.2017, 12:09
FaNaT_96, strtol:
base
Numerical base (radix) that determines the valid characters and their interpretation.
If this is 0, the base used is determined by the format in the sequence (see above).
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
25.04.2017, 12:09
есть ли в C++ что-нибудь, позволяющее складывать, умножать или вычитать числа не только в 10-ой системе?
Нет, потому что это на фиг никому не нужно. Компьютер все равно работает только в двоичной системе счисления.

Почитай здесь: Арифметические операции в позиционных системах счисления и реализуй самостоятельно, ничего сложного.
0
25.04.2017, 12:15

Не по теме:

volvo, спасибо, Ваш совет работает

0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
25.04.2017, 18:16
Перевод числа из одной системы счисления (СС) в другую
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.04.2017, 18:16
Помогаю со студенческими работами здесь

Выписать алфавиты 2-ичной, 5-ричной, 8-ричной, 16-ричной систем счисления
Выписать алфавиты 2-ичной, 5-ричной, 8-ричной, 16-ричной систем счисления.

Калькулятор в 16-ричной системе счисления
Мне очень нужен калькулятор в дельфи,который складывает,вычитает, умножает числа в 16-тиричной системе счисления. Пожалуйста!!!!

Сравнение чисел в 16-ричной системе
Программа работает не правильно(например для чисел 12 и 13 или 122 и 123, ответ получается,что числа ровны, так как последний цикл...

Вывод отсортированного массива в 16-ричной системе
есть массив заполненный делаю sort ....и хочу чтобы вывод был в 16-ричной системе,не получается((( sort(arr.begin(), arr.end()); p =...

Вывести число в 16-ричной системе счисления
Напишите процедуру, которая выводит на экран запись числа, меньшего, чем 164 = 65 536, в виде 4 знаков в 16-ричной системе счисления.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru