Авторские Материалы о событиях в Израиле на Ближнем Востоке и в мире

IsraMir.com - Израильская журналистика

Default color brown color green color red color blue color
Вы сейчас тут: Новости arrow Техотдел arrow Свет ученья arrow Продолжение задачи о клавиатуре
Skip to content
Продолжение задачи о клавиатуре Версия для печати Отправить на e-mail
Sunday, 26 March 2006 | Зэев Фрайман для раздела Ученье – свет
Продолжениезадачиоклавиатуреisramir.comJavaА теперь – второй этап на подступах к обещанной задаче о несчастной машинистке. На этот раз задание выглядит так:
Напиши программу, которая будет заполнять массив, моделирующий «минимальную клавиатуру», то есть такую, которая содержит только маленькие буквы английского алфавита. Но при этом заполнить массив, «пронумерованный нормально» (то есть в порядкe...
 
... от ‘a’ до’ z’), следует заполнить случайным образом – как будто «соединения» клавиш были перепутаны. Для проверки программа должна принимать строковое значение и распечатывать получившуюся при «попытке набора» соответствующую «белиберду».
 
 Я предлагаю вам свой вариант программы, написанный на Java. Собственно, разница с предыдущим материалом заключается в том, как реализовано заполнение массива значениями. Мне было очень интересно проверить, можно ли на Java использовать нравящийся мне в PASCAL: исходное строковое значение, содержащее все необходимые буквы, постепенно «усекается». Получается, что вроде и на Java такой метод работает...
 
Вариант на Java
 
 
class klava1{
           
            public static void fill(char[] kbd){
                        String nabor="qwertyuiopasdfghjklzxcvbnm";
                        int how=nabor.length();
                        int n=25;
                        char j='a';
                        while (how>0){
                                   int i=(int)(n*Math.random());
                                   n--;
                                   char letter=nabor.charAt(i);
                                   kbd[j]=letter;
                                   IO.writeln(letter+"="+"kbd["+j+"]="+kbd[j]);
                                   nabor=""+nabor.substring(0,i)+nabor.substring(i+1);
                                   j++;
                                   how=nabor.length();
                        }
            }
           
            public static void view(char[] kbd){
                        for (char i='a';i<='z';i++){
                                   IO.writeln("kbd["+i+"]="+kbd[i]);
                        }
            }
           
            public static void go(char kbd[], String slovo){
                        String novoslovo="";
                        int how=slovo.length();
                        for (int i=0;i
                                   char letter=slovo.charAt(i);
                                   novoslovo=novoslovo+kbd[letter];
                        }
                        IO.writeln(novoslovo+"------");
            }
           
            public static void main (String args[]){
                        char kbd[]=new char[255];
                        fill(kbd);
                        view(kbd);
                        String slovo=IO.readString();
                        go(kbd,slovo);
            }
}
 
 

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:


Автотранслитерация: выключена

Защитный код

Powered by jComments