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

Pascal from java - Android

Восстановить пароль Регистрация
Другие темы раздела
Android ListFragment http://www.cyberforum.ru/android-dev/thread1624968.html
Всем доброго дня. Уперся малеько в дно. Из MainActivity через NavigationDrawer перехожу в ListFragment. Подскажите что делать дальше? package timonpumba.thefocus; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.ListFragment; import android.support.v7.app.AppCompatActivity;
Android Как сделать границы в пространстве ImageView при прокрутке изображения Как сделать границы в пространстве ImageView при прокрутке большого изображения <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/img" android:background="#fff" android:src="@drawable/photo" android:scaleType="matrix" http://www.cyberforum.ru/android-dev/thread1624777.html
DexClassLoader не работает Android
Добрый день. Возникла проблема с использованием DexClassLoader. Тестирование приложения на эмуляторах и на моих устройствах проходит без проблем, но обнаружил, что примерно на 30% устройств возникает проблема. Для загрузки класса из .dex (который упакован в apk) использую следующий код: PRIVATE_CACHE = context.getCacheDir().getAbsolutePath(); DexLoader = new DexClassLoader(PRIVATE_CACHE +...
The application may be doing too much work on its main thread Android
Ну елки палки, это что еще такое ? :) В приложении запускаю камеру и ловлю результат PhotoObject current_photoObj ; // мой класс для работы с файлом фотки current_photoObj = new PhotoObject(); protected void camera_start(){ Intent takePictureIntent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE ); takePictureIntent.putExtra( MediaStore.EXTRA_OUTPUT,...
Android Перевод чисел в разные системы счисления http://www.cyberforum.ru/android-dev/thread1624252.html
Добрый день, когда то нашел код для перевода чисел в разные системы, но он на С# я его там для своей программы использовал, сейчас решим сделать чтобы и на андроид работало, но так как я понял я неправильно переделал код, так как программа работает некорректно, посмотрите оригинальный код пожалуйста: /// <summary> /// Переводит из деятичной системы счисления в систему счисления с...
Android Первая игра 4х4 Есть типа игра, в которой нужно нажать на все кнопки с числами по возрастанию. У меня 16 кнопок, я решил реализовать всё так: package com.example.root.v_1; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.Toast; подробнее

Показать сообщение отдельно
Vasy_1994
0 / 0 / 0
Регистрация: 25.12.2015
Сообщений: 2
25.12.2015, 11:43     Pascal from java
Добрый день.
Мне нужно по курсовой сделать калькулятор систем счисления, чтобы переводить числа, но нужно учесть что числа могут быть не только цели ай десятичные, пробовал сам что-то написать ничего толком не получилось, в интернете примеры только pascal, C# C ++, а нужно именно на java, нашел в интернете вроде норм код но он на паскале пробовал перевести на java но многое не получилось перевести, помогите доделать.
Оригинальный код на паскале:

Pascal
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
program test;
 
var 
   s, s1,s2 : string; // число для перевода
   base_in : integer; // Основание входной системы счисления
   base_out : integer; // Основание выходной системы счисления
function CheckDotCount(s: string): boolean; // Проверка количества точек в числе
var
  count, i : integer;
begin
  count := 0;
  for i := 1 to Length(s) do
    if (s[i] = '.') then inc(count);  
   if (count > 1) then CheckDotCount := false
   else CheckDotCount := true;
end;
 
function IntToHex(ds: byte): string;
const
 b: string = '0123456789ABCDEF';
begin
if (b[(ds shr 4) + 1] = '0') then
  Result:= b[(ds and $F) + 1]
else Result:= b[(ds shr 4) + 1] + b[(ds and $F) + 1];  
end;
 
function HexToInt(s: string): Longword;
 var
   b: Byte;
   c: Char;
 begin
   Result := 0;
   s := UpperCase(s);
   for b := 1 to Length(s) do
   begin
     Result := Result * 16;
     c := s[b];
     case c of
       '0'..'9': Inc(Result, Ord(c) - Ord('0'));
       'A'..'F': Inc(Result, Ord(c) - Ord('A') + 10);
     end;
   end;
 end;
 
function checkSS(base : integer; s : string): boolean;
var
  i: integer;
  flag : boolean;
begin
  flag := true;
  for i := 1 to Length(s) do 
  begin
    if (HexToInt(s[i]) >= base) then flag := false;
  end;
  if ((base > 16) or (base < 2)) then flag := false;
  Result := flag;
end;
 
function checkSSR (base : integer):boolean;
begin
if ((base > 16) or (base < 2)) then Result := false
else
Result := true;
end;
 
function getStringBeforeDot(s:string): string;
  //pos : integer;
begin
  if (Pos('.',s) = 0) then Result := s
  else Result := Copy(s, 1,Pos('.',s)-1);
end;
 
function getStringAfterDot(s: string):string;
begin
  if (Pos('.',s) = 0) then Result := ''
  else
    Result := copy(s,Pos('.',s)+1,Length(s));
end;
 
procedure IntConverter(s:string; base_in : integer; base_out : integer);
var
  n1,N,i,r1 : integer;
  d1 : array [0..255] of integer;
begin
  n1 := Length(s);
  N := 0;
  for i := 1 to n1 do
  begin
    N:= N*base_in+HexToInt(s[i]);
  end;
  if (N = 0) then write ('0')
  else
  begin
    r1 := 0;
    while (N <> 0) do
    begin
       d1[r1] := N mod base_out;
       N := N div base_out;
       inc(r1);
    end;
  for i:=r1-1 downto 0 do
    write(IntToHex(d1[i]));
  end;
end;
 
procedure DotConverter(s:string; base_in : integer; base_out : integer);
var
  n2 , i, k2: longint;
  Nf : double;
begin
  n2 := Length(s);
  if (n2 = 0) then
  begin
    writeln();
    exit;
  end;
  write('.');
  Nf := 0;
  for i := n2 downto 1 do
  begin
    Nf := (HexToInt(s[i]) + Nf) / base_in;
  end;
  k2 := 0;
  while ((Nf <> 0) AND (k2 < 20)) do
  begin
    inc(k2);
    write(IntToHex(Floor(Nf*base_out)));
    Nf := ((Nf*base_out));
  end;
end;
 
begin
  writeln('Введите число для перевода:');
  readln(s);
  if (CheckDotCount(s) = false) then
  begin
    writeln('Во введеном числе более 1 точки, что-то не так');
    exit;  
  end;
  writeln('Введите основание входной системы счисления:');
  readln(base_in);
  if (checkSS(base_in, s) = false) then
  begin
    writeln('Некорректная система счисления или число для этой системы счисления');
    exit;  
  end;
  writeln('Введите основание выходной системы счисления:');
  readln(base_out);
  if (checkSSR(base_out) = false) then
  begin
    writeln('Некорректная система счисления или число для этой системы счисления');
    exit;  
  end;
  s1 := getStringBeforeDot(s);
  s2 := getStringAfterDot(s);
  IntConverter(s1,base_in,base_out);
  DotConverter(s2,base_in,base_out);
  readln;
end.
Моя попытка перевести в java:

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
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;
        }
    }
 
    private String IntToHex(Byte ds){
        String b = "0123456789ABCDEF";
 
        if (b[(ds SHR 4) + 1] = "0")
        {
            Result = b[(ds && $F) + 1]
        }
        else
        Result = b[(ds shr 4) + 1] + b[(ds && $F) + 1];
    }
 
    private Long HexToInt(String s){
        Byte b;
        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;
        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 s;
    }
 
    private Boolean checkSSR (Integer base){
        if ((base > 16) | (base < 2))  Result = false;
        else
        Result = true;
        return  base;
    }
 
    private String getStringBeforeDot(String s){
        //pos : integer;
        if (Pos('.',s) = 0)  Result = s
        else
            Result = Copy(s, 1,Pos('.',s)-1);
        return s;
    }
 
 
    private String getStringAfterDot(String s){
        if (Pos('.',s) = 0) then Result = ""
        else
        Result = copy(s,Pos('.',s)+1,s.length());
 
    }
 
    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));
        }
 
    }
 
 
 
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru