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

Вниз

Мастера порекомендуйте книжку.   Найти похожие ветки 

 
programmer90   (2008-12-10 12:13) [0]

Здравствуйте уважаемые мастера!
Мне нужен материал по:
 1)Динамические переменные
 2)Классы
 3)Структура дерева.
Могут ли мастера ПОРЕКОМЕНДОВАТЬ что-нибудь  по этим темам, чтобы всё это было в одной книнге,а то не могу найти all-in-one книгу...
Спасибки.


 
Ega23 ©   (2008-12-10 12:24) [1]

А что такое "динамическая переменная"???


 
tesseract ©   (2008-12-10 12:25) [2]


> а то не могу найти all-in-one книгу...


Дональд Кнут одназначно.  А вот классы в каждом языке свои, так что в одной не получиться.


 
Ega23 ©   (2008-12-10 12:25) [3]

Структура дерева - это частный случай графа, где есть "корень" и каждая "ветвь" заканчивается "узлом".


 
Skyle ©   (2008-12-10 12:29) [4]


> Ega23 ©   (10.12.08 12:24) [1]
> А что такое "динамическая переменная"???

Видимо то, что создаётся с помощью New

New procedure
Creates a new dynamic variable and sets P to point to it.


 
Ega23 ©   (2008-12-10 12:50) [5]


> Видимо то, что создаётся с помощью New
>
> New procedure
> Creates a new dynamic variable and sets P to point to it.


Какая же она динамическая? Её адрес же не меняется.


 
Ins ©   (2008-12-10 12:56) [6]


> Видимо то, что создаётся с помощью New


Все переменные в Delphi создаются с помощью var :-P


 
Дуб ©   (2008-12-10 13:59) [7]


> Ins ©   (10.12.08 12:56) [6]

Некоторые с помощью const


 
Ega23 ©   (2008-12-10 14:02) [8]


> Некоторые с помощью const


Вот, кстати, тоже извращение.
Нафиг нужна константа, значение которой можно изменить? Я понимаю ещё явное задание типа константы (порой крайне необходимо). Но смену значения...


 
Ins ©   (2008-12-10 14:16) [9]


> Нафиг нужна константа, значение которой можно изменить?
> Я понимаю ещё явное задание типа константы (порой крайне
> необходимо). Но смену значения...


А совсем недавно тут обсуждали тесты Квинтаны от Антона Григорьева, там в одном из тестов есть на эту тему. Выдержка из комментария:
Локальные типизированные константы – это очень интересные объекты. На самом деле это глобальные переменные с локальной областью видимости, т.е. такие переменные, которые существуют на протяжении всего времени работы программы, но обратиться к ним можно только внутри той функции, в которой они объявлены. Начальное значение присваивается им один раз при запуске программы, поэтому, если внутри их значение меняется, при очередной активации функции их значение будет таким, каким было при завершении предыдущей активации.
Можно придумать интересное применение этому, я думаю. В частности, видел как на них был построен счетчик ссылок то ли для смарт-поинтера, то ли для синглтона. Совсем другое дело, почему они называются константами??? Вот это да, вопрос. Наверное, это исторически так получилось.


 
Дуб ©   (2008-12-10 14:20) [10]


> Ins ©   (10.12.08 14:16) [9]

Это, кажется, с 7-го Паскаля уже.


 
Ins ©   (2008-12-10 16:41) [11]


> Это, кажется, с 7-го Паскаля уже.


Что именно?


 
Rouse_ ©   (2008-12-10 16:45) [12]

http://rouse.drkb.ru/books.php#knut


 
Юрий Зотов ©   (2008-12-10 17:36) [13]

> Ega23 ©   (10.12.08 14:02) [8]

> Нафиг нужна константа, значение которой можно изменить?

Для совместимости со старым кодом.

В классическом Виртовском Паскале были 2 конструкции:
const имя [: тип] = значение;
var имя: тип;

причем значение константы нельзя было менять, а значение переменной нельзя было задавать - таким образом, отсутствовала возможность инициализации переменных сразу при их объявлении и приходилось прописывать явную инициализацию.

Это неудобство было устранено в ТурбоПаскале, где ввели возможность изменения констант  (то есть, превратили константы в инициализируемые переменные). Далее это решение перетекло в Delphi (потому что пользователям нужно был портировать в Delphi код ТурбоПаскалевских программ), а потом в Delphi добавили и инициализацию самих переменных (сохранив изменяемые константы для совместимости).


 
programmer90   (2008-12-11 01:03) [14]


> Дональд Кнут одназначно.  А вот классы в каждом языке свои,
>  так что в одной не получиться.

Ах эта  настольная книга для программистов... Кнут... без кнута и пряника его не понять)
А про классы в  С++ и Pascal что посоветуете?


 
korneley ©   (2008-12-11 01:31) [15]

Н.Вирт. Алгоритмы и структуры данных. Это про кучи. Рэй Лишнер! что-то  про "Недокументированные возможности D2". Дальше гуглить, батенька, или на  Ozon за книгами :).


 
korneley ©   (2008-12-11 01:46) [16]

:)

> Это неудобство было устранено в ТурбоПаскале, где ввели
> возможность изменения констант  (то есть, превратили константы
> в инициализируемые переменные).


procedure AnyProc:
const
 AnyConst : integer = AnyConstValue;
begin
...
 inc(AnyConst);
...
end;

Был случай, когда человек недоумевал, почему значение, описанной локально константы, не инициализируется "нужным" значением, при входе в процедуру, где она, собственно, и была определена. :))


 
Городской Шаман   (2008-12-11 01:52) [17]


> Ins ©   (10.12.08 12:56) [6]
> > Видимо то, что создаётся с помощью New
> Все переменные в Delphi создаются с помощью var :-P


А как прогнать все переменные? :)


 
korneley ©   (2008-12-11 02:00) [18]


> Городской Шаман   (11.12.08 01:52) [17]
> А как прогнать все переменные? :)

Эта... типа, совсем выгнать? И остаться только с типизированными константами, что есть суть глобальные, но переменные, которые надо "прогнать"? Я в Вашей матрице не участвую... :)


 
Германн ©   (2008-12-11 02:09) [19]


> а потом в Delphi добавили и инициализацию самих переменных
> (сохранив изменяемые константы для совместимости).

"Новое -  хорошо забытое старое".



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

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

Наверх





Память: 0.49 MB
Время: 0.006 c
15-1228931271
Noone
2008-12-10 20:47
2009.02.08
DELPHi На ubuntu


2-1229960849
Sairex
2008-12-22 18:47
2009.02.08
Запамятовал... как из реестра удалить парамметр?


4-1204870208
soi.hash
2008-03-07 09:10
2009.02.08
Ждущий режим


15-1228851450
Вопросик
2008-12-09 22:37
2009.02.08
Подскажите софтинку


2-1230543206
Pavel
2008-12-29 12:33
2009.02.08
Вывод в таблицу имен столбцов





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