Страница 6 из 14
Re: Урок 19. Пишем простой калькулятор
Добавлено: 18 ноя 2012, 08:31
G_O_R
Можно вопрос еще. подскажите как процедуру и функцию написать и в какой часть кода разместить. или дайте ссылку на материал где пример описания и вызова процедуры. в инете не нашел. и в книжках нет. слова procedure и function в эклипсе даже не распознается.
Re: Урок 19. Пишем простой калькулятор
Добавлено: 19 ноя 2012, 10:45
rezak90
G_O_R писал(а):Можно вопрос еще. подскажите как процедуру и функцию написать и в какой часть кода разместить. или дайте ссылку на материал где пример описания и вызова процедуры. в инете не нашел. и в книжках нет. слова procedure и function в эклипсе даже не распознается.
Я угараю
. Я не злорадствую, не поймити, просто смешно. И так, что на счёт вопроса... я так понял вы переходите с делфи или с паскаля (или ещё с чего то древнего чего я не знаю)?! Начните читать что то про ООП, простейшая книга по джаве и всё проеснится. А на перёд скажу, что в джаве нету таких понятий как процедура или функция
Re: Урок 19. Пишем простой калькулятор
Добавлено: 19 ноя 2012, 13:59
G_O_R
Да с дельфи) ну мне надо несколько кусков кода чтоб потом их вызвать. процедуры. ооп знаю. ну на джаве не писал вот и не знаю) мне нужен аналог какой нить чтоб не писать одно и тоже а только вызвать из разных мест. книги есть для андроид, но там нету. если знайте хотя бы скажите команду я поищу в инете.
Re: Урок 19. Пишем простой калькулятор
Добавлено: 19 ноя 2012, 14:21
rezak90
методы это и есть процедуры и функции. Процедура:
параметр void ничего не возвращает и по этому можно сравнить с процедурой.
метод возвращает int, аналог функции
Методы прописываете в классе, например в классе Activity или же в отдельном, где душа пожелает.
Re: Урок 19. Пишем простой калькулятор
Добавлено: 19 ноя 2012, 15:08
G_O_R
Спасибо) а говорили нет тут процедур))) просто название другое)
Re: Урок 19. Пишем простой калькулятор
Добавлено: 20 ноя 2012, 11:53
nubodroid
Всем доброго времени суток!
Вопрос больше относится к EditText.
Мне нужно ввести в поле число с точностью до десятых. Проконтроллировать вывод на экрна я могу, а вот как проконтроллировать пользователя? Он ведь может и 100 знаков после запятой ввести.
Всем заранее спасибо!
Re: Урок 19. Пишем простой калькулятор
Добавлено: 20 ноя 2012, 20:36
G_O_R
Здравствуйте! искал по форумам и сайтам и опять не нашел(((и узнать команды как найти значение по таблице кодировки символов и обратно. в дельфи chr и ord. Резак может станем компаньонами?) есть идея и есть прога, надо перевести в андроид и улучшить)
Re: Урок 19. Пишем простой калькулятор
Добавлено: 20 ноя 2012, 21:35
AndreyI
Android, как и JAVA работает со строками Unicode, все символы строк представлены в виде в виде двухбайтного char, в нем и хранится собственно значение Unicode данного символа. С ним можно работать как с числом (позволяет любые арифметические и логические операции, сравнения и т.п), фактически он соответствует беззнаковому short (других беззнаковых числовых типов в JAVA не существует).
Из типа String можно получить массив char[] каждый элемент которого и будет содержать код символа в Unicode
Re: Урок 19. Пишем простой калькулятор
Добавлено: 20 ноя 2012, 21:43
rezak90
всё правильно подмечено
G_O_R , с конкретными предложениями пиши в ЛС
Re: Урок 19. Пишем простой калькулятор
Добавлено: 20 ноя 2012, 22:20
nubodroid
Люди, а как можно сделать так чтобы при вводе текста в EditText он печатался справа налево?
З.Ы. По поводу кол-во знаков после запятой, никто ничего не знает? Просто спрашивал на 4pda... там тоже тишина....
Re: Урок 19. Пишем простой калькулятор
Добавлено: 20 ноя 2012, 22:34
rezak90
nubodroid писал(а):Люди, а как можно сделать так чтобы при вводе текста в EditText он печатался справа налево?
З.Ы. По поводу кол-во знаков после запятой, никто ничего не знает? Просто спрашивал на 4pda... там тоже тишина....
что бы справа на лево нужно в проперти добавить android:gravity="right"
по поводу форматирования то нужно использовать интерфейс InputFilter.
Re: Урок 19. Пишем простой калькулятор
Добавлено: 20 ноя 2012, 22:50
nubodroid
rezak90 писал(а):nubodroid писал(а):Люди, а как можно сделать так чтобы при вводе текста в EditText он печатался справа налево?
З.Ы. По поводу кол-во знаков после запятой, никто ничего не знает? Просто спрашивал на 4pda... там тоже тишина....
что бы справа на лево нужно в проперти добавить android:gravity="right"
по поводу форматирования то нужно использовать интерфейс InputFilter.
Спасибо. Сейчас попробую... На счет форматирования... нашел на stackoverflow...
Код: Выделить всё
EditText txtInput = (EditText) findViewById(R.id.txtInput);
txtInput.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable edt)
{
String temp = edt.toString();
int posDot = temp.indexOf(".");
if (posDot <= 0) return;
if (temp.length() - posDot - 1 > 2)
{
edt.delete(posDot + 3, posDot + 4);
}
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
});
Re: Урок 19. Пишем простой калькулятор
Добавлено: 21 ноя 2012, 08:06
G_O_R
AndreyI писал(а):Android, как и JAVA работает со строками Unicode, все символы строк представлены в виде в виде двухбайтного char, в нем и хранится собственно значение Unicode данного символа. С ним можно работать как с числом (позволяет любые арифметические и логические операции, сравнения и т.п), фактически он соответствует беззнаковому short (других беззнаковых числовых типов в JAVA не существует).
Из типа String можно получить массив char[] каждый элемент которого и будет содержать код символа в Unicode
То что в юникоде я знаю. прочел уже. там представление вроде /u+число. значит я так понял мою строку типа string присвоить массиву типа char. потом сделать без знаковую переменную short и произвести арифметические действия и потом все обратно чтоб собрать строку
Re: Урок 19. Пишем простой калькулятор
Добавлено: 21 ноя 2012, 09:21
G_O_R
Что не так в этом коде. почему не выдает нечего. даже ошибку.
public void shifr1(int key){
char[] inf= new char[160];
short Ord;
String outf = "";
outf.isEmpty();
if (etText1.length()==0){
Toast.makeText(this, "Нет символов для шифрования", Toast.LENGTH_LONG).show();
}
else {
if(key==1){
for (int j = 0; j == etText1.length(); j++) {
//проверка
// if (inf[j]>='a' & inf[j]<='z' | inf[j]>='A' & inf[j]<='Z' | inf[j]>='а' & inf[j]<='я' | inf[j]>='А' & inf[j]<='Я' | inf[j]>='0' & inf[j]<='9') {
//узнаем код символа и добавляем ключ у нас он =7
Ord=(short) (inf[j]+7);
//обратно находим значение символьное из числа и пишет обратно в массив ну строку
inf[j]=(char) Ord;
//inf[j]=chr(t);
//тут счетчик собирает все символы уже шифрованные в строку
outf+=inf[j];
// etText1.setText(outf);
// }
}
}
}
etText1.setText(outf.toString());
}
Re: Урок 19. Пишем простой калькулятор
Добавлено: 21 ноя 2012, 10:38
AndreyI
По образу и подобию написал, логику шифрования не менял
Код: Выделить всё
public void shifr1(int key) {
CharSequence inf; //Сюда будем получать входную строку
StringBuffer stringbuff = new StringBuffer(); //А сюда выходную
if (etText1.length() == 0) {
Toast.makeText(this, "Нет символов для шифрования",
Toast.LENGTH_LONG).show();
} else {
inf = etText1.getText(); //Считываем строку из текстового поля
if (key == 1) {
for (int j = 0; j < inf.length(); j++) {
char chr = inf.charAt(j); //Считываем символ
// проверка
if ((chr >= 'a' && chr <= 'z' )|| (chr >= 'A' &&chr <= 'Z')
||( chr >= 'а' && chr <= 'я' )|| (chr >= 'А' && chr <= 'Я')
||( chr >= '0' && chr <= '9')) {
// узнаем код символа и добавляем ключ у нас он =7
// обратно находим значение символьное из числа и пишет
// обратно в массив ну строку
chr = (char) (chr + 7);
// тут счетчик собирает все символы уже шифрованные в
// строку
stringbuff.append(chr);
}
}
etText1.setText(stringbuff);
}
}
}
Re: Урок 19. Пишем простой калькулятор
Добавлено: 21 ноя 2012, 13:24
G_O_R
у меня в начал было srtingbuff но ругался на него и предлагал менять. хотелось бы узнать всё таки в чем ошибка в моем коде?
Спасибо Андрей попробую сейчас твой вариант)
Re: Урок 19. Пишем простой калькулятор
Добавлено: 21 ноя 2012, 13:36
G_O_R
Спасибо Андрей)работает) не подскажите максимальное число знаков в юникоде?))) ну чтоб вдруг за рамки таблицы не вышло))))
Re: Урок 19. Пишем простой калькулятор
Добавлено: 02 дек 2012, 15:21
G_O_R
помогите еще раз с кодом))) она должна делать следующее, должна взять текст записать в массив. потом одномерный массив делить по 5 элементам и эти 5 элементов менять местами, если скажем 23 символа то отставшие 3 элемента должны записаться в обратном порядке, то есть алгоритм перестановки. у меня он не выдает нечего. при нажатии или не происходит нечего или пусто. несколько раз менял типы переменных и поменял циклы. не выводит все равно. Спасибо заранее.
public void perest (int s1, int s2, int s3, int s4, int s5, int key2Pos, int key3){
// String st="";
StringBuffer stringbuff = new StringBuffer(); //А сюда выходную
// String outf2=""; //А сюда выходную
int p,d,g;
g=5;
int ar [] = {s1,s2,s3,s4,s5}; //массив содержащий маску перестановок
char inf1 [] ; //Сюда будем получать входную строку
char inf2 [] ; //Сюда будем получать входную строку
if ((key2Pos==1) || (key2Pos==3) ||(key2Pos==4)){
if (etText1.length() == 0) {
Toast.makeText(this, "Нет символов для шифрования",
Toast.LENGTH_LONG).show();
} else {
int n= etText1.length();
inf1 = new char [n];
inf2 = new char [n];
p= (int) ( n / g);
d = (int) ( n % g);
for (int k = 0; k<n; k++){
inf1[k]= etText1.getText().charAt(k); //Считываем строку из текстового поля
}
for (int m = 0; m < p*g; m++) {
//цикл по количеству групп d-1 потому что изначально
//вот тут мы получаем некий индекс. Но нам нужно изначально, чтобы было с начала
// строки вот тут поэтому важно, чтобы вот эта часть начиналась с нуля
// так как в делфи все начинается с единицы, поставили -1.
for (int l=1; l==5; l++ ){
inf2[l] =inf1[m*g+ar[l]]; //в этой строчке вся сила алгоритма.
//мы берем данные по группно. m*g - это количество пройденных символов.
//они нам не нужны, поэтому мы их пропускаем. И нужно
//записать переставленные символы. Для этого и нужен был массив. То есть
//итый элемент массива - это не i, а то, что мы захотим))
stringbuff.append(inf2[l]);
}
//однако описанный алгоритм хорош когда длина строки делится нацело на длину
//группы. А если нет, то с оставшимися символами надо что-то делать
//вот я и делаю...записываю их в обратном порядке. Тут другую перестановку
//не придумать
}
if(p!=0) {
// st="";
for (int m = p*g; m == n; m++) {
for (int l=1; l == p; l++ ){
stringbuff.append(inf1[g*d+(p-l+1)]);
// st=st+inf1[g*d+(p-l+1)];
// outf2=outf2+st;
}
}
}
}
// etText1.getText().clear();
etText1.setText(stringbuff);
}
}
Re: Урок 19. Пишем простой калькулятор
Добавлено: 03 дек 2012, 15:06
AndreyI
Такие коды лучше дебажить пошагово и смотреть значения переменных на каждом шаге, собственно, так делается в любом языке программирования, если код содержит вычисления.
Поставьте точку останова в начале метода и запустите программу в режиме отладки.
Re: Урок 19. Пишем простой калькулятор
Добавлено: 05 дек 2012, 10:13
G_O_R
Трудно от дельфи перейти на джава за неделю) всё время забываю что тут индексы начинаются с 0. но в общем хорошая вещь) сделал алгоритм записи в двумерный массив текста из едита( из одномерного массива). если кому надо выложу. Спасибо за совет)