Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги хакеры / журнал хакер / специальные выпуски / Специальный выпуск 71_Optimized

.pdf
Скачиваний:
1
Добавлен:
20.04.2024
Размер:
19.22 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

10|71|ОКТЯБРЬ 2006

ЕЖЕМЕСЯЧНЫЙ

ТЕМАТИЧЕСКИЙ

КОМПЬЮТЕРНЫЙ

ЖУРНАЛ

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

{

ТОНКОЕ

ДРЕССИРОВАННЫЙ

МАСТЕРСТВО

ПРОГРАММИРОВАНИЯ

ÊÎÄ

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

БОРЬБА С УТЕЧКАМИ РЕСУРСОВ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

И ПЕРЕПОЛНЯЮЩИМИСЯ БУФЕРАМИ 20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

АССЕМБЛЕР ПРОТИВ CИ 24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

КЕРНЕЛ-КОДИНГ 30

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРОГРАММИРОВАНИЕ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

НА НЕСКОЛЬКИХ ЯЗЫКАХ 40

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

НЕСТАНДАРТНЫЕ ВОЗМОЖНОСТИ C# 76

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

intro

ßтебя знаю, дяденька. Ты — программер. Что, не программер? Админ? И все равно —

в некотором роде — программер. Веб-мастер — опять-таки, программер, иначе какой же ты веб-мастер? Продаешь компьютеры

на Савеловке? Ну, это не страшно, в институте же тебя заставляли кодить? Значит — с определенными скидками — тоже программер.

ßклоню к тому, что к какой бы области IT-инду- стрии ты не тяготел — алгоритмическое мышление в целом и новинки программерских технологий в частности помогут тебе. Совсем не обязательно перечитывать Кнута в пятый раз: открой этот номер, твоему вниманию престанут два раздела. Первый — про программерские трюки и алгоритмические мудрости, а второй —

про новейшие веяния в программерском мире. В общем, самый гламур и самый актуальный фэшн :) (я не знаю, что означают эти слова, но, по-моему, что-то хорошее).

Александр Лозовский

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

W W W . X A K E P . R U

Å Æ Å Ì Å Ñ ß × Í Û É Ò Å Ì À Ò È × Å Ñ Ê È É Ê Î Ì Ï Ü Þ Ò Å Ð Í Û É Æ Ó Ð Í À Ë

1 0 | 7 1 | 2 0 0 6

Мнение редакции не всегда совпадает с мнением авторов.

Все материалы этого номера представляют собой лишь информацию к размышлению. Редакция не несет ответственности за незаконные действия, совершенные с ее использованием, и возможный причиненный ущерб.

За перепечатку наших материалов без спроса — преследуем.

РЕДАКЦИЯ Главный редактор

Николай «AvaLANche» Черепанов (avalanche@real.xakep.ru)

Выпускающие редакторы

Александр «Dr.Klouniz» Лозовский (alexander@real.xakep.ru) Андрей Каролик (andrusha@real.xakep.ru)

Редактор CD

Иван «SkyWriter» Касатенко (sky@real.xakep.ru)

Литературный редактор

Настя Глухова

Арт-директор

Иван Васин (vasin@real.xakep.ru)

Дизайнер

Наталья Жукова (zhukova@real.xakep.ru)

Цветокорректор

Александр Киселев (kiselev@real.xakep.ru)

OТДЕЛ РЕКЛАМЫ Директор по рекламе

Игорь Пискунов (igor@gameland.ru)

Руководитель отдела рекламы цифровой группы

Ольга Басова (olga@gameland.ru)

Менеджеры отдела

Ольга Eмельянцева (olgaeml@gameland.ru) Евгения Горячева (goryacheva@gameland.ru) Оксана Алехина (alekhina@gameland.ru) тел.: (495) 935.70.34 факс: (495) 780.88.24

ОТДЕЛ ДИСТРИБУЦИИ Директор отдела дистрибуции и маркетинга

Владимир Смирнов (vladimir@gameland.ru)

Оптовое распространение

Андрей Степанов (andrey@gameland.ru)

Подписка

Алексей Попов (popov@gameland.ru)

Региональное розничное распространение

Татьяна Кошелева (kosheleva@gameland.ru) тел.: (495) 935.70.34 факс: (495) 780.88.24

ИНФОРМАЦИЯ О ВАКАНСИЯХ ИЗДАТЕЛЬСТВА «ГЕЙМ ЛЭНД» Менеджер отдела по работе с персоналом

Марина Нахалова (nahalova@gameland.ru) тел.: (495) 935.70.34 (доб. 454)

ИЗДАТЕЛЬСТВО «ГЕЙМ ЛЕНД» Генеральный Директор

Дмитрий Агарунов (dmitri@gameland.ru)

Управляющий Директор

Давид Шостак (shostak@gameland.ru)

Директор по развитию

Паша Романовский (romanovski@gameland.ru)

Директор по персоналу

Михаил Степанов (stepanovm@gameland.ru)

Финансовый директор

Елена Дианова (dianova@gameland.ru)

Издатель цифровой группы

Борис Скворцов (boris@gameland.ru)

Редакционный директор цифровой группы

Александр Сидоровский (sidorovsky@gameland.ru)

ИНФОРМАЦИЯ О ПОДПИСКЕ

Бесплатный тел.: 8 (800) 200-3-999

ДЛЯ ПИСЕМ

101000, Москва, Главпочтамт, а/я 652, Хакер Спец spec@real.xakep.ru

Отпечатано в типографии «ScanWeb», Финляндия Зарегистрировано в Министерстве Российской Федерации по делам печати, телерадиовещанию и средствам массовых коммуникаций ПИ ¹ 77-12014 от 4 марта 2002 г.

Тираж 42 000 экземпляров. Цена договорная.

ПРОГРАММНОЕ ЗАКУЛИСЬЕ

ФИГУРЫ ПОД КУПОЛОМ

8

структуры данных

 

12

СМЕРТЕЛЬНЫЙ ТРЮК

работа в команде программистов — как быть?

 

16

МАГИЧЕСКИЕ ДВИЖЕНИЯ

скриптование под флеш

 

20

НАВОДНЕНИЕ В ЦИРКЕ

борьба с утечками ресурсов и переполняющимися буферами

 

24

БОЛЕВОЙ ПРИЕМ

ассемблер против си

 

30

ЖОНГЛИРОВАНИЕ ЯДРОМ

кернел-кодинг

 

34

ЗНАМЕНИТЫЕ ТРЮКАЧИ

популярные алгоритмы

 

38

МЕДИТАЦИЯ

правила составления комментариев

 

40

СТРЕЛЬБА С ОБЕИХ РУК

программирование на нескольких языках

 

48

КАК СДЕЛАТЬ ИЗ СЛОНА МУХУ

обработка больших объемов данных в небольшом пространстве

 

52

ЧУДЕСА ЛЕГКОСТИ

рефакторинг — необходимость или мода

 

56

АКРОБАТИКА ДЛЯ ПРОГРАММИСТА

 

мощь и беспомощность автоматической оптимизации

НОВЫЕ ФОКУСЫ

ОРОЧИЙ КУЛЬБИТ

60

c# 3.0 + linq = любовь

 

66

ШОУ ДЕЛЬФИНОВ

delphi 2006 — новая реальность

 

68

ДУБЛЕР КАСКАДЕРА

альтернатива xml

 

74

МОБИЛЬНЫЕ ПРЕДСТАВЛЕНИЯ

symbian tips'n'tricks

 

76

ТАНЦУЯ НА РЕШЕТКЕ

 

обзор нестандартных возможностей с#

SPECIAL DELIVERY

SPECIAL ИНТЕРВЬЮ

78

интервью с Михаилом Фленовым

 

80

SPECIAL ОПРОС

мнения профессионалов

 

84

SPECIAL ОБЗОР

олимпийские соревнования по программированию

 

88

SPECIAL FAQ

вопросы эксперту

 

90

SPECIAL ОБЗОР

 

обзор книг по теме номера

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

МИХАИЛ ФЛЕНОВ

НАСТОЯЩИЙ Х-ЧЕЛОВЕК.

С МОМЕНТА ОСНОВАНИЯ СПЕЦА

ÈХАКЕРА — ОН С НАМИ. ОН — ЭТО CYDSOFT.COM, ОН ЖЕ — VR-ONLINE.RU,

ÈОН ЖЕ — АВТОР МНОЖЕСТВА КНИГ ПО ПРОГРАММИРОВАНИЮ

ÈКУЧИ ПЛАТНЫХ И БЕСПЛАТНЫХ ПРОГРАММ. В ОБЩЕМ, ЭКСПЕРТ ЭТОГО НОМЕРА

offtopic

HARD

CREW

МАТЕРИНСКОЕ СЕРДЦЕ

E-ÌÛËÎ

90

86

 

тест материнских плат под socket 754

 

пишите письма!

SOFT

STORY

NONAME

РАССКАЗ

80

104

наисвежайшие программы от nnm.ru

форс-мажор

 

 

82

АДМИНИНГ

112

ИСХОДНИКИ ВСЕЛЕННОЙ

 

настройка Firewall

 

записки хакера

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

cd:

#include <mind> #include <inspiration>

int main()

{

if (!have_tools()) { load_cd();

while (1) enjoy();

}

}

ИНСТРУМЕНТЫ

JDK 1.5.0 äëÿ Windows Borland C++ Builder 6 JDK 1.5.0 äëÿ Linux OllyDbg 1.10 APISpy32 3.0

Набор инструментов с wasm.ru без купюр!

LOWLEVEL

ВОКРУГ

ÑÎÔÒ

КОДИНГ

ДА ОКОЛО

 

ÎÒ NONAME

LiveKd ñ sysinternals.com

DoxyGen 1.4.7 (Windows/*IX)

 

ABoo 0.6

 

 

 

 

 

Masm32 8.0

DoxyWizard 1.4.7

 

Advanced Spyware Remover v.1.5

 

 

 

 

 

nasm-0.98.39

JavaDoc 1.5.0

 

GeeXboX v1

 

 

 

 

 

TASM32

Элементы теории графов

 

KlipFolio 3.1

 

 

 

 

 

MPLab IDE 7.42

Graphviz 2.8 (Windows/Linux)

 

IP Shifter v2.1

 

 

 

 

 

PIC Simulator IDE

 

 

 

ApexDc++ 0.2.1

8085 Simulator Addin

 

 

 

History Sweeper 2.71

 

 

 

 

 

Z80 Similator Addin

 

 

 

Windows Updates Downloader 2

 

 

 

 

 

Полная документация

 

 

 

BitSpirit 3.2

по контроллерам Microchip

 

 

 

GRSoftware GRBackPro v6

 

 

 

 

 

WinDriver 8.10 x32

 

 

 

Eudora 7

 

 

 

 

 

 

 

 

 

Dupeguru v2

 

 

 

 

Actual Reminder 2

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

o

 

 

P

 

 

 

 

BUY

NOW!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

 

 

df

 

 

 

n

e

 

 

 

 

 

 

 

-x cha

 

 

 

 

Все цены действительны на момент публикации рекламы

Game Cube

PS 2

Xbox 360

$209.99

$179.99

$549.99

НЕ СКУЧАЙ!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ДОМА И

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В ДОРОГЕ

 

Nintendo DS litle

 

PSP

ИГРАЙ!

 

 

$199.99

 

$239.99

 

 

 

 

Покупку можно оплатить

 

 

 

Игру доставят в день заказа

 

 

Не нужно выходить из дома,

 

 

 

 

 

 

 

 

кредитной картой

 

 

 

 

 

 

 

 

 

 

 

 

чтобы сделать заказ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Resident Evil

Resident Evil 0

Skies of Arcadia

Wario World

Elder Scrolls IV:

Hitman Blood

Dead or Alive 4

Ninety Nine

Final Fantasy X

$55.99

(Zero)

Legends

 

 

Oblivion

Money

 

 

Nights

(Platinum)

$55.99

$59.99

$59.99

$79.99

$79.99

$79.99

$89.99

$39.99

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Getaway: Черный

God of War

Grand Theft Auto:

Ico

Killzone

Metal Gear Solid 3:

 

 

 

 

 

понедельник (рус. субтитры)

 

Liberty City Stories

 

(Platinum)

Snake Eater (Steel Book Edition)

$29.99

$29.99

$45.99

$35.99

$29.99

$69.99

Prince of Persia:

Resident Evil 4

Warrior Within

(Limited Edition)

$39.99

$69.99

Silent Hill Collection 2-3-4

$55.99

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

time

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

to

BUY

 

 

 

 

 

w Click

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Андрей Каролик andrusha@real.xakep.ru

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

1965

Впервые основные идеи структурного программирования были высказаны Эдсгером Дейкстрой. Разрабатывая идеи структурного программирования, Дейкстра решал задачу доказательства правильности программ. То есть искал ответ на вопрос, какими должны быть структуры программ, чтобы без чрезмерных усилий можно было находить доказатель-

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

1967

1969

Simula 67 — первый объектно-ориен-

рования (прежде всего с Fortran).

тированный язык программирования.

Прохладному отношению способ-

Он был разработан группой сотруд-

 

ствовало и то, что его реализация бы-

ников Норвежского Вычислительно-

ла весьма неэффективна. Но впо-

го Центра (Norwegian Computing Cen-

следствии идеи языка Simula 67 были

ter) в Осло под руководством Оле Йо-

заслуженно оценены и положены в

хана Даля (Ole Johan Dahl) и Кристе-

основу современных объектно-ори-

на Нигарда (Kristen Nygaard) для ре-

ентированных языков программиро-

шения задач моделирования слож-

вания — C++, Smalltalk, Eiffel и тому

ных систем. Но Simula 67 опередил

подобных.

свое время и не выдержал конкурен-

 

ции с другими языками программи-

1983

 

 

 

 

 

 

 

 

Группой исследователей во главе с

 

 

Б.Страуструпом был разработан

 

 

язык программирования C++ — логи-

 

 

ческое продолжение языка програм-

 

 

мирования C в направлении объект-

 

 

ной ориентированности. Он поддер-

 

 

живает разные парадигмы програм-

 

 

мирования: процедурную, обобщен-

 

 

ную, функциональную. Название C++

 

 

придумал Рик Масситти, — оно ука-

 

 

зывает на эволюционную природу пе-

 

 

рехода к нему от C, так как «++» —

 

 

это операция приращения. Любимая

 

 

шутка Страуструпа: «Знатоки семан-

 

 

тики языка находят, что C++ хуже,

 

 

÷åì ++C».

 

 

 

Сотрудники Bell Labs Кен Томпсон и Денис Ритчи занимались развитием языка Би, а в итоге за несколько лет разработали Си — стандартизованный процедурный язык программирования. Он изначально был создан для использования в операционной системе UNIX, но с тех пор портирован на многие другие операционные системы и стал одним из самых используемых языков программирования. Си ценят за его эффективность, и для него характерны лаконичность, современный набор конструкций управления потоком выполнения, структур данных и обширный набор операций.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

1993

Borland Delphi появляется в России и сразу же завоевывает широкую популярность. Новые версии выходят практически каждый год. В них реализуются все новые мастера, компоненты и технологии программирования. Таким успехом Delphi обязан процессу разработки, который в нем предельно упрощен. В первую оче- редь это относится к созданию интерфейса, на который уходит до 80% времени разработки программы. Delphi — результат развития языка Турбо Паскаль, который, в свою оче- редь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль 5.5 добавил обьектно-ориентированные свойства, а Delphi уже стал полноценным объектно-ориентированным языком программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

1995

Sun официально объявила о языке Java. Хотя началось все в 1991 году, когда компания Sun Microsystems финансировала собственный исследовательский проект под кодовым названием «Green». Причиной было желание разработчиков найти универсальный язык программирования, чтобы соединить воедино все подключенные к сети приборы, будь то суперкомпьютеры или какие-ни- будь холодильники с автоматиче- ским заказом закончившихся продуктов. В результате был создан язык на основе языков C и C++ — «Oak», названый так в честь дуба, растущего за окном здания Sun. Правда, позже было обнаружено, что язык программирования с названием «Oak» уже существует. После визита в местное кафе было предложено имя Java, закрепившееся в последствии за языком.

1998

Начал разрабатываться проект, получивший кодовое название COOL (C-style Object Oriented Language). Это некий стратегический противовес Microsoft в отношении Java, так как последний создала конкурирующая фирма Sun Microsystems при поддержке двух других злейших врагов Microsoft — Oracle и IBM. Первая версия C# напоминала по своим возможностям Java 1.4, несколько их расширяя. И только в 2000 году компания Microsoft анонсировала платформу .NET и новый язык программирования, получивший название C# («си-шарп»).

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

r

 

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

/ 59

 

 

 

 

BUY8

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

08

 

 

 

o

 

ПОД КУПОЛОМ

 

.

 

 

 

ФИГУРЫ.c

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

-xcha

 

СМЕРТЕЛЬНЫЙ ТРЮК

 

 

 

 

 

12

 

 

 

 

 

 

16

 

МАГИЧЕСКИЕ ДВИЖЕНИЯ

 

 

 

 

 

20

 

НАВОДНЕНИЕ В ЦИРКЕ

ПРОГРАММНОЕ

ЗАКУЛИСЬЕ

24

БОЛЕВОЙ ПРИЕМ

40

СТРЕЛЬБА С ОБЕИХ РУК

30

ЖОНГЛИРОВАНИЕ ЯДРОМ

48

КАК СДЕЛАТЬ ИЗ СЛОНА МУХУ

34

ЗНАМЕНИТЫЕ ТРЮКАЧИ

52

ЧУДЕСА ЛЕГКОСТИ

38

МЕДИТАЦИЯ

56

АКРОБАТИКА ДЛЯ ПРОГРАММИСТА

фигуры

ïîä

куполом

 

СТРУКТУРЫ ДАННЫХ

 

ПРИ СОЗДАНИИ ПРАКТИЧЕСКИ ЛЮБОЙ ПРОГРАММЫ РАЗРАБОТЧИК ОБЯЗАТЕЛЬНО

 

СТАЛКИВАЕТСЯ С ПРОБЛЕМОЙ ВЫБОРА СПОСОБА ПРЕДСТАВЛЕНИЯ ОБРАБАТЫВАЕМЫХ

 

ДАННЫХ. СУЩЕСТВУЮТ МЕТОДОЛОГИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ,

 

ПРЕДЛАГАЮЩИЕ НАЧИНАТЬ ПРОЕКТИРОВАНИЕ ИМЕННО С ФОРМАЛИЗАЦИИ ДАННЫХ

 

 

(ТАК НАЗЫВАЕМЫЕ DATA DRIVEN ПОДХОДЫ)

 

 

 

 

 

 

 

Антон Палагин aka Tony

 

 

 

 

 

 

tony@eykontech.com

массивы. Классический способ объедине-

 

 

 

 

ний данных, который можно встретить в любом

 

 

 

 

языке программирования. Массив — это последо-

 

 

 

 

вательный набор данных. Каждый элемент мас-

 

 

 

 

сива обладает своим порядковым номером.

к ним с помощью оператора «», а также механиз-

В языках программирования, которые позволяют

ма итераторов.

 

 

обратиться напрямую к оперативной памяти, эле-

 

Естественно, функциональность вектора этим

менты массива хранятся в памяти друг за другом.

не ограничивается, он также позволяет вставлять

Из кода C/C++ к элементам массива можно обра-

новые элементы в начало, середину и конец век-

титься с помощью оператора «i», где i — порядко-

тора. Этим занимаются функции поэлементной и

вый номер элемента массива. Аналогом Си-мас-

интервальной вставки insert, push_front и push_back.

сива является контейнер STL vector, который га-

Кроме вставки вектор также позволяет произво-

рантирует последовательное размещение в па-

дить поэлементное и интервальное удаление сво-

мяти элементов массива, обеспечивает доступ

их элементов с помощью функций erase и clear.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha