FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Пятница, 09.12.2016, 12:39
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: support, Сергей 
Форум » Новый функционал » Новые » Даешь атомарность в условных операциях (фичереквест)
Даешь атомарность в условных операциях
SirYorik
Дата: Понедельник, 07.03.2016, 14:57 | Сообщение # 1
Лейтенант
Группа: Проверенные
Сообщений: 119
Награды: 2
Репутация: 0
Статус: Offline
такая конструкция


приводит вот к такому коду

Код
if ((_gtv2) == (777)) {
_gtv4 = 1;
}
if ((_gtv2) == (777)) {
_gtv5 = 3;
}
if ((_gtv2) == (777)) {
_gtv6 = 2;
}


а очень хотелось бы такой:


Код
if ((_gtv2) == (777)) {
_gtv4 = 1;
_gtv5 = 3;
_gtv6 = 2;
}
Прикрепления: 1397247.jpg(15Kb)
 
dekorator Дата: Вторник, 08.03.2016, 23:29 | Сообщение # 2
Подполковник
Группа: Проверенные
Сообщений: 219
Награды: 10
Репутация: 1
Статус: Offline
В чем подвох? Компактность кода?
 
krom23 Дата: Четверг, 10.03.2016, 00:08 | Сообщение # 3
Майор
Группа: Проверенные
Сообщений: 178
Награды: 1
Репутация: 0
Статус: Offline
А не по балабэске как это будет выглядеть на С, главное чтоб контроллер делал то что от него хотим. Может я что-то недопонимаю, поясните?
 
dekorator Дата: Четверг, 10.03.2016, 00:17 | Сообщение # 4
Подполковник
Группа: Проверенные
Сообщений: 219
Награды: 10
Репутация: 1
Статус: Offline
Если от этого не страдает быстродействие и размер кода, то думаю без разницы. А если наоборот то надо исправлять.
 
krom23 Дата: Четверг, 10.03.2016, 01:02 | Сообщение # 5
Майор
Группа: Проверенные
Сообщений: 178
Награды: 1
Репутация: 0
Статус: Offline
Цитата dekorator ()
Если от этого не страдает быстродействие и размер кода, то думаю без разницы. А если наоборот то надо исправлять.
Я думаю что то, что мы видим в С проходя компилятор имеет совсем другой вид, главное что бы компилятор правильно интерпретировал эти бессмысленные закорючки, чёрточки и буковки biggrin .
 
dekorator Дата: Четверг, 10.03.2016, 01:25 | Сообщение # 6
Подполковник
Группа: Проверенные
Сообщений: 219
Награды: 10
Репутация: 1
Статус: Offline
Цитата krom23 ()
Я думаю что то, что мы видим в С проходя компилятор имеет совсем другой вид
Абсолютно с Вами согласен. Но этот как Вы выразились " другой вид " в итоге имеет конечный размер и занимает место которое не безгранично. Под выражением " правильно интерпретировал " Вы конечно имели виду искусственный интеллект встроенный в компилятор, который правит чёрточки и буковки и не обращает внимания на то как пишется код? biggrin
До чего дошел прогресс!!! surprised
 
krom23 Дата: Четверг, 10.03.2016, 01:44 | Сообщение # 7
Майор
Группа: Проверенные
Сообщений: 178
Награды: 1
Репутация: 0
Статус: Offline
Цитата dekorator ()
Вы конечно имели виду искусственный интеллект встроенный в компилятор, который правит чёрточки и буковки и не обращает внимания на то как пишется код?

Ага crazy !
 
dekorator Дата: Четверг, 10.03.2016, 02:09 | Сообщение # 8
Подполковник
Группа: Проверенные
Сообщений: 219
Награды: 10
Репутация: 1
Статус: Offline
Прошу, только не говорите никому. А то ведь как начнут писать.
Что будет..... facepalm
 
SirYorik Дата: Четверг, 10.03.2016, 07:23 | Сообщение # 9
Лейтенант
Группа: Проверенные
Сообщений: 119
Награды: 2
Репутация: 0
Статус: Offline
Цитата krom23 ()
что мы видим в С проходя компилятор имеет совсем другой вид,

- а если будет не А Б и Ц а 8-10 изменяемых параметров ?
- а если хоть один из параметров фигурирует в "некое условие" с алгоритмом случится плохое
- само условие может быть очень длинным, на полкилометра за пределы экрана, и эта строка будет вычисляться каждый раз

простенький пример




Сообщение отредактировал SirYorik - Четверг, 10.03.2016, 08:37
 
krom23 Дата: Четверг, 10.03.2016, 22:15 | Сообщение # 10
Майор
Группа: Проверенные
Сообщений: 178
Награды: 1
Репутация: 0
Статус: Offline
Цитата SirYorik ()
простенький пример
Вы раскрыли мне глаза! Поддерживаю предложение.
 
dekorator Дата: Четверг, 10.03.2016, 23:45 | Сообщение # 11
Подполковник
Группа: Проверенные
Сообщений: 219
Награды: 10
Репутация: 1
Статус: Offline
Урааа. Уверен, теперь всё будет хорошо!!
 
support Дата: Пятница, 11.03.2016, 00:43 | Сообщение # 12
Автор программы
Группа: Администраторы
Сообщений: 579
Награды: 31
Репутация: 21
Статус: Offline
Вы хотите аттомарности, так сделайте её.
Возмём Ваш первый пример:

смотрим код

Код
if ((_gtv1) == (777)) {
_gtv2 = 1;
}
if ((_gtv1) == (777)) {
_gtv3 = 2;
}
if ((_gtv1) == (777)) {
_gtv4 = 3;
}


Немного модернизируем.

Смотрим код.

Код
_gtv5 = (_gtv1) == (777);
if (_gtv5) {
_gtv2 = 1;
}
if (_gtv5) {
_gtv3 = 2;
}
if (_gtv5) {
_gtv4 = 3;
}

 Вроде то что Вы хотели.
Для того что бы это реализовать автоматически, мне придётся создавать переменные для всех логических элементов и, блоков сравнения и математики. Мне кажется это не очень хорошо. Зачем тратить лишнюю память. Просто когда Вы делаете какие - то сложные расчеты, или много логики и потом используете их в нескольких местах - применяйте промежуточные переменные при завершении расчётов. А уже  потом используйте эти переменные  в нескольких местах. Мне кажется такой вариант экономичнее


Разработчик программы FLProg
 
dekorator Дата: Пятница, 11.03.2016, 01:11 | Сообщение # 13
Подполковник
Группа: Проверенные
Сообщений: 219
Награды: 10
Репутация: 1
Статус: Offline
В итоге два лишних оператора - if . Почти получилось.
 
support Дата: Пятница, 11.03.2016, 01:13 | Сообщение # 14
Автор программы
Группа: Администраторы
Сообщений: 579
Награды: 31
Репутация: 21
Статус: Offline
Идеала в реальной жизни не бывает prof

Разработчик программы FLProg
 
dekorator Дата: Пятница, 11.03.2016, 01:19 | Сообщение # 15
Подполковник
Группа: Проверенные
Сообщений: 219
Награды: 10
Репутация: 1
Статус: Offline
Согласен на все 100!
Думаю лучше не трогать то что уже работает.
 
Форум » Новый функционал » Новые » Даешь атомарность в условных операциях (фичереквест)
Страница 1 из 212»
Поиск:

FLProg © 2016
Яндекс.Метрика