Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2012, 03:31   #1
tinton
Пользователь
 
Регистрация: 29.10.2011
Сообщений: 25
По умолчанию Объясните код

Код:
{-----Функция счетчика кнопок (n)-----}
Function Rkey(var x,y:integer):integer;
begin
readk:=readkey;
if readk=#0 then readk:=readkey;
if (Ord(readk)=80) or (Ord(readk)=77) then
 begin
	if x<=y-1 then x:=x+1;
 end
else
if (Ord(readk)=72) or (Ord(readk)=75) then
 begin
	if x>=2 then x:=x-1;
 end;
Rkey:=x;
end;

если несложно то можно коментарий к каждой строчке ? Заранее благодарю.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 10.05.2012 в 09:18.
tinton вне форума Ответить с цитированием
Старый 10.05.2012, 13:33   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Боюсь, что комментарий в данном случае написать принципиально невозможно.
Во-первых, комментарий обычно пишется ДО написания кода, а не после.
В коде записано, ЧТО делает программа, а в комментарии пишут ЗАЧЕМ она это делает.
Приведенный Вами код не имеет очевидного предназначения. Более того, есть вообще подозрение, что он неправильный.
Поэтому понять, зачем программист применил ту или иную конструкцию, не представляется возможным.
Похоже, что он пытался так обрабатывать клавиши со стрелками. Зачем - одному ему известно.
s-andriano вне форума Ответить с цитированием
Старый 10.05.2012, 13:38   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Боюсь, что комментарий в данном случае написать принципиально невозможно.
Да в лёт, был бы смысл.
Цитата:
Приведенный Вами код не имеет очевидного предназначения. Более того, есть вообще подозрение, что он неправильный.
Не знаю насчет правильности, но предназначение кода это смещение некоторого объекта вправо-влево при определенных условиях. Кнопки конечно странные, но нам ли жить в печали?
Цитата:
Зачем - одному ему известно.
А то, а также всем кто хоть раз в жизни делал змейку или тетрис .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 10.05.2012, 17:02   #4
tinton
Пользователь
 
Регистрация: 29.10.2011
Сообщений: 25
По умолчанию

ребят это функция счетчика кнопок для курсовой спорт лото мне бы токаобъяснить сптроки с условиями
if (Ord(readk)=80) or (Ord(readk)=77) then
begin
if x<=y-1 then x:=x+1;
end
Возвращение значений чего.. аски код каких клавишь тут заложен или просто значения?3
tinton вне форума Ответить с цитированием
Старый 10.05.2012, 17:18   #5
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,051
По умолчанию

Цитата:
if (Ord(readk)=80) or (Ord(readk)=77) then
begin
if x<=y-1 then x:=x+1;
end
Вот, примерный, перевод
Код:
Если (нажатая_кнопка=P)или(нажатая_кнопка=M) тогда
 начинаем
  если x<=y-1 ТОГДА x:=x+1
 конец
Noor вне форума Ответить с цитированием
Старый 10.05.2012, 17:35   #6
mrMeerkat
Следопыт
Форумчанин
 
Аватар для mrMeerkat
 
Регистрация: 26.04.2012
Сообщений: 307
По умолчанию

Цитата:
Сообщение от tinton Посмотреть сообщение
Возвращение значений чего.. аски код каких клавишь тут заложен или просто значения?
72 Стрелка вверх
75 Стрелка влево
77 Стрелка вправо
80 Стрелка вниз

Нажатие на эти клавиши присылает по два кода подряд #0 и #72(например),
Поэтому следующий код отбрасывает нули и определяет что именно нажимали:
Код:
readk:=readkey;
if readk=#0 then readk:=readkey;
С Баша:Быть ленивым, глупым, жадным, да и просто редкостным гандоном и мудаком по жизни номально, а вот если ты матом ругаешься-то это да, ужасно и достойно общественного порицания.
mrMeerkat вне форума Ответить с цитированием
Старый 10.05.2012, 20:33   #7
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от tinton Посмотреть сообщение
ребят это функция счетчика кнопок для курсовой спорт лото мне бы токаобъяснить сптроки с условиями
if (Ord(readk)=80) or (Ord(readk)=77) then
begin
if x<=y-1 then x:=x+1;
end
Возвращение значений чего.. аски код каких клавишь тут заложен или просто значения?3
Этот код, по идее, должен реагировать на определенные клавиши. Только выбираются нужные клавиши, скорее всего, неправильно, а реакция - нелогичная.

Цитата:
Сообщение от mrMeerkat Посмотреть сообщение
72 Стрелка вверх
75 Стрелка влево
77 Стрелка вправо
80 Стрелка вниз

Нажатие на эти клавиши присылает по два кода подряд #0 и #72(например),
Поэтому следующий код отбрасывает нули и определяет что именно нажимали:
Код:
readk:=readkey;
if readk=#0 then readk:=readkey;
проблема в том, что нули там не лишние.
В том виде, как написан, код срабатывает не только на указанные клавиши, но еще и на:
72 - H
75 - K
77 - N
80 - P
Чтобы он реагировал только на курсорные клавиши, не хватает пары скобок begin-end.

Последний раз редактировалось Stilet; 10.05.2012 в 20:50.
s-andriano вне форума Ответить с цитированием
Старый 10.05.2012, 21:05   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
В том виде, как написан, код срабатывает не только на указанные клавиши, но еще и на:
72 - H
75 - K
77 - N
80 - P
Согласен. Это меня и настораживает...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объясните код spydark91 Общие вопросы Delphi 2 18.07.2011 19:30
Объясните код ANtonP Помощь студентам 1 22.02.2011 21:19
Объясните код Neymexa SQL, базы данных 1 23.03.2010 17:55
Объясните код Neymexa Общие вопросы по Java, Java SE, Kotlin 1 29.11.2008 02:33
объясните код Rend1 Общие вопросы Delphi 18 01.02.2008 14:52