реклама на сайте
подробности

 
 
> Редактирование значения типа float, Как организовать такое?
clpe
сообщение Feb 11 2009, 20:48
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 23-10-08
Из: Набережные Челны
Пользователь №: 41 132



Есть символьный ЖКИ Winstar 20x2, и пять кнопок (вперед, назад, вверх, вниз и ввод) необходимо редактировать значение типа float с двумя знаками после точки. Значение отображается на экране (при нажатии вперед-назад курсор должен перейти на следующее знакоместо числа, а при нажатии на вверх-вниз должен поменять значение цифры. Может кто проделывал уже такое, подскажите пожалуйста. 1111493779.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ARV
сообщение Feb 13 2009, 09:12
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



для редактирования float с заранее известным числом знаков после точки и перед нею, я бы сделал почти так, как предлагал singlskv, только перед началом редактирвоания переводил бы float в целое (для двух знаков после точки - умножением на 100) и редактировал бы именно в целых числах (запрет "переноса разряда" легко и незатратно по памяти реализуется), а точку "пририсовывал" бы только при выводе.
после завершения редактирования деление на 100 (или на что там умножали вначале) - и получите готовое число.

плюсы:
1. функция редактирования любого знака может быть одной для любого разряда: получает "порядок" изменяемого разряда, реализуя контроль и блокировку перехода 9-->10. при этом сама процедура редактирования красиво раскладывается на элементарные действия: выбор разряда - изменение
2. целочисленная арифметика - быстро и экономно
3. не надо делать ресурсоемкие преобразования для вывода float - опять же экономия памяти

минусы:
- назовите сами smile.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 13 2009, 10:52
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(ARV @ Feb 13 2009, 11:12) *
минусы:
- назовите сами smile.gif
Сам так делал, еще на асме и на 74 пике smile.gif У меня была структура "параметры редактирования", которая включала в себя:
- количество знакомест при редактировании
- количество знаков после запятой (если 0 - точка не выводится)
- знаковое/беззнаковое число
- минимальное и максимальное допустимое значение. Если при сохранении число выходит за диапазон - сохранение не происходит, выдается злобный сигнал, число заменяется максимумом или минимумом, пользователю предлагается продолжить редактирование.

Функции передавался указатель на число и указатель на такую структуру. Таким образом одна процедура использовалась для редактирования самых разнообразных параметров. Недостаток только один - этот метод не подходит, если положение точки не фиксировано. 


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- clpe   Редактирование значения типа float   Feb 11 2009, 20:48
- - Alex11   А в чем проблема? Чтобы все не сбивалось на экране...   Feb 11 2009, 20:54
|- - clpe   Цитата(Alex11 @ Feb 11 2009, 23:54) А в ч...   Feb 11 2009, 21:00
|- - Methane   Цитата(clpe @ Feb 11 2009, 23:00) а алгор...   Feb 11 2009, 21:24
|- - clpe   Цитата(Methane @ Feb 12 2009, 00:24) Я де...   Feb 11 2009, 21:26
|- - Methane   Цитата(clpe @ Feb 11 2009, 23:26) Ага при...   Feb 11 2009, 21:28
|- - nl5   Цитата(Methane @ Feb 11 2009, 14:28) Так ...   Feb 11 2009, 21:34
|- - clpe   Цитата(nl5 @ Feb 12 2009, 00:34) Иногда д...   Feb 11 2009, 21:39
||- - demiurg_spb   Преобразуйте число в строку функцией ftoa или snpr...   Feb 11 2009, 22:19
||- - clpe   Цитата(demiurg_spb @ Feb 12 2009, 01:19) ...   Feb 11 2009, 22:27
|||- - demiurg_spb   Цитата(clpe @ Feb 12 2009, 01:27) В редак...   Feb 11 2009, 22:32
||||- - clpe   Цитата(demiurg_spb @ Feb 12 2009, 01:32) ...   Feb 11 2009, 22:34
||||- - MrYuran   Цитата(clpe @ Feb 12 2009, 01:34) Просто ...   Feb 12 2009, 05:14
|||- - rezident   Цитата(clpe @ Feb 12 2009, 03:27) В редак...   Feb 12 2009, 00:17
|||- - clpe   Цитата(rezident @ Feb 12 2009, 03:17) При...   Feb 12 2009, 10:37
|||- - _Pasha   Цитата(clpe @ Feb 12 2009, 13:37) "П...   Feb 12 2009, 10:50
|||- - clpe   Цитата(_Pasha @ Feb 12 2009, 13:50) В пре...   Feb 12 2009, 10:56
||- - singlskv   Цитата(demiurg_spb @ Feb 12 2009, 01:19) ...   Feb 12 2009, 21:33
||- - SysRq   Цитата(singlskv @ Feb 13 2009, 00:33) Код...   Feb 12 2009, 23:38
||- - _Pasha   Цитата(singlskv @ Feb 13 2009, 01:33) Это...   Feb 13 2009, 07:12
|||- - singlskv   Цитата(_Pasha @ Feb 13 2009, 10:12) Там г...   Feb 13 2009, 07:32
|||- - _Pasha   Цитата(singlskv @ Feb 13 2009, 11:32) Ну ...   Feb 13 2009, 07:53
|||- - singlskv   Цитата(_Pasha @ Feb 13 2009, 10:53) В общ...   Feb 13 2009, 08:03
||- - demiurg_spb   Цитата(singlskv @ Feb 13 2009, 00:33) ИМХ...   Feb 13 2009, 08:37
||- - singlskv   Цитата(demiurg_spb @ Feb 13 2009, 11:37) ...   Feb 13 2009, 08:41
||- - demiurg_spb   Цитата(singlskv @ Feb 13 2009, 11:41) А к...   Feb 13 2009, 11:57
||- - singlskv   Цитата(demiurg_spb @ Feb 13 2009, 14:57) ...   Feb 13 2009, 16:28
||- - ARV   Цитата(singlskv @ Feb 13 2009, 19:28) Ну ...   Feb 13 2009, 16:58
||- - singlskv   Цитата(ARV @ Feb 13 2009, 19:58) это непр...   Feb 13 2009, 17:52
|- - Methane   Цитата(nl5 @ Feb 11 2009, 23:34) ...и тем...   Feb 11 2009, 23:34
- - Dog Pawlowa   Цитата(clpe @ Feb 11 2009, 23:48) необход...   Feb 13 2009, 07:32
|- - MrYuran   Цитата(Dog Pawlowa @ Feb 13 2009, 10:32) ...   Feb 13 2009, 07:40
|- - singlskv   Цитата(Dog Pawlowa @ Feb 13 2009, 10:32) ...   Feb 13 2009, 07:47
|- - _Pasha   Цитата(ARV @ Feb 13 2009, 13:12) минусы: ...   Feb 13 2009, 09:21
|- - _Pasha   Цитата(Сергей Борщ @ Feb 13 2009, 14:52) ...   Feb 13 2009, 11:42
- - _Pasha   А чтоб не спорить, должно быть правило: система па...   Feb 13 2009, 17:58
- - singlskv   Цитата(_Pasha @ Feb 13 2009, 20:58) А что...   Feb 13 2009, 18:13
- - _Pasha   Цитата(singlskv @ Feb 13 2009, 21:13) Ok,...   Feb 13 2009, 18:21
- - singlskv   Цитата(_Pasha @ Feb 13 2009, 21:21) В так...   Feb 13 2009, 18:30
- - _Pasha   Цитата(singlskv @ Feb 13 2009, 21:30) пол...   Feb 13 2009, 18:39
- - singlskv   Цитата(_Pasha @ Feb 13 2009, 21:39) Отред...   Feb 13 2009, 18:53
- - ARV   Цитата(_Pasha @ Feb 13 2009, 21:39) Отред...   Feb 13 2009, 18:54
- - clpe   Цитата(ARV @ Feb 13 2009, 21:54) +5! ...   Feb 13 2009, 22:00


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 02:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.03793 секунд с 7
ELECTRONIX ©2004-2016