 
        
        книги хакеры / журнал хакер / специальные выпуски / Специальный выпуск 4_compressed
.pdf 
| Æ Ó Ð Í À Ë | Ê Î Ì Ï Ü Þ Ò Å Ð Í Û Õ | Õ Ó Ë È Ã À Í Î Â | |
| 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
w w w . x a k e p . r u
!CA0A21b
design by modernart.ru
 
 
Дарова, перец! Ты находишься на пороге новой жизненной эпохи - будешь с нами сегодня кодить. Программировать, то есть. Боишься? Думаешь, это заморо- ченное занятие, долгое и нудное, от которого сдвиг по фазе начи- нается, и, к тому же, только избранным яйцеголовым доступное? Хорош, не бойся! Не боги горшки обжигают. Современные языки программирования позволяют тебе практически без строчки кода САМОМУ написать прикольные проги - и не какие-нибудь “2 + 2 = 3,5”, а настоящие - плееры всякие, инет - броузеры. Так можно даже простенького троянского коня написать! И при этом не нужно заморачиваться понятиями, типа “билинейная структура данного алгоритма не позволяет интерполировать данный полином”, и про- чей фигней. Просто берешь в руки мышь, в зубы - Х, и - вперед! Главное - не стрематься, и через пару часов у тебя будет уже целый арсенал реальных, работающих программ! Так что - от винта, поехали и вс¸ такое. Я пристегнут, а ты? Пора. Пристегнись.
editorial
/братская могила/
| Редакция | Координатор проекта: | |
| 
 | Сергей Покровский | |
| 
 | (pokrovsky@xakep.ru) | |
| 
 | Главный редактор: Александр | |
| 
 | Черных (holod@xakep.ru) | |
| 
 | Второе дыхание: | |
| 
 | Александр Сидоровский | |
| 
 | (2poisonS@xakep.ru) | |
| 
 | добрая фея | 
 | 
| 
 | Игорь Пискунов | |
| 
 | (igor@gameland.ru) | |
| 
 | замполит-политрук | |
| 
 | Алена Скворцова | |
| 
 | (alyona@gameland.ru) | |
| Art | Aрт-директор | |
| 
 | R.SKY | 
 | 
| 
 | (matrix@xakep.ru), | |
| 
 | дизайн и обложка | |
| 
 | Griff | 
 | 
| 
 | modernart.ru | 
 | 
| 
 | дизайн верстка | |
| 
 | Таня Отакуева | |
| 
 | (osyako@gameland.ru) | |
| Реклама | руководитель отдела | |
| 
 | Игорь Пискунов | |
| 
 | (igor@gameland.ru) | |
| 
 | менеджеры отдела | |
| 
 | Алексей Анисимов | |
| 
 | (anisimov@gameland.ru) | |
| 
 | Басова Ольга | 
 | 
| 
 | (olga@gameland.ru) | |
| 
 | Крымова Виктория | |
| 
 | (vika@gameland.ru) | |
| 
 | òåë.: | (095) 229.43.67 | 
| 
 | 
 | (095) 229.28.32 | 
| 
 | ôàêñ: | (095) 924.96.94 | 
| Оптовая | руководитель отдела | |
| продажа | Владимир Смирнов | |
| 
 | (vladimir@gameland.ru) | |
| 
 | менеджеры отдела | |
| 
 | Андрей Степанов | |
| 
 | (andrey@gameland.ru) | |
| 
 | Самвел Анташян | |
| 
 | (samvel@gameland.ru) | |
| 
 | òåë.: | (095) 292.39.08 | 
| 
 | 
 | (095) 292.54.63 | 
| 
 | ôàêñ: | (095) 924.96.94 | 
| PUBLISHING | учредитель и издатель | |
| 
 | ÇÀÎ “Ãåéì Ëýíä” | |
| 
 | директор | 
 | 
| 
 | Дмитрий Агарунов | |
| 
 | (dmitri@gameland.ru) | |
| 
 | финансовый директор | |
| 
 | Борис Скворцов | |
| 
 | (boris@gameland.ru) | |
| Для писем | 101000, Москва, | |
| 
 | Главпочтамп, | 
 | 
| 
 | а/я 652, Хакер | |
| Web-Site | http://www.xakep.ru | |
| magazine@xakep.ru | ||
Мнение редакции не обязательно совпадает с мнением авторов. Редакция не несет ответственности за те моральные и физические увечья, которые вы или ваш комп можете получить, руководствуясь информацией, почерпнутой из статей номера. Редакция не несет ответственности за содержание рекламных объявлений в номере.
Отпечатано в типографии «ScanWeb», Финляндия
Зарегистрировано в Министерстве Российской Федерации по делам печати, телерадиовещанию и средствам массовых коммуникаций
ÏÈ ¹ 77-1905 от 15 марта 2000 г.
Тираж 57 000 экземпляров. Цена договорная.
Журнал презентуется всем пассажирам, летающим рейсами авиакомпании “ИГИДА АЭРО”
 
| 2 | 0002 | СОДЕРЖАНИЕ | 
 | 
 | >СПЕЦВЫПУСК #4 | 
 | 
| 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 68 | 
 | Твой собственный веб-броузер | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 71 | 
 | Инсталлим языки программирования | 
 | 
 | 
 | ||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 74 | 
 | Высший пилотаж - пишем клавиатурный | 
 | 
 | 
 | ||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | сниффер | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | 
 | 78 | 
 | Смотрелка в домашних условиях | 
 | 
 | 
 | ||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 80 | 
 | Getright своими руками | 
 | 
 | 
 | ||||||||||||||
| 
 | 1 | Вступительная | 
 | 
 | 
 | 
 | |||||||||||||||||||
| 
 | 
 | 84 | 
 | Сканер портов? ЛЕГКО! | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 2 | Содержание | 
 | 86 | 
 | Справочник конспиративных квартир на ВБ | 
 | 
 | 
 | ||||||||||||||||
| 
 | 4 | Глоссарий | 
 | 90 | 
 | Азм - проще некуда | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||
| 
 | 12 | Как создается программа | 
 | 92 | 
 | Текстовый редактор на дельфи или снова | 
 | 
 | 
 | ||||||||||||||||
| 
 | 16 | “Hacked By” на дельфи, VC++ и VB | 
 | 
 | 
 | 
 | 
 | 
 | текстовый редактор | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||||
| 
 | 20 | Проги для программера | 
 | 94 | 
 | Кранты соседям, или свой собственный | 
 | 
 | 
 | ||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | |||||||||||||||||||||
| 
 | 24 | Дебаг или как защитить себя от | 
 | 
 | 
 | 
 | 
 | 
 | мега-плеер | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||||
| 
 | 
 | насекомых | 
 | 98 | 
 | Суровая правда жизни о директ3Д | 
 | 
 | 
 | ||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||||||||
| 
 | 28 | Перекодировщик | 
 | 104 | Кликер - самопал | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||
| 
 | 
 | 
 | 
 | 
 | |||||||||||||||||||||
| 
 | 32 | Программистские ресурсы в сети | 
 | 106 | Совершенное оружие кодера | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 36 | Языки программирования, и откуда они | 
 | 
 | 110 J++ c самого начала: пишем текстовый | 
 | 
 | 
 | |||||||||||||||||
| 
 | 
 | взялись - ликбез | 
 | 
 | 
 | 
 | 
 | 
 | редактор. | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 42 | ÂÓÇÛ | 
 | 
 | 
 | 114 | Нас ребут, а мы крепчаем! | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||
| 
 | 44 | Фишки | 
 | 
 | 116 | Нет, не хакер, просто гадил плохо | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||
| 
 | 53 | Боевой конь за 10 минут | 
 | 120 | Пишем свой мессаджер для локалы на | 
 | 
 | 
 | |||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | |||||||||||||||||||||
| 
 | 56 | Команда, или о вреде программистов | 
 | 
 | 
 | 
 | 
 | 
 | С++ Билдер | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 66 | Cоздай язык сам или Конструктор для | 
 | 122 | Бешеная Блинница | 
 | 
 | 
 | |||||||||||||||||
| 
 | 
 | программиста | 
 | 
 | 
 | 126 | 
 | Анекдоты о програмерах | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 
| 4 | 0004 | ТЕОРИЯ | >СПЕЦВЫПУСК #4 | |
| 
 | ГЛОССАРИЙ | |||
| 
 | С САМОГО Н | |||
| 
 | 
 | 
 | 
 | лове. Так вот, чтобы тебе не заморочиваться и | 
| 
 | 
 | 
 | 
 | не чесать репу, я тебе все растолкую “по поня- | 
| 
 | 
 | 
 | 
 | тиям”. Прикинь, как ты сможешь выделаться пе- | 
| 
 | 
 | 
 | 
 | ред подругой! Она тебе: “...а у меня то да се не | 
| 
 | 
 | 
 | 
 | работает, а завтра зачет по компутерам, а пре- | 
| 
 | 
 | 
 | 
 | под - тормоз...”, а ты ей: “Да не вопрос! Тут у те- | 
| 
 | 
 | 
 | 
 | бя элемент массива в строковую переменную | 
| 
 | 
 | 
 | 
 | криво конвертируется, сейчас мы его порепаем | 
| 
 | 
 | 
 | 
 | в пару циклов, да еще и без меток обойдемся!”. | 
| 
 | 
 | 
 | 
 | Все, дама будет твоей навеки. Проверено элек- | 
| 
 | 
 | 
 | 
 | троникой :)))) !!! Поехали. | 
| 
 | 
 | 
 | 
 | ПЕРЕМЕННАЯ | 
| 
 | 
 | 
 | 
 | В этом мире все меняется, верно? Все что-то | 
| 
 | 
 | 
 | 
 | на что-то меняют... Одни Риву 128 на Риву | 
| 
 | 
 | 
 | 
 | 256, другие паровоз на другой паровоз. Так и | 
| 
 | 
 | 
 | 
 | в кодинге, то есть в его, понимаешь, резуль- | 
| 
 | 
 | 
 | 
 | тате, супер-пупер-рулезной проге, которая | 
| 
 | 
 | 
 | 
 | осчастливит человечество, наконец сломает | 
| 
 | 
 | 
 | 
 | Инет и поснимает лифчики на всех фотках | 
| 
 | 
 | 
 | 
 | подружек. Во, кстати, и пример - приходит к | 
| 
 | 
 | 
 | 
 | тебе красавица, вся в бантах и кружевах (ну, | 
| 
 | 
 | 
 | 
 | или в джинсах и футболке, кому как нравится). | 
| 
 | 
 | 
 | 
 | А ты уже весь подготовился, все помыл, вынес | 
| 
 | 
 | 
 | 
 | кубометр пивных бутылок и прочих заваляв- | 
| 
 | 
 | 
 | 
 | шихся от прошлых зависаний предметов, лю- | 
| 
 | 
 | 
 | 
 | бимую крысу к компу подвесил и подстелил ей | 
| 
 | 
 | 
 | 
 | (крысе!) парадный коврик с зайчиком (рабо- | 
| 
 | 
 | 
 | 
 | чий, с голой теткой в шкаф спрятал - дабы не | 
| 
 | 
 | 
 | 
 | травмировать...). Ну и через n часов ты с этой | 
| 
 | 
 | 
 | 
 | лапочкой уже вовсю практикуешь чудеса и ди- | 
| 
 | 
 | 
 | 
 | ковины вольной акробатики. Все лишние | 
| 
 | 
 | 
 | 
 | предметы одежды (а они тут все лишние! ) по- | 
| 
 | 
 | 
 | 
 | летели в стороны, и все такое... Смотри: была | 
| 
 | 
 | 
 | 
 | подруга в прикиде, стала... ну... тоже в прики- | 
| 
 | 
 | 
 | 
 | де, но - более естественном :)))). То есть - ее | 
| 
 | 
 | 
 | 
 | одетость есть величина, по жизни, ПЕРЕМЕН- | 
| 
 | арова. Признайся, перец, было табуржуинским разумом уверен, что, типа, все | НАЯ. Может дама быть совсем одетой, может | ||
| 
 | кое, что ты читал (пытался читать) | знают и понимают, что значит фраза вроде “... | - немного раздетой, а может - и обнаженной: | |
| 
 | умную книжку, написанную суровым | после анализа содержимого стека и/или дампа | получается, что дама - переменная, прини- | |
| 
 | Äдядей из МелкойМягкости? Ну, ти- | памяти по адресам хххххх-ххххх вы поймете, что | мающая эти три значения. Переменная - пер- | |
| 
 | па, “Аспекты и тонкости программи- | трассировка вызывает обращение по вектору | вое и основное понятие любого языка кодин- | |
| 
 | рования на Visual C++ в среде Windows 9x, бла- | прерывания 02h и....”. Я, например, уже после | га, в которое ты, перец, просто должен вник- | |
| 
 | бла-бла. И грузил тебя тот дядя после первой | второй страницы таких душераздирающих исто- | íóòü. | |
| 
 | же страницы страшными терминами. Он своим | рий рвал и без того редкие волосы у себя на го- | 
 | |
 
| 
 | 
 | ТЕОРИЯ | 
 | 
 | 
| 
 | >СПЕЦВЫПУСК #4 | 0005 | 5 | |
| 
 | 
КОДЕРА ИЛИ  АЧАЛА
АЧАЛА 




| 
 | 
 | ПОСТОЯННАЯ, или КОНСТАНТА | КАК ЗАГИБАТЬ ПАЛЬЦЫ, ИЛИ СИСТЕ- | МЛАДШИЙ РАЗРЯД (îò 0 äî 9) - ýòî òû èëè | |||||||||
| 
 | 
 | 
 | 
 | 
 | А теперь, на том же примере, - то, что ты по- | МЫ СЧИСЛЕНИЯ | пальцы на твоих руках в нашем случае. | ||||||
| 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||
| 
 | 
 | 
 | 
 | 
 | пытаешься снова развести на романтический | Никогда не задумывался, как комп думает? | СТАРШИЙ РАЗРЯД (десятки) - это друг или | ||||||
| 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | вечер эту пельмешку так же обязательно, как | Прикинь, вот ты считаешь яблоки (подружек, | пальцы на его руках. А если еще пяток перцев | ||||||
| 
 | 
 | 
 | 
 | 
 | восход солнца утром. Это, выражаясь по-ла- | зеленых президентов). И загибаешь пальцы. | привлечь, можно считать до морковкино-роз- | ||||||
| 
 | 
 | 
 | 
 | 
 | тински, constanta est. То | 
 | 
 | 
 | говенья. Так и комп. У не- | ||||
| 
 | 
 | 
 | 
 | 
 | есть непременно и обяза- | А теперь прикинь, перец, | го тоже разряды есть, | ||||||
| 
 | 
 | 
 | 
 | 
 | тельно, и так будет всег- | только считает он не от 0 | |||||||
| 
 | 
 | да. Так вот, в кодинге, | что такую байду надо про- | äî 9 à, îò 0 äî 1. Íó, ïà- | |||||||||
| 
 | 
 | 
 | 
 | 
 | коим ты собираешься за- | делать, чтобы посчитать | лец у него один... Теперь | ||||||
| 
 | 
 | 
 | 
 | 
 | няться, это | называется | вспомни снова - цифирей | ||||||
| 
 | 
 | КОНСТАНТА, | èëè ÏÎÑ- | äî 7657651265? Ýòî æ êðû- | он сколько знает? Пра- | ||||||||
| 
 | 
 | ||||||||||||
| 
 | 
 | ТОЯННАЯ ВЕЛИЧИНА. Вот | ша отъедет, сто пудов! Ó | вильно, две. | |||||||||
| 
 | 
 | 
 | 
 | 
 | так мы продвинулись аж | компа-то не отъедет, ему | 
 | ||||||
| 
 | 
 | 
 | 
 | 
 | íà | äâà | 
 | термина. Дальше | BINARY, БИНАРНЫЙ, | ||||
| 
 | 
 | 
 | 
 | 
 | 
 | ||||||||
| 
 | 
 | 
 | 
 | 
 | пойдет | 
 | посложнее, но | что, он железный. А вот у | ДВОИЧНЫЙ - òàê ýòî | ||||
| 
 | 
 | 
 | 
 | 
 | помни - | программер-ко- | нас с тобой от одной за- | называется по латыни (да | |||||
| 
 | 
 | 
 | 
 | 
 | дер - это, прежде всего, | писи глаза съедутся в | и по-английски тоже). | ||||||
| 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | чугунная задница. | Понял? Ну, там, бисек- | |||||||
| 
 | 
 | 
 | 
 | 
 | ГЛОБАЛЬНЫЕ И ЛО- | кучку. Хочешь, покажу? | суалов вспомни. Их тоже | ||||||
| 
 | 
 | 
 | 
 | 
 | 7657651265=1100100001101110011 | к ДВУМ полам тянет. Те- | |||||||
| 
 | 
 | 
 | 
 | 
 | КАЛЬНЫЕ ПЕРЕМЕН- | перь надо врубиться, как | |||||||
| 
 | 
 | 
 | 
 | 
 | 1110001000001b! Êàê òåáå? | ||||||||
| 
 | 
 | 
 | 
 | 
 | НЫЕ (КОНСТАНТЫ) | до пяти, например, таким | |||||||
| 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | Так вот, чтобы избежать | методом посчитать. До- | ||
| 
 | 
 | 
 | 
 | 
 | То, что мы с тобой нарыли | говоримся так: у компа | |||||||
| 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | - переменная и константа, | такого гимора, умные люди | до фига рук, на каждой - | ||||||
| 
 | 
 | 
 | 
 | 
 | - áàçà, íî è òóò âñå íå òàê | подумали и решили: а чего | один палец. Загнутый па- | ||||||
| 
 | 
 | 
 | 
 | 
 | просто. Чтобы было по- | мы, собственно говоря, па- | лец - 1, разогнутый - 0. | ||||||
| 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | нятно, | снова пример: то, | римся? Давай придумаем | Лады? Поехали... Заги- | |||||
| 
 | 
 | 
 | 
 | 
 | что ты пиво пьешь с клас- | баем один комповый па- | |||||||
| 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | сными перцами по выход- | еще какую-нибудь СИСТЕМУ | лец, получаем 1b (буква | ||||||
| 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | ным в клубе, оно, конеч- | СЧИСЛЕНИЯ, чтобы и компу | b в конце нам говорит, | ||||||
| 
 | 
 | 
 | 
 | 
 | ное, константа... Но, кро- | удобно было, и нам. | 
 | что это binary-система | |||||
| 
 | 
 | 
 | 
 | 
 | ме тебя и твоей компании, | 
 | счета). А теперь вспомни, | ||||||
| 
 | 
 | 
 | 
 | 
 | это знают максимум чело- | 
 | 
 | 
 | пельмень, у компа еще | ||||
| 
 | 
 | 
 | 
 | 
 | век десять, так? А вот то, | 
 | 
 | 
 | руки есть. И на второй | ||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||
| 
 | 
 | 
 | 
 | 
 | что Билл Гей(тс-с-с!) и его Форточки - мас- | Один, два... И так, пока пальцы не кончатся. | руке тот палец не загнут (01b). А нам нужно | ||||||
| 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | тдай, - все говорят, и с завидным постоян- | Пальцев десять - двенадцать. Подружек или | посчитать двойку, правильно? Так вот, на той | ||||||
| 
 | 
 | 
 | 
 | 
 | ством. Тоже константа получается. Так как од- | бутылок пива вечером может быть и больше. | руке, где палец не загнут, загибаем, а на той, | ||||||
| 
 | 
 | 
 | 
 | 
 | но от другого отличать? Почесали репу умные | Конечно, еще ноги есть. И йенг... Но, согла- | на которой был загнут - разгибаем. Во, выра- | ||||||
| 
 | 
 | 
 | 
 | 
 | дяди и ввели термин - | ГЛОБАЛЬНАЯ КОН- | сись, тяжеловато. А компу как считать, когда | зился... Что получилось? Точно, 10b. В двоич- | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | СТАНТА (ПЕРЕМЕННАЯ) и ЛОКАЛЬНАЯ. Попро- | он всего до одного считать умеет? Сам | ной системе счета 10 - это то же самое, что 2 | ||||||
| 
 | 
 | 
 | 
 | 
 | буй догадаться, где тут какая константа. Ну, | знаешь, у него все - либо 1, либо 0. Засада, | в ДЕСЯТИЧНОЙ (DECIMAL, не путать с децибе- | ||||||
| 
 | 
 | 
 | 
 | 
 | ты рубишь, однозначно :))!!! Значит, догово- | вроде. Но не тут-то было! Ты можешь, напри- | лами :)). Считаем дальше. Три. У нас есть две | ||||||
| 
 | 
 | 
 | 
 | 
 | рились: локальное - это | то, что знаешь ты, | мер, насчитав десяток (на пальцах), взять и | руки, на руке “старшей” загнут палец, на | |||||
| 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | здесь и сейчас, а глобальное - помасштабнее | попросить дружбана на своей ладони палец | младшей - нет. Так и загнем его, чего он тор- | ||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | будет, все знают, никто не спорит. | загнуть. Теперь чего получилось? Так бы вы | чит. А на “старшей” руке палец разгибать не | ||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | вдвоем всего до 22 посчитали (десять на ру- | будем, а то опять 1 получится. В результате | |
| 
 | 
 | 
 | 
 | 
 | С переменными и константами мы вроде ра- | ках, десять на ногах, плюс два йенга :) ), а то - | этой хитрой операции у нас получилось 11b. | ||||||
| 
 | 
 | 
 | 
 | 
 | зобрались, так? | 
 | до 110, только на одних руках. Во какая штука. | Это и есть 3 в бинарной системе. Только вот | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
| 6 | 
 | 
 | 0006 | ТЕОРИЯ | 
 | 
 | >СПЕЦВЫПУСК #4 | 
 | |||
| 
 | |||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| руки у нас снова кончились. Фигня, сейчас | ной системе - это 2 разряда, 1-десятки и 5- | бя 344.07, да? Так уж деньги устроены - руб- | 
 | |||||||||||||||||||||
| 
 | ||||||||||||||||||||||||
| еще одну привлечем к делу. Итак, четыре. Рук | единицы). Тут в ход пошли буквы: 10=A, | ли, в которых по 100 копеек. Поэтому очень | 
 | |||||||||||||||||||||
| у нас три, пальцев тоже. Два загнуты. Разог- | 11=B, 12=C,13=D.... 15=F. На самом деле, | удобно записывать их количество в виде деся- | 
 | |||||||||||||||||||||
| 
 | ||||||||||||||||||||||||
| нем их на фиг. А на новой руке загнем. Полу- | все эти системы счисления - это так, для | тичной дроби (в школе изучали, помнишь?). | 
 | |||||||||||||||||||||
| чилось 100b. Теперь пять. Загибаем самый | удобства. | 
 | Такое число в терминологии (слово-то какое | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||||
| правый палец (понятно, почему правый? Ну, | РАЗМЕР - ЭТО ВСЕ-ТАКИ ГЛАВНОЕ | умное!!!) программеров называется ДРОБ- | 
 | |||||||||||||||||||||
| ты же когда после 16-и 17 пишешь, ты же | НЫМ или РЕАЛЬНЫМ (REAL). | 
 | ||||||||||||||||||||||
| цифру справа меняешь, так?). Получилось | 
 | 
 | À âîò åñëè áû òû | планировал количество | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||
| 101b. Вот и посчитали до пяти. По-модному, | В отличие от того дела, которое ты так лю- | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||||||
| как настоящие компы. Чувствуешь себя ки- | бишь, где важен не размер, а умение, в прог- | дрынка для вечерины | с друзьями, ты бы при- | 
 | ||||||||||||||||||||
| боргом? :))))))) А теперь прикинь, перец, что | раммировании размер очень даже важен. Раз- | кинул, сколько нужно бутылок (ящиков, ваго- | 
 | |||||||||||||||||||||
| 
 | ||||||||||||||||||||||||
| такую байду надо проделать, чтобы посчитать | мер чего угодно. Переменных, констант, са- | нов) пЫва. И тут уж 5.3 бутылки быть не мо- | 
 | |||||||||||||||||||||
| до 7657651265? Это ж крыша отъедет, сто пу- | мой программы, отдельных ее частей. “То ес- | жет, ты ж отпитую не потащишь на стол? А бу- | 
 | |||||||||||||||||||||
| дов! У компа-то не отъедет, ему что, он желез- | ть как - размер? Они чего, неодинаковые?” - | дет этих бутылок хоть и нереальное, но ЦЕЛОЕ | 
 | |||||||||||||||||||||
| ный. А вот у нас с тобой от одной записи гла- | спросишь ты. Да, неодинаковые. Ты пробовал | количество. И число, обозначающее это коли- | 
 | |||||||||||||||||||||
| за съедутся | в кучку. | Хочешь, покажу? | в одну штанину засунуть две ноги? Ну и как? | чество, тоже называется ЦЕЛЫМ ЧИСЛОМ | 
 | |||||||||||||||||||
| 7 6 5 7 6 5 1 2 6 5 = 1 1 0 0 1 0 0 0 0 - 1 1 0 1 1 1 0 0 - | Так и в программировании. Помнишь, разго- | (INTEGER). | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||
| 111110001000001b! Как тебе? Так вот, чтобы | вор шел про байты и биты? Так вот, допустим, | СТРОКОЙ, ты описал место назначения. То | 
 | |||||||||||||||||||||
| 
 | ||||||||||||||||||||||||
| избежать такого гимора, умные люди подума- | ты определил, что в твоей программе будет 3 | 
 | ||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| ëè è | решили: а чего | мы, собственно говоря, | переменных. Одна - сколько у тебя денег, вто- | есть СТРОКА (STRING) - это некоторое коли- | 
 | 
 | ||||||||||||||||||
| паримся? Давай придумаем еще какую-нибудь | рая - куда ты ломанешься с подружкой вече- | чество информации, которую можно записать | 
 | |||||||||||||||||||||
| СИСТЕМУ СЧИСЛЕНИЯ, чтобы и компу удобно | ром, и третья - адреса подружек, которых | буквами и цифрами. А вот буквы и цифры, в | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||||
| было, и нам. А то от этих единиц и ноликов | можно пригласить именно сегодня. Правда, | свою очередь, | называются СИМВОЛАМИ | 
 | 
 | |||||||||||||||||||
| 
 | 
 | |||||||||||||||||||||||
| точно опыреть | можно. Наша | 
 | 
 | 
 | 
 | (CHAR). Но символами они | 
 | |||||||||||||||||
| родная десятичная система не | Массив, сам понимаешь, | являются только в преде- | 
 | 
 | ||||||||||||||||||||
| покатила. Так уж вышло, что ин- | может состоять из чего | лах строки. Гружено? Не | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||||
| формация | в компе меряется | дрейфь, сейчас растолкую. | 
 | |||||||||||||||||||||
| БИТАМИ (BInary digiT, двоичное | угодно (цифирок, буковок, | Например, “ВАСЯ ПУПКИН | 
 | 
 | ||||||||||||||||||||
| 
 | 
 | |||||||||||||||||||||||
| число, англ.), ты уже знаешь, | битиков). А может и из | - 1-й парень на деревне!” - | 
 | 
 | ||||||||||||||||||||
| почему. Биты удобно группиро- | строка, состоящая из сим- | 
 | ||||||||||||||||||||||
| файлов. Это не принци- | 
 | |||||||||||||||||||||||
| вать в БАЙТЫ, по 8 штук. То ес- | волов. Причем символы - | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||||||
| ть байт - это 8 бит. Почему не | пиально. Важно только, | ýòî âñå, è “Â”, è “À”, è “Ñ”, | 
 | |||||||||||||||||||||
| по 10? Это вопрос философ- | чтобы все ячейки масси- | в том числе и цифра 1. | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||||
| ский. Микросхемки там всякие | Только настоящий прог- | 
 | ||||||||||||||||||||||
| так сделали. Процессор первый | ва содержали данные | раммер напишет - символ | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||||
| (более-менее) писюковый был | одного типа. | 
 | 
 | “1”. Так уж принято, чтобы | 
 | |||||||||||||||||||
| ИМЕННО | ВОСЬМИРАЗРЯД- | 
 | 
 | 
 | 
 | отличать цифру 1 от сим- | 
 | |||||||||||||||||
| НЫЙ. А раз битов 8, то и систе- | 
 | 
 | 
 | 
 | вола “1”. То есть строка - | 
 | ||||||||||||||||||
| му придумали соответствующую... | 
 | эти переменные не совсем одного ТИПА? Не, | это набор символов. Такие наборы называют- | 
 | ||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ну если ты совсем чердаку войну объявил, | ся МАССИВАМИ (ARRAY). То есть первый сим- | 
 | |||||||||||
| ...ВОСЬМЕРИЧНУЮ | 
 | 
 | (по-буржуйски, | можно, конечно, все к одному типу привести: | вол нашей строки “В”, второй “А” и так далее. | 
 | ||||||||||||||||||
| OCTAL, OCT). Ну, на каждой руке по 7 паль- | денег у меня ТРИСТА СОРОК ЧЕТЫРЕ РУБЛЯ | Очень удобно, если надо узнать, какой там у | 
 | |||||||||||||||||||||
| цев (почему не 8? Ну, подумай, когда ничего | СЕМЬ КОПЕЕК, пойдешь ты в ОРДЕНА ЛЕНИ- | нам символ находится на позиции 145 в 10 | 
 | 
 | ||||||||||||||||||||
| не загнуто, это ж тоже цифра. Ноль). Но сис- | НА, ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕ- | строке восьмой страницы первого тома “Вой- | 
 | |||||||||||||||||||||
| тема сия гиморна и человеческому уму нерас- | НИ и т.д. и т.п. БОЛЬШОЙ ТЕАТР... Адреса | ны и Мира”. Кстати, тут “Война и мир” - | 
 | òîæå | 
 | 
 | 
 | 
 | 
 | |||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||||||||
| тяжима. И потом прогресс не стоит на месте, | подружек я могу угадать: это где-то в районе | массив. Но уже МНОГОМЕРНЫЙ (N-DIMEN- | 
 | 
 | 
 | |||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||
| процессоров понаделали 16-битных (а также | Кащенко. Зато все типы у тебя одинаковые - | TIONAL), в нескольких измерениях. Почему и | 
 | 
 | 
 | |||||||||||||||||||
| 32-битных и более). Поэтому приDOOMали | СТРОКА, все у тебя с помощью текстовых | что это значит, ты как это сформулировал? | - | 
 | 
 | 
 | ||||||||||||||||||
| 
 | 
 | 
 | 
 | |||||||||||||||||||||
| еще одну систему... | 
 | 
 | 
 | 
 | 
 | 
 | 
 | строчек записано. А ведь можно и так все опи- | спросишь ты. Объясняю: первый том (измере- | 
 | 
 | 
 | ||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | сать: денег - 344.07, пойдем в ОРДЕНА ЛЕНИ- | ние номер раз), восьмая страница (измерение | 
 | 
 | 
 | |||||||||
| ...ШЕСТНАДЦАТИРИЧНУЮ (по-буржуйски | номер два), десятая строка (третье), символ | 
 | 
 | 
 | 
 | |||||||||||||||||||
| НА,...(тут никуда не денешься, строка), адреса | 
 | 
 | ||||||||||||||||||||||
| 
 | 
 | |||||||||||||||||||||||
| - HEXDECIMAL, HEX). Понял, откуда взялись | подружек - записная книжка ¹1, страницы с 5 | номер 145 (четвертое). И нашел там, напри- | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||||
| всякие названия типа HEXEDIT и прочее? Там | по 25. Чувствуешь преимущество? Все стало | мер, букву (символ) “А”. Этот | символ | íàçû- | 
 | 
 | 
 | |||||||||||||||||
| 
 | 
 | 
 | 
 | |||||||||||||||||||||
| на каждой руке по 15 пальцев, ты прикинь! А | просто и понятно. Логично. А теперь разберем | вается ЭЛЕМЕНТОМ МАССИВА. Массив, сам | 
 | |||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||
| записывать как? Ну, со всякими там бинарны- | это дело по пунктам: | понимаешь, может состоять из чего угодно | 
 | |||||||||||||||||||||
| ми и восьмеричными понятно, а тут? Нет же | 
 | 
 | (цифирок, буковок, битиков). А может и из | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||||
| такой цифры, чтоб в одном РАЗРЯДЕ 15, нап- | ДРОБНЫМ ЧИСЛОМ ты описал количество | файлов. Это не принципиально. Важно только, | 
 | |||||||||||||||||||||
| ример, означала (заметь, число 15 в десятич- | денег. Что это значит? Смотри: вот денег у те- | чтобы все ячейки массива содержали данные | 
 | |||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
| 
 | 
 | ТЕОРИЯ | 
 | 
 | 
| 
 | >СПЕЦВЫПУСК #4 | 0007 | 7 | |
| 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | одного типа. | 
 | 
 | 
 | конечно, теряем 1 бит в | СТАРШЕМ | 
 | 
 | ||||||||
| 
 | 
 | 
 | 
 | 
 | ||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | РАЗРЯДЕ (HIGH), но получаем знак, | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | ТИПЫ ДАННЫХ (TYPE) - ýòî | 
 | 
 | 
 | то есть наше число становится ЗНА- | 
 | 
 | |||||
| 
 | СТРОКА, ЦЕЛОЕ ЧИСЛО, ДРОБНОЕ | 
 | 
 | 
 | КОВЫМ. Метод номер два: берем и | 
 | 
 | |||||||||
| 
 | ЧИСЛО, БИТ, БАЙТ, СИМВОЛ, МАС- | 
 | 
 | 
 | договариваемся, | ÷òî, | например, | 
 | 
 | |||||||
| 
 | 
 | 
 | 
 | 
 | СИВ, ФА-ЙЛ и еще целая туева хуча | 
 | 
 | 
 | первый байт слова содержит поло- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | разных типов, которые применяют- | 
 | 
 | 
 | жительные числа при том условии, | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | ся реже. Ты можешь и сам свои ти- | 
 | 
 | 
 | если другой байт равен 0, а второй | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | пы данных придумывать - напри- | 
 | 
 | 
 | байт - отрицательное. Сложно? Пра- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | мер, тип данных “ТЕТКА”. | 
 | 
 | 
 | вильно, сложно. Поэтому второй | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | метод почти нигде не применяется. | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||
| 
 | 
 | 
 | 
 | 
 | СТРУКТУРА ДАННЫХ - ýòî âñå | 
 | 
 | 
 | Чем дальше в лес, тем толще парти- | |||||||
| 
 | вместе. Вот твои планы на вечер | 
 | 
 | 
 | заны. А если число не целое? | Ñàì | 
 | 
 | ||||||||
| 
 | 
 | 
 | 
 | 
 | (ночь, утро...) - это и есть структу- | 
 | 
 | 
 | подумай, как компу, который только | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | ра данных, просек? И эта структура | 
 | 
 | 
 | и знает, что 0 и 1, втолковать, что | 
 | 
 | |||||
| 
 | состоит из данных разных типов. | 
 | 
 | 
 | вот это - не целое число, а офиги- | 
 | 
 | |||||||||
| 
 | Этих самых типов, как ты уже по- | 
 | 
 | 
 | тельная дробь? И тут пытливые умы | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | нял, вагон и маленькая тележка. | 
 | 
 | 
 | нашли метод. Они поделили это са- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||
| 
 | Комп в одном массиве переменные | 
 | 
 | 
 | мое число на две части. Одна - до | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | разных типов хранить не дает. Да и выяснить, | 
 | 
 | 
 | запятой, вторая - после. Первое число обоз- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||
| 
 | 
 | 
 | 
 | 
 | что больше, строка “ВАСЯ ПУПКИН” или число | 
 | 
 | 
 | вали ЦЕЛОЙ ЧАСТЬЮ, а второе - МАНТИССОЙ | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 132, не может тоже (я тоже не могу :) ). Резон- | 
 | 
 | 
 | (имечко будь здоров...). И стали его хранить в | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | íûé | вопрос - почему? Все просто. Помнишь | 
 | 
 | 
 | таком виде в памяти. А чтобы мало не каза- | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | ïðî | две ноги в одной штанине? Так вот, каж- | 
 | 
 | 
 | лось (мало ли, может ты полет на Марс счи- | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | äûé | тип данных занимает разное количество | 
 | 
 | 
 | тать собрался), дробные числа разделили на 2 | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | места в ПАМЯТИ. Ну, ты когда из дома выхо- | 
 | 
 | 
 | òèïà: | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | дил, ты ж знал, куда идешь и зачем? Во-во, ты | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | помнил это дело, то есть держал в ОПЕРАТИВ- | 
 | 
 | 
 | ОДИНАРНОЙ (SINGLE) | è | ДВОЙНОЙ | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | НОЙ ПАМЯТИ (RAM). Оперативная она потому, | 
 | 
 | 
 | (DOUBLE) ТОЧНОСТИ. Они занимают 4 бай- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | что ты с ней сейчас работаешь. А завтра все | 
 | 
 | 
 | та и 8 байт соответственно. Двойная точность | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | забудешь на фиг. А вот записняк твой с теле- | 
 | 
 | 
 | - это когда на Марс собираешься. Там на ноль | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | фонами - это уже ПОСТОЯНННАЯ ПАМЯТЬ | 
 | 
 | 
 | целых ни фига десятых ошибся и вместо Мар- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | (ROM). Пока ты его не посеял, он всегда с то- | 
 | 
 | 
 | са прилетел на Юпитер, и хорошо, если вооб- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | áîé. | 
 | 
 | 
 | ще прилетел. | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | РАЗМЕРЫ | 
 | 
 | 
 | РАЗМЕР СТРОКИ. Но мы же, в конце кон- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | цов, не только числа в компе храним. А вот хо- | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | Так вот о размерах. Например, бит - он и за- | 
 | 
 | 
 | чу я в качестве переменной в своей проге ис- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | нимает бит памяти. А вот число 200 в бит уже | 
 | 
 | 
 | пользовать цитату Гоги Хакеридзе! С числами | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | не запихнешь. Приходится выделять памяти | 
 | 
 | 
 | как-то не вяжется. Ну, есть варианты, конеч- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | побольше. Помнишь, мы договорились делить | 
 | 
 | 
 | но. Например, 3.14здец. А цитата может быть | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | информацию на байты (8 бит)? Прикинем... | 
 | 
 | 
 | ого-го! Вот такую цитату нам приходится за- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 11111111b - это в десятичной системе счис- | 
 | 
 | 
 | писывать строкой. То есть строка должна быть | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | ления 255. Больше, чем число 200, которое | 
 | 
 | 
 | не меньше того самого “ого-го”. Раньше дума- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | нам надо запомнить. Значит, влезет! Смело | 
 | 
 | 
 | ли, что ничего умнее 255 символов сказать | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | выделяем под это число 1 байт и радуемся | 
 | 
 | 
 | нельзя. Поэтому и строка была ограничена | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | жизни. А если нам надо записать 300? В байт | 
 | 
 | 
 | 255 символами. А потом выяснилось, что кое- | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | уже не лезет... Надо выделять побольше. Два | 
 | 
 | 
 | кто мыслит помасштабнее... Так что сейчас в | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||
| 
 | 
 | 
 | 
 | 
 | байта. В два байта у нас поместится аж | 
 | 
 | 
 | языках программирования размер строк не | |||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | 1111111111111111b - 65535!!! Круто, да? | +- | 
 | 
 | ограничивается. | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | Такое число, состоящее из 2 байт, принято на- | 
 | 
 | А РАЗМЕР МАССИВА по определению | ||||||||
| 
 | 
 | 
 | 
 | 
 | зывать СЛОВОМ (WORD). А ведь бывают чис- | 
 | 
 | 
 | ||||||||
| 
 | 
 | 
 | 
 | 
 | ла и побольше... Тут все снова просто - увели- | Теперь такая подлянка - а если число | отрица- | произвольный. Если в нем 100 байт, то и раз- | ||||||||
| 
 | 
 | 
 | 
 | 
 | ||||||||||||
| 
 | 
 | 
 | 
 | 
 | чиваем размер числа в байтах в 2 раза, полу- | тельное? Чего делать? Метод номер раз: бе- | мер его 100 байт, а если 100 строк - то, сам | 
 | 
 | |||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 
 | 
 | 
 | 
 | 
 | чаем 4 байта, или ДВОЙНОЕ СЛОВО (DOUBLE | рем один бит числа (первый слева) и догова- | понимаешь... | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | WORD). И уж сюда можно затолкать!!! Не, не | риваемся, что если он равен 1, то это число - | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | то, что ты подумал. Просто число - правда, аж | положительное, больше 0, а если этот бит ра- | Теперь понятно, почему строку к байту при- | |||||||||
| 
 | 
 | 
 | 
 | 
 | äî 4294967295. | вен 0, то число отрицательное. На этом мы, | равнивать не получится? :)))) | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
| 8 | 0008 | ТЕОРИЯ | 
 | 
 | 
 | >СПЕЦВЫПУСК #4 | |
| 
 | 
 | 
 | 
 | Var A,B,C,D: Integer; (ОБЪЯВЛЕНИЕ перемен- | |||
| 
 | 
 | 
 | 
 | ных типа ЦЕЛОЕ и их ИМЕН) | |||
| 
 | 
 | 
 | 
 | Begin (тут начинается то, что будет делать | |||
| 
 | 
 | 
 | 
 | программа) | 
 | 
 | |
| 
 | 
 | 
 | 
 | ................................................................. | |||
| 
 | 
 | 
 | 
 | Ну, здесь находится, естественно, крутой код | |||
| 
 | 
 | 
 | 
 | крутейшей проги, которая ломает Инет, но это | |||
| 
 | 
 | 
 | 
 | неважно. | 
 | 
 | |
| 
 | 
 | 
 | 
 | ................................................................ | |||
| 
 | 
 | 
 | 
 | End (а тут, взломав Инет, прога закругляется). | |||
| 
 | 
 | 
 | 
 | Все просто и логично как лозунг на заводе! | |||
| 
 | 
 | 
 | 
 | ПОВТОРИ, ЧТО ТЫ СКАЗАЛ!!! | |||
| 
 | 
 | 
 | 
 | Решаем нашу задачу дальше. Для решения | |||
| 
 | 
 | 
 | 
 | уравнения нам надо определиться, что мы | |||
| 
 | 
 | 
 | 
 | знаем и что хотим узнать. А знаем мы, по ус- | |||
| 
 | 
 | 
 | 
 | ловию, A,B и C. Найти нужно D. Так что ПРИС- | |||
| 
 | 
 | 
 | 
 | ÂÎÈÌ | ЗНАЧЕНИЯ | ПЕРЕМЕННЫМ. Пишем | |
| 
 | 
 | 
 | 
 | приблизительно следующее: A=4, B=3, C=5. | |||
| 
 | 
 | 
 | 
 | Теперь составим уравнение, как в третьем | |||
| 
 | 
 | 
 | 
 | классе: D=(A+B)*C. Как машина прочитает это | |||
| 
 | 
 | 
 | 
 | уравнение: “Присвоить переменной D значе- | |||
| 
 | 
 | 
 | 
 | ние, получающееся при решении уравнения | |||
| 
 | 
 | 
 | 
 | (A+B)*C”. Все. Кульнохацкерская прога гото- | |||
| 
 | 
 | 
 | 
 | ва! Вот так она запишется на языке PASCAL: | |||
| 
 | 
 | 
 | 
 | Program MyCoolProgram;(это строка, с кото- | |||
| 
 | 
 | 
 | 
 | рой прога начинается) | |||
| 
 | 
 | 
 | 
 | Var A,B,C,D: Integer; (объявляем перемен- | |||
| 
 | 
 | 
 | 
 | íûå...) | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | Begin | 
 | (начинаем исполнение кода) | |
| 
 | 
 | 
 | 
 | A=4; | 
 | (присваиваем значение пере- | |
| 
 | 
 | 
 | 
 | менной А) | 
 | 
 | |
| 
 | 
 | 
 | 
 | B=3; | 
 | (присваиваем значение пере- | |
| 
 | 
 | 
 | 
 | менной В) | 
 | 
 | |
| 
 | 
 | 
 | 
 | C=5; | 
 | (присваиваем значение пере- | |
| 
 | 
 | 
 | 
 | менной С) | 
 | 
 | |
| 
 | 
 | 
 | 
 | D:=(A+B)*C; | 
 | (А значение переменной D | |
| ЧТО ТЕБЕ В ИМЕНИ МОЕМ... | 
 | будет равняться сумме А+В, умноженной на | |||||
| римся, что все числа у нас - целые, так проще. | Ñ) | 
 | 
 | 
 | |||
| 
 | 
 | 
 | Значит, в программе напишем что-то типа: “А | Writeln (‘Получилось аж ‘, D) (эта строка выве- | |||
| Мы тут с тобой развели здоровенный ля-ля | ОБЪЯВИ-ка ты нам 4 переменные типа ЦЕ- | дет значение переменной D на экран) | |||||
| насчет типов, переменных, массивов, кон- | ЛЫЕ ЧИСЛА”. А программа нам: “Да не воп- | End. | 
 | (программа кончается) | |||
| стант и все такое. Но! Это все только начало, | рос, только как их друг от друга отличать при- | ЦИКЛЫ | 
 | 
 | |||
| самое интересное впереди. Как ты думаешь, | кажете?”. А мы ей: “Тундра ты бескрайняя, мы | 
 | 
 | ||||
| если тебе надо в твоей проге решить уравне- | им сейчас ИМЕНА дадим. Первую мы назовем | 
 | 
 | 
 | 
 | ||
| ние (A+B)*C=D, чего делать будем? Хорошо, | A, вторую - B...”. И чего же у нас вышло? По- | Вот ты и сочинил свою первую прогу. Все ко- | |||||
| если ты знаешь, что A=1, B=5, C=7. D посчи- | лучились у нас 4 переменные одного типа ЦЕ- | деры начинали именно так, поверь мне. С ко- | |||||
| тать - нет проблем. А если эти числа полу- | ЛОЕ с разными именами (A,B,C и D). Теперь с | мовским разъемом пониже спины никто не | |||||
| чаются после решения других восьмиэтажных | этими переменными программа сможет тво- | родился. Так, патетику в сторону, полетели | |||||
| уравнений? И получаются они 10 раз, и тебе | рить все что угодно! Вот как это будет выгля- | дальше. Допустим, надо посчитать всю это | |||||
| надо эту самую D посчитать те самые десять | деть на ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PAS- | бодягу 10 раз. Да с разными значениями | |||||
| раз? Подойдем к решению задачи творчески: | CAL: | A,B,C. Как? Десять раз переписать? С ума | |||||
| есть числа A и B, надо их сложить, потом ум- | 
 | сойдешь. И тут тебе поможет классная вещь - | |||||
| ножить на C и записать ответ в переменную D. | Program MyCoolProgram; (программа начи- | ЦИКЛ. Цикл - это задание исполнителю повто- | |||||
| Äëÿ | начала определимся с | типами. Догово- | нается тут!) | рить многократно одну или несколько указан- | |||
