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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2013, 18:16   #1
Ivannikov-Vlad
 
Регистрация: 13.03.2013
Сообщений: 6
По умолчанию что означают функции?

что означает:
1. функция Point?
2. строка if TPoint.x in [1,2,3] then lx:=1?
3. строка Pos(Key,'0123456789'#8) = 0?
Ivannikov-Vlad вне форума Ответить с цитированием
Старый 22.03.2013, 19:13   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,528
По умолчанию

http://www.delphibasics.ru/P.php
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 23.03.2013, 12:23   #3
Ivannikov-Vlad
 
Регистрация: 13.03.2013
Сообщений: 6
По умолчанию

и еще вопрос под пунктом 2 там пишется TPoint.x in [1,2,3] означает что если х или 1 или 2 или 3 то lx=1? я правильно ее понял?

и в 3 пункте , что в скобках что означает Key? '0123456789'? #8?
Ivannikov-Vlad вне форума Ответить с цитированием
Старый 23.03.2013, 13:01   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,528
По умолчанию

1. да
2.1. указание переменной в которой хранится что-то нам нужное.(зачем оно нам нужно в предыдущем посте)
2.2. ' начало (и конец) записи символов c помощью алф.цифр. символов (тех которые есть на клавиатуре).
#8 запись символа в шестнадцатеричном виде (ASCII код) (для тех символов у которых нет символьного представления или его почему либо неудобно использовать).
все вместе есть строковая константа (значение для использования заданное непосредственно в месте использования) в отличие от переменной где значение было задано когда-то ранее.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 23.03.2013, 13:58   #5
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,886
По умолчанию

Цитата:
строка Pos(Key,'0123456789'#8) = 0
наиболее вероятно, что она используется как
Код:
if Pos(Key,'0123456789'#8) = 0 then
...
Она означает проверку: символ записанный в переменную key не находится в строке из символов (т.е. его позиция в строке = 0 , ну а символы строки нумеруются с 1)
Такое часто используется в проверке ввода в эдит - когда программа ограничивает ввод любых символов, кроме тех , что в строке - все цифры и делит (#8 если не ошибаюсь это делит, или же бекспейс)
phomm вне форума Ответить с цитированием
Старый 23.03.2013, 21:24   #6
Ivannikov-Vlad
 
Регистрация: 13.03.2013
Сообщений: 6
По умолчанию

спасибо большое
Ivannikov-Vlad вне форума Ответить с цитированием
Старый 07.04.2013, 15:43   #7
Ivannikov-Vlad
 
Регистрация: 13.03.2013
Сообщений: 6
По умолчанию

if Pos(Key,'0123456789'#8) = 0 then объясните конкретно что за функция
что записано в апострофах, и что оночают #8?

помогите пожалуйста разобраться , опишите как можно подробнее что означают
1.
Код:
function sudInRow(s:TSudoku;a:TPoint;c:integer):boolean; (именно та строчка где  ???)
var
  i:1..9;
begin
  Result:=True;
  for i:=1 to 9 do
    if a.x<>i then    ???
      if s[i,a.Y]=c then Exit;
  Result:=False;
end;
2. те места где вопросы
Код:
var
  ix,iy:0..8;
  lx,ly:0..8;
begin
  lx:=0; ly:=0;
  if a.x in [1,2,3] then lx:=1; ???
  if a.x in [4,5,6] then lx:=4;
  if a.x in [7,8,9] then lx:=7;
  lx:=lx-1;
  if a.y in [1,2,3] then ly:=1;
  if a.y in [4,5,6] then ly:=4;
  if a.y in [7,8,9] then ly:=7;
  ly:=ly-1;
  Result:=True;
  for ix:=1 to 3 do
    for iy:=1 to 3 do
      if (a.x<>lx+ix) and (a.y<>ly+iy) then   ???
        if s[lx+ix,ly+iy]=c then Exit;
  Result:=False;
end;
3.
Код:
function sudMod(s:TSudoku;a:TPoint;c:integer):TSudoku;  (что делает вся эта функция?)
var
  st:TSudoku;
begin
  st:=s;
  st[a.x,a.y]:=c;
  Result:=st;
end;
4.
Код:
procedure sudAddAns(s:TSudoku); (что делает вся эта функция?)
var
  l:integer;
begin
  l:=Length(ans);
  SetLength(ans,l+1);
  ans[l]:=s;
end;
5.
Код:
function DoRec(s:TSudoku):boolean;  (что делает вся эта функция?)
var
  c:integer;
  a:TPoint;
begin
  Result:=True;
  if IsNextUnknown(s,a) then begin
    for c:=1 to 9 do
      if not sudInAny(s,a,c) then
        if DoRec(sudMod(s,a,c)) then
          Exit;
  end else begin
    sudAddAns(s);
  end;
  if Length(ans)<mlen then
    Result:=False;
end;
6.
Код:
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);//Sender - это управляющий элемент, посылающий сообщения функции, в которой он фигурирует.
var
  ci:integer;          ???
  ix,iy:integer;
  CEdit:TEdit;
begin
  for iy:=1 to 9 do
    for ix:=1 to 9 do
      if Sender is TEdit then
        if (Sender as TEdit)=CEdits[ix,iy] then
          CEdit:=CEdits[ix,iy];
  if (Sender as TEdit)=CEdits[9,9] then
    Exit;
  if Pos(Key,'0123456789'#8) = 0 then
    Key:= #0;
  if Key <> #8 then begin
    ci:=CEdit.ComponentIndex;
    (self.Components[ci+1] as TEdit).SetFocus;
  end;
end;
объясните если подробнее( в последнем желательно по строчкам )

Последний раз редактировалось Stilet; 07.04.2013 в 19:06.
Ivannikov-Vlad вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что означают CreateEvent и WaitForSingleObject? _PROGRAMM_ Помощь студентам 4 05.04.2012 13:29
Что означают? Ramazan05duldug Паскаль, Turbo Pascal, PascalABC.NET 1 18.07.2011 13:45
что означают эти записи??? LezhiK Помощь студентам 1 19.04.2011 17:08
что означают ... в этом коде? Rondo Помощь студентам 1 28.01.2011 11:45
Что означают эти строки? DriverSTi Помощь студентам 15 09.01.2010 13:36