Главная страница
    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.46 MB
Время: 0.008 c
3-1141401246
_RusLAN
2006-03-03 18:54
2006.04.30
TIBScript. Отобразить процесс выполнения скрипта.


15-1144358901
Суслик
2006-04-07 01:28
2006.04.30
Ищу перевод лицензии MPL 1.1 на рОдный язык.


2-1144824286
Близнец
2006-04-12 10:44
2006.04.30
Организация дозвона с использованием имеющегося подключения


2-1145001367
Dust
2006-04-14 11:56
2006.04.30
Рекурсивный обход папок,,, или не рекурсивный...


15-1143407609
Наиль
2006-03-27 01:13
2006.04.30
Головоломки в редакторе кода





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский