Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];

Вниз

Inc и Succ   Найти похожие ветки 

 
CMOS ©   (2006-02-05 20:50) [0]

Что такое Inc(x) в Delphi и Pascal?
inc x
или
add x, 1; я думаю именно так

А что такое Succ(x)?
inc x
или
add x, 1


 
Anatoly Podgoretsky ©   (2006-02-05 21:04) [1]

Справку смотрел? Учебники читал?


 
Джо ©   (2006-02-05 21:06) [2]

Successor (англ.) — последующий элемент.


 
Zeqfreed ©   (2006-02-05 21:09) [3]

Следующий вопрос будет про Dec и Pred :)


 
Джо ©   (2006-02-05 21:10) [4]

> [3] Zeqfreed ©   (05.02.06 21:09)
> Следующий вопрос будет про Dec и Pred :)

Лиха беда начало :)


 
Anatoly Podgoretsky ©   (2006-02-05 21:24) [5]

Наверно он решил изучить язык с помощью форума, вместо чтения книг.
Наивный.


 
ВМ_   (2006-02-05 23:30) [6]

И всё-таки.

inc(x) увеличит значение x на 1
add x, 1 - это то же самое, но на ассемблере
succ(x) вернёт следующее значение, а с самой переменной x ничего не сделает


 
Германн ©   (2006-02-06 01:52) [7]


> inc(x) увеличит значение x на 1
> add x, 1 - это то же самое, но на ассемблере


Это, имхо не то же самое, хотя мне тут уже возражали по этому поводу. Хотя кто в нынешнее время обращает внимание на RangeCheck? :(


 
INKDEC   (2006-02-06 02:49) [8]

В основном inc(x) и dec(x) мспользуется для увеличения или уменьшения  указателя на единицу:


procedure TForm1.FormCreate(Sender: TObject);
const  A="0123qwe";
var Buf1: Pointer;
   B:byte;
   i:word;
begin
    Buf1:=@a[1];

    for i:=1 to Length(A) do
    begin
      B:= PByte(Buf1)^ ;
      Inc(PByte(Buf1));
      Memo1.Lines.add(char(b));
    end;
end;


Т.К. нельзя просто написать
Buf1:=Buf1+1


 
CMOS ©   (2006-02-07 14:13) [9]

В любом учебнике говорится, что Inc и Succ увеличивают значение переменной. Мне же нужен их исходный код.

procedure Inc;
begin
...
end;


 
MBo ©   (2006-02-07 14:17) [10]

>Мне же нужен их исходный код
А его нет ;)
Это "Compiler Magic" - при компиляции генерируется код соответственно аргументу (или аргументАМ для Inc)


 
Digitman ©   (2006-02-07 14:18) [11]


> В любом учебнике говорится, что Inc и Succ увеличивают значение
> переменной


Врешь ведь).. насчет "любого"...

Приведи цитату и ссылку на "учебник" ..


 
Vlad ©   (2006-02-07 14:21) [12]


> CMOS ©   (07.02.06 14:13) [9]


> В любом учебнике говорится, что Inc и Succ увеличивают значение
> переменной. Мне же нужен их исходный код.

Inc увеличивает, Succ не увеличивает.


 
evvcom ©   (2006-02-07 14:23) [13]


> add x, 1 - это то же самое, но на ассемблере

касаемо типа PInteger, например, будет
add x, 4
в 32-разрядной версии Windows.


 
Zeqfreed ©   (2006-02-07 14:26) [14]

Хотя исходный код увидеть нельзя — можно увидеть получившийся:

procedure Test();
var
a, b : Integer;
begin
a := 0;
Inc(a);
b := Succ(a);

ShowMessage(Format("Incremented a equals %d; The successor of a is %d", [a, b]));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Test();
end;


Получаем:
a := 0;
xor ebx, ebx

Inc(a);
inc ebx

b := Succ(a);
lea esi, [ebx+$01]


 
palva ©   (2006-02-07 17:09) [15]

> Inc увеличивает, Succ не увеличивает.

Если говорить строго, то не увеличивает, а "берет следующий" для перечислимого типа. Например можно написать:

var b: Boolean;
begin
// ...
b := False;
Inc(b);
WriteLn(b) // True
end.


 
begin...end ©   (2006-02-07 17:17) [16]

> palva ©   (07.02.06 17:09) [15]
> перечислимого

Порядкового.


 
palva ©   (2006-02-07 21:12) [17]

begin...end ©   (07.02.06 17:17) [16]
> Порядкового.
Точно.



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

Форум: "Начинающим";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.036 c
8-1127071368
Sysanin
2005-09-18 23:22
2006.02.26
...быстро перемещать картинку...


4-1133792051
MAXHo
2005-12-05 17:14
2006.02.26
Как скрыть программу в диспетчере задачь? WindowsXP


1-1138250496
snowkam
2006-01-26 07:41
2006.02.26
Консоль


15-1138911475
Piter
2006-02-02 23:17
2006.02.26
Контрольная сумма TTH


4-1133903555
Конопелька
2005-12-07 00:12
2006.02.26
Вторая копия программы !





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский