Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal from java - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android ListFragment http://www.cyberforum.ru/android-dev/thread1624968.html
Всем доброго дня. Уперся малеько в дно. Из MainActivity через NavigationDrawer перехожу в ListFragment. Подскажите что делать дальше? package timonpumba.thefocus; import...
Программирование Android Как сделать границы в пространстве ImageView при прокрутке изображения Как сделать границы в пространстве ImageView при прокрутке большого изображения <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" ... http://www.cyberforum.ru/android-dev/thread1624777.html
DexClassLoader не работает Программирование Android
Добрый день. Возникла проблема с использованием DexClassLoader. Тестирование приложения на эмуляторах и на моих устройствах проходит без проблем, но обнаружил, что примерно на 30% устройств возникает...
The application may be doing too much work on its main thread Программирование Android
Ну елки палки, это что еще такое ? :) В приложении запускаю камеру и ловлю результат PhotoObject current_photoObj ; // мой класс для работы с файлом фотки current_photoObj = new PhotoObject(); ...
Программирование Android Перевод чисел в разные системы счисления http://www.cyberforum.ru/android-dev/thread1624252.html
Добрый день, когда то нашел код для перевода чисел в разные системы, но он на С# я его там для своей программы использовал, сейчас решим сделать чтобы и на андроид работало, но так как я понял я...
Программирование Android Первая игра 4х4 Есть типа игра, в которой нужно нажать на все кнопки с числами по возрастанию. У меня 16 кнопок, я решил реализовать всё так: package com.example.root.v_1; import android.app.Activity; import... подробнее

Показать сообщение отдельно
Vasy_1994
0 / 0 / 0
Регистрация: 25.12.2015
Сообщений: 2
25.12.2015, 12:32  [ТС]
Если кому-то поможет то код на C++
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
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <locale.h>
#include <malloc.h>
#include <stdlib.h>
#define z 255
 
/*Заголовки функций*/
int aton(char a);
char ntoa(int n);
int cdot(char * S);
void dot(char* S, char* S1, char* S2);
void IntTransfer(char *S1, int b1, int b2);
void DotTransfer(char *S2, int b1, int b2);
int types (int b1, char *S);
 
void main ()
{
int b1, b2;
char S[z];
char S1[z];
char S2[z];
setlocale(LC_CTYPE,"Russian");
printf("Введите число для перевода \n");
gets_s(S,z);
if (cdot(S) == -1)
{
printf("incorrect value, Closed!\n");
getchar();
exit (-1);
}
printf("Введите основание входной сс\n");
scanf_s("%d",&b1);
if (types (b1, S) == -2)
{
printf("Некорректное основание входной системы счисления или неверное число для перевода\n");
getchar();
exit (-1);
}
if (types2(b1) == -1)
{
printf("Неверное основание входной сс\n");
getchar();
exit (-1);
}
printf("Введите основание выходной сс\n");
scanf_s("%d",&b2);
if (types2(b2) == -1)
{
printf("Неверное основание выходной сс\n");
getchar();
exit (-1);
}
dot(S, S1, S2);
IntTransfer(S1, b1, b2);
DotTransfer (S2,b1,b2);
printf("\n");
}
 
int aton(char a) // преобразование символа в номер цифры (Число)
{
if ((a >= '0') && (a <= '9'))
return a - '0';
else if ((a >= 'a') && (a <= 'z'))
return a - 'a' + 10;
else
return a - 'A' + 10;
}
char ntoa(int n) // преобразование номера цифры в символ
{
if ((n >= 0) && (n <= 9))
return '0' + n;
else
return 'A' - 10 + n;
 
}
void dot(char* S, char* S1, char* S2) // Разделение введеной строки. До точки\после точки
{
const char* delim = ".";
char* cp = malloc(strlen(S)+1);
char* tmp;
if (cp == NULL)
{
printf("Ошибка при работе с памятью");
exit(-1);
}
 
tmp = strtok(S,".");
if (tmp!=NULL) strcpy(S1,tmp);
else strcpy(S1,"\0");
tmp=strtok(NULL,".");
if (tmp!=NULL) strcpy(S2,tmp);
else strcpy(S2,"\0");
free(cp);
}
void IntTransfer(char* S1, int b1, int b2)
{
int n1, N, i,r1;
int d1 [z];
n1=strlen(S1);
N=0;
for (i=0;i<n1;i++)
{
N=N*b1+aton(S1[i]);
}
if (N==0)
{
printf("0");
}
else
{
r1=0;
while (N!=0)
{
d1[r1]=N%b2;
N=N/b2;
r1++;
}
for (i=r1-1;i>=0;i--)
{
printf("%c",ntoa(d1[i]));
}
}
}
void DotTransfer (char *S2, int b1, int b2)
{
int n2 , i, k2;
int const K = 20;
long double Nf;
n2 = strlen(S2);
if (n2 == 0)
{
printf("\n");
return;
}
printf(".");
Nf = 0;
for (i = n2-1; i >= 0; i--)
{
Nf = (aton(S2[i]) + Nf) / b1;
}
k2 = 0;
while (Nf != 0 && k2 < K)
{
k2++;
printf("%c",ntoa(floor(Nf*b2)));
Nf=fmod((Nf*b2), 1);
}
}
int cdot(char * S)
{
int i, kol = 0;
for (i = 0; i < strlen(S); i++)
{
if (S[i] == '.') kol++;
}
if (kol > 1)
{
return -1;
}
}
int types (int b1, char *S)
{
int i;
for (i = 0; i < strlen(S); i++)
{
if (aton(S[i]) >= b1) return -2;
}
}
int types2 (int b)
{
if (b > 16 || b < 2) return -1;
 
}

я еще несколько переделал но не знаю правильно или
, а остальное не знаю как переделать
Java
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
package com.example.tlp.calcukator2;
 
import android.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
import org.w3c.dom.Text;
 
public class MainActivity extends AppCompatActivity {
 
    String s, s1, s2,ss1,ss2; // число для перевода
    Integer base_in; // Основание входной системы счисления
    Integer base_out; // Основание выходной системы счисления
 
    Button button;
    EditText editText, editText2, editText3;
    TextView textView2;
    AlertDialog mes;
    private boolean CheckDotCount;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        button = (Button) findViewById(R.id.button);
        textView2 = (TextView) findViewById(R.id.textView2);
        editText = (EditText) findViewById(R.id.editText);
        editText2 = (EditText) findViewById(R.id.editText2);
        editText3 = (EditText) findViewById(R.id.editText3);
        mes = new AlertDialog.Builder(this).create();
    }
 
    public void button_click(View view){
        s = editText.getText().toString();
        if (CheckDotCount(s) == false) {
            mes.setTitle("Ошибка");
            mes.setMessage("Во введеном числе более 1 точки, что-то не так!");
            mes.show();
        }
 
        ss1 = editText.getText().toString();
        base_in = Integer.valueOf(ss1);
        if (checkSS(base_in, s) == false){
            mes.setTitle("Ошибка");
            mes.setMessage("Некорректная система счисления или число для этой системы счисления!");
            mes.show();
        }
 
        ss2 = editText.getText().toString();
        base_out = Integer.valueOf(ss2);
        if (checkSSR(base_out) == false) {
            mes.setTitle("Ошибка");
            mes.setMessage("Некорректная система счисления или число для этой системы счисления!");
            mes.show();
        }
 
        s1 = getStringBeforeDot(s);
        s2 = getStringAfterDot(s);
        IntConverter(s1,base_in,base_out);
        DotConverter(s2,base_in,base_out);
 
    }
 
 
 
    // Проверка количества точек в числе
    private Boolean CheckDotCount(String s){
        Integer count, i;
        count = 0;
        for ( i = 1; i< s.length();i++){
                if (s.charAt(i) == '.')  count++;
                if (count > 1)  CheckDotCount = false;
                else CheckDotCount = true;
        }
        return CheckDotCount;
    }
 
    private String IntToHex(Byte ds){
        String b = "0123456789ABCDEF", result="";
 
        if (b[(ds >> 4) + 1] = "0")
        {
            result = b[(ds && $F) + 1];
        }
        else
        {
        result = b[(ds >> 4) + 1] + b[(ds && $F) + 1]
        }
        return result;
    }
 
    private Long HexToInt(String s){
        Byte b;
        Long Result;
        char c;
        Result = 0;
        s = s.toUpperCase();
        for (b = 1; b< s.length();b++){
            Result = Result * 16;
            c =s.charAt(b);
            switch ()
            case c:
                '0'..'9':Inc(Result, Ord(c) - Ord('0'));
                'A'..'F':Inc(Result, Ord(c) - Ord('A') + 10);
        }
    }
 
 
    private Boolean checkSS(Integer base, String s) {
        Integer i;
        Boolean flag,Result;
        flag = true;
        for (i = 1; i< s.length();i++){
            if (HexToInt(s.charAt(i)) >= base)  flag = false;
        }
        if ((base > 16) | (base < 2))  flag = false;
        Result = flag;
        return Result;
    }
 
    private Boolean checkSSR (Integer base){
        Boolean Result;
        if ((base > 16) | (base < 2))  Result = false;
        else
        Result = true;
        return  Result;
    }
 
    private String getStringBeforeDot(String s){
        String Result;
        if (Pos('.',s) = 0)  Result = s
        else
            Result = Copy(s, 1,Pos('.',s)-1);
        return Result;
    }
 
 
    private String getStringAfterDot(String s){
        String Result;
        if (Pos('.',s) = 0)  Result = "";
        else
        Result = copy(s,Pos('.',s)+1,s.length());
        return Result;
    }
 
    private void IntConverter(String s, Integer base_in, Integer base_out){
        Integer n1,N,i,r1;
        int[] d1 = new int[255];
        n1 = s.length();
        N = 0;
        for (i = 1; i<n1; i++){
            N= N*base_in+HexToInt(s.charAt(i));
        }
        if (N == 0) write ("0");
        else
        r1 = 0;
        while (N != 0) {
            d1[r1]:=N mod base_out;
            N =N div base_out;
            r1++;
        }
        for (i=r1-1; i== 0; i--){
            textView2.setText(IntToHex(d1[i]));
        }
    }
 
 
    private void DotConverter(String s, Integer base_in, Integer base_out){
        Integer n2,i,k2;
        Double Nf;
        n2 = s.length();
        if (n2 == 0) {
            writeln();
        }
        write('.');
        Nf = 0;
        for (i = n2; i==1;i--){
          Nf = (HexToInt(s.charAt(i)) + Nf) / base_in;
        }
        k2 = 0;
        while ((Nf != 0) && (k2 < 20)){
         k2++;
            textView2.setText(IntToHex(Math.floor(Nf * base_out)));
         Nf = ((Nf*base_out));
        }
 
    }
 
 
 
 
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru