Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.30;
Скачать: CL | DM;

Вниз

Головоломки в редакторе кода   Найти похожие ветки 

 
Наиль ©   (2006-03-27 01:13) [0]

Далее по тексту C+,S+,A+ читать как Ctrl+,Shift+,Alt+, соответственно
Если исключить время на обдумывание задачи, то скорость написания программы пропорциональна числу нажатий на клавиши. Delphi позволяет набирать текст очень быстро, если знать такие сочетания как С+X, C+C, C+V, C+Space, C+J, C+S+R, С+S+P, C+R. Иногда приходится решать настоящие головоломки, как за минимальное число нажатий изменить максимум кода. Простой пример:
Было:
Pole1:=’a’;
Pole2:=1;
Pole3:=nil;

Курсор стоит перед Pole1
Должно стать:
Obj.Pole1:=’a’;
Obj.Pole2:=1;
Obj.Pole3:=nil;

Мои действия:
O, b, j, ., Влево, C+S+A+Влево, C+C, Вниз, C+V, С+V
Если сочетание считать за одно нажатие, то вышло 10 нажатий.
А сколько нажатий ушло бы у Вас на такую задачу.
Уверен, что и вас найдётся пара интересных задач.


 
Наиль ©   (2006-03-27 01:14) [1]

Задача из реальной жизни.
Имеется код:
Procedure TObj.First(a,b,c:Integer);
Var

Begin

Procedure TObj.Second(b,c:String);
Var

Begin

Procedure TObj.Third(a,b:Pointer);
Var

Begin


Должно стать:
Procedure TObj.First(a,b,c:Integer);
Var

Begin
Log(‘Procedure TObj.First(a,b,c:Integer);’);

Procedure TObj.Second(b,c:String);
Begin
Log(‘Procedure TObj.Second(b,c:String);’);

Procedure TObj.Third(a,b:Pointer);
Var

Begin
Log(‘Procedure TObj.Third(a,b:Pointer);’);


Курсор находится в начале файла. Пусть в модуле 10 процедур. Сколько нажатий вам потребуется для преобразования кода. Нажатие на клавиши символов (буквы, знаки препинания и т.д.) не считать.


 
Andy BitOff ©   (2006-03-27 01:26) [2]

Не серьёзно. Я активно пользуюсь мышкой и для решения первой задачи надо набрать только obj. и с помощью CTRL перетащить на две другие строки.


 
Zeqfreed ©   (2006-03-27 01:46) [3]

Наиль ©   (27.03.06 01:13)
Могу предложить альтернативный вариант :)

*, Стрелка вниз, Стрелка Влево, *, Стрелка Вниз, Стрелка Влево, *, Shift + Стрелка Вверх два раза и Стрелка Влево, Ctrl + R, *, Tab, Obj., Alt + A два раза.


 
Юрий Зотов ©   (2006-03-27 03:12) [4]

> Наиль ©   (27.03.06 01:13)

После приведенных Вами 10 нажатий у меня получилось:

Obj.Pole1:=’a’;
ObjObjPole2:=1;
Pole3:=nil;

То есть:
а). первое Влево явно ошибочно;
б). перед последним C+V нужно еще Вниз и Home.

Итого Вашим способом получается не 10, а 12 нажатий. А вот решение той же задачки за 10 нажатий:
C+S+R, O, b, j, ., Вниз, Home, C+S+R, C+S+P, C+S+P

По сравнению с Вашим этот способ проигрывает 2 нажатия на первой строке, но затем выигрывает по 2 нажатия на каждой из остальных, сколько бы их ни было.


 
Ketmar ©   (2006-03-27 03:15) [5]

макроязык в редакторе фрицы украли?


 
Юрий Зотов ©   (2006-03-27 03:17) [6]

> Ketmar ©   (27.03.06 03:15) [5]

Он и использован.


 
Ketmar ©   (2006-03-27 03:22) [7]

>Юрий Зотов ©   (27.03.06 03:17) [6]
да я не вам. %-) а "влево-впврао" -- это далеко не макроязык...


 
Prohodil Mimo ©   (2006-04-09 16:55) [8]

Юрий Зотов ©   (27.03.06 3:12) [4]
После приведенных Вами 10 нажатий у меня получилось:

Obj.Pole1:=’a’;
ObjObjPole2:=1;
Pole3:=nil;

То есть:
а). первое Влево явно ошибочно;
б). перед последним C+V нужно еще Вниз и Home.


нет, там всё правильно. У Вас скорее всего Alt не нажался.



Страницы: 1 вся ветка

Текущий архив: 2006.04.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
4-1139558159
Shuma
2006-02-10 10:55
2006.04.30
Вызов процедуру из EXE-файла


4-1139390033
plotn
2006-02-08 12:13
2006.04.30
Динамическая загрузка dll


15-1144614620
Zeqfreed
2006-04-10 00:30
2006.04.30
Что почитать о поиске вхождений по маске?


15-1144518844
ArtemESC
2006-04-08 21:54
2006.04.30
О чем вы думали когда придумывали свои ники?


15-1143130658
Symbios
2006-03-23 19:17
2006.04.30
БПФ