Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.64
Carpe-diem
1 / 1 / 0
Регистрация: 11.10.2014
Сообщений: 57
#1

Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? - Программирование Android

13.12.2014, 05:27. Просмотров 4821. Ответов 92
Метки нет (Все метки)

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

Можно ли написать такое приложение для Андроид на С# или С++? И если да, то на чем лучше писать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2014, 05:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? (Программирование Android):

Какое приложение можно написать для диплома по ос Андроид? - Программирование Android
У меня тема диплома - "Программирование для ОС Android". Какой проект можете посоветовать для написания в рамках этой темы?

Можно ли написать веб сервер на Яве для клиента на Андроид,имея под рукой только телефон на том самом андроид? - Программирование Android
Уважаемые гуру программирования, если можно, пожалуйста, напишите поподробнее- какой программой компилировать код, какой лучше выбрать...

на чем лучше писать динамичное приложение для браузера - JavaScript
К примеру нужно разработать игру по типу tower defence для браузера, на каком языке ее лучше писать? Серверная часть я думаю php+mysql (...

Как лучше учиться: писать консольные приложения или оконные? И если писать оконные, то на чём лучше? - C++
На днях я узнал про Borland c++ builder и хочу воспользоваться им, но можно и писать код, что-бы было оконное приложение, так что-же лучше?...

На чем лучше написать приложение для работы с микроконтроллерами? - Программирование
Не так давно стал программистом микроконтроллеров. Кодю на заточенный под контроллер basic и немного работаю c HTML и javascript для...

"Система регистрации заявок для ИТ отдела", на чем лучше писать: php или Java? - PHP
Cистема регистрации и мониторинга заявок для ИТ отдела, на чем лучше писать: php или Java? P.S. Это тема моей дипломной работы!))

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Fulcrum_013
664 / 732 / 72
Регистрация: 14.12.2014
Сообщений: 5,701
Завершенные тесты: 3
14.12.2014, 15:36 #16
Цитата Сообщение от Zuzik Посмотреть сообщение
Ок, если ваши слова правда, тогда зачем писать более тормознутые вещи на плюсах под андроид???
Плюсы под андроид рекомендованы тока для уровня ниже API - т.е. дров ну и самой ява-машины и т.д.
Zuzik
237 / 222 / 38
Регистрация: 11.06.2012
Сообщений: 1,444
14.12.2014, 15:47 #17
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Плюсы под андроид рекомендованы тока для уровня ниже API - т.е. дров ну и самой ява-машины и т.д.
Т.е. при написании этих вещей по вашим словам код на плюсах возможно будет преобразовываться в код на жаве?
Fulcrum_013
664 / 732 / 72
Регистрация: 14.12.2014
Сообщений: 5,701
Завершенные тесты: 3
14.12.2014, 15:49 #18
Цитата Сообщение от Zuzik Посмотреть сообщение
которых найти и обучить тяжелее
прикладное прогаммирование на яве почти ничем от плюсов не отличается, разве что за удалением динамически распределенных объектов следит сборщик мусора что не всегда проще чем написать SafeDelete(Ptr). Java Script в котором нет типизации вообще песня отдельная и частенько геморойней плюсов и к Android вообще относится тем же боком как и к любой операционке. А вот для писания дров которые на С++ и либов типа GL и т.п. - дык тут не в языке дело а в знании математики и мышлении регистрами проца/девайса. Реально - я когда в АСУ ТП работать пришел, понял что универ и опыт создания прикладного софта не более чем ликбез.

Добавлено через 1 минуту
Цитата Сообщение от Zuzik Посмотреть сообщение
код на плюсах возможно будет преобразовываться в код на жаве
Как минимум он будет вызывать Java-код API.
Zuzik
237 / 222 / 38
Регистрация: 11.06.2012
Сообщений: 1,444
14.12.2014, 15:54 #19
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Java Script в котором нет типизации вообще песня отдельная и частенько геморойней плюсов и к Android вообще относится тем же боком как и к любой операционке.
Я про яваскрипт ничего не говорил. Про то что он геморнее плюсов - хз, я бы так не сказал, но не будем отходить от темы.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А вот для писания дров которые на С++ и либов типа GL и т.п. - дык тут не в языке дело а в знании математики и мышлении регистрами проца/девайса.
Знания языка тоже немаловажная вещь в этой области.
Fulcrum_013
664 / 732 / 72
Регистрация: 14.12.2014
Сообщений: 5,701
Завершенные тесты: 3
14.12.2014, 16:08 #20
Ну а по поводу разницы в синтаксисе языков: определите не каком языке фрагметы кода:
1.
Код
int i = 1;
i = i++ + (( i > 2 )? i++: (i++ * i++)) + i++ ;
System.out.println(i);
i = 2;
i = i++ + (( i > 2 )? i++: (i++ * i++)) + i++ ;
System.out.println(i);
2.
Код
#define T TMatrix
UMp(Minus) RSij -m1ij Ok
UMp(Transpose) RSij m1ji Ok
UMp(identity) RSij i==j  Ok
MMp(Mul) M(i,j) Zero(Rij) MS(Rij,k) m1ik*m2ki Okeey
MMp(Add) RSij m1ij+m2ij Ok
MMp(Sub) RSij m1ij-m2ij Ok
MMLp(Equal) M(i,j) Test m1ij!=m2ij Okey Ok OKEY
MMLp(NotEqual) Test Equal(m1,m2) Okey  OKEY
//matrix-scalar operations
MSp(Mul) RSij m1ij*s Ok
MSp(Div) RSij m1ij/s Ok
//matrix-vector operations
MVp(Mul) MR(i) Zero(Ri) MS(Ri,j) v1i*m1ij Okeey
//determinant
MpS(abs) T(R) MR(i) P(pp) P(pn) MR(j) Wp(k,pp) Wn(n,pn) ok RS pp-pn Ok OKey(R)
//vector operations with scalar result
VVpS(Dot)  T(R) S(R) v1[i]*v2[i] OK R Ok      //Dot product
VVpS(Hatch) OK HatchZ(v1,v2) Ok          //Hatch product (applicable for 2D only)
VpS(Pow2) T(R) VS(R) v1[i]*v1[i] OK R Ok       //magnitude*magnitude
VpS(abs)  T(R) VS(R) v1[i]*v1[i] OK sqrt(R) Ok //magnitude
//vector-scalar operations
VSp(Mul) RSi v1i*s Ok
VSp(Div) RSi v1i/s Ok
//vector operations
Vp(Minus) RSi -v1i    Ok            //reverse
Vp(Norm) A(abs(v1)) RSi v1i/A Ok   //identity magnitude vector
Vp(WNorm) RSi v1i/Rw  Ok           //uniform identity magnitude vector
VVp(Add)  RSi v1i+v2i Ok
VVp(Sub)  RSi v1i-v2i Ok
VVp(Cross) Rx HatchX(v1,v2) Ry HatchY(v1,v2) Rz HatchZ(v1,v2) ok
VVLp(Equal) VS(i) Test v1i!=v2i Okey Ok OKEY
VVLp(NotEqual)Test Equal(v1,v2) Okey  OKEY

#define CLS TMatrix
//matrix friend operators
UOp(-,Minus)  //unar minus
UOp(--,Transpose) //transpose
USOp(~,abs)
#define CLS TVector
//vector friend operators
UOp(-,Minus)  //unar minus
USOp(~,abs)// magnitude
BOp(-,Sub) BOp(+,Add) BOp(*,Cross) //Vector-Vector operators
BSOp(*,Mul) BSOp(/,Div) BSOp(*,Mul)   //Vector-Scalar operators
BOpS(%,Dot) BOpS(/,Hatch) BOpS(^,Angle)   //Vector operators with scalar result
BOpC(==,Equal) BOpE(!=,NotEqual)    //Vector Comparion operators
BOpL(>) BOpL(>=) BOpL(<) BOpL(<=)  //Vector magnitude comparion operators
BSOpL(==) BSOpL(!=) BSOpL(>) BSOpL(>=) BSOpL(<) BSOpL(<=)

SVOpL(>) SVOpL(>=) SVOpL(<) SVOpL(<=)  //comparsion operators
Zuzik
237 / 222 / 38
Регистрация: 11.06.2012
Сообщений: 1,444
14.12.2014, 16:12 #21
1 - жава, 2-ой - С/С++ возможно. И там и там крайней извращенный вариант.
Fulcrum_013
664 / 732 / 72
Регистрация: 14.12.2014
Сообщений: 5,701
Завершенные тесты: 3
14.12.2014, 16:22 #22
Цитата Сообщение от Zuzik Посмотреть сообщение
Знания языка тоже немаловажная вещь в этой области.
Ну я ж и говорю - зная C++ ты уже вобщем то знаешь Java и PHP. С той лишь разницей что в плюсах нет удобной конструкции foreach ну это мелочи бо как вариант цикла for.

Добавлено через 7 минут
первый да джава. А второй - точно плюсы в вариации лень набирать дофига текста. после применмения препроцессора
Кликните здесь для просмотра всего текста

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#define decl inline
#define Zero(V)V=0;
#define Za(V) memset(V,0,sizeof(V));
#define A(V) scalar A=V;
#define M(I,J) for (int I = 0; I < MatrixSize; I++)for (int J = 0; J < MatrixSize; J++){
#define RSij for (int i = 0; i < MatrixSize; i++)for (int j = 0; j < MatrixSize; j++)R[i][j]=
#define RSi for (int i = 0; i < DimensionCount; i++) R[i]=
#define VS(V) for (int i = 0; i < DimensionCount; i++) V+=
#define MS(V,N) for (int N = 0; N < MatrixSize; N++) V+=
#define SRi  Ri+=
#define SRij Rij+=
#define m1ij m1[i][j]
#define m1ji m1[i][j]
#define m2ij m2[i][j]
#define m1ik m1[i][j]
#define m2ki m2[i][j]
#define Rij R[i][j]
#define Ri  R[i]
#define Rx  R[0]=
#define Ry  R[1]=
#define Rz  R[2]=
#define Rw  R[3]
#define v1i  v1[i]
#define v2i  v2[i]
#define MR(I) for (int I = 0; I < MatrixSize; I++){
#define V(J) for (int J = 0; J < DimensionCount; J++){
#define UMp(Name) void decl Name(TMatrixData R,TMatrixData m1){
#define MMp(Name) void decl Name(TMatrixData R,TMatrixData m1, TMatrixData m2){
#define MVp(Name) void decl Name(TVectorData R,TVectorData v1, TMatrixData m1){
#define MSp(Name) void decl Name(TMatrixData R,scalar s, TMatrixData m1){
#define VVp(Name) void decl Name(TVectorData R,TVectorData v1, TVectorData v2){
#define Vp(Name) void decl Name(TVectorData R,TVectorData v1){
#define VVpS(Name) scalar decl Name(TVectorData v1, TVectorData v2){
#define VpS(Name) scalar decl Name(TVectorData v1){
#define VSp(Name) void decl Name(TVectorData R, scalar s, TVectorData v1){
#define MpS(Name) scalar decl Name(TMatrixData m1){
#define MMLp(Name) bool decl Name(TMatrixData m1,TMatrixData m2){
#define VVLp(Name) bool decl Name(TVectorData v1,TVectorData v2){
 
#define TV TVector
#define TM TMatrix
#define A1 a1.D
#define A2 a2.D
#define Rt rt.D
 
#define __BODY(Body) { Body
#define UOp(Name,P) CLS decl operator Name(T &a1)__BODY (T rt; P(Rt,A1) OK rt Ok)
#define USOp(Name,P) scalar decl operator Name(CLS &a1)__BODY (OKey (P(A1)))
#define BOp(Name,P) CLS decl operator Name(CLS &a1,CLS &a2)__BODY (CLS rt; P(Rt,A1,A2) OK rt Ok)
#define BDOp(Name,P)CLS decl operator Name(T1 &a1,CLS &a2) __Body (CLS rt; P(Rt,A1,A2) OK rt Ok)
#define DBOp(Name,P)CLS decl operator Name(CLS &a1,CLS &a2) __Body (CLS rt; P(Rt,A1,A2) OK rt Ok)
#define BCOp(Name,P)Type2 decl operator Name(CLS &a1,CLS &a2) __Body (P)
#define BLOp(Name,P)Type2 decl operator Name(CLS &a1,CLS &a2)
 
 
#define HatchX(v1,v2) v1[1]*v2[2]-v1[2]*v2[1];
#define HatchY(v1,v2) v1[2]*v2[0]-v1[0]*v2[2];
#define HatchZ(v1,v2) v1[0]*v2[1]-v1[1]*v2[0];
//positive wrap matrix index
#define Wp(N,v) int N=i+j; N=N<MatrixSize?N:N-MatrixSize; v*=m1[i][N];
//negative wrap matrix index
#define Wn(N,v) int N=i-j; N=N<0?MatrixSize-1+N:N; v*=m1[i][N];
#define Test if(
#define RS R+=
#define T(i) scalar i=0;
#define P(i) scalar i=1;
#define OK ;return
#define ok }
#define Ok ;}
#define Okey )return false
#define OKEY ;return true;}
#define Okeey ;}}
#define Okeeey ;}}}

получаем
Fulcrum_013
664 / 732 / 72
Регистрация: 14.12.2014
Сообщений: 5,701
Завершенные тесты: 3
14.12.2014, 17:01 #23
Кликните здесь для просмотра всего текста

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
void inline Inverse(TMatrixData& R, TMatrixData& m1) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = -m1[i][j];
}
 
 
void inline Transpose(TMatrixData& R, TMatrixData& m1) {
    if (R!=m1){
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = m1[i][j];
    }else{
       for (int i = 0; i < MatrixSize; i++)
        for (int j = i; j < MatrixSize; j++)
            R[i][j] = m1[i][j];
    }
}
 
void inline Identity(TMatrixData& R, TMatrixData& m1) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = i == j;
}
 
 
void inline Mul(TMatrixData& R, TMatrixData& m1, TMatrixData& m2) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++) {
            R[i][j] = 0;
            for (int k = 0; k < MatrixSize; k++)
                R[i][j] += m1[i][k] * m2[k][j];
        }
}
 
void inline Add(TMatrixData& R, TMatrixData& m1, TMatrixData& m2) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = m1[i][j] + m2[i][j];
}
 
void inline Sub(TMatrixData& R, TMatrixData& m1, TMatrixData& m2) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = m1[i][j] - m2[i][j];
}
bool inline Equal(TMatrixData& m1, TMatrixData& m2) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            if (m1[i][j] != m2[i][j]) return false;
    return true;
}
bool inline NotEqual(TMatrixData& m1, TMatrixData& m2) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            if (m1[i][j] != m2[i][j]) return true;
    return false;
}
 
void inline Mul(TMatrixData& R, float s, TMatrixData& m1) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = m1[i][j] * s;
}
void inline Div(TMatrixData& R, float s, TMatrixData& m1) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = m1[i][j] / s;
}
void inline Mul(TVectorData& R, TVectorData& v1, TMatrixData& m1) {
    for (int i = 0; i < MatrixSize; i++) {
        R.D[i] = 0;
        for (int j = 0; j < MatrixSize; j++)
            R.D[i] += v1.D[j] * m1[j][i];
    }
}
float inline Abs(TMatrixData& m1)
{
    scalar R;
    for (int i = 0; i < MatrixSize; i++) {
        float pp = 1;
        float pn = 1;
        for (int j = 0; j < MatrixSize; j++) {
            int k = i + j;
            k = k < MatrixSize ? k : k - MatrixSize;
            pp *= m1[i][k];
            int n = i - j;
            n = n < 0 ? MatrixSize - 1 + n : n;
            pn *= m1[i][n];
        }
        R += pp - pn;
    }
    return R;
}
float inline Dot(TVectorData& v1, TVectorData& v2){
    return v1.x * v2.x+v1.y * v2.y+v1.z * v2.z;
}
float inline Hatch(TVectorData& v1, TVectorData& v2) {;
    return v1.x * v2.y - v1.y * v2.x;
}
float inline Pow2(TVectorData& v1){
    return  v1.x * v1.x+v1.y * v1.y+v1.z * v1.z;
}
float inline Abs(TVectorData& v1){
    return sqrt(v1.x * v1.x+v1.y * v1.y+v1.z * v1.z);
}
 
void inline Mul(TVectorData& R, float s, TVectorData& v1) {
        R.x = v1.x*s; R.y = v1.y*s; R.z = v1.z*s;
}
 
void inline Div(TVectorData& R, float s, TVectorData& v1) {
        R.x = v1.x/s; R.y = v1.y/s; R.z = v1.z/s;
}
 
void inline Inverse(TVectorData& R, TVectorData& v1) {
    for (int i = 0; i < DimensionCount; i++)
        R.D[i] = -v1.D[i];
}
void inline Norm(TVectorData& R, TVectorData& v1) {
    float A = Abs(v1);
    R.x = v1.x / A; R.y = v1.y / A; R.z = v1.z / A; R.w = v1.w / A;
}
void inline WNorm(TVectorData& R, TVectorData v1) {
    if (fabs(v1.w)<1e-15) return;
    R.x = v1.x / v1.w; R.y = v1.y / v1.w; R.z = v1.z / v1.w; R.w = 1;
}
void inline Add(TVectorData& R, TVectorData& v1, TVectorData& v2) {
    R.x = v1.x + v2.x;R.y = v1.y + v2.y;R.z = v1.z + v2.z;
}
void inline Sub(TVectorData& R, TVectorData& v1, TVectorData& v2) {
    R.x = v1.x - v2.x;R.y = v1.y - v2.y;R.z = v1.z - v2.z;
}
void inline Cross(TVectorData& R, TVectorData& v1, TVectorData& v2) {
    R.x = v1.y * v2.z - v1.z * v2.y;
    R.y = v1.z * v2.x - v1.x * v2.z;
    R.z = v1.x * v2.y - v1.y * v2.x;
}
scalar inline Angle(TVectorData& v1, TVectorData& v2) {
       return acos((Dot(v1,v2)/sqrt(Pow2(v1)*Pow2(v2))));}
bool inline Equal(TVectorData v1, TVectorData v2) {
       return v1.x==v2.x&&v1.y==v2.y&&v1.z==v2.z&&v1.w==v2.w;
}
bool inline NotEqual(TVectorData& v1, TVectorData& v2){
     return v1.x!=v2.x||v1.y!=v2.y||v1.z!=v2.z&&v1.w!=v2.w;
}
 
TVector inline __fastcall operator-(TVector &a1, TVector &a2){TVector rt;Sub(rt.D, a1.D, a2.D);return rt;}
TVector inline __fastcall operator +(TVector &a1, TVector &a2){TVector rt;Add(rt.D, a1.D, a2.D);return rt;}
TVector inline __fastcall operator*(TVector &a1, TVector &a2){TVector rt;Cross(rt.D, a1.D, a2.D);return rt;}
TVector inline __fastcall operator /(TVector v1, scalar v2){TVector rt; Div(rt.D, v2, v1.D);return rt;}
TVector inline __fastcall operator*(scalar  v1,TVector &v2){TVector rt; Div(rt.D, v1, v2.D);return rt;}
TVector inline __fastcall operator*(TVector &v1, scalar v2){TVector rt; Mul(rt.D, v2, v1.D);return rt;}
 
 
__fastcall TVector::TVector(){D.x = 0.f;D.y=0.f;D.z=0.f;D.w = 1.f;};
__fastcall TVector::TVector(scalar ax, scalar ay, scalar az = 0){D.x=ax;D.y=ay;D.z=az;D.w = 1;};
__fastcall TVector::TVector(const TVector& V){D.x=V.x;D.y=V.y;D.z=V.z;D.w=V.w;};
float __fastcall TVector::Abs(){return ::Abs(D);};
inline TVector& __fastcall TVector::Normalize(){Norm(D, D);return *this;};
inline TVector& __fastcall TVector::WNormalize(){WNorm(D, D);return *this;};
inline TVector  __fastcall TVector::Normalized(){TVector r;Norm(r.D, D);return r;};
inline TVector  __fastcall TVector::WNormalized(){TVector r;WNorm(r.D, D); return r;};
inline TVector& __fastcall TVector::Inverse(){::Inverse(D, D); return *this;};
inline TVector& __fastcall TVector:: operator=(TVector V){D.x=V.x;D.y=V.y;D.z=V.z;D.w=V.w;return *this;}
inline TVector  __fastcall TVector::operator-(){TVector r;::Inverse(r.D,D);return r;}
 
inline float __fastcall TVector::operator~(){return Abs();}
 
inline TVector& __fastcall TVector::operator+=(TVector& v){Add(D,D,v.D); return *this;}
inline TVector& __fastcall TVector::operator-=(TVector& v){Sub(D,D,v.D);return *this;};
inline TVector& __fastcall TVector::operator*=(TVector& v){Cross(D,D,v.D);return *this;};
 
inline scalar __fastcall TVector::operator%(TVector& v){return Dot(D,v.D);};
inline scalar __fastcall TVector::operator/(TVector& v){return Hatch(D,v.D);};
inline scalar __fastcall TVector::operator^(TVector& v){return Angle(D,v.D);};
inline bool   __fastcall TVector::operator==(TVector& v){return Equal(D,v.D);};
inline bool   __fastcall TVector::operator!=(TVector& v){return NotEqual(D,v.D);};
 
inline TVector& __fastcall TVector::operator *= (scalar s){Mul(D,s,D);return *this;};
inline TVector& __fastcall TVector::operator /= (scalar s){Div(D,s,D);return *this;};
/*inline TVector& __fastcall TVector::operator += (scalar v);
inline TVector& __fastcall TVector::operator -= (scalar v);*/
 
 
inline TVector __fastcall operator * (TMatrix& m,TVector& v){TVector r; Mul(r.D,v.D,m.D); return r;}
inline TVector __fastcall operator * (TVector& v,TMatrix& m){
       TVector r;
       Mul(r.D,v.D,m.D);
       return r;
}
 
inline TMatrix __fastcall operator * (TMatrix& m1,TMatrix& m2){TMatrix r; Mul(r.D,m1.D,m2.D); return r;}
 
__fastcall TMatrix::TMatrix(){memset(D, 0, sizeof(TVectorData));}
__fastcall TMatrix::TMatrix(const TMatrix& m){memcpy(D,m.D,sizeof(TMatrixData));};
inline TMatrix& __fastcall TMatrix::Identity(){::Identity(D, D);return *this;};
inline TMatrix& __fastcall TMatrix::Transpose(){::Transpose(D, D);return *this;};
inline TMatrix& __fastcall TMatrix::operator =  (const TMatrix& m){memcpy(D, m.D, sizeof(TMatrixData));return *this;};
inline bool     __fastcall TMatrix::operator == (TMatrix& m){return Equal(D, m.D);};
inline bool     __fastcall TMatrix::operator != (TMatrix& m){return !Equal(D, m.D);};
inline TMatrix& __fastcall TMatrix::operator *= (float v){Mul(D, v, D);return *this;}
inline TMatrix& __fastcall TMatrix::operator /= (float v){Div(D, v, D);return *this;}
inline TMatrix& __fastcall TMatrix::operator *= (TMatrix& m){Mul(D, D, m.D);return *this;}
inline TMatrix& __fastcall TMatrix::operator += (TMatrix& m){Add(D, D, m.D);return *this;}
inline TMatrix& __fastcall TMatrix::operator -= (TMatrix& m){Sub(D, D, m.D);return *this;}
inline float __fastcall TMatrix::operator ~ (){return ::Abs(D);}

отакой изврат на яве похоже точно нельзя творить

Добавлено через 38 минут
Цитата Сообщение от Zuzik Посмотреть сообщение
Знания языка тоже немаловажная вещь в этой области
Ага. Зная к примеру асм x86 берешь просто табличку комманд от любого проца и вперед. Тут то же самое. Синтаксис Java и С++ отличается минимально, ну а библиотеки что там что там одни и те же. В любом случае при использовании любой библиотеки будешь постоянно по хелпам рыться сколько б лет ее не использовал. Ну и в Android SDK то ли где то на ихнем Developer network с год назад видел топик о том что хоть скорость выполнения прикладного C++ софта таки догнала Java, но разрабы андроида не рекомендуют использовать С++ для тех задач которые решаемы на Java.
Vladimirys
307 / 204 / 25
Регистрация: 16.01.2010
Сообщений: 585
15.12.2014, 01:24 #24
Цитата Сообщение от Zuzik Посмотреть сообщение
Вот, ваши слова.
Хорошо, мои слова нашли. Там кавычек нигде не видно? Вот тут например?
Цитата Сообщение от Vladimirys Посмотреть сообщение
ибо С++ будет в большинстве случаев "переводиться" в Java.
Добавлено через 6 минут
Насчет ускорения, так его мы получим лишь в некоторых библиотеках. OpenGL - например. Ну и еще несколько.
Yury Komar
1969 / 1878 / 296
Регистрация: 27.01.2014
Сообщений: 3,348
Завершенные тесты: 1
15.12.2014, 01:27 #25
Carpe-diem, если Basic знаешь, лучший вариант будет наверное Basic4Android...
Сам начал его изучать и не нарадуюсь...
быстро, удобно и отладка по wifi на реальном телефоне имеется...
Zuzik
237 / 222 / 38
Регистрация: 11.06.2012
Сообщений: 1,444
15.12.2014, 10:28 #26
Цитата Сообщение от Vladimirys Посмотреть сообщение
Хорошо, мои слова нашли. Там кавычек нигде не видно? Вот тут например?
Хорошо, скажите мне идиоту , что же значат ваши кавычки?
Vladimirys
307 / 204 / 25
Регистрация: 16.01.2010
Сообщений: 585
15.12.2014, 12:44 #27
Собственно, отвечал я не вам, поэтому и понимать написанное вам не нужно. Вам так же ответил что имел ввиду - Java Native Interface. Кавычки говорят о том, что никакого преобразования, на самом деле не происходит. Но одновременно, сам по себе Java Native Interface - может вносить свои глюки и косяки, с которыми придется разбираться.
Yury Komar
1969 / 1878 / 296
Регистрация: 27.01.2014
Сообщений: 3,348
Завершенные тесты: 1
15.12.2014, 15:23 #28
Carpe-diem, и кстати здесь раздел имеется. Только очень мало инфы, но изучив труды Programmera жизнь наладится и сможешь писать андроид софт со временем любого уровня, надеюсь
Glevera
14 / 14 / 1
Регистрация: 29.04.2012
Сообщений: 148
17.12.2014, 20:46 #29
Carpe-diem, впрочем как многие здесь отвечу
1) Да
2) Java
Сам вторую неделю набиваю руку в Android Studio после работы только на C#. Затраты на переход с одного языка на другой минимально возможные на этой планете. Дольше объяснять, чем перейти.
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
17.12.2014, 23:09 #30
Цитата Сообщение от Zuzik Посмотреть сообщение
ибо С++ будет в большинстве случаев "переводиться" в Java.
Вставлю и свои "5 копеек". (тема для меня интересная, давно изучаю, хотя еще активно не использую)
Никто никуда не "переводится"!
Есть низкоуровневые команды, работающие напрямую с процессором и есть команды доступа к "интерфейсам" ОС.

Хотите сделать фотку - вызываете интерфес фотоаппарата через ява команды. Из С++ должны отправить "в верхние слои" свою команду, ОС ее обработает (как ява-метод) и вернет Вам (в с++) матрицу с фоткой. Эту матрицу уже можете гонять на своих сверхбыстрых обработках в С++.

С++ ближе к ядру и процессору, поэтому работает быстрее. Полезно на ускорениях обработок и на шифровании (взломать исходники на порядки тяжелее). Говорят что можно писать еще некое подобие "драйверов" и прямого доступа к ним, но нигде не видел (хотя видел с++ исходники для доступа к закрытым командам управления 2й сим-картой на китайских смартах).

В обычной работе на 99% идет работа с дийзайном и интерфейсами. Исключение - игрушки. Там скорость обработки и отрисовки картинок важнее чем "красивость кнопочек".

C# - НЕ язык для андроида! Как и паскаль, лисп, маткад и PHP. Работает только через "фреймворки", "движки" или интерпретаторы. Встроен в один из известных игровых движков. Но для обычных программ - изврат и вечные глюки или ограничения.

Добавлено через 3 минуты
Добавлю еще что под каждый процессор - своя "сборка" исходников на с++. На сегодня компилятор поддерживает 4 вида сборки. Ява - универсальна под любой процессор. Если "забыли" воткнуть нужную сборку под "редкий" процессор (или слишком новый), то на этих гаджетах программа вылетит с ошибкой!
Код на с++ компактнее чем в яве после сборки. Но все 4 "коллекции" не сильно его уменьшают. И всегда есть шанс что "завтра" выпустят новый проц под который Ваша прога с маркета перестанет работать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2014, 23:09
Привет! Вот еще темы с ответами:

На чем лучше писать игры - Java, C++ или C#? - Графика и игры
Приветствую... Передо мною стоит выбор - изучать Java, C++ или C#? Хотел бы заняться игростроем.

Есть определенная задача. На чем лучше писать, C++ или C# - Программирование
Прошу не пинать ногами, отличия C# от C++ я уже изучил. Интересует ваше мнение. Сам привык работать в Visual C++. Есть определенная задача:...

В чем лучше писать базу данных MySql или accec - C#
В чем лучше писать базу данных MySql или accec. Хочу спросить MySql тоже можно без сервера оперировать на C# (вин формс) или без сервера...

На чем лучше учиться писать сайты ASP.NET или DreamWear 8.0? - C# ASP.NET
На чем лучше всего учиться писать сайты? есть две среды(не знаю как точно называется это в web-разработке) ASP.NET и DreamWear 8.0....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.12.2014, 23:09
Ответ Создать тему
Опции темы

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