Форум программистов, компьютерный форум, киберфорум
Наши страницы
Электроника и радиотехника
Войти
Регистрация
Восстановить пароль
 
TomkDoubti
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 17
#1

Консоль - Электроника

09.04.2015, 22:45. Просмотров 5050. Ответов 6
Метки нет (Все метки)

Вот я загорелся желанием сделать калькулятор с парсером формул (и если получится с калькулятором, то и команды добавлю). У меня есть готовый самопальный на C++ Builder 6. Думаю переносить его на МК.

Управление:
Вращение энкодера - выбор вводимого символа;
Кнопка нкодера - ввод символа;
Кнопка 1 - ввод;
Вывод информации на ЛСД-дисплей (лол);
Перемещение влева-вправо и удаление слева справа.

Возможности:
Простое выражение: 1-6.7*a-pi
Объявление переменной: a=5-sin(5.2)
Объявление функции: f1(x,y,z)=x*y+y*sin(1-x)+a

Есть некоторые перманентные константы: pi=3.14***; e=2.7***; ...
Есть некоторые перманентные функции: sin(x); pow(x,y); ...
Есть переменные и функции. Их можно объявлять и переобъявлять:
a=3
a=1
Или:
f(x)=2-x
f(x,y,z,s)=x+y+z+s*x

Кстати! Можно и команды вводить. А там уже простору море.

Пример команды (из программы)

~DeletePoint(n2)

//----------------------------------------------------------------------

Класс AnsyString я еще как нибудь заменю ...

Вот такой код не работает:

Код
struct Lixime
{
Lixime* next;
uint32_t n;
}
Keil ругается на строчку:

Код
Lixime* next;
//----------------------------------------------------------------------

Структуры консоли в C++ Builder 6:

Код
struct Consol_Variable
{
Consol_Variable* next;
Consol_Variable* prev;
double value;
AnsiString name;
bool type;
};
struct Consol_Action
{
Consol_Action* next;
Consol_Action* prev;
AnsiString name;
int ntype;
int n;
Consol_Variable** Variables;
Consol_Variable* Risult;
};
struct Consol_Lixime
{
Consol_Lixime* next;
Consol_Lixime* prev;
AnsiString text;
double value;
int type;
Consol_Action* Actions;
Consol_Variable* Variables;
Consol_Variable* Risult;
};
struct Consol_Function
{
Consol_Function* next;
Consol_Function* prev;
AnsiString name;
int ntype;
bool type;
Consol_Action* Actions;
Consol_Variable* Variables;
int nVar;
};
struct Consol_Error
{
Consol_Error* next;
AnsiString Text;
int N;
};
struct Consol_Consol
{
double Risult;
AnsiString ConsolText;
Consol_Lixime* Liximes;
Consol_Lixime* LeftPart;
int TypeExpression;
int numSumbols;
bool CheckRisult;
int NEqual;
int NTilde;
int NOpen;
int NClose;
Consol_Variable* Variables;
Consol_Function* Functions;
int Post;
Consol_Error* Errors;
};
Consol_Variable *Variable_a;
Consol_Function *Function_a;
Consol_Lixime *Consol_lexa;
Consol_Error *Consol_Erra;
Consol_Consol *Consol_Main;
Как то так.
http://www.cyberforum.ru/electronics/thread2105947.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2015, 22:45
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Консоль (Электроника ):

PinBoard II и консоль Seagate
Здравствуйте! Подскажите можно ли использовать PinBoard для подключения...

Передача данных на консоль
Здравствуйте. Я хочу создать вроде бота который будет играть в игры на консоли....

Программа выводит ответ и в консоль и в файл, хотя нужно только в консоль
когда выбираю вывести в консоль, программа выводит ответ и в консоль, и в файл...

Подготовить числа для вывода на консоль через ASCII и вывести на консоль
В регистре eax находится число, которое нужно превратить в ASCII-код и вывести...

Не выводит текст в консоль, открывается пустая консоль без текста
Приложение должно вызывать консоль при выполнении каких то условий. В...

6
dmk793
0 / 0 / 0
Регистрация: 30.01.2010
Сообщений: 123
10.04.2015, 06:34 #2
Вводить формулу с кучей символов энкодером, как мне кажется, будет крайне не удобно.

Наверное все-же надо писать так:
Код
struct Lixime
{
struct Lixime* next;
uint32_t n;
}
А вообще, в качестве калькулятора с редактором формул прекрасно подходят интепретируемые языки, такие как Lua, Tcl, Perl, .... Все эти языки кросплатформенные.
Конкретно Lua неплохо помещается и работает на МК. У меня получалось запускать Lua 5.3.0 на lpc1768. Оперативной памяти для больших задач конечно впритык, но для формул хватит с лихвой :)
На МК с внешней памятью Lua чувствтует себя совсем хорошо :)
0
TomkDoubti
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 17
10.04.2015, 10:46 #3
Ого, спасибо! Я видать уже слишком сильно испортился билдером.

Дело в том, что алгоритм есть уже ... он работает - проверено. Хотя что вспоминать Си, что изучать Луа ...
0
TomkDoubti
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 17
10.04.2015, 14:04 #4
Кто работал с функцией malloc или calloc и free? Есть у кого нибудь исходник переделанной стандартной библиотеки под STM32?
0
HotD
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
10.04.2015, 14:52 #5
пытались на 103. Глюков много было, так до конца и не допилили. Решили что ни к чему эти динамические выделения памяти, обычно заранее известно что и в каком объеме надо хранить.
0
TomkDoubti
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 17
10.04.2015, 20:30 #6
Пичаль 80 лвла ...
0
TomkDoubti
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 17
12.04.2015, 19:29 #7
Тогда можно заранее выделить память под структуры ... и по ходу работу программы заполнять массивы.
0
12.04.2015, 19:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2015, 19:29
Привет! Вот еще темы с решениями:

Ввести в консоль строку, программа должна вывести в консоль слова из этого предложения в столбик
Доброго времени суток! Задание: нужно ввести в консоль строку, а программа...

Консоль и Qt. Возможность работать как через консоль так и через графический интерфейс
Может кто-то знает... Как в одном и том же приложении совместить возможность...

Консоль
Подскажите пожалуйста,не могу включить консоль в играх,обычно это буква ё,а что...

Консоль
Здравствуйте!!!Не знала в какую тему разместить данное задание.Нужна...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru