Перейти к содержимому

       Торент трекер от http://stalker-worlds.ru        Хранилище сайта http://stalker-worlds.ru        Онлайн Сталкер Канал Унесенные Сталкером Присоединяйся к нашему сообществу на facebook Вступай в нашу группу в контакте


Добро пожаловать к нам на сайт! Про Ваш статус и права можно прочитать в Этой теме

Для просмотра картинок и скачивания файлов с форума - пройдите регистрацию!   Проблемы с регистрацией - вам сюда


Фотография

Прикладная информатика.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 37

#21
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

продолжение
2.4. Защита при отключении электропитания.


Признанной и надёжной мерой потерь информации, вызываемых кратковременным отключением электроэнергии, является в настоящее время установка источников бесперебойного питания. Подобные устройства, различающиеся по своим техническим и потребительским характеристикам, могут обеспечить питание всей ЛВС или отдельного компьютера в течение промежутка времени, достаточного для восстановления работы электросети или записи информации на магнитные носители. На российском рынке наибольшее распространение получили источники бесперебойного питания фирмы American Power Conversion (APC). Такие мощные модели, как Smart – UPS2000 фирмы APC, поддерживают работу ПК в течении 3-4 часов после отключения электропитания.
За рубежом крупные компании устанавливают резервные линии электропитания, подключённые к разным подстанциям, и при выходе из строя одной из них электричество подаётся с другой.


2.5. Предотвращение потерь из-за сбоя дисковых систем.


Согласно исследованиям проведённых в США, при полной потере информации на магнитных носителях вследствие сбоя компьютерной системы в первые три дня из общего числа потерпевших объявляют о своём банкротстве 60% фирм и в течение года – 90% из оставшихся. В России пока не существует полностью безбумажных технологий, и последствия фатального сбоя не будут столь трагическими, однако системам восстановления данных следует уделять самое пристальное внимание.
В настоящее время для восстановления данных при сбоях магнитных дисков применяются либо дублирующие друг друга зеркальные диски, либо системы дисковых массивов – Redundant Arrays of Inexpensive Disks (RAID).
Дисковые массивы можно реализовывать как во внутреннем, так и во внешнем исполнениях – в корпусе сервера ЛВС или на специальном шасси. В их производстве сегодня лтдируют фирмы Micropolis, DynaTek. Технические характеристики RAID – массивов фирмы DynaTek приведены с таблице:


Технические характеристики RAID – массивов фирмы DynaTek
c3e25717c449da868e3876490e7701d8d5577815

Организация надёжной и эффективной системы архивации данных – ещё одна важная задача по обеспечению сохранности информации в сети. В больших ЛВС для организации резервного копирования целесообразно использовать специализированный архивационный сервер. Одной из наиболее эффективных аппаратных систем такого рода является семейство архивационных серверов StorageExpress фирмы Intel.
Сервер StorageExpress подключается непосредственно к сетевому кабелю и служит для архивации данных, поступающих с любого из сетевых серверов и рабочих станций. При архивации выполняется двукратное сжатие. Соответствующее сетевое ПО – пакет Central Console – позволяет администратору ЛВС выбрать один из двух режимов резервного копирования:

• потоковый, выполняемый по умолчанию в автоматическом режиме;
• специальный, устанавливаемый администратором ЛВС.

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

2.6. Защита от компьютерных вирусов.


Довольно часто в печати появляются сообщения о нападениях на информационные и вычислительные центры компьютерных вирусов. Некоторые из них, например “Микеланджело”, уничтожают информацию, другие – такие, как “Червяк Моррисона”, проникают сквозь систему сетевых паролей. Но борьба даже со сравнительно безопасными вирусами требует значительных материальных затрат. По оценкам специалистов инженерного корпуса США, при обнаружении и уничтожении в вычислительных сетях военного ведомства вируса “Сатанинский жук” затраты составляли более 12000 долларов в час. Наиболее часто для борьбы с компьютерными вирусами применяются антивирусные программы, реже – аппаратные средства защиты.
Одной из самых мощных программ защиты от вирусов в ЛВС является ПО LANDesk Virus Protect фирмы Intel, базирующая на сетевом сервере. Используя загрузочные модули NetWare, она позволяет “отслеживать” обычные, полиморфные и “невидимые” вирусы. Сканирование происходит в режиме реального времени. При обнаружении вируса LANDesk Virus Protect по команде администратора может либо уничтожить файл, либо отправить его в специальный каталог – “отстойник”, предварительно зарегистрировав источник и тип заражения. Посредством модемной связи LANDesk Virus Protect в автоматическом режиме регулярно связывается с серверами Intel, откуда получает информацию о шаблонах новых вирусов.
Вероятность занесения компьютерного вируса снижает применение бездисковых станций.


2.7. Средства контроля доступа.


Распространённым средством ограничения доступа ( или ограничения полномочий ) в ЛВС является система паролей. Однако оно ненадёжно. Опытные хакеры могут взломать эту защиту, “подсмотреть” чужой пароль или войти в систему путём перебора возможных паролей, так как очень часто для них используются имена, фамилии или даты рождения пользователей. Более надёжное решение состоит в организации контроля доступа в помещения или к конкретному ПК в ЛВС с помощью идентификационных пластиковых карточек различных видов.
Использование пластиковых карточек с магнитной полосой для этих целей вряд ли целесообразно, поскольку, её можно легко подделать. Более высокую степень надёжности обеспечивают пластиковые карточки с встроенной микросхемой – так называемые микропроцессорные карточки ( МП – карточки, smart – card ). Их надёжность обусловлена в первую очередь невозможностью копирования или подделки кустарным способом. Кроме того, при производстве карточек в каждую микросхему заносится уникальный код, который невозможно продублировать. При выдаче карточки пользователю на неё наносится один или несколько паролей, известных только её владельцу. Для некоторых видов МП – карточек попытка несанкционированного использования заканчивается её автоматическим “закрытием”. Чтобы восстановить работоспособность такой карточки, её необходимо предъявить в соответствующую инстанцию. Кроме того, технология МП – карточек обеспечивает шифрование записанных на ней данных в соответствии со стандартом DES, используемым в США с 1976 г.
Установка специального считывающего устройства МП – карточек возможна не только на входе в помещения, где расположены компьютеры, но и непосредственно на рабочих станциях и серверах сети.


2.8. Криптографические методы защиты.


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


DES;
ГОСТ 28147-89 – отечественный метод, отличающийся высокой криптостойкостью;
RSA – система, в которой шифрование и расшифровка осуществляется с помощью разных ключей.

Недостатком RSA является довольно низкая скорость шифрования, зато она обеспечивает персональную электронную подпись, основанную на уникальном для каждого пользователя секретном ключе. Характеристики наиболее популярных методов шифрования приведены в таблице:

Характеристики наиболее распространённых методов шифрования.
09462297e9e38c60cab124f8bfb480a2d5577815


2.9. Административные меры


Применение одних лишь технических решений для организации надёжной и безопасной работы сложных сетей явно недостаточно. Требуется комплексный подход, включающий как перечень стандартных мер по обеспечению безопасности и срочному восстановлению данных при сбоях системы, так и специальные планы действий в нештатных ситуациях
Что можно отнести к организационным мероприятиям по защите ценной информации ?

Во – первых, чёткое разделение персонала с выделением помещений или расположением подразделений компактными группами на некотором удалении друг от друга.
Во – вторых,ограничение доступа в помещения посторонних лиц или сотрудников других подразделений. Совершенно необходимо запирать и опечатывать помещения при сдаче их под охрану после окончания работы.
В – третьих, жёсткое ограничение круга лиц, имеющих доступ к каждому компьютеру. Выполнение данного требования является самым трудным, поскольку довольно часто нет средств на покупку ПК для каждого сотрудника.
В – четвёртых, требование от сотрудников в перерывах выключать компьютер или использовать специальные программы – хранители экранов, которые позволяют стереть информацию с экрана монитора и закрыть паролем возможность снятия режима хранителя экрана.
В заключении можно отметить, что единого рецепта, обеспечивающего 100% гарантии сохранности данных и надёжной работы сети не существует. Однако создание комплексной, продуманной концепции безопасности, учитывающей специфику задач конкретной организации, поможет свести риск потери ценнейшей информации к минимуму.

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#22
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

Системы управления
В соответствии с рекомендациями ISO можно выделить следующие функции средств управления сетью:
• Управление конфигурацией сети и именованием - состоит в конфигурировании компонентов сети, включая их местоположение, сетевые адреса и идентификаторы, управление параметрами сетевых операционных систем, поддержание схемы сети: также эти функции используются для именования объектов.
• Обработка ошибок - это выявление, определение и устранение последствий сбоев и отказов в работе сети.
• Анализ производительности - помогает на основе накопленной статистической информации оценивать время ответа системы и величину трафика, а также планировать развитие сети.
• Управление безопасностью - включает в себя контроль доступа и сохранение целостности данных. В функции входит процедура аутентификации, проверки привилегий, поддержка ключей шифрования, управления полномочиями. К этой же группе можно отнести важные механизмы управления паролями, внешним доступом, соединения с другими сетями.
• Учет работы сети - включает регистрацию и управление используемыми ресурсами и устройствами. Эта функция оперирует такими понятиями как время использования и плата за ресурсы.

Из приведенного списка видно, что системы управления выполняют не только функции мониторинга и анализа работы сети, необходимые для получения исходных данных для настройки сети, но и включают функции активного воздействия на сеть - управления конфигурацией и безопасностью, которые нужны для отработки выработанного плана настройки и оптимизации сети. Сам этап создания плана настройки сети обычно остается за пределами функций системы управления, хотя некоторые системы управления имеют в своем составе экспертные подсистемы, помогающие администратору или интегратору определить необходимые меры по настройке сети.
Средства управления сетью
(NetworkManagement), не следует путать со средствами управления компьютерами и их операционными системами(SystemManagement).
Средства управления системой обычно выполняют следующие функции:


• Учет используемых аппаратных и программных средств. Система автоматически собирает информацию об обследованных компьютерах и создает записи в базе данных об аппаратных и программных ресурсах. После этого администратор может быстро выяснить, чем он располагает и где это находится. Например, узнать о том, на каких компьютерах нужно обновить драйверы принтеров, какие ПК обладают достаточным количеством памяти и дискового пространства и т. п.
• Распределение и установка программного обеспечения. После завершения обследования администратор может создать пакеты рассылки программного обеспечения - очень эффективный способ для уменьшения стоимости такой процедуры. Система может также позволять централизованно устанавливать и администрировать приложения, которые запускаются с файловых серверов, а также дать возможность конечным пользователям запускать такие приложения с любой рабочей станции сети.
• Удаленный анализ производительности и возникающих проблем. Администратор может удаленно управлять мышью, клавиатурой и видеть экран любого ПК, работающего в сети под управлением той или иной сетевой операционной системы. База данных системы управления обычно хранит детальную информацию о конфигурации всех компьютеров в сети для того, чтобы можно было выполнять удаленный анализ возникающих проблем.

Примерами средств управления системой являются такие продукты, какSystemManagementServerкомпании Microsoftили LANDeskManagerфирмы Intel, а типичными представителями средств управления сетями являются системы HPOpenView, SunNetManager и IBMNetView.
В последнее время в области систем управления наблюдаются две достаточно четко выраженные тенденции:

• интеграция в одном продукте функций управления сетями и системами,
• распределенность системы управления, при которой в системе существует несколько консолей, собирающих информацию о состоянии устройств и систем и выдающих управляющие действия.

Создание систем управления сетями немыслимо без ориентации на определенные стандарты, так как управляющее программное обеспечение и сетевое оборудование, а, значит, и агентов для него, разрабатывают сотни компаний. Поскольку корпоративная сеть наверняка неоднородна, управляющие инструменты не могут отражать специфики одной системы или сети.
Наиболее распространенным протоколом управления сетями является
протокол SNMP (Simple Network Management Protocol), его поддерживают сотни производителей. Главные достоинства протокола SNMP - простота, доступность, независимость от производителей. В значительной степени именно популярность SNMP задержала принятие CMIP, варианта управляющего протокола по версии OSI. Протокол SNMP разработан для управления маршрутизаторами в сети Internet и является частью стека TCP/IP.
SNMP -это протокол, используемый для получения от сетевых устройств информации об их статусе, производительности и характеристиках, которые хранятся в специальной базе данных сетевых устройств, называемой MIB (ManagementInformationBase). Существуют стандарты, определяющие структуру MIB,в том числе набор типов ее переменных (объектов в терминологии ISO), их имена и допустимые операции этими переменными (например, читать). В MIB, наряду с другой информацией, могут храниться сетевой и/или MAC-адреса устройств, значения счетчиков обработанных пакетов и ошибок, номера, приоритеты и информация о состоянии портов. Древовидная структура MIBсодержит обязательные (стандартные) поддеревья, а также в ней могут находиться частные (private) поддеревья, позволяющие изготовителю интеллектуальных устройств реализовать какие-либо специфические функции на основе его специфических переменных.
Агент в протоколе SNMP - это обрабатывающий элемент, который обеспечивает менеджерам, размещенным на управляющих станциях сети, доступ к значениям переменных MIB, и тем самым дает им возможность реализовывать функции по управлению и наблюдению за устройством. Типичная структура системы управления изображена на рисунке 3.1.
ee37c5dc2f4638cdb0e22ddecd2fef615ee6f615

Рис. 3.1. Типичная структура системы управления сетью.
Основные операции по управлению вынесены в управляющую станцию. При этом устройство работает с минимальными издержками на поддержание управляющего протокола. Оно использует почти всю свою вычислительную мощность для выполнения своих основных функций маршрутизатора, моста или концентратора, а агент занимается сбором статистики и значений переменных состояния устройства и передачей их менеджеру системы управления. SNMP - это протокол типа "запрос-ответ", то есть на каждый запрос, поступивший от менеджера, агент должен передать ответ. Особенностью протокола является его чрезвычайная простота - он включает в себя всего несколько команд.
• Команда Get-request используется менеджером для получения от агента значения какого-либо объекта по его имени.
• Команда GetNext-request используется менеджером для извлечения значения следующего объекта (без указания его имени) при последовательном просмотре таблицы объектов.
• С помощью команды Get-response агент SNMP передает менеджеру ответ на одну из команд Get-request или GetNext-request.
• Команда Setиспользуется менеджером для установления значения какого-либо объекта либо условия, при выполнении которого агент SNMP должен послать менеджеру соответствующее сообщение. Может быть определена реакция на такие события как инициализация агента, рестарт агента, обрыв связи, восстановление связи, неверная аутентификация и потеря ближайшего маршрутизатора. Если происходит любое из этих событий, то агент инициализирует прерывание.
• Команда Trapиспользуется агентом для сообщения менеджеру о возникновении особой ситуации.
• Версия SNMPv.2 добавляет к этому набору команду GetBulk, которая позволяет менеджеру получить несколько значений переменных за один запрос.

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#23
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

Встроенные средства мониторинга и анализа сетей
Агенты SNMP


На сегодня существует несколько стандартов на базы данных управляющей информации. Основными являются стандарты MIB-I и MIB-II, а также версия базы данных для удаленного управления RMONMIB. Кроме этого, существуют стандарты для специальных MIB устройств конкретного типа (например, MIB для концентраторов или MIB для модемов), а также частные MIB конкретных фирм-производителей оборудования.
Первоначальная спецификация MIB-I определяла только операции чтения значений переменных. Операции изменения или установки значений объекта являются частью спецификаций MIB-II.

Версия MIB-I (RFC 1156) определяет до 114 объектов, которые подразделяются на 8 групп:
• System - общие данные об устройстве (например, идентификатор поставщика, время последней инициализации системы).
• Interfaces - описываются параметры сетевых интерфейсов устройства (например, их количество, типы, скорости обмена, максимальный размер пакета).
• AddressTranslationTable - описывается соответствие между сетевыми и физическими адресами (например, по протоколу ARP).
• InternetProtocol - данные, относящиеся к протоколу IP (адреса IP-шлюзов, хостов, статистика об IP-пакетах).
• ICMP - данные, относящиеся к протоколу обмена управляющими сообщениями ICMP.
• TCP - данные, относящиеся к протоколу TCP (например, о TCP-соединениях).
• UDP - данные, относящиеся к протоколу UDP (число переданных, принятых и ошибочных UPD-дейтаграмм).
• EGP - данные, относящиеся к протоколу обмена маршрутной информацией ExteriorGatewayProtocol, используемому в сети Internet (число принятых с ошибками и без ошибок сообщений).

Из этого перечня групп переменных видно, что стандарт MIB-I разрабатывался с жесткой ориентацией на управление маршрутизаторами, поддерживающими протоколы стека TCP/IP.
В версии MIB-II (RFC 1213), принятой в 1992 году, был существенно (до 185) расширен набор стандартных объектов, а число групп увеличилось до 10.


Агенты RMON


Новейшим добавлением к функциональным возможностям SNMP является спецификация RMON, которая обеспечивает удаленное взаимодействие с базой MIB. До появления RMON протокол SNMP не мог использоваться удаленным образом, он допускал только локальное управление устройствами. База RMONMIB обладает улучшенным набором свойств для удаленного управления, так как содержит агрегированную информацию об устройстве, что не требует передачи по сети больших объемов информации. Объекты RMONMIB включают дополнительные счетчики ошибок в пакетах, более гибкие средства анализа графических трендов и статистики, более мощные средства фильтрации для захвата и анализа отдельных пакетов, а также более сложные условия установления сигналов предупреждения. Агенты RMONMIB более интеллектуальны по сравнению с агентами MIB-I или MIB-II и выполняют значительную часть работы по обработке информации об устройстве, которую раньше выполняли менеджеры. Эти агенты могут располагаться внутри различных коммуникационных устройств, а также быть выполнены в виде отдельных программных модулей, работающих на универсальных ПК и ноутбуках (примером может служить LANalyzerNovell).
Объекту RMON присвоен номер 16 в наборе объектов MIB, а сам объект RMON объединяет 10 групп следующих объектов:

• Statistics -текущие накопленные статистические данные о характеристиках пакетов, количестве коллизий и т.п.
• History - статистические данные, сохраненные через определенные промежутки времени для последующего анализа тенденций их изменений.
• Alarms -пороговые значения статистических показателей, при превышении которых агент RMON посылает сообщение менеджеру.
• Host - данных о хостах сети, в том числе и об их MAC-адресах.
• HostTopN - таблица наиболее загруженных хостов сети.
• TrafficMatrix - статистика об интенсивности трафика между каждой парой хостов сети, упорядоченная в виде матрицы.
• Filter - условия фильтрации пакетов.
• PacketCapture - условия захвата пакетов.
• Event - условия регистрации и генерации событий.

Данные группы пронумерованы в указанном порядке, поэтому, например, группа Hosts имеет числовое имя 1.3.6.1.2.1.16.4.
Десятую группу составляют специальные объекты протокола
TokenRing.
Всего стандарт RMONMIBопределяет около 200 объектов в 10 группах, зафиксированных в двух документах - RFC 1271 для сетей Ethernet и RFC 1513 для сетей TokenRing.
Отличительной чертой стандартаRMONMIBявляется его независимость от протокола сетевого уровня (в отличие от стандартов MIB-I и MIB-II, ориентированных на протоколы TCP/IP). Поэтому, его удобно использовать в гетерогенных средах, использующих различные протоколы сетевого уровня.



Анализаторы протоколов


В ходе проектирования новой или модернизации старой сети часто возникает необходимость в количественном измерении некоторых характеристик сети таких, например, как интенсивности потоков данных по сетевым линиям связи, задержки, возникающие на различных этапах обработки пакетов, времена реакции на запросы того или иного вида, частота возникновения определенных событий и других характеристик.
Для этих целей могут быть использованы разные средства и прежде всего - средства мониторинга в системах управления сетью, которые уже обсуждались в предыдущих разделах. Некоторые измерения на сети могут быть выполнены и встроенными в операционную систему программными измерителями, примером тому служит компонента ОСWindowsNTPerformanceMonitor. Даже кабельные тестеры в их современном исполнении способны вести захват пакетов и анализ их содержимого.
Но наиболее совершенным средством исследования сети является анализатор протоколов. Процесс анализа протоколов включает захват циркулирующих в сети пакетов, реализующих тот или иной сетевой протокол, и изучение содержимого этих пакетов. Основываясь на результатах анализа, можно осуществлять обоснованное и взвешенное изменение каких-либо компонент сети, оптимизацию ее производительности, поиск и устранение неполадок. Очевидно, что для того, чтобы можно было сделать какие-либо выводы о влиянии некоторого изменения на сеть, необходимо выполнить анализ протоколов и до, и после внесения изменения.

Анализатор протоколов представляет собой либо самостоятельное специализированное устройство, либо персональный компьютер, обычно переносной, класса Notebook, оснащенный специальной сетевой картой и соответствующим программным обеспечением. Применяемые сетевая карта и программное обеспечение должны соответствовать топологии сети(кольцо, шина, звезда). Анализатор подключается к сети точно также, как и обычный узел. Отличие состоит в том, что анализатор может принимать все пакеты данных, передаваемые по сети, в то время как обычная станция - только адресованные ей.Программное обеспечение анализатора состоит из ядра, поддерживающего работу сетевого адаптера и декодирующего получаемые данные, и дополнительного программного кода, зависящего от типа топологии исследуемой сети. Кроме того, поставляется ряд процедур декодирования, ориентированных на определенный протокол, например, IPX.В состав некоторых анализаторов может входить также экспертная система, которая может выдавать пользователю рекомендации о том, какие эксперименты следует проводить в данной ситуации, что могут означать те или иные результаты измерений, как устранить некоторые виды неисправности сети.
Несмотря на относительное многообразие анализаторов протоколов, представленных на рынке, можно назвать некоторые черты, в той или иной мере присущие всем им:


• Пользовательский интерфейс. Большинство анализаторов имеют развитый дружественный интерфейс, базирующийся, как правило, на Windows или Motif. Этот интерфейс позволяет пользователю: выводить результаты анализа интенсивности трафика; получать мгновенную и усредненную статистическую оценку производительности сети; задавать определенные события и критические ситуации для отслеживания их возникновения; производить декодирование протоколов разного уровня и представлять в понятной форме содержимое пакетов.
• Буфер захвата. Буферы различных анализаторов отличаются по объему. Буфер может располагаться на устанавливаемой сетевой карте, либо для него может быть отведено место в оперативной памяти одного из компьютеров сети. Если буфер расположен на сетевой карте, то управление им осуществляется аппаратно, и за счет этого скорость ввода повышается. Однако это приводит к удорожанию анализатора. В случае недостаточной производительности процедуры захвата, часть информации будет теряться, и анализ будет невозможен. Размер буфера определяет возможности анализа по более или менее представительным выборкам захватываемых данных. Но каким бы большим ни был буфер захвата, рано или поздно он заполнится. В этом случае либо прекращается захват, либо заполнение начинается с начала буфера.
• Фильтры. Фильтры позволяют управлять процессом захвата данных, и, тем самым, позволяют экономить пространство буфера. В зависимости от значения определенных полей пакета, заданных в виде условия фильтрации, пакет либо игнорируется, либо записывается в буфер захвата. Использование фильтров значительно ускоряет и упрощает анализ, так как исключает просмотр ненужных в данный момент пакетов.
• Переключатели - это задаваемые оператором некоторые условия начала и прекращения процесса захвата данных из сети. Такими условиями могут быть выполнение ручных команд запуска и остановки процесса захвата, время суток, продолжительность процесса захвата, появление определенных значений в кадрах данных. Переключатели могут использоваться совместно с фильтрами, позволяя более детально и тонко проводить анализ, а также продуктивнее использовать ограниченный объем буфера захвата.
• Поиск. Некоторые анализаторы протоколов позволяют автоматизировать просмотр информации, находящейся в буфере, и находить в ней данные по заданным критериям. В то время, как фильтры проверяют входной поток на предмет соответствия условиям фильтрации, функции поиска применяются к уже накопленным в буфере данным.
Методология проведения анализа может быть представлена в виде следующих шести этапов:
1. Захват данных.
2. Просмотр захваченных данных.
3. Анализ данных.
4. Поиск ошибок. (Большинство анализаторов облегчают эту работу, определяя типы ошибок и идентифицируя станцию, от которой пришел пакет с ошибкой.)
5. Исследование производительности. Рассчитывается коэффициент использования пропускной способности сети или среднее время реакции на запрос.
6. Подробное исследование отдельных участков сети. Содержание этого этапа конкретизируется по мере того, как проводится анализ.

Обычно процесс анализа протоколов занимает относительно немного времени - 1-2 рабочих дня.

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#24
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

Оборудование для диагностики и сертификации кабельных систем


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

Основные электромагнитные характеристики кабельных систем


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

• Перекрестные наводки между витыми парами или NearEndCrosstalk (NEXT) - представляют собой результат интерференции электромагнитных сигналов, возникающих в двух витых парах. Один из кабелей витой пары является передающим, а второй - приемным. При прохождении сигнала по одному из кабелей, например передающему, в приемном кабеле возникают перекрестные наводки. Величина NEXT зависит от частоты передаваемого сигнала - чем выше величина NEXT, тем лучше (для категории 5 NEXT должен быть не менее 27 Дб при частоте 100 Мгц, для кабеля категории 3 на частоте 10 МГц NEXT должен быть не менее 26 Дб).
• Затухание (Attenuation) - представляет собой потерю амплитуды электрического сигнала при его распространении по кабелю. Затухание имеет два основных источника: электрические характеристики кабеля и поверхностный эффект. Последний объясняет зависимость затухания от частоты. Затухание измеряется в децибелах на метр. Для кабеля категории 5 при частоте 100 Мгц затухание не должно превышать 23.6 Дб на 100 м, а для кабеля категории 3, применяемого по стандарту IEEE 802.3 10BASE-T, допустимая величина затухания на сегменте длиной 100 м не должна превышать 11,5 Дб при частоте переменного тока 10 МГц.
• Импеданс (волновое сопротивление) - это полное (активное и реактивное) сопротивление в электрической цепи. Импеданс измеряется в омах и является относительно постоянной величиной для кабельных систем. Для неэкранированной витой пары наиболее часто используемые значения импеданса - 100 и 120 Ом. Характерные значения импеданса для сетей стандарта Ethernet на коаксиальном кабеле составляют 50 Ом, а для сетей стандарта Arcnet - 93 Ом. Резкие изменения импеданса по длине кабеля могут вызвать процессы внутреннего отражения, приводящие к возникновению стоячих волн. Рабочая станция, подключенная к кабелю вблизи узла стоячей волны, не сможет получать адресованные ей сообщения.
• Активное сопротивление - это сопротивление постоянному току в электрической цепи. В отличие от импеданса активное сопротивление не зависит от частоты и возрастает с увеличением длины кабеля. Для неэкранированной витой пары категории 5 активное сопротивление не должно превышать 9.4 Ом на 100 м.
• Емкость - это свойство металлических проводников накапливать энергию. Два электрических проводника в кабеле, разделенные диэлектриком, представляют собой конденсатор, способный накапливать заряд. Емкость является нежелательной величиной, поэтому ее следует делать как можно меньше. Высокое значение емкости в кабеле приводит к искажению сигнала и ограничивает полосу пропускания линии. Для кабельных систем категории 5 значение емкости не должно превышать 5.6нФ на 100 м.
• Уровень внешнего электромагнитного излучения, или электрический шум- это нежелательное переменное напряжение в проводнике. Электрический шум бывает двух типов: фоновый и импульсный. Электрический шум можно также разделить на низко-, средне- и высокочастотный. Источниками фонового электрического шума являются в диапазоне до 150 КГц линии электропередачи, телефоны и лампы дневного света; в диапазоне от 150 КГц до 20 Мгц компьютеры, принтеры, ксероксы; в диапазоне от 20 Мгц до 1 ГГц - телевизионные и радиопередатчики, микроволновые печи. Основными источниками импульсного электрического шума являются моторы, переключатели и сварочные агрегаты. Электрический шум измеряется в мВ. Кабельные системы на витой паре не сильно подвержены влиянию электрического шума (в отличие от влияния NEXT).

Сетевые анализаторы


Сетевые анализаторы (не следует путать их с анализаторами протоколов) представляют собой эталонные измерительные инструменты для диагностики и сертификации кабелей и кабельных систем. В качестве примера можно привести сетевые анализаторы компанииHewlettPackard - HP 4195A и HP 8510C.
Сетевые анализаторы содержат высокоточный частотный генератор и узкополосный приемник. Передавая сигналы различных частот в передающую пару и измеряя сигнал в приемной паре, можно измерить затухание и NEXT. Сетевые анализаторы - это прецизионные крупногабаритные и дорогие (стоимостью более $20'000) приборы, предназначенные для использования в лабораторных условиях специально обученным техническим персоналом.

Кабельные сканеры


Данные приборы позволяют определить длину кабеля, NEXT, затухание, импеданс, схему разводки, уровень электрических шумов и провести оценку полученных результатов. Цена на эти приборы варьируется от $1'000 до $3'000. Существует достаточно много устройств данного класса, например, сканерыкомпаний MicrotestInc., FlukeCorp., DatacomTechnologiesInc., ScopeCommunicationInc.В отличие от сетевых анализаторов сканеры могут быть использованы не только специально обученным техническим персоналом, но даже администраторами-новичками.
Для определения местоположения неисправности кабельной системы (обрыва, короткого замыкания, неправильно установленного разъема и т.д.) используется метод"кабельного радара", илиTimeDomainReflectometry (TDR). Суть этого метода состоит в том, что сканер излучает в кабель короткий электрический импульс и измеряет время задержки до прихода отраженного сигнала. По полярности отраженного импульса определяется характер повреждения кабеля (короткое замыкание или обрыв). В правильно установленном и подключенном кабеле отраженный импульс совсем отсутствует.
Точность измерения расстояния зависит от того, насколько точно известна скорость распространения электромагнитных волн в кабеле. В различных кабелях она будет разной. Скорость распространения электромагнитных волн в кабеле
(NVP - nominalvelocityofpropagation) обычно задается в процентах к скорости света в вакууме. Современные сканеры содержат в себе электронную таблицу данных оNVP для всех основных типов кабелей и позволяют пользователю устанавливать эти параметры самостоятельно после предварительной калибровки.
Наиболее известными производителями компактных (их размеры обычно не превышают размеры видеокассеты стандарта VHS)кабельных сканеров являются компанииMicrotestInc., WaveTekCorp., ScopeCommunicationInc.

Тестеры


Тестеры кабельных систем - наиболее простые и дешевые приборы для диагностики кабеля. Они позволяют определить непрерывность кабеля, однако, в отличие от кабельных сканеров, не дают ответа на вопрос о том, в каком месте произошел сбой.

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#25
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

Страж Форума, спс))) Без нее тутаси не разберешься))) Поехали дальше)))


Специализация продукта


N2000 DMS может осуществлять управление устройствами через простой протокол сетевого управления (SNMP) или интерфейс командной строки (CLI). В качестве EMS, N2000 DMS предоставляет односторонние интерфейсы (NBIs) на базе протоколов SNMP, CORBA, Syslog и FTP для взаимодействия с OSS/BSSs.
N2000 DMS составляет основу решения Huawei по управлению сетями передачи данных и их поддержке. Система реализует все функции управления применительно к уровню управления сетевыми элементами, а также реализует некоторые функции управления на уровне управления сети
Provisioning: предоставление услуг
Assurance: обеспечение гарантированного качества услуг
Base: управление сетевыми элементами
Будучи основной частью системы NMS, N2000 DMS состоит из множества компонентов, к которым в том числе относятся:

• Основной компонент N2000 DMS
Он предусматривает функции управления топологией, ресурсами, безопасностью, неисправностями, журналами регистрации и конфигурациями.
• Компонент интегрированной системы управления рабочими характеристиками (IPMS)
Поставляется наряду с базовым ПО управления сетевыми элементами (NE) и имеет следующие функции:
- сбор рабочих показателей в отношении коэффициента использования ЦПУ, статистики по пакетам, высокоскоростного входящего трафика, высокоскоростного исходящего трафика, низкоскоростного входящего трафика и низкоскоростного исходящего трафика.
- анализ данных по рабочим характеристикам
• Компонент протокола управления группами Huawei (HGMP)
Осуществляет управление группой отдельных устройств, как кластером, в интегрированном режиме. В результате, можно сохранять IP-адреса, повысить эффективность управления и снизить расходы на управление.
Посредством данных компонентов, N2000 DMS предоставляет гибкие решения по сетевому управлению.


Предоставление услуг


N2000 DMS предусматривает следующие компоненты для уровня предоставления услуг:

• VPN-менеджер
Реализует централизованное управление применительно к трем стандартным сервисам - BGP/MPLS VPN, VPLS и PWE3. Кроме этого, позволяет осуществлять такие повседневные операции, как запуск, мониторинг и диагностика услуг.
• LSP-менеджер
Осуществляет централизованное управление применительно к протоколам MPLS, MPLS TE, статичному сервису LSP, сервису MPLS TE и MPLS OAM.

Обеспечение гарантированного качества услуг


N2000 DMS предусматривает следующие компоненты для уровня обеспечения гарантированного качества услуг:

• Менеджер рабочих характеристик IP-сети
Используется для сбора и анализа рабочих показателей IP-сети, в числе которых:
- Коэффициент использования ЦПУ
- Коэффициент использования памяти
- Входящий трафик сетевого интерфейса
- Исходящий трафик сетевого интерфейса
- Коэффициент использования полосы пропускания
- Задержка тракта
- Коэффициент потери пакетов
• Менеджер отчетов
Предоставляет посредством Web такие функции, как формирование и отправка отчетов, управление отчетами.
• Компонент общего шаблона конфигурации
Позволяет запускать сценарии конфигурации для одного или нескольких устройств с помощью шаблонов, а также модифицировать общие шаблоны конфигурации.
• Компонент тестовой диагностики
Предоставляет простые в использовании функции тестовой диагностики для тестирования соединений сетей и подключаемости услуг. Диагностику можно активировать вручную или настраивать на автоматический запуск в требуемое время.
• Компонент центра обработки данных (DC)
Осуществляет централизованное управление применительно к конфигурационным файлам устройств и программам образов, например, сохранение и восстановление конфигурационных файлов и обновление программ образов.
• Компонент Syslog
Реализует функцию сбора, выгрузки и запроса журналов регистрации устройства. Посредством настройки правил фильтрации и запуска можно производить обработку событий устройства в требуемом режиме.

Преимущества и особенности
Унифицированные и централизованные решения


N2000 DMS предлагает решения унифицированного и централизованного управления для различных типов сетей, включая опорные IP-сети и Metro Ethernet. Система также предусматривает решение HGMP для сети доступа Ethernet. Управление сетевыми устройствами осуществляется унифицированно и централизованно.
Основные функции N2000 DMS:

• Управление топологией
• Управление ресурсами
• Управление неисправностями
• Управление конфигурацией
• Управление безопасностью
• Управление рабочими характеристиками

Межплатформенное функционирование


Разработанная на базе интегрированной прикладной платформы управления (iMAP) компании Huawei, система N2000 DMS может функционировать как в операционной системе Solaris, так и в Windows.
При наличии необходимой операционной системы и сервера, N2000 DMS можно использовать в высокоуровневых решениях для масштабных сетей, а также в низкозатратных решениях.


Оптимальная архитектура и расширяемость


N2000 DMS использует распределенную архитектуру. Это позволяет производить запуск коллекторов в распределенном режиме. Таким образом, при управлении сложной и масштабной сетью N2000 DMS имеет следующие преимущества:
• Отличная расширяемость
• Хорошая гибкость
• Высокая эффективность
В N2000 DMS применяется широко используемая модель клиент/сервер, а в менеджере рабочих характеристик IP-сети – модель браузер/сервер.
N2000 DMS позволяет распределить систему обработки услуг и систему активных приложений по иерархическому принципу. Таким образом, N2000 DMS поддерживает одновременное управление операциями нескольких клиентов.
Дизайн системы обработки услуг N2000 DMS имеет следующие характеристики:


• Многопроцессорность
• Модульная структура
• Объектная ориентированность
Путем отделения уровня сбора данных в N2000 DMS от уровня обработки услуг и уровня отображения услуг достигаются следующие преимущества:
• Увеличенная емкость системы
• Более высокая производительность
• Более высокий уровень восстанавливаемости благодаря локализации неисправностей

Удобная статистика характеристик


N2000 DMS предоставляет много типов функций управления характеристиками на многих уровнях.
N2000 DMS отслеживает данные SLA сети путем мониторинга в реальном времени следующих ресурсов:

- Характеристики устройства;
- Интерфейсы устройства;
- Сквозные звенья.
Посредством анализа архива данных характеристик, N2000 DMS может помочь изучить прошлый и текущий статус функционирования и характеристики сети. В результате можно прогнозировать статус функционирования в будущем, планировать и обслуживать сеть, предотвращая сбои сети.
Мониторинг характеристик NE
Эта функция используется для мониторинга следующих характеристик сетевых элементов (NE):
Использование CPU устройства;
Использование памяти устройства;
Использование жесткого диска устройства;
Совокупный онлайновый доступ;
Количество онлайнового доступа PPPoE;
Количество пакетов разных протоколов, принятых или переданных устройством.
Мониторинг сетевого трафика
Эта функция используется для сбора следующей статистики трафика сети:
Входящий трафик;
Исходящий трафик;
Использование входящей пропускной способности;
Использование исходящей пропускной способности.
Мониторинг данных SLA
Эта функция используется для мониторинга следующих характеристик:
Задержка и коэффициент потери пакетов ICMP, TCP, UDP и SNMP между узлами сети;
Задержка, джиттер и коэффициент потери пакетов между устройствами сети;
Задержка соединения и скорость загрузки услуг Интернет, таких как услуги HTTP и FTP .
Просмотр в реальном времени и архив данных характеристик
Эта функция позволяет использовать Web-браузер для просмотра и анализа архива и статистики характеристик сети в реальном времени без регистрации на клиенте N2000 DMS.

Мощная защита от ошибок и неисправностей


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


• Все типы аварийных сигналов, сгенерированных серийным устройством передачи данных;
• Общие аварийные сигналы linkDown и linkUp.
N2000 DMS может отображать статус аварийной сигнализации устройств в различных окнах топологии. Предоставляются следующие функции аварийной сигнализации:
• Удаленное уведомление об аварийной сигнализации посредством системы коротких сообщений (SMS) или электронной почты;
• При необходимости фильтрация аварийной сигнализации;
• Переопределение уровней серьезности аварийных сигналов;
• Реализация мер локализации сбоев и базы знаний аварийной сигнализации.

Гибкая тестовая диагностика


N2000 DMS предоставляет простую и легкую в использовании функцию тестовой диагностики для тестирования возможности соединения сети и услуг. Можно управлять тестовыми задачами уровня приложений, транспортного, сетевого, канального уровня и услугами MPLS с помощью тестовых комплектов. Можно выполнять некоторые или все тестовые задачи в комплекте тестов.
N2000 DMS предоставляет гибкие политики диагностики и позволяет выполнять требуемые тестовые задачи вручную или автоматически. Мощная функция сканирования сети позволяет полностью проверить возможность соединения основных IP-звеньев сети. Система диагностики генерирует журналы операций для выполнения тестовых задач. Это позволяет всесторонне анализировать архив данных.


Легкое развертывание услуг


Предоставляя быстрое и скрупулезное развертывание услуг, N2000 DMS в большой степени снижает эксплуатационные расходы (OPEX) операторов .
Специфические функции, предоставляемые N2000 DMS для развертывания услуг, следующие:


Упрощение процесса развертывания услуг путем использования шаблонов и установка параметров конфигурации с помощью интерфейса;
Предоставление проверки целостности услуги для предотвращения конфликтов таких параметров конфигурации услуги, как VSI ID и метки MPLS;
Возможность пакетного конфигурирования устройств, что позволяет быстро идентифицировать некорректную конфигурацию услуги на различных устройствах;
Возможность растущей нагрузкиуслуг в текущих сетях к N2000 DMS в процессе развертывания услуги;
Предоставление централизованного управленияразличными услугами путем гибкого комбинирования услуг PWE3, VPLS и MPLS VPN и автоматического вычисления точек соединения услуг;
Быстрое и автоматическое обнаружение услуг в текущей сети посредством двухступенчатого мастера;
Возможность быстрой локализации услуг, связанных с аварийной сигнализацией, посредством звеньев между аварийными сигналами и перечнем услуг;
Отображение аварийных сигналов в окне топологии и предоставление визуального доступа для таких функций, как услуги диагностики и отладки, активация или деактивация интерфейсов доступа услуг, настройка услуг Telnet и Tracert
Предоставление настройки окна услуг и отображение аварийных сигналов, связанных с услугами, в реальном времени для VIP-клиентов.

Высокая надежность и безопасность


Дизайн N2000 DMS отвечает требованиям к безопасности.
Разработанный на базе платформы базы данных корпоративного уровня, N2000 DMS обеспечивает высокую безопасность в следующих аспектах:

• Управление полномочиями;
• Дублирование данных;
• Дублирование услуг.
N2000 DMS поддерживает ACL системного и пользовательского уровней и полномочия могут быть классифицированы на основе пользователей и групп пользователей. Может осуществляться мониторинг действий пользователя и подробная запись журналов пользователей.
Решение высокой готовности (HA) двухузлового кластера N2000 DMS может использоваться для мониторинга и защиты следующих аспектов N2000:

• ПО;
• База данных;
• Сетевая связь.
Это решение также поддерживает плавающую IP-адресацию и синхронизацию данных в реальном времени между серверами. При выходе из строя активного звена, резервный узел начинает функционировать как новый активный узел для обеспечения безопасности данных.
В режиме одиночного сервера, N2000 DMS может защитить данные путем зеркалирования диска.


Удобная установка


N2000 DMS предоставляет следующие возможности для облегчения установки:
• GUI и мастер для установки и обновления;
• Настройка компонентов в процессе установки.
Дружественный интерфейс человек-машина


Для обслуживания совместимости визуальных эффектов для удовлетворения привычек пользователей, N2000 DMS предоставляет интерфейсы в одном стиле для обслуживания следующих ресурсов:
• Сбои;
• Топология;
• Панель устройства;
• Конфигурация.
Для некоторых общих операций N2000 DMS предоставляет функцию пакетных операций и ключи доступа. Это упрощает повседневную работу и позволяет выполнять эти операции быстро и эффективно.
Полная и простая в использовании справочная система

N2000 DMS предоставляет полную, полезную и простую в использовании справочную систему.
Разнообразие внешних интерфейсов


N2000 DMS поддерживает несколько типов нисходящих интерфейсов (SBI), включая:
• SNMP SBI;
• Telnet SBI;
• FTP SBI;
• Syslog SBI.
Посредством этих SBI, N2000 DMS может управлять несколькими типами устройств и осуществлять различные функции управления NE.
N2000 DMS предоставляет такие NBI, как SNMP NBI и CORBA NBI для передачи аварийной сигнализации и информации о ресурсах к OSS/BSS. Это позволяет операторам реализовать унифицированный мониторинг на сетевом уровне и построить платформу поддержки услуг.

Взаимодействие с OSS/BSS


N2000 DMS может взаимодействовать OSS/BSS. Он предоставляет NBI для управления топологией, сбоями и ресурсами.
Например, Huawei получил разрешение Micromuse для использования CORBA NBI. Таким образом, теперь N2000 DMS может взаимодействовать с Netcool OMNIBus.

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#26
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл
Информационно-поисковый язык



Информационно-поисковый язык — (Перенаправлено с ИПЯ) Информационно поисковый язык (ИПЯ) искусственный язык, представляющий совокупность средств для описания формальной и содержательной структуры для поиска (путем индексирования) по запросу пользователя.
В ИПЯ можно выделить алфавит, лексику и грамматику.

Алфавитсовокупность определенных символов для записи слов и выражений. Во многих языках для этого используются символы естественного языка.
Лексикасовокупность всех использующихся в языке слов — лексических единиц.
Грамматикаправила составления выражений. Грамматика во многих ИПЯ формальна, а в некоторых вообще отсутствует.

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

Типы и виды ИПЯ

Способ задания лексических единиц
Контролируемыеязыки, словарный состав которых задается и контролируется с помощью словарей и таблиц. К ним относят различные классификации. (универсальная десятичная классификация, библиографическая классификация, классификация Дьюи [1]).
Язык предметных рубрик. На основе иерархической классификации строят систематические каталоги. На основе языка предметных рубрик строят предметные каталоги. Алфавитные каталоги
ручной поиск.
Дескрипторные ИПЯ, а также язык ключевых словавтоматический поиск.
Неконтролируемыелексика не задается словарем, а строится на основе выбора терминов естественного языка. Такие ИПЯ широко начали применяться в последнее время.
Порядок записи лексических единиц

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

Информационно-поисковая система


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

Различают 2 основных вида И.-п. с - документальные и фактографические.
Примеры конкретных документальных И.-п. с . — указатель в книге, библиотечный каталог или книгохранилище в библиотеке и т. д., а — телефонный справочник, адресная книга, каталог изделий и т. п. Фактографическая И.-п. с.,в отличие от информационно-логической системы, не обеспечивает получения новой информации из имеющейся в ней, а только помогает быстро отыскивать такие факты или сведения, которые были в неё введены. Разновидностью документальных И.-п. с. являются библиографические И.-п. с., предназначенные для поиска лишь библиографических описании текстов (документов), содержащих необходимую информацию, а не самих текстов.

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#27
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл
Информационно-поисковый язык
Информационно-поисковый язык - знаковая система, предназначенная для описания (путём индексирования) основного смыслового содержания текстов (документов) или их частей, а также для выражения смыслового содержания информационных запросов с целью реализации информационного поиска.

Любой абстрактный И.-п. я. состоит из алфавита (списка элементарных символов), правил образования и правил интерпретации. Правила образования устанавливают, какие комбинации элементарных символов допускаются при построении слов и выражений, а правила интерпретации — как надлежит понимать эти слова и выражения.
И.-п. я. должен располагать
лексико-грамматическими средствами, необходимыми для выражения основного смыслового содержания любого текста и смысла любого информационного запроса по данной отрасли или предмету, быть недвусмысленным (допускать одно истолкование каждой записи), удобным для алгоритмического сопоставления и отождествления (полного или частичного) записей основного смыслового содержания текстов и смыслового содержания информационных запросов. При разработке конкретного И.-п. я. учитываются специфика отрасли или предмета, для которой этот язык создается, особенности текстов, образующих поисковый массив, характер информационных потребностей, для удовлетворения которых создается данная Информационно-поисковая система.
В большинстве И.-п. я. основной словарный состав(лексика) задаётся его перечислением и представляет собой фрагмент лексики того или иного естественного языка. Отобранные из естественного языка слова и словосочетания, в совокупности образующие основной словарный состав, служат как бы алфавитом данного И.-п. я. Правила образования в таких И.-п. я. выполняют функцию синтаксиса. В некоторых И.-п. я. основной словарный состав задаётся (полностью или частично) методом порождения, который заключается в том, что для таких И.-п. я. правила образования устанавливают, как из данного алфавита строить слова И.-п. я., а из этих слов — выражения (фразы) и какие из них будут правильно построенными. И.-п. я. отличается от информационного языка и от машинного языка. В середине 20 в. в качестве И.-п. я. широко применяются Классификации библиотечно-библиографические и языки дескрипторного типа.
Лит.: Михайлов А. И., Черный А. И., Гиляревский Р. С., Основы информатики, 2 изд., М., 1968, с. 316—515.

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#28
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл
Высокоуровневый язык программирования


Высокоуровневый язык программированияязык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков — это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.
Так, высокоуровневые языки стремятся не только облегчить решение сложных программных задач, но и упростить сортирование программного обеспечения. Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием, в то время как их исходный код остаётся, в идеале, неизменным.
Такого рода оторванность высокоуровневых языков от аппаратной реализации компьютера помимо множества плюсов имеет и минусы. В частности, она не позволяет создавать простые и точные инструкции к используемому оборудованию. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков. Одним из следствий этого стало добавление поддержки того или иного языка низкого уровня (язык ассемблера) в ряд современных профессиональных высокоуровневых языков программирования.

Примеры:C, C++, Java, Python, PHP, Ruby, Perl, Delphi. Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинстве из них интегрирована поддержка строковых типов, объектов, операций файлового ввода-вывода и т. п.
Первым языком программирования высокого уровня считается компьютерный язык
Plankalkül, разработанный немецким инженером Конрадом Цузе ещё в период 1942—1946 гг. Однако транслятора для него не существовало до 2000 г. Первым в мире транслятором языка высокого уровня является ПП (Программирующая Программа), он же ПП-1, успешно испытанный в 1954 г. Транслятор ПП-2 (1955 г., 4-й в мире транслятор) уже был оптимизирующим и содержал собственный загрузчик и отладчик, библиотеку стандартных процедур, а транслятор ПП для ЭВМ Стрела-4 уже содержал и компоновщик (linker) из модулей. Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка (1957).

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#29
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл
Java
Javaобъектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) вне зависимости от компьютерной архитектуры. Дата официального выпуска — 23 мая 1995 года.
В русском языке распространены два варианта написания:«Джава» и «Ява». Правообладатели торговой марки Java считают, что правильное написание — транслитерация«Джава», и не признают слово«Ява», соответствующее традиционному произношению названия острова Ява. Компания Sun (ныне принадлежащая Oracle) придерживается англоязычного произношения во всех странах мира.
Иногда в обиходе используют также жаргонное слово «Жаба» (например, изображение жабы есть на календариках группы российских пользователей Джавы (Java Users Group).
Джавой называют не только сам язык, но и платформу для создания и исполнения приложений на основе данного языка.
Изначально язык назывался «Дубом» (Oak) и разрабатывался
Джеймсом Гослингом для программирования бытовых электронных устройств. Впоследствии он был переименован в«Джаву» и стал использоваться для написания клиентских приложений и серверного программного обеспечения. Назван в честь марки кофе «Ява» (по имени одноименного острова, где производится этот сорт), поэтому на официальной эмблеме языка изображена чашка с дымящимся кофе. Существует и другая версия происхождения названия языка, связанная с аллюзией на кофе-машину как пример бытового устройства, для программирования которого изначально язык создавался.

Основные особенности языка


Программы на Java транслируются в байт-код,выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.
Достоинством подобного способа выполнения программ является полная независимость байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание.

Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. В последнее время был внесен ряд усовершенствований, которые несколько увеличили скорость выполнения программ на Java:
применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде, широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках, аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).
По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее.
С другой стороны, для большинства из них потребление памяти Java-машиной было в 10-30 раз больше, чем программой на C/C++. Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и бо́льшее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на C++[15][16][17].
Идеи, заложенные в концепцию и различные реализации среды виртуальной машины Java, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых на виртуальной машине.[18] Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы .NET компанией Microsoft.

История версий


Java 1.0
Разработка Java началась в 1990 году, первая официальная версия — Java 1.0, — была выпущена только в 1996 году.
Java 1.2
К 1998 году была разработана обновлённая спецификация JDK 1.2, вышедшая под наименованием Java 2. Язык практически не изменился — было добавлено одно ключевое слово strictfp. Платформа получила следующие дополнения:
-Библиотека Swing для создания графического интерфейса пользователя .
-Коллекции (JSR 166).
-Поддержка файлов Policy и цифровых сертификатов пользователя.
-Библиотека Accessibility.
-Java 2D.
-Поддержка технологии drag-and-drop.
-Полная поддержка Unicode, включая поддержку ввода на японском, китайском и корейском языках.
-Поддержка воспроизведения аудиофайлов нескольких популярных форматов.
-Полная поддержка технологии CORBA.
-JIT-компилятор, улучшенная производительность.
-Усовершенствования инструментальных средств JDK, в том числе поддержка профилирования Java-программ

Java 2

В данном случае встречается путаница. Выпускались книги, например, Beginning Java 2 by Ivor Horton (Mar 1999), фактически по JDK 1.2 (бывшее название — Java 2). Вместе с тем, по сей день такие книги публикуются, например: Х. М. Дейтел, П. Дж. Дейтел, С. И. Сантри. Технологии программирования на Java 2. Распределенные приложения (2011).
В то время, когда, как известно, Java 2 была исторически заменена следующими релизами, подобные названия книг дезориентируют в понимании, о какой же версии Java они написаны на самом деле. Если JDK 1.2 принято считать за Java 2, а авторы книг за Java 2 принимают JDK 7, это приводит к полной путанице.


Java 5.0

Спецификация Java 5.0 была выпущена в сентябре 2004 года. C этой версии изменена официальная индексация, вместо Java 1.5 правильнее называть Java 5.0. Внутренняя же индексация Sun осталась прежней — 1.x. Минорные изменения теперь включаются без изменения индексации, для этого используется слово «Update» или буква «u», например Java Development Kit 5.0 Update 22. Предполагается, что в обновления могут входить как исправления ошибок так и небольшие добавления в API, JVM.
В данной версии разработчики внесли в язык целый ряд принципиальных дополнений:

-Перечислимые типы (англ. enum). Ранее отсутствовавшие в Java типы оформлены по аналогии с C++, но при этом имеют ряд дополнительных возможностей.
-Перечислимый тип является полноценным классом Java, то есть может иметь конструктор, поля, методы, в том числе скрытые и абстрактные.
-Перечисление может реализовывать интерфейсы.
-Для перечислений имеются встроенные методы, дающие возможность получения значений типа по имени, символьных значений, соответствующих именам, преобразования между номером и значением, проверки типа на то, что он является перечислимым.
-Аннотациивозможность добавления в текст программы метаданных, не влияющих на выполнение кода, но допускающих использование для получения различных сведений о коде и его исполнении. Одновременно выпущен инструментарий для использования аннотированного кода. Одно из применений аннотаций — упрощение создания тестовых модулей для Java-кода.
-Средства обобщённого программирования (англ. generics) — механизм, аналогичный Eiffel (позже также появились и в C#, принципиально отличаются от шаблонов C++), дающий возможность создавать классы и методы с полями и параметрами произвольного объектного типа. С использованием данного механизма реализованы новые версии коллекций стандартной библиотеки Java.
-Методы с неопределённым числом параметров.
-Autoboxing/Unboxing — автоматическое преобразование между скалярными типами Java и соответствующими типами-врапперами (например, между int — Integer). Наличие такой возможности сокращает код, поскольку исключает необходимость выполнения явных преобразований типов в очевидных случаях.
Разрешён импорт статических полей и методов.
-В язык введён цикл по коллекции объектов (итератор, англ. foreach).
-Было введено использование Javadoc-комментариев, которые используются для автоматического оформления документации по комментариям в исходном коде.

Java 6

Релиз версии состоялся 11 декабря 2006 года. Изменена официальная индексация — вместо ожидаемой 6.0 версия значится как 6. Минорные изменения как и в Java 5.0 вносятся в обычные обновления версии, например Java Standard Edition Development Kit 6 Update 27. Внесены следующие изменения:
-Коллекции —добавлены интерфейсы для организации очереди, работающей с двух сторон коллекции; организовывающие поиск по ближайшему соответствию; блокирующие себя во время ожидания элемента. Организованы новые классы, реализующие перечисленные интерфейсы.
-Добавлена поддержка японского императорского календаря (наряду с уже существующими григорианским и буддийским календарями).
-Доступны классы-потоки для чтения и передачи сжатых данных, с возможностью передачи их по сети. Сняты ограничения на количество файлов в архиве (ранее 64Кб), длину названия файла (ранее 256 символов) и количество одновременно открытых файлов (ранее 2000 шт).
-Организована система управления кешэм и добавлена поддержка параметра «no-cache» в HTTP-запросе.
-JConsole, графический мониторинг JVM, стала официально поддерживаемой утилитой.
-Java HTTP Server, позволяет создать полноценный HTTP сервер, с минимально необходимыми функциональными свойствами.
-Повысилась скорость вычислений на 70 %, скорость операций ввода/вывода возросла в два раза.[19]
-Swing — улучшена работоспособность OpenGL и DirectX; обработка текста на LCD; добавлен GifWriter, для работы с файлами .gif.
Исправлено большое количество ошибок.

Классификация платформ Java


Внутри Java существуют несколько основных семейств технологий:
Java SE — Java Standard Edition, основное издание Java, содержит компиляторы, API, Java Runtime Environment; подходит для создания пользовательских приложений, в первую очередь — для настольных систем.
Java EE— Java Enterprise Edition, представляет собой набор спецификаций для создания программного обеспечения уровня предприятия.
Java ME — Java Micro Edition, создана для использования в устройствах, ограниченных по вычислительной мощности, например в мобильных телефонах, КПК, встроенных системах;
JavaFX — технология, являющаяся следующим шагом в эволюции Java как Rich Client Platform; предназначена для создания графических интерфейсов корпоративных приложений и бизнеса.
Java Card— технология предоставляет безопасную среду для приложений, работающих на смарт-картах и ​​других устройствах с очень ограниченным объёмом памяти и возможностями обработки.

Java и Microsoft


Компанией Microsoft была разработана собственная реализация JVM (MSJVM), включавшаяся в состав различных операционных систем, начиная с Windows 98 (также входила в Internet Explorer от версии 3 и выше, что позволяло использовать MSJVM в ОС Windows 95 и Windows NT 4 после установки IE3+ на данные ОС).
MSJVM имела cущественные отличия от Sun Java, во многом ломающие основополагающую концепцию переносимости программ между разными платформами:

-отсутствие поддержки программного интерфейса вызова удаленных методов (RMI);
-отсутствие поддержки технологии JNI;
-наличие нестандартных расширений, таких как средства интеграции Java и DCOM, работающих только на платформе Windows.
Тесная интеграция Java с DCOM и Win32 ломала многоплатформенную суть языка. Впоследствии это явилось поводом для судебных исков со стороны Sun Microsystems к Microsoft. Суд принял сторону компании Sun Microsystems. В конечном счёте между двумя компаниями была достигнута договорённость о возможности продления срока официальной поддержки пользователей нестандартной Microsoft JVM до конца 2007 года, но не более.
В 2005 году компанией Microsoft для платформы
.NETбыл представлен Java-подобный язык J#, не соответствующий официальной спецификации языка Java и исключённый впоследствии из стандартного инструментария разработчика Microsoft Visual Studio, начиная сVisual Studio 2008

Java и Android


Язык Java активно используется для создания мобильных приложений под операционную систему Android. При этом программы компилируются в нестандартный байт-код, для использования их виртуальной машиной Dalvik. Для такой компиляции используется дополнительный инструмент, а именно Software Development Kit, который предназначен для x86-машины под операционной системойLinux.Его разработали представители компанииGoogle.
Разработку приложений можно вести в среде Eclipse, используя при этом плагин — Android Development Tools (ADT) или в IntelliJ IDEA. Версия JDK при этом должна быть 5.0 или выше.

Применения платформы Java


Следующие успешные проекты реализованы с привлечением Java (J2EE) технологий: RuneScape, Amazon, eBay, Yandex (неоднозначная информация в отношении Java), LinkedIn, Yahoo!.
Следующие компании в основном фокусируются на Java (J2EE) технологиях: SAP, IBM, Oracle. В частности, СУБД Oracle включает JVM как свою составную часть, обеспечивающую возможность непосредственного программирования СУБД на языке Java, включая, например, хранимые процедуры.
Производительность

Программы, написанные на Java, имеют репутацию более медленных и занимающих больше оперативной памяти, чем написанные на языке Си[источник не указан 624 дня]. Тем не менее, скорость выполнения программ, написанных на языке Java, была существенно улучшена с выпуском в 1997—1998 годах так называемого JIT-компилятора в версии 1.1 в дополнение к другим особенностям языка для поддержки лучшего анализа кода (такие как внутренние классы, класс StringBuffer, упрощенные логические вычисления и т. д.). Кроме того была произведена оптимизация виртуальной машины Java — с 2000 года для этого используется виртуальная машина HotSpot. По состоянию на февраль 2012 года, код Java 7 приблизительно лишь в 1.8 раза медленнее кода, написанного на языке Cи.
Некоторые платформы предлагают аппаратную поддержку выполнения для Java[источник не указан 624 дня]. К примеру, микроконтроллеры выполняющие код Java на аппаратном обеспечении вместо программной JVM, а также основанные на ARM процессоры, которые поддерживают выполнение байткода Java через опцию Jazelle.


Основные возможности


автоматическое управление памятью;
расширенные возможности обработки исключительных ситуаций;
богатый набор средств фильтрации ввода/вывода;
набор стандартных коллекций: массив, список, стек и т. п.;
наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI);
наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;
встроенные в язык средства создания многопоточных приложений;
унифицированный доступ к базам данных:
на уровне отдельных SQL-запросов — на основе JDBC, SQLJ;
на уровне концепции объектов, обладающих способностью к хранению в базе данных — на основе Java Data Objects (англ.) и Java Persistence API;
поддержка обобщений (начиная с версии 1.5);
параллельное выполнение программ.


Пример программы
793d2d5c3cf408d61f19d4cff2118a87d5577815
618552a666c80c9876f94cae05ba2f62d5577815
15935724cad73bc1a35d92d729655cc6d5577815

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#30
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

Примитивные типы


языке Java только 8 примитивных (скалярных, простых) типов: boolean, byte, char, short, int, long, float, double. Существует также вспомогательный девятый примитивный тип — void, однако переменные и поля такого типа не могут быть объявлены в коде, а сам тип используется только для описания соответствующего ему класса, для использовании при рефлексии. Кроме того, с помощью класса Void можно узнать, является ли определённый метод типа void: Hello.class.getMethod("main", Array.newInstance(String.class, 0).getClass()).getReturnType() == Void.TYPE.
Длины и диапазоны значений примитивных типов определяются стандартом, а не реализацией и приведены в таблице. Тип char сделали двухбайтовым для удобства локализации (один из идеологических принципов Java): когда складывался стандарт, уже существовал Unicode-16, но не Unicode-32. Поскольку в результате не осталось однобайтового типа, добавили новый тип byte, причем в Java, в отличие от других языков, он не является беззнаковым. Типы float и double могут иметь специальные значения , и «не число» (NaN). Для типа double они обозначаются Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.NaN; для типа float — так же, но с приставкой Float вместо Double. Минимальные положительные значения, принимаемые типами float и double, тоже стандартизованы.
79d3713bf3f5447d49118e4e140f1b0cd5577815


Такая жёсткая стандартизация была необходима, чтобы сделать язык платформенно-независимым, что является одним из идеологических требований к Java. Тем не менее одна небольшая проблема с платформенной независимостью всё же осталась. Некоторые процессоры используют для промежуточного хранения результатов 10-байтовые регистры или другими способами улучшают точность вычислений. Для того, чтобы сделать Java максимально совместимой между разными системами, в ранних версиях любые способы повышения точности вычислений были запрещены. Однако это приводило к снижению быстродействия. Выяснилось, что ухудшение точности ради платформенной независимости мало кому нужно, тем более если за это приходится платить замедлением работы программ. После многочисленных протестов этот запрет отменили, но добавили ключевое слово strictfp, запрещающее повышение точности.

Преобразования при математических операциях


В языке Java действуют следующие правила:
Если один операнд имеет тип double, другой тоже преобразуется к типу double.
Иначе, если один операнд имеет тип float, другой тоже преобразуется к типу float.
Иначе, если один операнд имеет тип long, другой тоже преобразуется к типу long.
Иначе оба операнда преобразуются к типу int.
Данный способ неявного преобразования встроенных типов полностью совпадает с преобразованием типов в C++.

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#31
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

Язык программирования

Plankalkül (рус. план вычислений) — первый в мире высокоуровневый язык программирования, созданный Конрадом Цузе в нацисткой Германии в 1945 году как средство для программирования компьютера Z4. Работы над языком были закончены около 1946 года, однако развития язык не получил и написанное руководство увидело свет только в 1972 году.

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

Сам Цузе описал возможности языка в отдельной брошюре и написал 49 страниц кода программы для оценки шахматных позиций.

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


Одной из проблем языка был чрезвычайно сложный и очень непривычный современному программисту синтаксис.
Вот пример присваивания A[5] = A[4]+1 на языке Plankalkül:

| A+1 => A V|4 5
S| 1.n 1.n


Здесь V — это строка для индексов, S — строка для задания типов данных, 1.n — обозначает целое число размером n бит.

В настоящее время институт Цузе в Берлине создал компилятор языка ,на сайте института также представлены тексты работ Конрада и симуляторы созданных им компьютеров.



Язык программирования


Pascal (назван в честь Блеза Паскаля) — это чисто процедурный язык программирования, часто использующийся для обучения структурному программированию.

Pascal был разработан Никлаусом Виртом в 1970; вопреки расхожему мнению, он не был исключительно учебным языком, а предназначался для практического применения. Прототипом послужил Algol. Первоначально язык компилировался в байт-код, подобно языку Java.

В 1983 году был принят первый стандарт языка, ISO 7185:1983, который также называют Standard Pascal. Этот стандарт не добавлял в язык новые элементы, а только формально описывал существующие особенности языка. В 1990 году был принят стандарт ISO/IEC 10206, определяющий так называемый Extended Pascal. Основным изменением стало добавление модульности.

Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Pascal был одним из первых таких языков. По мнению Н. Вирта, язык должен был способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Pascal сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис интуитивно понятен даже при первом знакомстве с языком. Это упрощает написание компиляторов языка.

Кроме того, язык предоставлял ряд встроенных структур данных: записи, массивы, файлы, множества и указатели.

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


Диалект Object Pascal, разработанный в 1985 году, поддерживает объектно-ориентированное программирование. Существует ряд современных компиляторов, и в настоящее время язык достаточно популярен.
Примеры:

ea8f500684e51f9e3fcbf6a47e1867645ee6f615c5a643b578a1f006b08e500af675a4675ee6f615196df3ead5d763ba34464035fb69a5a25ee6f615



Основы программирования на Си


Данный язык пропагандирует идеологию хорошо структурированных (разбитых на блоки) программ, в отличии, например от Assembler, в котором к тексту программы применяется выражение «макаронный код» (т.е. огромное количество безусловных переходов, делающих программу практически нечитабельной). В книгах по программированию сложилась традиция введения читателя в практику написания программ с вывода на экран слов"Hello world!". Что же, не будем отступать от сложившийся привычки. Первая простая программа:

1 #include <stdio.h>
2 int
main()
3 {
4 printf("Hello world!");
5 return0;
6 }

Разберем текст программы построчно. В начале кода используется, так называемая, директива препроцессору. Формально, она не является частью языка Си, но расширяет его возможности. Итак, директива#include заставляет компилятор подключить к программе заголовок, имя которого указано между< >. stdio.hбиблиотека, содержащая прототипы функций, позволяющих вводить-выводить (и многое другое!) информацию на экран. int main() — главная в теле программы функция. Выполнение программы начинается, и как правило, заканчивается именно с нее. Формально, каждая программа на С должна содержать в себе функцию main(). int означает тип возвращаемого значения функцией в вызывающий процесс.
Символы фигурных скобочек{ — открывающая скобка, а так же } — закрывающая скобка, означают начало (и следовательно конец) программного блока. Программный блок в С — основная программная единица (т.е. инструкции, помещенные между началом и концом блока, либо выполняются все, либо — ни одна из них). printf("Hello world!") — функция, выполняющая вывод на консоль, выражения, заданного между двойными кавычками "". Ее прототип содержится в заголовке. Огромные возможности данной функции будут продемонстрированы позднее. return 0 — заставляет функцию (в данном случае main() ) прекратить свое выполнение и передать 0 в вызывающий процесс. Идеология Си предполагает при нормальном завершении функции возвращать нулевое значение ( и не нулевое — при аварийном и др.).
70fd6656fb45739c9348e01f777642c15ee6f615

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#32
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

Денвер
Денвер- набор дистрибутивов и программная оболочка, предназначенные для создания и отладки сайтов (веб-приложений, прочего динамического содержимого интернет-страниц) на локальном ПК (без необходимости подключения к сети Интернет) под управлением ОС Windows.
Сразу после установки доступен полностью работающий веб-сервер
Apache, работающий на локальном компьютере, на котором может работать неограниченное количество сайтов, что очень эффективно для разработки и отладки сценариев PHPбез загрузки его файлов на удаленный сервер. Для запуска практически всех утилит «Денвера» используется приложение Run в подкаталоге /denwer (или /etc) корневого каталога установки «Денвера». При запуске создается виртуальный диск (по умолчанию Z, где хранятся все файлы проектов.
Третья версия поддерживает работу со съемного флеш-накопителя.

Особенностью, отличающей Denwer от других WAMP-дистрибутивов, является автоматическая правка системного файла hosts, являющегося локальным аналогом DNS-cервера, что позволяет обращаться к локальным сайтам, работающим под управлением Денвера, по именам, совпадающим с именем папки, расположенной в каталоге home Денвера.
Базовый пакет

-Веб-сервер Apache с поддержкой SSI, SSL, mod_rewrite, mod_php.
-Интерпретатор PHP с поддержкой GD, MySQL, SQLite.
-СУБД MySQL с поддержкой транзакций (mysqld-max).
-Система управления виртуальными хостами, основанная на шаблонах.
-Система управления запуском и завершением.
-Панель phpMyAdmin для администрирования СУБД.
-Ядро интерпретатора Perl без стандартных библиотек (поставляются отдельно).
-Эмулятор sendmail и сервера SMTP с поддержкой работы совместно с PHP, Perl, Parser и др.
-Установщик.

Пакеты расширений


-Полная версия ActivePerl 5.8.
-Интерпретатор PHP версии 5 с полным набором модулей.
-Интерпретатор Python.
-СУБД MS SQL, PostgreSQL или InterBase/FireBird версий 1 и 2.
-Интерпретатор PHP версии 3 или 4.
-Интерпретатор Parser.
-Иcправления в CONFIGURATION.

Лицензирование и распространение

Пакет распространяется как freeware (содержит несколько закрытых .exe утилит командной строки). Скачивание требует обязательного заполнения анкеты на сайте с указанием e-mail.
+http://www.denwer.ru/
46b44f65494e60ded3a805c1839d5be1d5577a15 d1abee6bf2408b273f6d90ad7ecf99fbd5577a15 3f2e874b148e5ccc15ce8ac42baed291d5577a15



Macromedia Dreamweaver для Mac OS - последнее творение Macromedia, Inc. Один из лучших HTML редакторов.
Macromedia Dreamweaver представляет собой комбинацию средств для создания визуального оформления, функций разработки приложений, поддержку редактирования кода, позволяя дизайнерам и разработчикам эффективно создавать визуально привлекательные, основанные на стандартах сайты и приложения.

В основе этого редактора лежит принцип "Мы не трогаем ваш код". То есть, если взять корректный HTML, открыть его и затем сохранить, он останется неизменным. Работает в паре с редакторами типа Homesite (т.е. отслеживает и загружает новую версию открытого документа если он был изменен другой программой). Программа хорошо работает со скриптами, может оптимизировать страницы для разных браузеров, умеет проверять ссылки и отладить отредактированные страницы на сайт.

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#33
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл
Тема: Технология программирования

Вид работы: Методичка
Предмет: Информационное обеспечение, программирование

• Схемотехника,
• Основы ИС
• Информационная безопасность и защита информации
• Проектирование ИС.
Целью изучения дисциплины является изучение классификации языков программирования, типов данных, операций, операторов языка Си, разработки программ с использованием подпрограмм, стандартных модулей, стиля программирования, организации памяти и адресации, разработки программ с использованием указателей, особенностей программирования на языке С++.
Задачи курса:
формирование представлений о парадигмах программирования;
освоение инструментальной среды программирования;
разработка и создание собственных программных приложений;
изучение способов оценки сложности и эффективности алгоритмов.
После изучения курса каждый будет знать:
основные понятия программирования на С++;
механизм реализации возможностей языка;
способы взаимодействия механизмов языка;
применимость языка для широкого спектра реальных задач;
совместимость с традиционным языком Си;
После изучения курса каждый будет уметь:
грамотного писать эффективные программы на языке С++;
использовать основные конструкции языка при решении задач;
 работать с различными типами данных.




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



Тема: Введение. Цели и задачи дисциплины
План:

1. Технология
2. Программные средства ПК
3. Экспертная система


Функциональная сложность объектов автоматизации на базе ЭВМ быстро увеличивается с расширением круга приложений информационной технологии. Неизбежным следствием этой тенденции оказывается наблюдаемый в настоящее время сдвиг акцентов в практике программирования с исторически первых проблем логического проектирования и кодирования программ, по точно заданным формальным спецификациям, к проблемам анализа так называемых слабоструктурированных задач, создания принципиально новой технологии программирования для областей приложений с трудноформализуемыми условиями. При этом программирование, как профессиональная деятельность, все дальше эволюционирует за пределы узкого круга точно поставленных задач, которые преобладали в первые десятилетия компьютерной эры и дали повод рассматривать эту область инженерной деятельности как строго формализуемую математическую дисциплину.
Внедрение мини- и микро -ЭВМ в самую гущу сложных производственных отношений современных предприятий, учреждений, КБ и научных лабораторий ставит перед программированием принципиально новые, несопоставимо более сложные задачи и соответственно накладывает на эту до недавнего времени «точную» дисциплину отпечаток естественных, а в ряде случаев и гуманитарных наук.
Еще 20 лет назад смысл последних достижений молекулярной генетики обычно поясняли с помощью простой аналогии: «код первичной структуры ДНК играет для функционирования генетического аппарата живого организма ту же роль, что код программы для функционирования ЭВМ». В 1981 г. журнал «Computer & People» опубликовал статью «Техника автоматизации процессов разработки программного обеспечения», автор которой, кроме прочего, разъяснил читателям популярного компьютерного журнала, что «программное обеспечение играет для машины ту же самую роль, которую ДНК играет для живого организма».
Растущий интерес к естественнонаучным и гуманитарным аспектам процесса технологической эволюции вообще, а науки об ЭВМ в особенности неслучаен. Быстро убегающий барьер сложности изделий современной вычислительной техники уже не позволяет рассчитывать в ближайшем будущем на успех каких-либо практически интересных попыток описания их структуры и функций в категориях лишь традиционных «точных» наук.
Чтобы на конкретных примерах проиллюстрировать существо сложившихся к настоящему времени различий в оценках взаимосвязи точных, естественнонаучных и гуманитарных аспектов науки о программах, мы попытаемся ниже сопоставлять некоторые из формулируемых по ходу изложения тезисов с альтернативной точкой зрения.
Наука о программах, история развития
На заре эры ЭВМ Дж. фон Нейман отмечал, что «многое из опыта нашей работы с искусственными автоматами может быть до некоторой степени1 перенесено на наше понимание естественных организмов». Попытки использовать математические результаты «опыта работы с искусственными автоматами» для разработки абстрактных схем интеллектуального «акта творения» (например, для формализации процесса создания простейших автоматов) восходят к работам Дж. Буля, Лейбница, Декарта и, видимо, далее в глубь веков к Архимеду и эпистемологическим учениям древних греков. Первая волна широкого общественного интереса к этому научному направлению совпала по времени с появлением ЭВМ и была инициирована, как принято считать, выходом в 1948 г. книги Н. Винера «Кибернетика или управление и связь в животном и машине».
После того как с начала 60-х годов миражи «глобальной кибернетизации» начали постепенно рассеиваться, научные исследования двустороннего интеллектуального взаимодействия «человек - ЭВМ» на некоторое время оказались локализованными в небольшом числе разрозненно действующих исследовательских групп, связанных между собой в основном лишь претенциозным термином-лозунгом: «искусственный интеллект». Ренессанс искусственного интеллекта (ИИ) как одного из научных направлений в теории вычислительной техники начался за рубежом в 80-х годах вслед за внезапно пронесшимся над ИИ- лабораториями «золотым дождем» многомиллионных дотаций, вызванным обострением соперничества между США и Японией за первенство в компьютерной технологии 90-х годов (проект создания ЭВМ «пятого поколения»).
К этому времени ряд ИИ- исследовательских коллективов начал эволюционировать в своей практической деятельности за пределы чисто абстрактных упражнений (по «естественно-языковой» тематике, машинному доказательству избранного типа теорем и другим умиротворяюще безысходным, хотя и весьма почтенным занятиям) к конструктивным исследованиям, направленным на создание конкретных проблемно-ориентированных «баз знаний». На этом направлении в конце 70-х годов были получены те первые практически полезные результаты, которые позволили начать в 80-х годах постепенно слой за слоем снимать сложившийся за два десятилетия непроницаемый налет схоластики с «искусственного интеллекта» как научного направления в теории ЭВМ. К настоящему времени в мире действует уже 2-3 десятка практически полезных «экспертных систем» (по некоторым разделам медицины, геологии, химии и другим «трудно формализуемым» областям знаний). Разрабатываются элементы промышленной технологии обработки данных с использованием машинно-экстрагируемых из профессионалов знаний (knowledge engineering). Именно вокруг этих прагматической ориентации научных коллективов и университетских лабораторий начали формироваться специализированные подразделения промышленных предприятий и независимые исследовательские фирмы, занятые поиском областей приложений и коммерческим внедрением компьютерных систем, реализующих принципы «технологии знаний».
Программы ЭВМ - разумеется, не единственный и далеко не первый доступный для анализа продукт интеллектуального акта творения. Машиностроительные чертежи, схемы радиотехнических изделий, архитектурные проекты, музыкальные и литературные произведения, произведения изобразительного искусства уже долгие годы дают богатейший материал для такого рода анализа. Вместе с тем, следует отметить, что программы ЭВМ являются, видимо, одним из наиболее благодарных объектов для такого анализа. Анализ процесса создания программ может быть выполнен по самым различным научным методикам: психологическим, эстетическим, физиологическим, математическим, технологическим и т. д.
Долгое время человечество волнует вопрос о том, к какому роду деятельности
относится программирование. В 60-х - 70-х годах XX века данный вопрос активно
обсуждался на научных конференциях. Существовало 2 популярных точки зрения:
«программирование это искусство» и «программирование это наука». К единому мнению придти так и не удалось. В настоящий момент мы можем добавить к этим популярным трактовкам еще одну: «программирование это бизнес»

Контрольные вопросы:

1. Цели и задачи дисциплины.
2. Роль вычислительной техники в информационных системах.
3. Примеры использования информационных систем в различных отраслях производства. Компьютеризация учебного процесса.
4. Методы автоматизации программирования. Алгоритмические языки.
5. Назначение алгоритмического языка и требования предъявляемые к нему.
6. Понятие о процедурно-ориентированных языках и ООП.
7. Понятие о программном обеспечении ПК. Диалоговые средства связи пользователей с ПК. Интегрированные системы программирования.



Тема: Введение. Программные средства ПК
План:

1. Этапы и уровни разработки программ
2. Разработка структурных схем алгоритмов
3. Стиль программирования. Показатели качества программирования

Прикладные программы предназначены для того, чтобы обеспечить применение вычислительной техники в различных сферах деятельности человека. Помимо создания новых программных продуктов разработчики прикладных программ большие усилия тратят на совершенствование и модернизацию популярных систем, создание их новых версий. Новые версии, как правило, поддерживают старые, сохраняя преемственность, и включают в себя базовый минимум (стандарт) возможностей.
Инструментальные программные средства общего назначения
Несмотря на широкие возможности использования компьютеров для обработки самой разной информации, самыми популярными являются программы, предназначенные для работы с текстами - текстовые редакторы и издательские системы. Текстовыми редакторами называют программы для ввода, обработки, хранения и печатания текстовой информации в удобном для пользователя виде. Эксперты оценивают использование компьютера в качестве печатающей машинки в 80%.
Большую популярность приобрели программы обработки графической информации. Компьютерная графика в настоящее время является одной из самых динамично развивающихся областей программного обеспечения. Она включает в себя ввод, обработку и вывод графической информации - чертежей, рисунков, картин, текстов и т.д. - средствами компьютерной техники. Различные типы графических систем позволяют быстро строить изображения, вводить иллюстрации с помощью сканера или видеокамеры, создавать анимационные ролики.
Графические редакторы позволяют пользоваться различным инструментарием художника, стандартными библиотеками изображений, наборами стандартных шрифтов, редактированием изображений, копированием и перемещением фрагментов по страницам экрана и др. Для выполнения расчетов и дальнейшей обработки числовой информации существуют специальные программы - электронные таблицы. В процессе деятельности любого специалиста часто требуется представить результаты работы в виде таблиц, где одна часть полей занята исходными данными, а другая -. результатами вычислений и графического анализа. Характерными для них является большой объем перерабатываемой информации, необходимость многократных расчетов при изменении исходных данных. Автоматизацией подобной рутинной работы и занимаются электронные таблицы.
Одним из наиболее перспективных направлений развития вычислительной техники является создание специальных аппаратных средств для хранения гигантских массивов информационных данных, и последующей нечисловой обработки их -поиска и сортировки. Для компьютерной обработки подобных баз данных используют системы управления базами данных. СУБД - это набор средств программного обеспечения, необходимых для создания, обработки и вывода записей баз данных. Различают несколько типов СУБД: иерархические, сетевые, реляционные. При работе с СУБД выделяют несколько последовательных этапов:

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

Примеры: Framework, Works, Мастер.
Современная концепция интеграции программных средств - кооперация отдельных прикладных программных систем по типу широко известного пакета MicroSoft Office. Сами системы, входящие в пакет, являются независимыми, более того, они сами представляют локально интегрированный пакет, поскольку помимо основной своей задачи поддерживают функции других систем. Например, текстовый редактор Word обладает возможностью манипулировать с электронными таблицами и базами данных, а в электронной таблице Excel встроен мощный текстовый редактор. Для сопряжения информационных данных из различных программных систем в них предусматривают импорт- экспортную систему обмена с перекодировкой форматов представления данных.
Инструментальные программные средства специального назначения
Разработчики создают специальные программные системы целевого назначения для специалистов в некоторой предметной области. Такие программы называют авторскими инструментальными системами. Авторская система представляет интегрированную среду с заданной интерфейсной оболочкой, которую пользователь может наполнить информационным содержанием своей предметной области.
Экспертная система - это программа, которая ведет себя подобно эксперту в некоторой узкой прикладной области. Экспертные системы призваны решать задачи с неопределенностью и неполными исходными данными, требующие для своего решения экспертных знаний.
Кроме того, эти системы должны уметь объяснять свое поведение и свое решение.
Принципиальным отличием экспертных систем от других программ является их адаптивность, т.е. изменчивость в процессе самообучения.
Принято выделять в экспертных системах три основных модуля:

• модуль базы знаний;
• модуль логического вывода;
• интерфейс с пользователем.
В последнее время широкую популярность получили программы обработки гипертекстовой информации. Гипертекст - это форма организации текстового материала не в линейной последовательности, а в форме указании возможных переходов (ссылок), связей между отдельными его фрагментами. В обычном тексте используется обычный линейный принцип размещения информации и доступ к нему осуществляется последовательно. В гипертекстовых системах информация напоминает текст энциклопедии, и доступ к любому выделенному фрагменту текста осуществляется произвольно по ссылке. Организация информации в гипертекстовой форме используется при создании справочных пособий, словарей, контекстнойпомощи (Help) в прикладных программах.
Расширение концепции гипертекста на графическую и звуковую информацию приводит к понятию гипермедиа. Идеи гипермедиа получили распространение в сетевых технологиях, в частности в Интернет-технологиях. Технология WWW (World Wide Web) позволила структурировать громадные мировые информационные ресурсы посредством гипертекстовых ссылок. Появились программные средства, позволяющие создавать подобные Web-странички. Стали развиваться механизмы поиска нужной информации в лабиринте информационных потоков. Популярными поисковыми средствами в Интернет являются Yahoo, AltaVista, Magellan, Rambler и др.
Мультимедиа (m
ultimedia) - это взаимодействие визуальных и аудиоэффектов под управлением интерактивного программного обеспечения.
Контрольные вопросы:

1. Методы автоматизации программирования. Алгоритмические языки.
2. Назначение алгоритмического языка и требования предъявляемые к нему.
3. Понятие о процедурно-ориентированных языках и ООП.
4. Понятие о программном обеспечении ПК. Диалоговые средства связи пользователей с ПК. Интегрированные системы программирования.

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#34
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

Тема: Методология программирования
План:

1. Директивы препроцессора.
2. Состав системы программирования, элементы языка
3. Определение макросов

Технологии программирования - путь к успеху в разработке ПО.

Технология - совокупность производственных процессов в определенной отрасли производства, а также научное описание способов производства. Создание любой программной системы выполняется по некоторой схеме. Данная схема представляет собой последовательность стандартных этапов : анализ, проектирование, разработка, тестирование, модификация.
Анализ: Определение требований к программе. Что является исходными данными, что - конечными результатами? Как должна вести себя программа, если конечный результат по каким-то причинам не может быть получен? Вам предстоит ответить на эти и, возможно, на некоторые другие аналогичные вопросы.
Проектирование: Составление / выбор алгоритма решения поставленной задачи. Примечание: Алгоритм - это последовательность действий, необходимая для достижения какого-либо результата.
Разработка: Написание команд программы (исходного кода, исходника) на каком-либо языке программирования высокого уровня - ЯВУ. Примечание: высокоуровневый язык программирования означает высокую долю абстрагирования от языка машин. То есть чем более высокий уровень языка программирования, тем он ближе к человеческому языку, тем он более абстрагирован от сугубо компьютерных понятий. Например, Delphi - высокоуровневый язык программирования, а вот машинные коды - низкоуровневый язык программирования (так как ближе к компьютеру, а нормальному человеку обычно непонятен).
Модификация: Отладка программы. Это процесс поиска и устранения ошибок в программе. Ошибки могут быть: синтаксические (неверно использовали конструкции языка программирования), алгоритмические (программист что-то упустил), ошибки времени исполнения (возникают из-за неверных данных).
Тестирование: Основная цель тестирования - исключить из программы максимальное число возможных ошибок. Это можно сделать, проверив работоспособность проекта на максимально большом числе входных данных. Этап важный, неясно почему им пренебрегли авторы Готики 3 или Delphi 2005.
Именно на этих этапах и возникают существенные финансовые затраты.
Для их оптимизации необходимо было понять, что программирование есть обычный технологический процесс, по характеру возникающих проблем мало чем отличающийся от, скажем, строительства дома или корабля.
Для сокращения затрат необходимо было конкретизировать схему, упорядочить действия, выполняемые на каждом этапе, разработать методы решения возникающих на разных этапах проблем. В довершении ко всему, схема подразумевает возвраты назад (циклы), в тех случаях, когда обнаруживается ошибка предыдущего этапа.
В результате кропотливой работы большого количества специалистов на каждом этапе и подэтапе возникли и продолжают появляться и совершенствоваться специальные технологии, позволяющие решать задачи в заданные сроки с заданным качеством.
Итак, технология программирования - совокупность методов, приемов и средств для сокращения стоимости и повышения качества разработки программных систем.
В любой серьезной компании, занимающейся разработкой программного обеспечения, на каждом этапе процесса разработки применяется большое количество разных технологий.

Контрольные вопросы:

1. Этапы и уровни разработки программ
2. Разработка структурных схем алгоритмов
3. Стиль программирования. Показатели качества



Тема: Основы технологии программирования
План:

1. Методы проектирования программного обеспечения.
2. Выбор языка программирования.
4. Структурное программирование. Модульное программирование.
5. Программирование с защитой иот ошибок. Этап отладки и испытания программ. Документирование программ. Вид программной документации, установленной ГОСТом. Единая система программной документации (ЕСПД).

Проектирование алгоритмов и программ - наиболее ответственный этап жизненного цикла программных продуктов, определяющий, насколько создаваемая программа соответствует спецификациям и требованиям со стороны конечных пользователей. Затраты на создание, сопровождение и эксплуатацию программных продуктов, научно-технический уровень разработки, время морального устаревания и многое другое- все это также зависит от проектных решений.
Методы проектирования алгоритмов и программ очень разнообразны, их можно классифицировать по различным признакам, важнейшими из которых являются:
степень автоматизации проектных работ;
принятая методология процесса разработки.
По степени автоматизации проектирования алгоритмов и программ можно выделить:
методы традиционного (неавтоматизированного) проектирования;
методы автоматизированного проектирования (CASE-технология и ее элементы).
Проектирование алгоритмов и программ может основываться на различных подходах, среди которых наиболее распространены:
структурное проектирование программных продуктов;
информационное моделирование предметной области и связанных с ней приложений;
объектно-ориентированное проектирование программных продуктов.
В основе структурного проектирования лежит последовательная декомпозиция, целенаправленное структурирование на отдельные составляющие. Начало развития структурного проектирования алгоритмов и программ падает на 60-е гг. Методы структурного проектирования представляют собой комплекс технических и организационных принципов системного проектирования.
Типичными методами структурного проектирования являются:

нисходящее проектирование, кодирование и тестирование программ;
модульное программирование;
структурное проектирование (программирование) и др.
Для функционально-ориентированных методов в первую очередь учитываются заданные функции обработки данных, в соответствии с которыми определяется состав и логика работы (алгоритмы) отдельных компонентов программного продукта. С изменением содержания функций обработки, их состава, соответствующего им информационного входа и выхода требуется перепроектирование программного продукта. Основной упор в структурном подходе делается на моделирование процессов обработки данных.
Для методов структурирования данных осуществляется анализ, структурирование и создание моделей данных, применительно к которым устанавливается необходимый состав функций и процедур обработки. Программные продукты тесно связаны со структурой обрабатываемых данных, изменение которой отражается на логике обработки (алгоритмах) и обязательно требует перепроектирования программного продукта.
Объектно-ориентированный подход к проектированию программных продуктов основан на:

• выделении классов объектов;
• установлении характерных свойств объектов и методов их обработки;
• создании иерархии классов, наследовании свойств объектов и методов их обработки.
Каждый объект объединяет как данные, так и программу обработки этих данных и относится к определенному классу. С помощью класса один и тот же программный код можно использовать для относящихся к нему различных объектов.
Объектный подход при разработке алгоритмов и программ предполагает:
объектно-ориентированный анализ предметной области;
объектно-ориентированное проектирование.
Для проектирования программных продуктов разработаны объектно-ориентированные технологии, которые включают в себя специализированные языки программирования и инструментальные средства разработки пользовательского интерфейса.
Традиционные подходы к разработке программных продуктов всегда подчеркивали различия между данными и процессами их обработки. Так, технологии, ориентированные на информационное моделирование, сначала специфицируют данные, а затем описывают процессы, использующие эти данные. Технологии структурного подхода ориентированы, в первую очередь, на процессы обработки данных с последующим установлением необходимых для этого данных и организации информационных потоков между связанными процессами.
Объектно-ориентированная технология разработки программных продуктов объединяет данные и процессы в логические сущности - объекты, которые имеют способность наследовать характеристики (методы и данные) одного или более объектов, обеспечивая тем самым повторное использование программного кода. Это приводит к значительному уменьшению затрат на создание программных продуктов, повышает эффективность жизненного цикла программных продуктов (сокращается длительность фазы разработки).При выполнении программы объекту посылается сообщение, которое инициирует обработку данных объекта.
Парадигма - набор теорий, стандартов и методов, которые совместно представляют собой способ организации научного знания, иными словами, способ видения мира. По аналогии с этим принято считать, что парадигма в программировании -способ концептуализации, который определяет, как следует проводить вычисления, и как работа, выполняемая компьютером, должна быть структурирована и организована.
Известно несколько основных парадигм программирования, важнейшими из которых на данный момент времени являются парадигмы директивного, объектно-ориентированного и функционально-логического программирования. Для поддержки программирования в соответствии с той или иной парадигмой разработаны специальные алгоритмические языки.и Pascal являются примерами языков, предназначенных для директивного программирования (directive programming), когда разработчик программы использует процессно-ориентированная модель, то есть пытается создать код, должным образом воздействующий на данные. Активным началом при этом подходе считается программа (код), которая должна выполнить все необходимые для достижения нужного результата действия над пассивными данными.
Этот подход представляется вполне естественным для человека, который только начинает изучать программирование, и исторически возник одним из первых, однако он практически неприменим для создания больших программ. Первые две главы книги посвящены именно директивному программированию, так как подобный стиль оптимален для программирования в малом, а навыки, которые он позволяет приобрести, необходимы и при использовании других подходов.
Сейчас весьма распространенным стал объектно-ориентированный (object oriented) подход, реализуемый, например, языками C++ и Java. При этом, наоборот, первичными считаются объекты (данные), которые могут активно взаимодействовать друг с другом с помощью механизма передачи сообщений (называемого также и механизмом вызова методов).
Функция программиста в этом случае подобна роли бога при сотворении Вселенной -он должен придумать и реализовать такие объекты, взаимодействие которых после старта программы приведет к достижению необходимого конечного результата.
Функциональное и логическое программирование использует языки типа Lisp, Haskell и Prolog. Эта парадигма базируется на принципиально иной трактовке понятия программы. Здесь главным является точная формулировка задачи, а выбор и применение необходимого для ее алгоритма решения - проблема исполняющей системы, но не программиста. Принцип, на котором зиждется технология структурного программирования -фундаментальная научная и техническая идея о выделении множества базисных элементов, с помощью которых можно выразить (из которых можно собрать) любой объект из некоторого широкого набора.
Итак, основной принцип технологии структурного программирования гласит: для любой простой программы можно построить функционально эквивалентную ей структурную программу, т.е. программу, сформированную на основе фиксированного базисного множества, включающего структуру последовательного действия, структуру выбора одного из двух действий и структуру цикла, то есть многократного повторения некоторого действия с проверкой условия остановки повторения.
Нисходящее и восходящее проектирование
Одна из основных идей, положенных в большинство известных технологий программирования - нисходящее проектирование. Существуют также другие названия:
``программирование с пошаговым совершенствованием'', ``систематическое программирование'', ``иерархическое программирование''. Принцип его -сначала определяются основные функции, которые должны быть обеспечены изготавливаемой программой, а затем доопределяются дополнительные функции, вытекающие из основных.
Вот некоторые принципы нисходящего проектирования:
Подробное формальное и строгое описание проектировщиком входов, функций и выходов всех модулей программ или системы.
Как только Вы убедитесь, что некоторая часть задачи может быть реализована в виде отдельного модуля, Постарайтесь больше не думать об этом.
На каждом уровне проекта пытайтесь записать реализацию модуля в виде символических кодов или блок схемы (размер описания в идеале не должен превосходить одного листа, чтобы при последующем анализе перед глазами находилась наиболее полная картина).
Проектированию структуры данных и их движения следует не меньше времени, чем программе.

Методы проектирования алгоритмов:
Методы проектирования алгоритмов включают: нисходящее проектирование, модульность, структурное программирование.
Нисходящее проектирование предполагает последовательное разбиение исходной задачи на подзадачи до такой конкретизации, когда подзадача сможет быть реализована одним оператором выбранного для программирования языка. По ходу нисходящего проектирования та или иная подзадача может сформировать самостоятельный модуль.
Контрольные вопросы:

1. Нисходящее и восходящее проектирование программ и их сочетание.
2. Стиль программирования. Показатели качества программирования.
3. Читаемость программ, комментарии.



Тема: Введение в систему программирования Си
План:

1. Директивы препроцессора.
2. Состав системы программирования, элементы языка.

Препроцессор находит директивы препроцессора (которые называют также управляющимистроками препроцессора) и выполняет лексический анализ находящихся в них фраз.
Препроцессор Turbo C++ включает в себя сложный процессор макросов, сканирующий исходный код перед обработкой его компилятором.Препроцессор обеспечивает мощные средства и гибкость, заключающиеся в следующем:
Определение макросов, которые служат для снижения трудоемкости программирования и улучшении читаемости кода. Некоторые макросы позволяют избежать затрат на вызов функций.
Включение текстов из других файлов, таких как файлы заголовка, в которых содержатся прототипы стандартных библиотечных и определяемых пользователем функций, а также буквальные константы.
Установка условной компиляции для улучшения мобильности получаемых кодов и для целей отладки.
Директивы препроцессора обычно помещаются в начало исходного кода, но допустимы в любой точке программы.

Любая строка с ведущим символом #рассматривается как директива препроцессора, если только # не входит в строковый литерал, символьную константу или комментарий. Ведущему символу # может предшествовать, либо следовать за ним, пробельные символы (за исключением символа новой строки).
Пустая директива #
Пустая директива состоит из строки, в которой содержится единственный символ #. Эта директива всегда игнорируется препроцессором.
Директивы #define и #undef
Директива #define определяет макрос. Макросы обеспечивают механизм замены лексемы набором формальных, подобных используемых в функциях параметров, либо пустой замены.
Простые макросы #define
В простых случаях, без параметров, синтаксис данной директивы следующий:
#define идентификатор_макроса<последовательность_лексем>
Каждое вхождение идентификатора_макроса в исходный код после данной управляющей строки будет заменено на месте - возможно, пустой, -последовательностью_лексем (имеются некоторые рассматриваемые ниже исключения). Такие замены называются макрорасширениями. Последовательность лексем иногда называют телом макроса.
Директива #undef
Можно отменить определение макроса при помощи директивы #undef:
#undef идентификатор_макроса
Данная строка удаляетлюбую ранее введенную последовательность лексем из идентификатора макроса;определение макроса теряется, и идентификатор его становится неопределенным.
Макрорасширения внутри строк #undef не выполняются.
Состояние определенности и неопределенности является важным свойством идентификатора, независимо от его фактического определения. Условные директивы препроцессора #ifdef и #ifndef, которые служат для проверки того, является ли идентификатор в текущий момент определенным, или нет, представляют собой гибкий механизм управления многими аспектами компиляции.

Контрольные вопросы:

1. Какой процессор включает в себя препроцессор Turbo С++?
2. Как рассматривается любая строка с ведущим символом #?
3. Расскажите о дерективах.



Тема: Типы данных
План:

1. Типы данных: int, short, long, unsigned, float, double.
2. Объявления. Выражения и присваивания.
3. Операции языка Си.

Простые типы в С++ делятся на целочисленные типы и типы с плавающей точкой. Для описания стандартных типов определены следующие ключевые слова:
• int (целый);
• char (символьный);
• bool (логический);
• float (вещественный);
• double (вещественный с двойной точностью).
Существует четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов:
• short (короткий);
• long (длинный);
• signed (со знаком);
• unsigned (без знака).
52c999058b51c739c18531bd63a3f7935ee6f615

Таблица 1.3. Диапазоны значений простых типов данных для IBM PC
Для вещественных типов в таблице приведены абсолютные величины минимальных и максимальных значений.
Все переменные должны быть объявлены раньше, чем будут использоваться, при этом некоторые объявления могут быть получены неявно - из контекста. Объявление специфицирует тип и содержит список из одной или нескольких переменных этого типа, как, например, в

int lower, upper, step;с, line[1000];

Переменные можно распределять по объявлениям произвольным образом, так что указанные выше списки можно записать и в следующем виде:
int lower;upper;step;
char c;line[1000];

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

char esc = '\\';i = 0;limit = MAXLINE+1;eps = 1.0e-5;

Инициализация неавтоматической переменной осуществляется только один раз - перед тем, как программа начнет выполняться, при этом начальное значение должно быть константным выражением. Явно инициализируемая автоматическая переменная получает начальное значение каждый раз при входе в функцию или блок, ее начальным значением может быть любое выражение. Внешние и статические переменные по умолчанию получают нулевые значения. Автоматические переменные, явным образом не инициализированные, содержат неопределенные значения ("мусор”).
К любой переменной в объявлении может быть применен квалификатор const для указания того, что ее значение далее не будет изменяться.

const double е = 2.71828182845905;char msg[] = "предупреждение: ";

Применительно к массиву квалификатор const указывает на то, что ни один из его элементов не будет меняться. Указание const можно также применять к аргументу- массиву, чтобы сообщить, что функция не изменяет этот массив:
int strlen(const char[]);

Реакция на попытку изменить переменную, помеченную квалификатором const зависит от реализации компилятора.

ed27e7566d116b10f5f751fe92a323125ee6f615

Таблица 1.5 Основные операции языка С++

Контрольные вопросы:

1. Какие спецификаторы типов вы знаете?
2. Перечислите простые типы данных в С#.
3. Как осуществляется инициализация переменной ?

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#35
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

Тема: Операторы языка Си
План:

1. Условный оператор
2. Оператор выбора
3. Операторы goto, break, continue

Оператор "выражение"

Любое выражение, завершающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении выражения. Частным случаем выражения является пустой оператор ; (он используется, когда по синтаксису оператор требуется, а по смыслу - нет).
Примеры:
i++;//выполняется операция инкремента* = b + c;//выполняется умножение с присваиванием
fund (k). // выполняется вызов функции
Операторы ветвления.

Инструкция if-else используется для принятия решения. Формально ее синтаксисом является:
if (выражение)
инструкция1
инструкция2

причем else-часть может и отсутствовать. Сначала вычисляется выражение, и, если оно истинно (т. е. отлично от нуля), выполняется инструкция1. Если выражение ложно (т. е. его значение равно нулю) и существует else-часть, то выполняется инструкция2.
Пример:

if (а > B)= а;= b;
Оператор switch

Инструкция switchиспользуется для выбора одного из многих путей. Она проверяет, совпадает ли значение выражения с одним из значений, входящих в некоторое множество целых констант, и выполняет соответствующую этому значению ветвь программы:
switch (выражение) {конст-выр: инструкцииконст-выр: инструкции: инструкции}
Каждая ветвь case помечена одной или несколькими целочисленными константами или же константными выражениями. Вычисления начинаются с той ветви case, в которой константа совпадает со значением выражения . Константы всех ветвей case должны отличаться друг от друга. Если выяснилось, что ни одна из констант не подходит, то выполняется ветвь, помеченная словом default, если таковая имеется, в противном случае ничего не делается.
Инструкции break и continue
Иногда бывает удобно выйти из цикла не по результату проверки, осуществляемой в начале или в конце цикла, а каким-то другим способом.Такую возможность для циклов for, while и do-while,а также для переключателя switch предоставляет инструкция break. Эта инструкция вызывает немедленный выход из самого внутреннего из объемлющих ее циклов или переключателей.
Инструкция continue в чем-то похожа на break, но применяется гораздо реже. Она вынуждает ближайший объемлющий ее цикл (for, while или do-while) начать следующий шаг итерации.
Контрольные вопросы:

1. Расскажите про Оператор switch
2. Перечислите операторы цикла.
3. Расскажите об операторах goto, break, continue.





Тема: Операторы цикла
План:
1. Цикл while
2. Цикл do-while
3. Инструкция for

Цикл while
В цикле
while (выражение)
инструкция

вычисляется выражение. Если его значение отлично от нуля, то выполняется инструкция, и вычисление выражения повторяется. Этот цикл продолжается до тех пор, пока выражение не станет равным нулю, после чего вычисления продолжатся с точки, расположенной сразу за инструкцией.
Цикл do-while
В Си имеется еще один вид цикла, do-while, в котором эта проверка делается внизу после каждого прохождения тела цикла, т. е. после того, как тело выполнится хотя бы один раз. Цикл do-while имеет следующий синтаксис:
do
инструкция(выражение);

Сначала выполняется инструкция, затем вычисляется выражение. Если оно истинно, то инструкция выполняется снова и т. д. Когда выражение становится ложным, цикл заканчивает работу. Цикл do-while эквивалентен циклу repeat-until в Паскале с той лишь разницей, что в первом случае указывается условие продолжения цикла, а во втором - условие его окончания.
Инструкция for
for (выр1; выр2; выр3)
инструкция(тело цикла)

Например, начало цикла, обрабатывающего первые n элементов массива, имеет следующий вид:
for (i = 0; i < n; i++)

...
Внутри скобок имеются три выражения, разделяемые точкой с запятой. Первое выражение - инициализация= 0
выполняется один раз перед тем, как войти в цикл. Второе - проверка условия продолжения
цикла< n

Условие вычисляется, и если оно истинно, выполняется тело цикла. Затем осуществляется приращение шага:
i++ // i= i+1;

и условие вычисляется снова. Цикл заканчивается, когда условие становится ложным.
Контрольные вопросы:

1. Формат оператора цикла с предусловием.
2. Формат оператора цикла с предусловием
3. Каким образом выполняется оператор for?



Тема: Функции
План:

1. Функции ввода и вывода. Описание, определение функции.
2. Примеры функций. Объявление и определение функций
3. Возвращаемое значение. Параметры функции. Рекурсивные функции.
4. Функция main(). Функции стандартной библиотеки.

Функции представляют собой центральный вопрос программирования на Turbo C++. Такие языки программирования, как Паскаль, делают различие между процедурами и функциями. В Turbo C++ функции играют обе роли.
Объявление и определение функций

Функция - это именованная последовательность описаний и операторов, выполняющая какое-либо законченное действие. Функция может принимать параметры и возвращать значение.
Любая программа на C++ состоит из функций, одна из которых должна иметь имя main (с нее начинается выполнение программы). Функция начинает выполняться в момент вызова. Любая функция должна быть объявлена и определена. Как и для других величин, объявлений может быть несколько, а определение только одно. Объявление функции должно находиться в тексте раньше ее вызова. Для того, чтобы компилятор мог осуществить проверку правильности вызова.
Объявление функции (прототип, заголовок, сигнатура) задает ее имя, тип возвращаемого значения и список передаваемых параметров.
Определение функции содержит, кроме объявления, тело функции, представляющее собой последовательность операторов и описаний в фигурных скобках:

[ класс ] тип имя ([ список_параметров ])[throw ( исключения )] { тело функции }
Возвращаемое значение
Механизм возврата из функции в вызвавшую ее функцию реализуется оператором
return [ выражение ];

Функция может содержать несколько операторов return (это определяется потребностями алгоритма). Если функция описана как void, выражение не указывается. Оператор return можно опускать для функции типа void, если возврат из нее происходит перед закрывающей фигурной скобкой, и для функции main. В этой книге для экономии места оператор return в функции main не указан, поэтому при компиляции примеров выдается предупреждение. Выражение, указанное после return, неявно преобразуется к типу возвращаемого функцией значения и передается в точку вызова функции.
Параметры функции

Механизм параметров является основным способом обмена информацией между вызываемой и вызывающей функциями. Параметры, перечисленные в заголовке описания функции, называются формальными, а записанные в операторе вызова функции - фактическими.
При вызове функции в первую очередь вычисляются выражения, стоящие на месте фактических параметров; затем в стеке выделяется память под формальные параметры функции в соответствии с их типом, и каждому из них присваивается значение соответствующего фактического параметра. При этом проверяется соответствие типов и при необходимости выполняются их преобразования. При несоответствии типов выдается диагностическое сообщение.

Рекурсивные функции

Рекурсивной называется функция, которая вызывает саму себя. Такая рекурсия называется прямой. Существует еще косвенная рекурсия, когда две или более функций вызывают друг друга. Если функция вызывает себя, в стеке создается копия значений ее параметров, как и при вызове обычной функции, после чего управление передается первому исполняемому оператору функции. При повторном вызове этот процесс повторяется. Ясно, что для завершения вычислений каждая рекурсивная функция должна содержать хотя бы одну нерекурсивную ветвь алгоритма, заканчивающуюся оператором возврата. При завершении функции соответствующая часть стека освобождается, и управление передается вызывающей функции, выполнение которой продолжается с точки, следующей за рекурсивным вызовом.
Классическим примером рекурсивной функции является вычисление факториала (это не означает, что факториал следует вычислять именно так). Для того чтобы получить значение факториала числа n, требуется умножить на n факториал числа (п-1). Известно также, что
0!=1 и 1!=1.
Рекурсивные функции чаще всего применяют для компактной реализации рекурсивных алгоритмов, а также для работы со структурами данных, описанными рекурсивно, например, с двоичными деревьями. Любую рекурсивную функцию можно реализовать без применения рекурсии, для этого программист должен обеспечить хранение всех необходимых данных самостоятельно. Достоинством рекурсии является компактная запись, а недостатками - расход времени и памяти на повторные вызовы функции и передачу ей копий параметров, и, главное, опасность переполнения стека.
Функция main()
Функция, которой передается управление после запуска программы, должна иметь имя main. Она может возвращать значение в вызвавшую систему и принимать параметры из внешнего окружения. Возвращаемое значение должно быть целого типа. При запуске программы параметры разделяются пробелами. Имена параметров в программе могут быть любыми, но принято использовать argc и argv. Первый параметр (argc) определяет количество параметров, передаваемых функции, включая имя самой программы, второй параметр (argv) является указателем на массив указателей типа char*. Каждый элемент массива содержит указатель на отдельный параметр командной строки, хранящийся в виде С-строки, оканчивающейся нуль-символом. Первый элемент массива (argv[0]) ссылается на полное имя запускаемого на выполнение файла, следующий (argv[l]) указывает на первый параметр, argv[2] - на второй параметр, и так далее. Параметр argv[argc] должен быть равен 0.
Если функция main () ничего не возвращает, вызвавшая система получит значение, означающее успешное завершение. Ненулевое значение означает аварийное завершение. Оператор возврата из mainO можно опускать.
Функции стандартной библиотеки

Любая программа на C++ содержит обращения к стандартной библиотеке, в которой находятся определения типов, констант, макросов, функций и классов. Чтобы использовать их в программе, требуется с помощью директивы #iinclude включить в исходный текст программы заголовочные файлы, в которых находятся соответствующие объявления. В программах на C++ могут использоваться функции, унаследованные от библиотеки С.
Функции библиотеки можно разбить на группы по их назначению: ввод/вывод, обработка строк, математические функции, работа с динамической памятью, поиск и сортировка и т.д.

Контрольные вопросы:

1. Дайте определение функции.
2. Назовите примеры функций.
3. Рекурсивные функции.

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#36
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

Тема: Указатели и адресная арифметика
План:

1. Организация памяти
2. Адресация

Для большинства типов T T* является типом арифметический указатель на T. То есть, в переменной типа T* может храниться адрес объекта типа T.

Указатели делятся на две основные категории: указатели объектов и указатели функций. Указатели обоихтипов представляют собой специальные объекты, хранящие адреса памяти.
Два этиклассауказателей имеют отличные друг от друга свойства, назначения и правила манипулирования, хотя и те и другие разделяют между собойопределенные операцииTurbo C++. Вообще говоря, указатели функций используются для доступа к функциям и для передачиодних функцийдругим в качествеаргументов; выполнение арифметических операцийс указателямифункций не допускается. И напротив, указателиобъектов при сканировании массивов или более сложных структур памяти регулярно инкрементируются и декрементируются.
Хотя указатели содержат числа сбольшинством характеристик типаunsigned int, они имеют свои собственные правила и ограничения на присвоения, преобразования ивыполнение с ними арифметических действий. Примеры в следующих нескольких разделах иллюстрируют эти правила и ограничения.
Объявления указателей
Объявление указателя всегда должно устанавливать его на некоторый конкретный тип, даже если этот тип void (что фактическиозначает указатель на любой тип). Однако, уже после объявления указатель обычно может быть переназначен на объект другого типа. Turbo C++ позволяет переназначать указатели без приведения в соответствие типа, но компилятор выдаст при этом предупреждение, если только первоначально указатель не был объявлен с типом void. В С (но не в С++) вы можете назначить указатель void* на указатель, не имеющий тип void*.
Если type есть любой предопределенный или определенный пользователем тип, включая
void, то объявление*ptr;/* Опасно - неинициализированный указатель */
объявит ptr как "указатель на тип type". К объявленному таким образомобъекту ptr применимы все правила, связанные с контекстом, продолжительностью и видимостью.
Указатель со значением null это адрес, гарантированно отличный от любого допустимого указателя, используемого в программе. Присвоение указателю целой константы 0 присваивает указателю значение null.
Указатель типа "указатель на void" не следует путать с нулевым (null) указателем.
Арифметические операции с указателями

Внутренние арифметические операции с указателями зависят от действующей модели памяти и наличия переопределяющих модификаторов указателя. Разность между двумя значениями указателей имеет смысл только в том случае, если оба они указывают на один массив.
Арифметические операции с указателями ограничены сложением, вычитанием и сравнением. Арифметические операции с указателями объектов типа "указатель на тип type" автоматически учитывают размер этоготипа, то есть число байт, необходимое для хранения в памяти объекта данного типа. При выполнении арифметических операций с указателями предполагается, что указатель указывает на массив объектов. Таким образом, если указатель объявлен как указатель на type, то прибавление к нему целочисленного значения перемещает указатель на соответствующее количество объектов type. Если type имеет размер 10 байтов, то прибавление целого числа 5 к указателю этого типа перемещает указатель в памяти на 50 байт. Разность представляет собой число элементов массива, разделяющих два значения указателей. Например, если ptr1 указывает на третий элемент массива, а ptr2 на десятый, то результатом выполнения вычитания
ptr2 - ptr1 будет 7э
Контрольные вопросы:

1. Объясните организацию памяти и адресацию.
2. Расскажите про указатели.



Тема: Массивы
План:

1. Одномерные массивы и указатели.
2. Двумерные массивы.
3. Использование указателей для двумерных массивов.

Массивы - это группа элементов одинакового типа (double, float, int и т.п.). Из объявления массива компилятор должен получить информацию о типе элементов массива и их количестве. Объявление массива имеет два формата:
спецификатор-типа описатель [константное - выражение];
спецификатор-типа описатель [ ];
Описатель- это идентификатор массива .
Спецификатор-типа задает тип элементов объявляемого массива. Элементами массива не могут быть функции и элементы типа void.
Константное-выражение в квадратных скобках задает количество элементов массива.
Константное-выражение при объявлении массива может быть опущено в следующих случаях:
при объявлении массив инициализируется,
массив объявлен как формальный параметр функции,
массив объявлен как ссылка на массив, явно определенный в другом файле.
В языке СИ определены только одномерные массивы, но поскольку элементом массива может быть массив, можно определить и многомерные массивы. Они формализуются списком константных-выражений следующих за идентификатором массива, причем каждое константное-выражение заключается в свои квадратные скобки.
Каждое константное-выражение в квадратных скобках определяет число элементов по данному измерению массива, так что объявление двухмерного массива содержит два константных-выражения, трехмерного - три и т.д. Отметим, что в языке СИ первый элемент массива имеет индекс равный 0.
Примеры:

a[2][3]; /* представлено в виде матрицы
a[0][0] a[0][1] a[0][2][1][0] a[1][1] a[1][2] */b[10]; /* вектор из 10 элементов имеющих тип double */
int w[3][3] = { { 2, 3, 4 },
{ 3, 4, 8 },
{ 1, 0, 9 } };
В последнем примере объявлен массив w[3][3]. Списки, выделенные в фигурные скобки, соответствуют строкам массива, в случае отсутствия скобок инициализация будет выполнена неправильно.
В языке СИ можно использовать сечения массива, как и в других языках высокого уровня (PL1 и т.п.), однако на использование сечений накладывается ряд ограничений. Сечения формируются вследствие опускания одной или нескольких пар квадратных скобок. Пары квадратных скобок можно отбрасывать только справа налево и строго последовательно. Сечения массивов используются при организации вычислительного процесса в функциях языка СИ, разрабатываемых пользователем.
Примеры:s[2][3];
Если при обращении к некоторой функции написать s[0], то будет передаваться нулевая строка массива s.b[2][3][4];
При обращении к массиву b можно написать, например, b[1][2] и будет передаваться вектор из четырех элементов, а обращение b[1] даст двухмерный массив размером 3 на 4. Нельзя написать b[2][4], подразумевая, что передаваться будет вектор, потому что это не соответствует ограничению наложенному на использование сечений массива.
Пример объявления символьного массива.str[] = "объявление символьного массива";
Следует учитывать, что в символьном литерале находится на один элемент больше, так как последний из элементов является управляющей последовательностью '\0'.
Контрольные вопросы:

1. Расскажите про одномерные массивы и указатели.
2. Что такое двумерные массивы?
3. Понятие массива.
4. Как можно нумеровать элементы массива?
5. Каким образом происходит сортировка массива?



Тема: Структуры данных
План:

1. Описание структур.
2. Указатели и структуры данных.
3. Обработка строк.

Структуры (struct)

Структура - это одна или несколько переменных (возможно, различных типов), которые для удобства работы с ними сгруппированы под одним именем. (В некоторых языках, в частности в Паскале, структуры называются записями.) Структуры помогают в организации сложных данных (особенно в больших программах), поскольку позволяют группу связанных между собой переменных трактовать не как множество отдельных элементов, а как единое целое.
Традиционный пример структуры - строка платежной ведомости. Она содержит такие сведения о служащем, как его полное имя, адрес, номер карточки социального страхования, зарплата и т. д. Некоторые из этих характеристик сами могут быть структурами: например, полное имя состоит из нескольких компонент (фамилии, имени и отчества); аналогично адрес, и даже зарплата. Другой пример (более типичный для Си) - из области графики: точка есть пара координат, прямоугольник есть пара точек и т. д.
Объявление структуры начинается с ключевого слова struct и содержит список объявлений, заключенный в фигурные скобки. За словом struct может следовать имя, называемое тегом структуры (от английского слова tag - ярлык, этикетка. - Примеч. пер.), point в нашем случае. Тег дает название структуре данного вида и далее может служить кратким обозначением той части объявления, которая заключена в фигурные скобки.
Перечисленные в структуре переменные называются
элементами (members - В некоторых изданиях, в том числе во 2-м издании на русским языке этой книги structure members переводится как члены структуры. - Примеч. ред). Имена элементов и тегов без каких-либо коллизий могут совпадать с именами обычных переменных (т. е. не элементов), так как они всегда различимы по контексту. Более того, одни и те же имена элементов могут встречаться в разных структурах, хотя, если следовать хорошему стилю программирования, лучше одинаковые имена давать только близким по смыслу объектам.
Перечисления(enum)

При написании программ часто возникает потребность определить несколько именованных констант, для которых требуется, чтобы все они имели различные значения (при этом конкретные значения могут быть не важны). Для этого удобно воспользоваться перечисляемым типом данных, все возможные значения которого задаются списком целочисленных констант. Формат:
enum [ имя_типа ] { список констант };

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

1. Дайте определение структуре.
2. Расскажите про указатели и структуры данных.
3. Как производится обработка строк?



Тема: Строки
План:

1. Обработка строк
Приступая к решению задач этого раздела, следует вспомнить, что:
1. каждому символу соответствует число - код символа;
2. в Cи строка - это массив символов;
3. последним символом строки обязательно должен быть нуль-символ, код которого равен 0, и который в тексте программы изображается так: ' \ 0 ';
4. сообщения или подсказки, используемые в программе, удобно представить как массив указателей на строки и инициализировать массив, задать сообщения в инструкции объявления массива:
5. char *mes[] ={"Сообщение 1","Сообщение 2", ... , "Сообщение"};
6. если вводимая во время работы программы строка содержит пробелы, то функция scanf вводит только часть строки до первого пробела, а функция gers - всю строку, в том числе и соответствующий клавише <Enter> символ ' \п'.

Приведем примеры решения задач на строки:
Задача 165

// Приветствие #include <stdio.h> #include <conio.h> void main() {name[15]; // имяfam[20]; // фамилия
printfC'KaK Вас зовут?\п")"Введите свое имя и фамилию,");
printf("затем нажмите <Enter>") ;("-> ");("%s", &name);("%s", sfam);
// функция scanf читает из буфера клавиатуры символы
//до разделителя - пробела("Здравствуйте, Is %s!\n", name, f am) ;("\пДля завершения нажмите <Enter>"); getch()
Задача 166
// Приветствие (посимвольный ввод строки) #include <stdio.h> #include <conio.h> void main()name[40]; // имя и отчество пользователя char ch; int i;'KaK Вас зовут?\п");("(введите свое имя, отчество и нажмите <Enter>"); printf("-> "); i = 0;
while ((ch=getch()) != 13 && i < 40) // пока не нажата
/¦/ клавиша <Enter>
h); name[i++] - ch; }] = '\0'; printf("ХпЗдравствуйте, %s!\n", name); И
И printf("\пДля завершения нажмите <Enter>"); I getch О; И
Задача 167// Вычисляет длину строки HI #include <stdio.h> #include <conio.h> void main(){ char st[80]; // введенная строка int i = 0; // длина строки IB
1 II HI puts("ХпВведите строку и нажмите <Enter>"); Н printf("->"); 111 gets(st); while( st[i++])
III
¦ HI printf("Длина введенной строки: %i\n", i) ; printf("Для завершения работы нажмите <Enter>"); 8^o,
Контрольные вопросы:

1. Какое число соответствует каждому символу?
2. Как выполняется обработка строк?

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#37
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

Тема: Файлы
План:

1. Описание структуры файлов
2. Организация работы с файлами

Обычная СИ-программа представляет собой определение функции main, которая для выполнения необходимых действий вызывает другие функции. Приведенные выше примеры программ представляли собой один исходный файл, содержащий все необходимые для выполнения программы функции. Связь между функциями осуществлялась по данным посредством передачи параметров и возврата значений функций. Но компилятор языка СИ позволяет также разбить программу на несколько отдельных частей (исходных файлов), оттранслировать каждую часть отдельно, и затем объединить все части в один выполняемый файл при помощи редактора связей.
При такой структуре исходной программы функции, находящиеся в разных исходных файлах могут использовать глобальные внешние переменные. Все функции в языке Си по определению внешние и всегда доступны из любых файлов. Например, если программа состоит из двух исходных файлов, как показано на рис.2., то функция main может вызывать любую из трех функций fun1, fun2, fun3, а каждая из этих функций может вызывать любую другую.

main ()
{ ...
}()
{ ...
} . fun2()
{ ...
}()
{ ...
}.c file2.c
Для того, чтобы определяемая функция могла выполнять какие либо действия, она должна использовать переменные. В языке СИ все переменные должны быть объявлены до их использования. Объявления устанавливают соответствие имени и атрибутов переменной, функции или типа. Определение переменной вызывает выделение памяти для хранения ее значения. Класс выделяемой памяти определяется спецификатором класса памяти, и определяет время жизни и область видимости переменной, связанные с понятием блока программы.
В языке СИ блоком считается последовательность объявлений, определений и операторов, заключенная в фигурные скобки. Существуют два вида блоков - составной оператор и определение функции, состоящее из составного оператора, являющегося телом функции, и предшествующего телу заголовка функции (в который входят имя функции, типы возвращаемого значения и формальных параметров). Блоки могут включать в себя составные операторы, но не определения функций. Внутренний блок называется вложенным, а внешний блок
- объемлющим.
Время жизни - это интервал времени выполнения программы, в течение которого программный объект (переменная или функция) существует. Время жизни переменной может быть локальным или глобальным. Переменная с глобальным временем жизни имеет распределенную для нее память и определенное значение на протяжении всего времени выполнения программы, начиная с момента выполнения объявления этой переменной. Переменная с локальным временем жизни имеет распределенную для него память и определенное значение только во время выполнения блока, в котором эта переменная определена или объявлена. При каждом входе в блок для локальной переменной распределяется новая память, которая освобождается при выходе из блока.
Все функции в СИ имеют глобальное время жизни и существуют в течение всего времени выполнения программы.

Область видимости - это часть текста программы, в которой может быть использован данный объект. Объект считается видимым в блоке или в исходном файле, если в этом блоке или файле известны имя и тип объекта. Объект может быть видимым в пределах блока, исходного файла или во всех исходных файлах, образующих программу. Это зависит от того, на каком уровне объявлен объект: на внутреннем, т.е. внутри некоторого блока, или на внешнем, т.е. вне всех блоков.
Если объект объявлен внутри блока, то он видим в этом блоке, и во всех внутренних блоках. Если объект объявлен на внешнем уровне, то он видим от точки его объявления до конца данного исходного файла.
Объект может быть сделан глобально видимым с помощью соответствующих объявлений во всех исходных файлах, образующих программу.

Контрольные вопросы:

1. Что представляет собой обычная СИ-программа?
2. Дайте определение термину «время жизни».
3. Перечислите графические функции библиотеки Turbo C++.




Тема: Работа с окнами. Графика
План:

1. Графические функции
2. Черчение
3. Заполнение

Turbo C++поставляется с полной библиотекой графических функций, позволяющих создание экранных графиков и диаграмм. Рабочий режим экрана определяется, когда ваша программа вызывает одну из функций определения режима (textmode, Initgraph или setgraphmode).
В графическом режиме экран компьютера делится на пиксели; каждый пиксель представляет собой отображение на экране одной точки. Число пикселей на экране (т.е. его разрешающая способность) зависит от типа подключенного к вашей системе видео адаптера и режима, в который установлен этот адаптер. Для получения на экране графических изображений Turbo C++ предоставляет библиотеку графических функций: вы можете создавать на экране линии и формы, заполненные шаблонами замкнутые области, а также управлять цветом каждого пикселя.
В текстовом режиме позиция верхнего левого угла экрана определяется координатами (1,1),где x-координата растет слева -направо, а y-координата растет сверху-вниз. В графическом режиме позиция верхнего левого угла определяется координатами (0,0), с теми же направления возрастания координат.
В графическом режиме вы также можете определить некоторую прямоугольнуюобласть экрана PC; эта область называется графическим окном. Когда ваша графическаяпрограмма выполняет вывод рисунков и т.д., графическое окно действует каквиртуальный экран. Остальная часть экрана (вне графического окна) остается без изменений.
За исключением функций определения текстовых играфических окон,все остальныефункции, как текстового, так и графического режимов, даются в локальных координатах активного текстовогоили графческого окна, а не в абсолютных экранных координатах. При этом верхний левый угол текстового окна будет являться началом координат (1,1); в графическомрежиме начало координат графического окна будет равно (0,0).C++ имеет отдельную библиотекус более чем 70 графическими функциями, начиная от функций высокого уровня (таких как setviewport, bar3d и drawpoly) и кончая бит-ориентированными функциями (ипа getimage иputimage). Графическая библиотека поддерживает многочисленные стили линий и заполнителей, а также предоставляютвам различныетекстовые шрифты, которые вы можете изменять по размерам, способу выравнивания, а также ориентировать их либо по горизонтали, либо по вертикали.

Эти функции находятся в библиотечном файле GRAPHICS.LIB, а их прототипы - в файле заголовка graphics.h. Кроме этих двух файлов, в состав графического пакета входят драйверы графических устройств (файлы *.BGI) и символьные шрифты (*.CHR-файлы)..
Графические функции Turbo C++ делятся на несколько категорий:
управления графической системой черчения и заполнения манипулирования экранами и графическими окнами вывода текстов управления цветами обработки ошибок запроса состояния.
Для запуска графической системы вы должны прежде всего вызвать функцию initgraph. initgraph загружает графический драйвер и переводит систему в графический режим.
И наконец, закончив работу в графике,вы должны вызвать функцию closegraph для того, чтобы закрыть графическую систему. closegraph выгружаетдрайвер из памятии восстанавливает первоначальный видео режим
(через обращение к restorecrtmode).
Ниже приводится краткий обзор функций черчения и заполнения:

Черчение:
arc Чертит дугу окружности.
circle Чертит окружность.
drawpoly Чертит контур многоугольника.
ellipse Чертит эллиптическую дугу.
getarccoords Возврашает координаты последнего вызова
arc или ellipse.Возвращает коэффициент сжатия для текуще го графического режима.Возвращает текущий стиль линии, шаблон линии и толщину линии.
lineЧертит линию из (x0,y0) в (x1,y1).
linerelЧертит линию в точку, задаваемую относительным расстоянием от текущей позиции (CP).
linetoЧертит линию из текущей позиции (CP) в (x,y). Перемещает текущую позицию (CP) в (x,y).
moverelПеремещает текущую позицию (CP) на относительное расстояние.
rectangleРисует прямоугольник.
setaspectratioИзменяет коэффициент сжатия по умолчанию.
setlinestyleУстанавливает ширину и стиль текущей линии.
Заполнение:

barЧертит и заполняет столбик.
bar3dЧертит и заполняет трехмерный столбик.
fillellipse Чертит и заполняет эллипс.
fillpoly Чертит и заполняет многоугольник.
getfillpatternВозвращает определяемый пользователем шаблон заполнения. Возвращает информацию о текущем шаблоне и цвете заполнения.
pieslice Чертит и заполняет сектор окружности.
sectorЧертит и заполняет эллиптический сектор.
setfillpatternВыбирает шаблон заполнения, определяемый
пользвателем.
setfillstyleУстанавливает шаблон и цвет заполнения.
При помощи функций черчения и раскрашивания Turbo C++ вы можете вычерчивать цветные линии, дуги, окружности, эллипсы, прямоугольники, секторы, дву- и трехмерные столбики, многоугольники, а такжеразличные правильные или неправильные формы, являющиеся комбинациями перечисленныхграфических примитивов. Ограниченную форму изнутри или снаружи можно заполнить одним из 11 предопределенных шаблонов, либо шаблоном, определенным пользователем. Можнотакже управлять толщиной и стилем линии вычерчивания, а также местоположением текущей позиции.
Контрольные вопросы:

1. Каким образом можно включить и выключить графический режим?
2. Какие координаты имеют углы экрана?




Тема: Особенности программирования на С++
План:

1. Основы программирования на языке С++
2. Операторы while, for.
программирование файл оператор

Си - универсальный язык программирования. Он тесно связан с системой UNIX, так как был разработан в этой системе, которая как и большинство программ, работающих в ней, написаны на Си. Однако язык не привязан жестко к какой-то одной операционной системе или машине. Хотя он и назван "языком системного программирования", поскольку удобен для написания компиляторов и операционных систем, оказалось, что на нем столь же хорошо писать большие программы другого профиля.
Многие важные идеи Си взяты из языка BCPL, автором которого является Мартин Ричардс. Влияние BCPL на Си было косвенным - через язык B, разработанный Кеном Томпсоном в 1970 г. для первой системы UNIX, реализованной на PDP-7.и B - "бестиповые" языки. В отличие от них Си обеспечивает разнообразие типов данных. Базовыми типами являются символы, а также целые и числа с плавающей точкой различных размеров. Кроме того, имеется возможность получать целую иерархию производных типов данных из указателей, массивов, структур и объединений. Выражения формируются из операторов и операндов. Любое выражение, включая присваивание и вызов функции, может быть инструкцией. Указатели обеспечивают машинно-независимую адресную арифметику. В Си имеются основные управляющие конструкции, используемые в хорошо структурированных программах: составная инструкция ({. . .}), ветвление по условию (if-else), выбор одной альтернативы из многих (switch), циклы с проверкой наверху (while, for) и с проверкой внизу (do), а также средство прерывания цикла (break). В Си нет прямых операций над составными объектами, такими как строки символов, множества, списки и массивы. В нем нет операций, которые бы манипулировали с целыми массивами или строками символов, хотя структуры разрешается копировать целиком как единые объекты. В языке нет каких-либо средств распределения памяти, помимо возможности определения статических переменных и стекового механизма при выделении места для локальных переменных внутри функций. Наконец, в самом Си нет средств ввода-вывода, инструкций READ (читать) и WRITE (писать) и каких-либо методов доступа к файлам. Все это - механизмы высокого уровня, которые в Си обеспечиваются исключительно с помощью явно вызываемых функций. Большинство реализованных Си-систем содержат в себе разумный стандартный набор этих функций. В продолжение сказанного следует отметить, что Си предоставляет средства лишь последовательного управления ходом вычислений: механизм ветвления по условиям, циклы, составные инструкции. Компактность языка имеет реальные выгоды. Поскольку Си относительно мал, то и описание его кратко, и овладеть им можно быстро. Программист может реально рассчитывать на то, что он будет знать, понимать и на практике регулярно пользоваться всеми возможностями языка.
Си не является "строго типизированным" языком, но в процессе его развития контроль за типами был усилен.
Однако основной философией Си остается то, что программисты сами знают, что делают; язык лишь требует явного указания об их намерениях.
Си, как и любой другой язык программирования, не свободен от недостатков. Уровень старшинства некоторых операторов не является общепринятым, некоторые синтаксические конструкции могли бы быть лучше. Тем не менее, как оказалось, Си - чрезвычайно эффективный и выразительный язык, пригодный для широкого класса задач.
В целом, С++ является над-множеством языка С. Это означает, что, вообще говоря, можно компилировать программы С в среде С++, однако компилировать программы С++ в среде С при наличии в них каких-либо специфических для С++ конструкций нельзя. Некоторые ситуации требуют специального внимания.
Одна и та же функция func, дважды объявленная в С с различными значениями аргументов, вызовет ошибку повторения имен. Однако, в С++ func интерпретируется как перегруженная функция - а то, допустимо это или нет, зависит от других обстоятельств.

Контрольные вопросы:

1. Дайте определение языку программирования Си.
2. Перечислите все бестиповые языки.
3. Какие основные операторы используются на языке Си?

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!

#38
Tic-Sakyra

Tic-Sakyra

    Архивариус

  • Не в сети
  • Старожилы
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    03-October 12
  • 298 Cообщений
  • Пропуск №: 7138


Репутация: 117 Постов: 298
  • Skype:Tic-Sakyra
  • Страна проживания:Россия
  • Реальное имя:Валентина
  • Пол:Женщина
  • Город:Кызыл

Основная литература

1. Павловская Т.А. С/С++. Программирование на языке высокого уровня. - СПб.: Питер, 2000.
2. Дэвис С. С++ для «чайников».- К.: Диалектика, 1996.
3. Неформальное введение в С++ и Turbo Vision. - Галерея «Петрополь». 1992.
Дополнительная литература

1. Хортон А. Visual C++ 2010: полный курс. Диалектика г.Киев.2010. - 1216 c.
2. Мошилев А.В., Пак Н.И. Хеннер Е.К. Практикум по информатике - М.: Академия, 2001. - 608 с.
3. Павловская Т.А. С/С++. Программирование на языке высокого уровня. - Спб.: Питер, 2001. - 464 с.
4. Пратта С. Язык программирования С++. Лекции и упражнения - М.: Диа-Софт, 2003. - 656 с.
5. Семакин И.Г., Шестаков А.П. Основы программирования - М.: Мастерст-во, 2001. - 432 с.
6. Страуструп Б. Дизайн и эволюция языка C++. Объектно-ориентированный язык программирования. - М.: ДМК-Пресс, 2000. - 448с.
7. Шилд Г. С/С++. Справочник программиста - М.: Вильямс, 2000. - 448 с.
8. Шмидский Я.К. Программирование на языке С/С++ - М.: Диалектика, 2003. - 352 с.
9. Стефан Р. для `чайников`, 6-е издание Дэвис . C++. Вильямс г.Киев. 2010 . - 336 c.
10. Шилдт Г. C++ для начинающих. Шаг за шагом. ЭКОМ г.Москва. 2010. - 640 c.
11. Дэвид Р. Мюссер. C++ и STL: справочное руководство, 2-е изд. Вильямс г.Киев. 2010. - 432 c.
12. Ишкова Э.А. C++. Начала программирования 3-е изд. стер. БИНОМ г.Москва. 2011. - 368 c.
13. Герберт Шилд. C++: базовый курс, 3-е изд. Вильямс г.Киев. 2010. - 624 c.

Как победить группировку?
Ни в коем случае не нападать внезапно!
Надо ей объявить войну за месяц.
И она сама себя замучает подготовкой!




Количество пользователей, читающих эту тему: 0

0 members, 0 guests, 0 anonymous users

       Поездка в Припять и Чернобыль

яндекс.метрика
Button automatically alert search engines 31x31 WHOIS.UANIC.NAME - Identify traffic by Google

реклама на сайте подключена