Между выходом второго и третьего издания “С++ для начинающих” произошло довольно много событий. Одним из самых значительных стало появление международного стандарта. Он не только добавил в язык С++ новые возможности, среди которых обработка исключений, идентификация типов во время выполнения, пространство имен, встроенный булевский тип данных, новый синтаксис приведения типов, но также существенно изменил и расширил имеющиеся – шаблоны, механизм классов, поддерживающий объектную и объектно-ориентированную парадигму программирования, вложенные типы и разрешение перегруженных функций. Еще более важным событием стало включение в состав стандарта С++ обширной библиотеки, содержащей, в частности, то, что ранее называлось Standard Template Library (STL). В эту стандартную библиотеку входят новый тип string, последовательные и ассоциативные контейнеры, такие, как vector, list, map, set, и обширный набор обобщенных алгоритмов, которые могут применяться ко всем этим типам данных. Появилось не просто много нового материала, нуждающегося в описании, но фактически изменился сам способ мышления при программировании на С++. Короче говоря, можно считать, что С++ изобретен заново, поэтому третье издание нашей книги “C++ для начинающих” полностью переработано.
В третьем издании не только коренным образом поменялся наш подход к С++, изменились и авторы. Прежде всего, авторский коллектив удвоился и стал интернациональным, хотя корни его по-прежнему на североамериканском континенте: Стен (Stan) американец, а Жози (Josйe) канадка. Двойное авторство отражает деление сообщества программистов С++ на две части: Стен в настоящее время занимается разработкой приложений на C++ в области трехмерной графики и анимации для Walt Disney Feature Animation, а Жози принимает участие в развитии самого языка С++, являясь председателем рабочей группы по ядру языка в комитете по стандартизации и одним из разработчиков компилятора С++ в IBM Canada Laboratory.
Если говорить по-простому, промежуточное ПО обеспечивает простой для использования API (Application Programming Interface - интерфейс прикладного программирования) между приложением и требуемыми для него ресурсами. Например, если производится Java-апплет, для работы которого требуются внешние данные, можно использовать классы пакета JDBC (Java Database Connectivity) для доступа к информации из любого числа баз данных. Классы JDBC
скрывают от разработчика сложности целевой базы данных и позволяют использовать любую базу данных без потребности понимания ее специфических особенностей.
Аналогичные возможности обеспечивает ODBC (Open Database Connectivity) для приложений "клиент-сервер", работающих в среде Windows, и средства, подобные
Borland Database Engine (BDE).
Возможности промежуточного ПО не ограничиваются обеспечением доступа к базам данных. Продукты этого рода также дают возможность прозрачного доступа на уровне API к другим системам и их сервисам без потребности знать, что из себя представляют эти системы. Слой промежуточного ПО может найти систему, используя какой-либо вид сервиса именования, вызвать удаленный процесс и возвратить ответ вызывающему процессу. К соответствующей категории промежуточного ПО относятся Distributed Computing Environment (DCE) компании , продукты, основанные на распределенной объектной технологии CORBA (Common Object Request Broker Architecture - общая архитектура брокера объектных заявок), и большинство продуктов промежуточного ПО, основанных на передаче сообщений (Message-Oriented Middleware - MOM).
Операционные системы (ОС) семейства Windows Server 2003 являются эволюционным развитием серверной платформы Windows 2000 Server, также включившим в себя многие средства систем Windows XP. Нелишне напомнить, что ОС Windows 2000 имеют внутренний номер версии 5.0, а системы Windows XP вышли под номером 5.1. Семейство Windows Server 2003 (сборка (build) 2790) имеет версию 5.2. (Грубо говоря, можно считать, что версия 5.2 равна версии 5.1 плюс Service Pack 1 плюс серверные службы плюс обновления, вышедшие с момента появления Windows XP.)
Семейство Windows Server 2003 включает в себя четыре редакции (версии) операционных систем (их назначения и характеристики рассматриваются ниже):
Windows Server 2003, Standard Edition;
Windows Server 2003, Enterprise Edition;
Windows Server 2003, Datacenter Edition;
Windows Server 2003, Web Edition.
Несколько упрощая ситуацию, эти редакции можно рассматривать как различные конфигурации (комплектации) одного и того же "базового" ядра. Большинство системных сервисов поддерживается во всех редакциях, в то время как отдельные сервисы присутствуют или, наоборот, отсутствуют в более "мощных" моделях. В двух следующих разделах как раз и рассматриваются различия редакций Windows Server 2003 в плане функциональных возможностей и требований к аппаратным средствам.
В этой книге мы будем рассматривать возможности и службы, единые для всех четырех версий, поскольку именно они представляют интерес для широкого читателя. Поэтому в книге используется общее имя "Windows Server 2003", за которым может стоять любая редакция ОС семейства Windows Server 2003.
Системы Windows Server 2003 сохранили многие черты своих предшественниц — Windows 2000 Server и Windows XP, поэтому пользователям, знакомым с этими системами, будет легче освоить новую систему, чем пользователям систем линейки Windows 9x/ME.
Одновременно с запуском в производство систем семейства Windows Server 2003 компания Microsoft также объявила о выпуске 64-разрядной ОС Windows XP 64-bit Edition Version 2003 — высокопроизводительной настольной платформы, рассчитанной на использование процессоров Itanium 2. Ее можно рассматривать как развитие системы Windows XP 64-bit Edition — также 64-разрядной настольной ОС с поддержкой процессоров Itanium первого поколения.
Чтобы удалить апплет Панели управления Администрирование, откройте раздел HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace и найдите там подраздел {D20EA4E1-3957-11d2-A40B-0C5020524153} и переименуйте данный подраздел, поставив минус перед ним (-{D20EA4E1-3957-11d2-A40B-0C5020524153})
При подготовке материала автор старался прежде всего учесть интересы и пожелания читателей четырех основных категорий:
рядовых читателей, желающих познакомиться с новым классом информационных систем на достаточно высоком теоретическом и техническом уровне;
преподавателей и студентов, которым необходимо учебное пособие, охватывающее все основные темы исследования и проектирования экспертных систем, причем глубина изложения материала должна соответствовать программам старших курсов вузов и первого года обучения в аспирантуре;
инженеров-программистов, нуждающихся в практическом руководстве по экспертным системам, подкрепленном достаточно солидным теоретическим материалом;
научных работников и студентов, активно занимающихся научной работой, которых особенно интересует обзорный материал, касающийся новейших тенденций в разработке систем такого рода.
Это введение послужит методическим руководством для каждой из перечисленных категорий
Эта книга не предназначена для новичков. Подразумевается, что:
Вы уже знакомы хотябы с одним объектно-ориентированным языком, таким как Java, C++, или Delphi.
Вы знаете хотя бы один скриптовой язык, например, Perl, Visual Basic, или JavaScript.
Вы уже установили Python версии 2.0 или выше (рекомендуется Python 2.2)
Если вы только начали изучать программирование, это не значит, что вы не можете изучать Python. Python — один из самых простых языков для обучения, но для начинающих предназначены совсем другие книги.
Хотите заглянуть внутрь черного ящика подсистемы оперативной памяти? Хотите узнать: что чувствует, чем дышит и какими мыслями живет каждая микросхема вашего компьютера? Хотите научиться минимальными усилиями создавать эффективный программный код, исполняющийся вдвое – втрое быстрее обычного? Хотите использовать возможности современного оборудования на полную мощь? Тогда – вы не ошиблись в выборе книги!
Перед вами лежит уникальное практическое пособие по оптимизации программ под платформу IBM PC и операционные системы семейства Windows (UNIX), скрупулезно описывающее архитектуру, философию и принципы функционирования современных микропроцессоров, чипсетов, оперативной памяти, операционных систем, компиляторов и прочих компонентов ПК.
Это одна из тех редких книг, если вообще не уникальная книга, которая описывает переносимую оптимизацию на системном уровне и при этом ухитряется практически не прибегать к ассемблеру.
Реестр операционной системы Windows XP представляет собой централизованную базу данных параметров настройки системы и работающих в ней приложений. В этом смысле реестр аналогичен разнообразным INI-файлам, а также файлам AUTOEXEC.BAT и CONFIG.SYS, которые использовались ранее. Реестр содержит информацию обо всех аппаратных средствах, программном обеспечении, операционной системе и сетевых параметрах компьютера. Эта сложная иерархическая база данных принимает участие во всех аспектах работы Windows XP. Хорошее понимание принципов работы реестра, выполняемых им задач, а также умение манипулировать реестром необходимо всем: системным и сетевым администраторам, специалистам из групп технической поддержки, а также опытным пользователям из числа программистов. Кроме того, для системных администраторов особенно важны вопросы администрирования и защиты реестра, а также его резервного копирования и восстановления.
Все началось на дне рождения Алисы. Не Алисы из Страны Чудес, а моей знакомой девочки по имени Алиса. Каким образом в этой истории появилась другая Алиса, вы скоро поймете. Разумеется, на дне рождения были младший брат Алисы Тони, а также ее друзья Майкл, Лиллиан и еще несколько мальчиков и девочек.
После того как было сыграно бессчетное число игр и показаны все фокусы, ребятам захотелось послушать какие-нибудь логические задачи-головоломки.
Сборник из 88 задач на самые разные темы. И что характерно с правильными ответами.
Этот цикл посвящен теме создания апплетов для панели GNOME. Если кратко, апплет - это маленькое приложение, которое встраивается в панель и либо информирует о чем-либо (например, погоде, или о состоянии батареи), либо выполняет какие-либо одноэтапные действия (запускает поиск, изменяет громкость и т.д.).
Качество оптимизирующих компиляторов обычно оценивают по результатом комплексных тестов (мультимедийных, "общесистемных" или математических). Что именно оптимизируется и как — остается неясным. Основной "интеллект" оптимизаторов сосредоточен в высокоуровневом препроцессоре — своеобразном "ликвидаторе" наиболее очевидных программистских ошибок. Чем качественнее исходный код, тем хуже он поддается оптимизации. Только ведь… над качественным кодом _работать_ надо! Много знать и ожесточенно думать, ломая карандаши или вгрызаясь в клавиатуру. Кому-то это в радость, а кто-то предпочитает писать кое-как. Все равно, мол, компилятор, соптимизирует!
Желание перебросить часть работы на транслятор — вполне естественно и нормально (для творчества больше времени останется), но нужно заранее знать, что именно он оптимизирует, а что только пытается. Но как это можно узнать? На фоне полнейшей терминологической неразберихи, когда одни и те же приемы оптимизации в каждом случае называются по-разному, прячась за ничего не говорящими штаммами типа "copy propagation" (размножение копий) или "redundancy elimination" (устранение избыточности), требуется очень качественная документация на компилятор, но она — увы — обычно ограничивается тупым перечислением оптимизирующих ключей с краткой пометкой за что каждый из них отвечает. Какие копии размножает компилятор и с какой целью? Какую избыточность он устраняет и зачем? Не является ли размножение внесением избыточности, которую самому же оптимизатору и приходится удалять?!
Что делать, если при попытке что-нибудь написать, вы получаете гневное сообщение о том, что вы можете писать шрифтом только сумасшедшего размера. Это абсолютно все равно, если вы хотите писать гигантскими буквами и обидно, когда требуется написать мелко.. Не надо проделывать никаких загадочных манипуляций со шрифтами.. и главное не следует бросаться переинсталировать свой PhotoShop.
На самом деле все дело в вашем Resolution и никаких заклянаний, который должен быть 72 pixels/inch. Поменять его можно в Image Size картинки или при создании нового файла. Опция так и называется - Resolution.
Различают два способа вызова функции: с одним параметром или с несколькими. Если указан лишь один параметр (первый), то он обязательно должен быть массивом и возвращается минимальный элемент этого массива. В противном случае первый (и остальные) аргументы трактуются как числа с плавающей точкой, они сравниваются, и возвращается наименьшее. Тип возвращаемого значения выбирается так: если хотябы одно из чисел, переданных на вход, задано в формате с плавающей точкой, то и результат будет с плавающей точкой, в противном случае результат будет целым числом. С помощью этой функции нельзя лексографически сравнивать строки - только числа.
Среди радиолюбителей, увлекающихся техникой радиоприемных устройств, наибольшей популярностью пользуются коротковолновые конвертеры для приемников имеющих диапазоны длинных и средних волн, цветомузыкальные блоки, выпрямители для зарядки различных маломощных аккумуляторов и питания транзисторных приемников от сети переменного тока и другие. По этой причине наименования разделов книги остались без изменения.
В то же время описания морально устаревших приставок исключены и вместо них введены более современные в частности в разделе различных приставок и цветом узыкальных устройств. Исключены приставки, повторение которых вызывало затруднения. Как и в первом издании, значительное место уделено принципу работы и налаживанию описываемых устройств.
При подготовке книги использовались отечественные и зарубежные источники, материалы Всесоюзных радиовыставок, а также разработки, выполненные автором.
Судя по письмам читателей, поклонников ламповой техники все еще достаточно много, поэтому полностью отказаться от ламповых приставок, автор не решился — незначительная часть их в книге сохранена. Однако необходимо отметить, что основным направлением в творчестве радиолюбителей должно быть создание аппаратуры на транзисторах и микросхемах, имеющих неоспоримые преимущества по сравнению с лампами.