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

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Существует одна очень интересная задача о «несчастной машинистке», которую мы хотим предложить вашему вниманию на следующей неделе – а сегодня одна предварительная задачка. В ней очень интересно отследить различия и сходства в подходах написания программ на PASCAL’е и на Java. С одной стороны, со стороны учеников, «публики», как всегда – дилеммы особой нет, поскольку ученик же не сравнивает «а как это пишется на таком и на другом языке».
 
С другой, со стороны преподавателей, «обремененных» годами вполне серьезного и успешного преподавания на определенном языке (в нашем случае – на PASCAL’е) – дилемма существует, да еще какая...
 
Так что сравнение такое для того, кому предстоит учить, кажется нам очень даже полезным. Следует иметь в виду еще один очень и очень (опять же – на наш личный и собственный взгляд) момент: Java, по сравнению с PASCAL’ем, «обогащена» даже в самом что ни на есть стандартном варианте весьма значительным количеством возможностей – во всяком случае, гораздо и несравненно большим, чем PASCAL. И, соответственно, возникает вопрос: чем, каким набором ограничиться, что следует давать ученикам, а что – нет; учить их или не стоит – пользоваться Интернет-источниками, вроде SUN’овского сайта с информацией про API? Сама по себе эта проблема – предмет для серьезного исследования и обсуждения.
 
Итак – задача. Сначала – в наипростейшем варианте.
Следует построить массив для «минимальной клавиатуры», которая должна содержать только английские маленькие буквы. При этом «надписью» на клавише должен быть индекс ячейки массива, а «буква», генерируемая при «нажатии» на клавишу, должна быть содержимым соответствующей ячейки. Для проверки программа должна принимать строковое значение, представляющее собой набираемые текст (без пробелов) и проверять, соответствует ли генерируемый текст «нажатиям» на «клавиши».
 
Комментарий: разумеется, что несложно «расширить» задачу на моделирование полноценной клавиатуры – это, как вы понимате, непринципиально для программы.
 
Вариант на PASCAL’е.
Program klava;
Var      I, letter : char;
            Slovo : string;
J : integer;
            Kbd : array[‘a’..’z’] of char;
BEGIN
For I := ‘a’ to ‘z’ do
                        Kbd [i]:= I;
            Readln(slovo);
            Long := length(slovo);
            For j := 1 to long do
            Begin
                        Letter := slovo [ I ];
                        Write(kbd[letter]);
            End;
END.
 
 
Вариант на Java.
 
class klava{
           
            public static void fill(char[] kbd){
                        for (char i='a';i<='z';i++){
                                   kbd[i]=i;
                        }
            }
           
            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);
            }
}
 
 
Как видите, особой разницы нет – да и вообще принципиальной разницы. Собственно, программа на Java побольше только за счет нескольких сервисных прибавок.
 
 

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

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


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

Защитный код

Powered by jComments