Библиотеки подпрограмм составляют существенную часть систем программирования. Наряду с дружественностью пользовательского интерфейса состав доступных библиотек подпрограмм во многом определяет возможности системы программирования и ее позиции на рынке средств разработки программного обеспечения.
Библиотеки подпрограмм входили в состав средств разработки, начиная с самых ранних этапов их развития. Даже когда компиляторы еще представляли собой отдельные программные модули, они уже были связаны с соответствующими библиотеками, поскольку компиляция так или иначе предусматривает связь программ со стандартными функциями исходного языка. Эти функции обязательно должны входить в состав библиотек.
С точки зрения системы программирования библиотеки подпрограмм состоят из двух основных компонентов. Это собственно файл (или множество файлов) библиотеки, содержащий объектный код, и набор файлов описаний функций, подпрограмм, констант и переменных, составляющих библиотеку. Описания оформляются на соответствующем входном языке (например, для языка С или С++ это будет набор заголовочных файлов). Иногда эти файлы могут быть совмещены.
Объектный код библиотеки подключается компоновщиком к результирующей программе при создании исполняемого модуля. По структуре он обычно мало чем отличается от обычных объектных файлов, порождаемых компилятором. Чаще всего система программирования хранит объектный код входящих в ее состав библиотек в некотором упакованном виде.
Набор файлов описания библиотеки служит для информирования компилятора о составе входящих в библиотеку функций. Обрабатывая эти файлы, компилятор получает всю необходимую информацию о составе библиотеки с точки зрения входного языка программирования. Эти файлы предназначены только для того, чтобы избавить разработчика от необходимости постоянного описания библиотечных функций, подпрограмм, констант и переменных.
В состав системы программирования может входить большое количество разнообразных библиотек. Среди них всегда можно выделить основную библиотеку, содержащую обязательные функции входного языка программирования. Эта библиотека всегда используется компилятором, поскольку без нее разработка программ на данном входном языке невозможна. Разработчик даже не должен указывать необходимость использования этой библиотеки (некоторые разработчики программ и не догадываются, что пользуются подобной библиотекой). Все остальные библиотеки необязательны и подключаются к результирующей программе только по прямому указанию разработчика.
В процессе развития систем программирования состав библиотек постоянно расширялся. В них включалось все большее и большее число функций. Это было вызвано тем, что система программирования, предоставляющая пользователю более широкий выбор библиотечных функций, получала лучшие позиции на рынке средств разработки программного обеспечения. Сами по себе библиотеки подпрограмм и функций, созданных для того или иного языка, также становились товаром на рынке средств разработки. Этот естественный процесс продолжается до сих пор, и чем длиннее история существования того или иного языка программирования, тем шире диапазон существующих для него библиотек.
Системы программирования для некоторых языков продолжают существовать во многом благодаря тому, что для них создан мощный аппарат библиотечных функций. Так, язык FORTRAN существует благодаря широчайшему набору математических и физических функций, а язык COBOL – функций из финансовой сферы.
В ходе развития систем программирования принципы создания и использования библиотечных функции претерпели мало изменений. Принципиально новые возможности предоставили только современные ОС, которые позволили подключать к результирующим программам не статические, а динамические библиотеки.
Динамические библиотеки (DLL – dynamic link libraries) в отличие от традиционных (статических) библиотек подключаются к программе не в момент ее компоновки, а непосредственно в ходе выполнения, как только программа затребовала ту или иную функцию, находящуюся в библиотеке.
Динамически компонуемые библиотеки представляют собой программные модули, содержащие код, данные или ресурсы, которые могут совместно использоваться несколькими приложениями Windows. Одно из основных назначений библиотек DLL – позволить приложениям загружать код, который отрабатывается во время выполнения, вместо того чтобы компоновать его в само приложение в процессе компиляции. А это значит, что несколько приложений могут одновременно использовать один и тот же код, содержащийся в библиотеке DLL. Кроме того, библиотеки DLL предоставляют способ совместного использования растровых изображений, шрифтов, пиктограмм и других ресурсов, которые обычно входят в состав файла ресурсов и непосредственно связываются с создаваемым приложением. Если эти ресурсы разместить в библиотеке DLL, многие приложения смогут воспользоваться ими, не затрачивая дополнительной памяти, необходимой для загрузки дополнительных экземпляров этих ресурсов.
Так, файлы библиотек Kernel32.dll, User32.dll и GDI32.dll являются базовыми библиотеками Windows. Файл Kernel32.dll, например, отвечает за управление памятью, процессами и потоками. Файл User32.dll содержит функции интерфейса пользователя, необходимые для создания окон и обработки сообщений. И, наконец, на файл GDI32.dll возложена работа с графикой.
Другое преимущество использования библиотек DLL состоит в том, что приложение становится модульным. Это упрощает процесс обновления приложений, поскольку при необходимости обновляется не все приложение полностью, а только определенные библиотеки. Типичным примером может служить среда Windows. При каждой установке нового устройства приходится устанавливать и новую библиотеку DLL с драйвером, с помощью которого это устройство сможет общаться с Windows. Преимущество модульности станет очевидным, если представить необходимость повторной инсталляции Windows при каждой установке нового устройства в систему.
В определенных случаях может возникнуть необходимость скрыть детали реализации программ, помещаемых в библиотеки DLL. Существует множество причин, побуждающих скрыть реализацию кода. Библиотеки DLL позволяют сделать функции доступными пользователям без раскрытия их исходного текста. От разработчика библиотеки потребуется лишь подготовить модуль интерфейса, позволяющий другим пользователям получить доступ к создаваемой библиотеке.
Формат файлов динамических библиотек может быть различным – как правило, он строго определяется требованиями соответствующей ОС. Как и статические библиотеки, динамические библиотеки предусматривают описание входящих в них функций в виде текста на соответствующем входном языке, чтобы дать информацию о них компилятору в ходе обработки исходного текста программы и избавить разработчика от создания таких описаний.
Формат библиотек DLL не зависит от используемого языка программирования, поэтому созданные, например, в Delphi библиотеки можно будет применять в приложениях, написанных на C++, Visual Basic или любом другом языке, который поддерживает работу с файлами DLL.
С точки зрения хранения на диске файлы библиотек DLL практически ничем не отличаются от ЕХЕ-файлов Windows. Разница лишь в том, что файл библиотеки DLL не является независимым выполняемым файлом, хотя может содержать выполняемый код.
Библиотеки DLL могут использовать свой код совместно с другими приложениями благодаря процессу, называемому динамической компоновкой. При динамической компоновке связь между вызовом функции и ее выполняемым кодом устанавливается во время выполнения приложения посредством создания внешней ссылки на конкретную функцию библиотеки DLL. Подобные ссылки могут быть объявлены в самом приложении, но обычно они размещаются в отдельном модуле import. В модуле import объявляются импортируемые функции и процедуры, а также определяются различные типы данных, используемые функциями библиотек DLL.
Используются два способа загрузки библиотек DLL. Один из них, который называется неявной загрузкой, требует от Windows автоматически загружать библиотеку DLL при загрузке приложения.
Несмотря на удобство метода неявной загрузки библиотек DLL, он не всегда бывает желательным. Предположим, что существует некоторая библиотека DLL, содержащая множество функций. Вполне вероятно, что в обычном режиме работы приложение никогда не вызовет ни одной из функций этой библиотеки. Получается, что при каждом запуске этого приложения загрузка данной библиотеки приводит к напрасным затратам памяти, особенно при использовании этим приложением сразу нескольких библиотек DLL. Другим примером может служить применение компонентов библиотек DLL для заполнения объектов, имеющих очень большой размер и содержащих списки весьма специализированных функций, предоставляемых на выбор для использования в конкретных ситуациях. (Например, списки доступных драйверов принтеров или подпрограмм преобразования формата файлов.) В такой ситуации имело бы смысл загружать каждую библиотеку DLL только по конкретному требованию, исходящему от приложения. Этот метод и называется явной загрузкой библиотек DLL.
Конечно, динамические библиотеки требуют наличия в ОС специального механизма, позволяющего подключать часть объектного кода непосредственно по ходу выполнения программы. Однако для современных ОС, выполняющихся в вычислительных системах, которые поддерживают широкий набор методов адресации, это не является проблемой.
Проблемы, главным образом, связаны с тем, что различные прикладные программы связываются с объектным кодом, непосредственно не входящим в их состав. Таким образом, логика (алгоритм) работы всех этих программы становится зависимой от кода библиотек. Изменение библиотеки, которое может происходить независимо от разработчиков прикладных программ, может непроизвольно повлиять и на функционирование данных программ. Такое развитие событий порой оказывается неожиданным для пользователя программ.
Поэтому использование динамических библиотек налагает определенные обязательства как на разработчика программы, так и на создателя самой библиотеки. Разработчик прикладной программы должен использовать библиотеку только так, как это определено ее создателем, а создатель библиотеки в случае ее модификации должен организовывать изменения таким образом, чтобы они не сказывались на логике работы программ, ориентированных на предыдущие версии его библиотеки.
Широкий набор динамических библиотек поддерживается всеми современными ОС. Как правило, они содержат системные функции ОС и общедоступные функции программного интерфейса (API). Кроме того, многие независимые разработчики предоставляют для различных систем программирования свои динамические библиотеки как отдельные товары на рынке средств разработки прикладных программ.
1. Информатика как наука и как вид практической деятельности
1.1. Основные понятия информатики. Информационный ресурс
1.1.1. Объект и предмет информатики
Информатика –научная дисциплина, изучающая вопросы, связанные с поиском, сбором, хранением, преобразованием и использованием информации в самых различных сферах человеческой деятельности. Генетически информатика связана с вычислительной техникой, компьютерными системами и сетями, так как именно компьютеры позволяют порождать, хранить и автоматически перерабатывать информацию в таких количествах, что научный подход к информационным процессам становится одновременно необходимым и возможным.
Объектом информатики выступают как сами ЭВМ (компьютеры), так и основанные на них и телекоммуникационной технике информационные системы (ИС) различного класса и назначения. Информатика изучает все стороны их разработки, проектирования, создания, анализа и использования на практике. Информационные технологии (ИТ) – это машинизированные способы обработки информации, которые реализуются посредством автоматизированных информационных систем (АИС).
Понятие технологии вообще включает комплекс научных и инженерных знаний, воплощенных в приемах труда, наборах материальных, технических, энергетических, трудовых факторов производства, способов их соединения для создания продукта или услуги, отвечающих определенным требованиям, стандартам. В таком понимании термин технология неразрывно связан с машинизацией производственного или непроизводственного (социального) процесса. Последнее важно подчеркнуть для обозначения точных исторических границ информатики: информатики не могло быть в домашинный период обработки и представления знаний, когда не было ИТ. Переработка информации с помощью ЭВМ и выработка новых знаний, соотнесенных с целями пользователей, – функциональное назначение ИТ.
Информатизация общества в части материально-технической базы, математического и программного обеспечения ИТ изучается различными науками: кибернетикой, системотехникой, теорией информации, а в части формирования функциональных подсистем – различными общественными науками: экономикой, правоведением, психологией. В формировании ИТ участвуют и науки, относящиеся к той или иной автоматизируемой области: медицина, когда речь идет о внедрении ЭВМ в здравоохранение; педагогика (компьютеризация учебного процесса); военные науки (использование ЭВМ в военном деле); экономика и т.д. Каждая из указанных наук рассматривает компьютеризацию со своей стороны, прилагает к ней свои законы и принципы.
А какую же сторону рассматриваемого объекта выбирает информатика, делая ее своим предметом? Она выбирает содержательную, смысловую сторону создания и функционирования информационных систем и технологий, связанную с их сущностью, социальной отдачей, полезностью, местом в общественных системах, историческим значением как фактора радикального прогресса и выхода общества на качественно новые исторические рубежи.
Информационные технологии и выступили новым средством превращения знаний в информационный ресурс (ИР) общества, его новым движущим фактором, стали средством его эффективного использования. Информационный ресурс стал основным ресурсом человечества, главной ценностью современной цивилизации. Но возникли и сложные проблемы, относящиеся к роли, механизму функционирования, социальным последствиям использования ИР. Для их решения и появилась новая наука – информатика.
Предметом информатики как новой фундаментальной науки выступает ИР – его сущность, законы функционирования, механизмы взаимодействия с другими ресурсами общества и воздействия на социальный прогресс. Переход на уровень ИР в его содержательной трактовке означает переход к изучению внутренних связей и закономерностей социальной динамики, основанной на использовании ИТ.
Таким образом, предметом информатики является информационный ресурс как симбиоз знания и информации. Он выступает в качестве предмета новой науки и с содержательной, и с формально-математической, и с технической сторон. Необходимо разграничивать предмет информатики как фундаментальной науки, ее объект и инструментарий: основанные на ЭВМ вычислительные системы, программы, сети связи и т.д. Без ЭВМ нет информатики, но нельзя объявлять информатику наукой об ЭВМ. Конечно, практическая необходимость в информатике возникла в связи с использованием ЭВМ. Но, “оттолкнувшись от ЭВМ”, информатика во главу угла ставит новые понятия – ИР и его социальную полезность, отдачу.
Важная особенность информатики – широчайшие приложения, охватывающие почти все виды человеческой деятельности: производство, управление, науку, образование, проектные разработки, торговлю, финансовую сферу, медицину, криминалистику, охрану окружающей среды и др. И, может быть, главное из них – совершенствование социального управления на основе новых информационных технологий.
Как наука информатика изучает общие закономерности, свойственные информационным процессам (в самом широком смысле этого понятия). Когда разрабатываются новые носители информации, каналы связи, приемы кодирования, визуального отображения информации и многое другое, конкретная природа этой информации почти не имеет значения. Для разработчика системы управления базами данных (СУБД) важны общие принципы организации и эффективность поиска данных, а не то, какие конкретно данные будут затем заложены в базу многочисленными пользователями. Эти общие закономерности есть предмет информатики как науки.
Перечислим наиболее важные реализации информационных технологий.
АСУ – автоматизированные системы управления – комплекс технических и программных средств, которые во взаимодействии с человеком организуют управление объектами в производстве или общественной сфере. Например, в образовании используются системы АСУ-ВУЗ.
АСУТП – автоматизированные системы управления технологическими процессами. Например, такая система управляет работой станка с числовым программным управлением (ЧПУ), процессом запуска космического аппарата и т.д.
АСНИ – автоматизированная система научных исследований – программно-аппаратный комплекс, в котором научные приборы сопряжены с компьютером, вводят в него данные измерений автоматически, а компьютер производит обработку этих данных и представление их в наиболее удобной для исследователя форме.
АОС – автоматизированная обучающая система. Есть системы, помогающие учащимся осваивать новый материал, производящие контроль знаний, помогающие преподавателям готовить учебные материалы и т.д.
САПР-система автоматизированного проектирования – программно-аппаратный комплекс, который во взаимодействии с человеком (конструктором, инженером-проектировщиком, архитектором и т.д.) позволяет максимально эффективно проектировать механизмы, здания, узлы сложных агрегатов и др.
Упомянем также диагностические системы в медицине, системы организации продажи билетов, системы ведения бухгалтерско-финансовой деятельности, системы обеспечения редакционно-издательской деятельности – спектр применения информационных технологий чрезвычайно широк.
С развитием информатики возникает вопрос о ее взаимосвязи и разграничении с кибернетикой. При этом требуется уточнение предмета кибернетики, более строгое его толкование. Информатика и кибернетика имеют много общего, основанного на концепции управления, но имеют и объективные различия. Один из подходов разграничения информатики и кибернетики – отнесение к области информатики исследований информационных технологий не в любых кибернетических системах (биологических, технических и т.д.), а только в социальных системах. В то время как за кибернетикой сохраняются исследования общих законов движения информации в произвольных системах, информатика, опираясь на этот теоретический фундамент, изучает конкретные способы и приемы переработки, передачи, использования информации.
1.1.2. Структура современной информатики
Каждая из составных частей информатики может рассматриваться как относительно самостоятельная научная дисциплина; взаимоотношения между ними примерно такие же, как между алгеброй, геометрией и математическим анализом в классической математике – все они хоть и самостоятельные дисциплины, но, несомненно, части одной науки.
Теоретическая информатика –часть информатики, включающая ряд математических разделов. Она опирается на математическую логику и включает такие разделы, как теория алгоритмов и автоматов, теория информации и теория кодирования, теория формальных языков и грамматик, исследование операций и другие. Этот раздел информатики использует математические методы для общего изучения процессов обработки информации.
Вычислительная техника –раздел, в котором разрабатываются общие принципы построения вычислительных систем. Речь идет не о технических деталях и электронных схемах (это лежит за пределами информатики как таковой), а о принципиальных решениях на уровне так называемой архитектуры вычислительных (компьютерных) систем, определяющей состав, назначение, функциональные возможности и принципы взаимодействия устройств. Примеры принципиальных, ставших классическими, решений в этой области – неймановская архитектура компьютеров первых поколений, шинная архитектура ЭВМ старших поколений, архитектура параллельной (многопроцессорной) обработки информации.
Программирование –деятельность, связанная с разработкой систем программного обеспечения. Здесь отметим лишь основные разделы современного программирования: создание системного программного обеспечения и создание прикладного программного обеспечения. Среди системного – разработка новых языков программирования и компиляторов к ним, разработка операционных систем (пример – общеизвестная операционная оболочка и система Windows). Среди прикладного программного обеспечения общего назначения самые популярные – системы обработки текстов, электронные таблицы (табличные процессоры), системы управления базами данных. В каждой области предметных приложений информатики существует множество специализированных прикладных программ более узкого назначения.
Информационные системы –раздел информатики, связанный с решением вопросов по анализу потоков информации в различных сложных системах, их оптимизации, структурировании, принципах хранения и поиска информации. Информационно-справочные системы, информационно-поисковые системы, гигантские современные глобальные системы хранения и поиска информации (включая широко известный Internet) в последнее десятилетие XX века привлекают внимание все большего круга пользователей. Без теоретического обоснования принципиальных решений в океане информации можно просто захлебнуться. Известным примером решения проблемы на глобальном уровне может служить гипертекстовая поисковая система WWW, а на значительно более низком уровне – справочная система, к услугам которой мы прибегаем, набрав телефонный номер 09.
Искусственный интеллект – область информатики, в которой решаются сложнейшие проблемы, находящиеся на пересечении с психологией, физиологией, лингвистикой и другими науками. Как научить компьютер мыслить подобно человеку? Поскольку мы далеко не все знаем о том, как мыслит человек, исследования по искусственному интеллекту, несмотря на полувековую историю, все еще не привели к решению ряда принципиальных проблем. Основные направления разработок, относящихся к этой области, – моделирование рассуждений, компьютерная лингвистика, машинный перевод, создание экспертных систем, распознавание образов и другие. От успехов работ в области искусственного интеллекта зависит, в частности, решение такой важнейшей прикладной проблемы, как создание интеллектуальных интерфейсных систем взаимодействия человека с компьютером, благодаря которым это взаимодействие будет походить на межчеловеческое и станет более эффективным.
1.1.3. Информационные ресурсы
Ресурс – запасы, источники чего-нибудь. Такая трактовка приведена в “Словаре русского языка” С.И. Ожегова.
В индустриальном обществе, где большая часть усилий направлена на материальное производство, известно несколько основных видов ресурсов, ставших уже классическими экономическими категориями:
- материальные ресурсы – совокупность предметов труда, предназначенных для использования в процессе производства общественного продукта, например сырье, материалы, топливо, энергия, полуфабрикаты, детали и т.д.;
- природные ресурсы – объекты, процессы, условия природы, используемые обществом для удовлетворения материальных и духовных потребностей людей;
- трудовые ресурсы – люди, обладающие общеобразовательными и профессиональными знаниями для работы в обществе;
- финансовые ресурсы – денежные средства, находящиеся в распоряжении государственной или коммерческой структуры;
- энергетические ресурсы – носители энергии, например уголь, нефть, нефтепродукты, газ, гидроэнергия, электроэнергия и т.д.
Одним из ключевых понятий при информатизации общества стало понятие «информационные ресурсы», толкование и обсуждение которого велось с того момента, когда начали говорить о переходе к информационному обществу. Этому вопросу посвящено довольно много публикаций, в которых отразились и разные мнения и определения, и разные научные школы, рассматривающие эти понятия.
Информационные ресурсы –отдельные документы и отдельные массивы документов, документы и массивы документов в информационных системах (библиотеках, архивах, фондах, банках данных, других информационных системах).
Надо понимать, что документы и массивы информации не существуют сами по себе. В них в разных формах представлены знания, которыми обладали люди, создававшие их. Таким образом, информационные ресурсы – это знания, подготовленные людьми для социального использования в обществе и зафиксированные на материальном носителе.
Информационные ресурсы общества, если их понимать как знания, отчуждены от тех людей, которые их накапливали, обобщали, анализировали, создавали и т.п. Эти знания материализовались в виде документов, баз данных, баз знаний, алгоритмов, компьютерных программ, а также произведений искусства, литературы, науки.
В настоящее время не разработана методология количественной и качественной оценки информационных ресурсов, а также прогнозирования потребностей общества в них. Это снижает эффективность информации, накапливаемой в виде информационных ресурсов, и увеличивает продолжительность переходного периода от индустриального общества к информационному. Кроме того, неизвестно, какой объем трудовых ресурсов должен быть задействован в сфере производства и распространения информационных ресурсов в информационном обществе. Несомненно, в будущем эти проблемы будут решены.
Информационные ресурсы страны, региона, организации должны рассматриваться как стратегические ресурсы, аналогичные по значимости запасам сырья, энергии, ископаемых и прочим ресурсам.
1.2. История развития информатики
До настоящего времени толкование термина “информатика” (в том смысле как он используется в современной научной и методической литературе) еще не является установившимся и общепринятым. Обратимся к истории вопроса, восходящей ко времени появления электронных вычислительных машин.
После второй мировой войны возникла и начала бурно развиваться кибернетика как наука об общих закономерностях в управлении и связи в различных системах: искусственных, биологических, социальных. Рождение кибернетики принято связывать с опубликованием в 1948 г. американским математиком Норбертом Винером ставшей знаменитой книги “Кибернетика или управление и связь в животном и машине”. В этой работе были показаны пути создания общей теории управления и заложены основы методов рассмотрения проблем управления и связи для различных систем с единой точки зрения. Развиваясь одновременно с развитием электронно-вычислительных машин, кибернетика со временем превращалась в более общую науку о преобразовании информации. Под информацией в кибернетике понимается любая совокупность сигналов, воздействий или сведений, которые некоторой системой воспринимаются от окружающей среды (входная информация X), выдаются в окружающую среду (выходная информация Y), а также хранятся в себе (внутренняя, внутрисистемная информация Z) (рис. 1.1).
Рис. 1.1. Общая схема обмена информацией между системой и внешней средой
Развитие кибернетики в нашей стране встретило идеологические препятствия. Как писал академик А.И.Берг, “… в 1955–57 гг. и даже позже в нашей литературе были допущены грубые ошибки в оценке значения и возможностей кибернетики. Это нанесло серьезный ущерб развитию науки в нашей стране, привело к задержке в разработке многих теоретических положений и даже самих электронных машин”. Достаточно сказать, что еще в философском словаре 1959 года издания кибернетика характеризовалась как “буржуазная лженаука”. Причиной этому послужили, с одной стороны, недооценка новой бурно развивающейся науки отдельными учеными “классического” направления, с другой – неумеренное пустословие тех, кто вместо активной разработки конкретных проблем кибернетики в различных областях спекулировал на полуфантастических прогнозах о безграничных возможностях кибернетики, дискредитируя тем самым эту науку.
Дело к тому же осложнялось тем, что развитие отечественной кибернетики на протяжении многих лет сопровождалось серьезными трудностями в реализации крупных государственных проектов, например, создания автоматизированных систем управления (АСУ). Однако за это время удалось накопить значительный опыт создания информационных систем и систем управления технико-экономическими объектами. Требовалось выделить из кибернетики здоровое научное и техническое ядро и консолидировать силы для развития нового движения к давно уже стоящим глобальным целям.
Подойдем сейчас к этому вопросу с терминологической точки зрения. Вскоре вслед за появлением термина “кибернетика” в мировой науке стало использоваться англоязычное “Computer Science”, а чуть позже, на рубеже шестидесятых и семидесятых годов, французы ввели получивший сейчас широкое распространение термин “Informatique”. В русском языке раннее употребление термина “информатика” связано с узко-конкретной областью изучения структуры и общих свойств научной информации, передаваемой посредством научной литературы. Эта информационно-аналитическая деятельность, совершенно необходимая и сегодня в библиотечном деле, книгоиздании и т.д., уже давно не отражает современного понимания информатики. Как отмечал академик А.П.Ершов, в современных условиях термин информатика “вводится в русский язык в новом и куда более широком значении – как название фундаментальной естественной науки, изучающей процессы передачи и обработки информации. При таком толковании информатика оказывается более непосредственно связанной с философскими и общенаучными категориями, проясняется и ее место в кругу «традиционных» академических научных дисциплин”.
Статьи к прочтению:
12 — Основы java. Подключение библиотек
Похожие статьи:
-
Подключение библиотек подпрограмм 2 страница
Попытку определить, что же такое современная информатика, сделал в 1978 г. Международный конгресс по информатике: “Понятие информатики охватывает…
-
Подключение библиотек подпрограмм 3 страница
Для понимания вероятностного подхода лучше всего рассмотреть несложный пример, связанный с бросанием правильной игральной кости, имеющей N граней…