Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.028 c
2-1145007717
Ezorcist
2006-04-14 13:41
2006.04.30
Boolean и bool?


15-1144522375
kaZaNoVa
2006-04-08 22:52
2006.04.30
Как Вы относитесь к пикаперам?


2-1144921222
Der Nechk@ssoff
2006-04-13 13:40
2006.04.30
Приложение к основной программе


2-1145006273
elfebet
2006-04-14 13:17
2006.04.30
Как из строки program_#12345#.exe вырезать прочесть 123456


2-1145028895
mahab
2006-04-14 19:34
2006.04.30
shelllistview




   Наверх