-
Здравствуйте уважаемые мастера! Мне нужен материал по: 1)Динамические переменные 2)Классы 3)Структура дерева. Могут ли мастера ПОРЕКОМЕНДОВАТЬ что-нибудь по этим темам, чтобы всё это было в одной книнге,а то не могу найти all-in-one книгу... Спасибки.
-
А что такое "динамическая переменная"???
-
> а то не могу найти all-in-one книгу...
Дональд Кнут одназначно. А вот классы в каждом языке свои, так что в одной не получиться.
-
Структура дерева - это частный случай графа, где есть "корень" и каждая "ветвь" заканчивается "узлом".
-
> Ega23 © (10.12.08 12:24) [1] > А что такое "динамическая переменная"???
Видимо то, что создаётся с помощью New
New procedure Creates a new dynamic variable and sets P to point to it.
-
> Видимо то, что создаётся с помощью New > > New procedure > Creates a new dynamic variable and sets P to point to it.
Какая же она динамическая? Её адрес же не меняется.
-
> Видимо то, что создаётся с помощью New
Все переменные в Delphi создаются с помощью var :-P
-
> Ins © (10.12.08 12:56) [6]
Некоторые с помощью const
-
> Некоторые с помощью const
Вот, кстати, тоже извращение. Нафиг нужна константа, значение которой можно изменить? Я понимаю ещё явное задание типа константы (порой крайне необходимо). Но смену значения...
-
> Нафиг нужна константа, значение которой можно изменить? > Я понимаю ещё явное задание типа константы (порой крайне > необходимо). Но смену значения...
А совсем недавно тут обсуждали тесты Квинтаны от Антона Григорьева, там в одном из тестов есть на эту тему. Выдержка из комментария: Локальные типизированные константы – это очень интересные объекты. На самом деле это глобальные переменные с локальной областью видимости, т.е. такие переменные, которые существуют на протяжении всего времени работы программы, но обратиться к ним можно только внутри той функции, в которой они объявлены. Начальное значение присваивается им один раз при запуске программы, поэтому, если внутри их значение меняется, при очередной активации функции их значение будет таким, каким было при завершении предыдущей активации. Можно придумать интересное применение этому, я думаю. В частности, видел как на них был построен счетчик ссылок то ли для смарт-поинтера, то ли для синглтона. Совсем другое дело, почему они называются константами??? Вот это да, вопрос. Наверное, это исторически так получилось.
-
> Ins © (10.12.08 14:16) [9]
Это, кажется, с 7-го Паскаля уже.
-
> Это, кажется, с 7-го Паскаля уже.
Что именно?
-
-
> Ega23 © (10.12.08 14:02) [8] > Нафиг нужна константа, значение которой можно изменить? Для совместимости со старым кодом. В классическом Виртовском Паскале были 2 конструкции: const имя [: тип] = значение;
var имя: тип; причем значение константы нельзя было менять, а значение переменной нельзя было задавать - таким образом, отсутствовала возможность инициализации переменных сразу при их объявлении и приходилось прописывать явную инициализацию. Это неудобство было устранено в ТурбоПаскале, где ввели возможность изменения констант (то есть, превратили константы в инициализируемые переменные). Далее это решение перетекло в Delphi (потому что пользователям нужно был портировать в Delphi код ТурбоПаскалевских программ), а потом в Delphi добавили и инициализацию самих переменных (сохранив изменяемые константы для совместимости).
-
> Дональд Кнут одназначно. А вот классы в каждом языке свои, > так что в одной не получиться.
Ах эта настольная книга для программистов... Кнут... без кнута и пряника его не понять) А про классы в С++ и Pascal что посоветуете?
-
Н.Вирт. Алгоритмы и структуры данных. Это про кучи. Рэй Лишнер! что-то про "Недокументированные возможности D2". Дальше гуглить, батенька, или на Ozon за книгами :).
-
:) > Это неудобство было устранено в ТурбоПаскале, где ввели > возможность изменения констант (то есть, превратили константы > в инициализируемые переменные).
procedure AnyProc:
const
AnyConst : integer = AnyConstValue;
begin
...
inc(AnyConst);
...
end;
Был случай, когда человек недоумевал, почему значение, описанной локально константы, не инициализируется "нужным" значением, при входе в процедуру, где она, собственно, и была определена. :))
-
> Ins © (10.12.08 12:56) [6] > > Видимо то, что создаётся с помощью New > Все переменные в Delphi создаются с помощью var :-P
А как прогнать все переменные? :)
-
> Городской Шаман (11.12.08 01:52) [17] > А как прогнать все переменные? :)
Эта... типа, совсем выгнать? И остаться только с типизированными константами, что есть суть глобальные, но переменные, которые надо "прогнать"? Я в Вашей матрице не участвую... :)
-
> а потом в Delphi добавили и инициализацию самих переменных > (сохранив изменяемые константы для совместимости).
"Новое - хорошо забытое старое".
|