Любые вопросы от ПРОФИ к СУПЕРПРОФИ - 1. - страница 24

 
   if (h>0) s=1; if (h<0) s=-1;
   Comment(" цена впадины ZZ = ",LouZZ);
   R1 = LouZZ+s*(5*pips);   R2 = LouZZ+s*(18*pips);   R3 = LouZZ+s*(39*pips);
   R4 = LouZZ+s*(68*pips);  R5 = LouZZ+s*(105*pips);  R6 = LouZZ+s*(150*pips);   
   R7 = LouZZ+s*(203*pips); R8 = LouZZ+s*(264*pips);  R9 = LouZZ+s*(333*pips);    
   
   S1 = LouZZ+s*(1*pips);   S2 = LouZZ+s*(10*pips);   S3 = LouZZ+s*(27*pips);
   S4 = LouZZ+s*(52*pips);  S5 = LouZZ+s*(85*pips);   S6 = LouZZ+s*(126*pips);   
   S7 = LouZZ+s*(175*pips); S8 = LouZZ+s*(232*pips);  S9 = LouZZ+s*(297*pips);    
 
sergeev:

спасибо я чето ступил))))+- дает минус надо пойти)))))))))

век учись век живи дураком помрешь))))) работает, спасибо Алексей за напоминание школьной программы...

   if(h<l){s=1; Comment(" цена впадины ZZ = ",LouZZ);}else{s=-1;Comment(" цена вершины ZZ = ",LouZZ);}

   R1 = LouZZ+s*(5*pips);   R2 = LouZZ+s*(18*pips);   R3 = LouZZ+s*(39*pips);
   R4 = LouZZ+s*(68*pips);  R5 = LouZZ+s*(105*pips);  R6 = LouZZ+s*(150*pips);   
   R7 = LouZZ+s*(203*pips); R8 = LouZZ+s*(264*pips);  R9 = LouZZ+s*(333*pips);    
   
   S1 = LouZZ+s*(1*pips);   S2 = LouZZ+s*(10*pips);   S3 = LouZZ+s*(27*pips);
   S4 = LouZZ+s*(52*pips);  S5 = LouZZ+s*(85*pips);   S6 = LouZZ+s*(126*pips);   
   S7 = LouZZ+s*(175*pips); S8 = LouZZ+s*(232*pips);  S9 = LouZZ+s*(297*pips);  
 

посоветуйте как закодировать матрицу в которой поля могут принимать одно из значений множества {-1,0,1,2,3,4} (всего пять состояний), хотелось бы иметь некую функцию которая могла бы матрицу вида:

| -1,0,1,2,3,4, -1,0,1,2,3,4 |
| -1,0,1,2,3,4, -1,0,1,2,3,4 |
| -1,0,1,2,3,4, -1,0,1,2,3,4 |
| -1,0,1,2,3,4, -1,0,1,2,3,4 |
| -1,0,1,2,3,4, -1,0,1,2,3,4 |
| -1,0,1,2,3,4, -1,0,1,2,3,4 |

сохранить в несколько целых чисел: int arr[6] = {xxxx,xxxx,xxxx,xxxx,xxxx,xxxx}, с наименьшими вычислительными затратами

спс

 
пример ваших матриц покажите.
 
sergeev:
пример ваших матриц покажите.


| 4,4,1,2,1,1, 1,1,1,1,1,1 |
| 4,4,1,2,1,1, 1,1,1,1,1,1 |
| 4,4,4,2,1,1, 1,1,1,1,1,1 |
| 4,3,3,3,3,3, -1,-1,-1,-1,-1,-1 |
| 3,3,3,3,3,3, -1,-1,-1,-1,-1,-1|
| 3,3,3,3,3,3, -1,-1,-1,-1,-1,-1|

следующая:

| 4,4,1,2,2,2, 1,1,1,1,1,1 |
| 4,4,1,2,2,2, 1,1,1,1,1,-1 |
| 3,4,4,2,2,2, 1,1,1,1,1,-1 |
| 4,3,3,3,3,3, 1,1,1,-1,-1,-1 |
| 3,3,3,3,3,3, -1,-1,-1,-1,-1,-1|
| 3,3,3,3,3,3, -1,-1,-1,-1,-1,-1|

хочу компактно хранить данные - одна строка одно целое число

 
IgorM:

посоветуйте как закодировать матрицу в которой поля могут принимать одно из значений множества {-1,0,1,2,3,4} (всего пять состояний),


Сдвинуть в положительную область на 2 единицы, чтобы убрать 0 и -1 (с последующим восстановлением после считывания) и можно легко формировать целое число.
 
granit77:
Сдвинуть в положительную область на 2 единицы, чтобы убрать 0 и -1 (с последующим восстановлением после считывания) и можно легко формировать целое число.


ну пусть множество будет {0,1,2,3,4,5} - это не важно, важно из этой группы цифр получать целое число, если на данном этапе у меня матрица 12х6, то можно чтонить получить в виде:

| 4,4,1,2,1,1, 1,1,1,1,1,1 | = 2147483647 - 441211111111/2

вроде должно вместиться в int, но не знаю, а вдруг захочется матрицу 100x6 ;)

ЗЫ:из хэлпа: Внутреннее представление int - длинное целое число размером 4 байта. Целые константы могут принимать значения от -2147483648 до 2147483647. Если константа превышает указанный диапазон, то результат не определен.

 
Ну, у тебя еще строковые переменные в запасе, хотя и помедленнее будет. Но 0 и -1 надо убирать непременно.
 
granit77:
Ну, у тебя еще строковые переменные в запасе, хотя и помедленнее будет. Но 0 и -1 надо убирать непременно.
ДА! пока есть только строковые пременные - сам алгоритм пока на "бумаге", готовлю данные для выгрузки в файл, но потом необходимо будет анализировать данные, а вот тут то и нужна скорость, пока думаю как бы выгружать в int а не в stringи
 

Обычно СУБД хранят данные о группе в виде строки. Скорость обработки при больших объемах - мама, не горюй. Не следил, что произошло с СУБД Clarion, посмотрите,- там совместимость с С была на высшем уровне.

Причина обращения: