Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Понятие: Данные в информатике.
Комментарий: Данные (data) это информация, представленная в формализованном виде, пригодном для автоматической обработки при возможном участии человека. Данные (в алгоритмическом аспекте) это информация, несущая полезную смысловую нагрузку, представленная в формализованном виде, позволяющем собирать, передавать, вводить и обрабатывать эту информацию с помощью заданных алгоритмов.
Данные записываются в запоминающих устройствах. Вначале, системы обеспечивали обработку текстов, а затем - изображений и звука. Появилась возможность создания аудио видеосистем и представления в мультисреде разных типов данных. Произошла интеграция всех типов, и была создана единая технология обработки данных. Более того, благодаря визуализации текст, речь и звук могут быть эффективно представлены в виде изображений. В результате формы представления данных образовали взаимно пересекающиеся множества. В соответствии с этим выделяют три основных типа данных: текст, звук, изображение.
Данные в информатике формируются в группы, образуя компоненты 6as данных и баз знаний. Наименьшим компонентом является элемент данных - информационный объект, определяемый его наименованием и совокупностью описывающих его значений (величин). Объектом могут быть процесс, явление, предмет, страна, область науки и т. д. Совокупность значений элементов данных, которая описывает рассматриваемый объект, именуется записью (например, изделие - его номер, наименование, размеры, стоимость, материал, из которого оно изготовлено). Для передачи данных последние формируются в блоки данных, для хранения - компонуются в файлы, каталоги, массивы, таблицы, списки. При этом в системах и сети может использоваться несколько способов кодирования данных. Данные являются исходным материалом прикладных процессов, осуществляющих обработку данных. Часто в интересах государства либо коммерческих предприятий, организаций, фирм и отдельных граждан возникает: необходимость защиты данных от искажения, противозаконного использования. Все это ставит проблему безопасности данных.
Понятие: Безопасность данных.
Комментарий: Безопасность данных (data security) это концепция защиты данных от случайного либо умышленного изменения, уничтожения, разглашения, а также несанкционированного использования. Обеспечение безопасности данных одно из важнейших условий формирования управляемой информсреды образования и науки, а осуществление мер и действий по обеспечению безопасности данных, собственно, и представляет одну из форм управления информсредой.
Безопасность данных является многоплановой проблемой, охватывающей ряд важных задач. В первую очередь к ним относится конфиденциальность, которая обеспечивается за счет средств криптографии (шифрования). Шифрование позволяет не только закрывать данные от посторонних лиц. Оно также решает задачу целостности данных - их сохранения при наличии помех и искажения.
Важным аспектом безопасности данных является идентификация пользователя - процесс анализа характеристик кодов, используемых им для подтверждения прав на доступ в сеть, работу с данными и их изменение. Она обеспечивается введением паролей (password) и анализом электронной подписи. В результате осуществляется так называемый санкционированный (разрешенный) доступ. В этом процессе определяется несколько групп пользователей. Первым разрешается только чтение файлов, вторым - еще и изменение перечня файлов, их ликвидация, создание новых файлов. Особо выделяется круг лиц, работающих с конкретными файлами (редактирование, копирование).
Несанкционированный доступ связан не только с использованием, изменением или уничтожением данных лицами, которые не имеют на это разрешения. Для предотвращения противоправных действий создается безопасная среда, в которой обеспечивается также защита от всевозможных перехватов блоков данных во время передачи, их подделки, искажения, расшифровки паролей и идентификаторов пользователей, искусственного прерывания сеансов взаимодействия прикладных процессов.
С появлением и развитием сетей возникли компьютерные преступления. Хакеры (от англ. hack -- рубить, кромсать, разбивать) вторгаются в программное обеспечение в целях кражи, искажения либо порчи данных. Возникла также проблема, связанная с появлением в системах и сетях специально создаваемых злонамеренными лицами компьютерных вирусов. Последние способны искажать либо уничтожать используемую информацию. Опасность вирусов усугубляется их хорошо скрытым видом в составе исполняемых файлов (exe file), обнаруживаемых чаще всего в виде различных неопределенного назначения макросов (управляющих программ), а также в способности многих вирусов к размножению, запуску в механизмах таймера через запланированное, иногда очень большое время или в результате случайной заранее предусмотренной комбинации управляющих команд пользователя. От вирусов при всей их коварной тенденции к появлению все новых мутаций защитой служат специально разрабатываемые средства диагностики и очистки, а также предосторожности опытных пользователей при обнаружении в почтовых посылках или на внешних носителях непредусмотренных исполняемых файлов.
При решении проблемы безопасности данных обеспечивается так называемая прозрачность принимаемых мер. Она заключается в том, что введение механизмов безопасности не должно изменять нормальную работу сети. При этом задержки в передаче данных, вносимые программными и техническими средствами безопасности, должны быть минимальными. Не должна также уменьшаться надежность передачи. Естественно, что средства безопасности, в свою очередь, должны быть защищены от несанкционированного вторжения в них.
В ряде стран разрабатываются стандарты, предназначенные для обеспечения безопасности данных. Например; в США утвержден стандарт Частной усовершенствованной почты (РЕМ), используемый для шифрования информации в коммерческих задачах. РЕМ позволяет придавать документам нераспознаваемый вид. Здесь шифрование и дешифрование осуществляются одним и тем же ключом. Для обеспечения юридической базы безопасности данных в ряде стран приняты соответствующие законы. Так, в США в 1974 г. появился Закон секретности, определяющий правила хранения данных. В дополнение к нему приняты следующие законы:
· Закон о тайне финансовых операций (1978 г.), ограничивающий доступ к банковским операциям, в том числе и для государственных организаций;
· Закон о хранении информации (1978 г.), требующий уведомления пользователей о получении третьей стороной доступа к их записям;
· Закон об электронной связи (1986 г.), который запрещает перехват данных, передаваемых через коммуникационную сеть.
Институт NIST утвердил Требования безопасности и установил четыре (от простого к сложному) уровня секретности:
1. Программная и аппаратная реализация криптографии.
2. Использование доверительных операционных систем, а также применение замков и печатей для абонентских систем.
3. Защита портов пользователей.
4. Обнаружение несанкционированного проникновения в систему и автоматическое стирание данных в этом случае.
Большинство европейских стран, а также Канада и Япония также приняли законы о защите информации. Описание методов и средств защиты данных определяется архитектурой безопасности данных.
Закон и концепция информационной безопасности приняты и в России, отражая общую мировую тенденцию по усилению мер, направленных на защиту данных.
Понятие: Банк данных.
Комментарий: Банк данных (databank) это комплекс информационных, технических, программных, языковых и организационных средств, обеспечивающих сбор, хранение, поиск и обработку данных, без чего невозможны создание, развитие и продуктивное использование информсреды в образовании и других областях человеческой деятельности.
Банк данных предназначен для хранения больших массивов информации, быстрого поиска нужных сведений и документов. Создается банк в абонентской системе любой производительности - от персонального компьютера до суперкомпьютера. Но даже самый крупный банк ограничен в своих возможностях, поэтому банки в сети специализируются, собирая информацию в определенных областях науки, технологии, продукции.
Банк поддерживается прикладными процессами, получающими в абонентской системе сервис области взаимодействия. Благодаря этой области банк взаимодействует с большим числом пользователей сети, а также с другими банками. Лица, работающие в банке данных, делятся на три группы- сотрудники банка, администратор банка и пользователи. Задача сотрудников - сбор и запись в базу всей первичной информации, определяемой тематикой этой базы. Сотрудники должны также удалять устаревшую информацию. Наряду с этим обновление информации может быть разрешено и некоторым пользователям. Сотрудники банка и некоторые пользователи составляют программы, позволяющие из первичной информации получать необходимые вторичные сведения, составлять отчеты. Администратор обеспечивает руководство банком. Он решает вопросы, связанные с бесперебойной и надежной работой, хранением информации и безопасностью данных. В нужных случаях администратор осуществляет копирование содержимого баз и организует хранение копий. Пользователи банка взаимодействуют с необходимыми им банками.
Защита от несанкционированного доступа к базам создается за счет введения паролей и кодов, обеспечивающих идентификацию пользователей. Формирование и ведение банков данных связаны с большими затратами. Они становятся рентабельными лишь при большом трафике, то есть больших перерабатываемых и транслируемых в единицу времени объемах информации.
В различных странах создано большое число банков данных. Одним из крупнейших в мире является расположенный в США банк LEXIS-NEXIS, который в 1994 г. предоставлял около 200 млн. документов из более 4000 источников.
В инфраструктуре информационного обеспечения образования немалая роль принадлежит банку данных Гос. НИИ информационных технологий и телекоммуникаций «Информика», сервер которого в Интернете отличается высокой посещаемостью.
Ядром любого банка данных являются базы данных и базы знаний.
Понятие: База данных (БД), база знаний.
Комментарий: База данных - database - совокупность взаимосвязанных данных, организованная по определенным правилам. Строго говоря, базой данных являются специальным образом организованные один либо группа файлов (совокупность данных, выделенная в отдельный неделимый информационный продукт под собственным идентифицируемым именем, в расширении которого указан также вид используемого приложения). Для работы с файлами используется система управления базой данных (СУБД). При этом подразумевается, что база данных определена по схеме, не зависящей от программ, которые к ней обращаются. База данных характеризуется ее концепцией - совокупностью требований, обусловленных представлениями пользователей о необходимой им информации. Для целенаправленного поиска информации в базах данных служат специально создаваемые информационно-поисковые системы (ИПС - information retrieval system).
Среди баз данных и СУБД различного назначения особо следует выделить направление, поддерживающее изучение и освоение тех или иных предметных областей в образовании и науке, так называемые базы знаний. База знаний - сложная детально моделируемая структура информационных совокупностей, описывающих все особенности предметной области, включая факты (фактические знания), правила (знания условий для принятия решений) и метазнания (знания о знаниях), т. е. знания, касающиеся способов использования знаний и их свойств, а также сведения и инструкции, необходимые для освоения указанных знаний.
Базы данных и базы знаний имеют различные размеры - от небольших до крупных и супергигантов, расположенных в суперкомпьютерах. Создание очень больших баз данных требует использования особенно мощных компьютеров, чрезвычайно емкой памяти и сложной информационной инфраструктуры. Каждая из отдельно рассматриваемых баз одновременно может обслуживать тысячи пользователей. Все большее распространение получают распределенные базы данных, как это имеет место в мировой глобальной сети Интернет, услугами которой пользуются многие миллионы людей всего земного шара.
Данные в базе располагаются так и для того, чтобы их можно было легко найти обработать. Эти задачи выполняются системой управления базой данных. Существует много методов доступа к данным, находящимся в базах. Особой популярностью пользуется метод, определяемый языком структурированных запросов (SQL). Все большее распространение получают аудио-видео-базы. Они характерны тем, что в них размещаются, хранятся и выдаются тексты, звуки, неподвижные и движущиеся изображения.
Увеличение скорости обработки данных, создание большой памяти, построение коммуникационных сетей с высокой пропускной способностью привели к использованию полнотекстовых баз данных. Служба глобального соединения (WWW) обеспечивает универсальный доступ к большому числу баз данных, расположенных на различных континентах.
Ширится распространение реляционных баз данных, а также баз данных, имеющих объектно-ориентированную архитектуру и многомерное представление данных. В этих базах создаются модули объектов, в том числе прикладных программ, которые управляются внешними событиями с помощью графического интерфейса пользователя.
Определенный интерес представляют две группы баз Европейского союза: европейские и головной организации Европейского союза (ECHO). Последняя почти все базы предоставляет пользователям бесплатно. Базы работают на нескольких европейских языках и содержат разнообразную информацию - от исследовательских проектов до перечня научных организаций. Особо следует отметить многоязычную терминологическую базу. Велик спектр областей информации, в которых создаются международные базы данных. Так, база фирмы Dialog содержит сведения о 95 % всех патентов мира. Патентная информация поступает из Международного центра патентной документации (INPADOC), находящегося в Вене.
База данных представляет совокупность всей необходимой для решения задач конкретной области совокупность данных, организованная по определённым правилам, позволяющим обеспечить независимость данных от прикладных программ, удобство хранения, поиска, пересылки, защиты, манипулирования данными, которые записаны на машинных носителях. Для этого данные записываются и воспроизводятся с помощью специально созданных лексических средств и на основе принятых синтактических правил и ограничений.
Понятие: Синтактический анализ.
Комментарий: Синтактический анализ устанавливает важнейшие параметры информационных потоков, включая необходимые количественные характеристики, для выбора комплекса технических средств сбора, регистрации, передачи, обработки, накопления, хранения и защиты информации. Синтактический анализ обслуживаемых информационных потоков обязательно предшествует всем этапам проектирования информационных систем (ИС).
Понятие: Семантический анализ.
Комментарий: Семантический анализ позволяет изучить информацию с точки зрения смыслового содержания её отдельных элементов, находить способы языкового соответствия (язык человека, язык ЭВМ) при однозначном распознавании вводимых в систему сообщений.
Понятие: Прагматический анализ.
Комментарий: Прагматический анализ проводится с целью определения полезности информации, используемой для управления, выявления практической значимости сообщений, применяемых для выработки управляющих воздействий.
Понятие: Реквизиты в информатике.
Комментарий: Реквизитом в информатике называется информационная совокупность, неделимая далее на более мелкие смысловые единицы. Реквизиты-признаки характеризуют качественные свойства отражаемых сущностей. Реквизиты-основания представляют собой количественные величины, характеризующие данную сущность.
Понятие: Постоянная и переменная информация.
Комментарий: Постоянная информация остаётся без изменений или же подвергается незначительным корректировкам в течение более или менее длительного периода времени. Это различные справочные сведения, нормативы, расценки и т. п. Переменная информация отражает результаты выполнения производственно-хозяйственных операций, соответствует их динамизму и, как правило, участвует в одном технологическом цикле машинной обработки.
Понятие: Пакетный режим подготовки данных.
Комментарий: Пакетный режим был наиболее распространён в практике централизованного решения экономических задач, когда большой удельный вес занимали задачи отчётности о производственно-хозяйственной деятельности экономических объектов разного уровня управления. Организация вычислительного процесса при пакетном режиме строилась без доступа пользователя к ЭВМ. Его функции ограничивались подготовкой исходных данных по комплексу информационно-взаимосвязанных задач и передачей их в центр обработки, где формировался пакет, включающий задание для ЭВМ на обработку, программы, исходные, нормативно-расценочные и справочные данные. Пакет вводился в ЭВМ и реализовывался в автоматическом режиме без участия пользователя и оператора, что позволяло минимизировать время выполнения заданного набора задач, при этом работа ЭВМ могла проходить в однопрограммном или многопрограммном режиме, что предпочтительнее, так как обеспечивалась параллельная работа основных устройств машины. В настоящее время пакетный режим реализуется применительно к электронной почте.
Понятие: Интерактивный режим работы с данными.
Комментарий: Интерактивный режим предусматривает непосредственное взаимодействие пользователя с информационно-вычислительной системой, может носить характер запроса (как правило, регламентированного) или диалога с системой. Запросный режим необходим пользователям для взаимодействия с системой через значительное число абонентских терминальных устройств, в том числе удалённых на значительное расстояние от центра обработки. Такая необходимость обусловлена решением оперативных задач справочно-информационного характера, какими являются, например, задачи резервирования билетов на транспорте, номеров в гостиничных комплексах, выдача справочных сведений и т. п. Информационная система в подобных случаях реализует систему массового обслуживания, работает в режиме разделения времени, при котором несколько независимых абонентов (пользователей) с помощью устройств ввода-вывода имеют в процессе решения своих задач непосредственный и практически одновременный доступ к информационной системе. Этот режим позволяет дифференцированно в строго установленном порядке предоставлять каждому пользователю время для общения с системой, а после окончания сеанса выходить из нее. Диалоговый режим открывает пользователю возможность непосредственно взаимодействовать с информационно-вычислительной системой в допустимом для него темпе работы, реализуя повторяющийся цикл выдачи задания, получения и анализа ответа. При этом информационная система сама может инициировать диалог, сообщая пользователю последовательность шагов (предоставление меню) для получения искомого результата.
Понятие: Алгоритм и его свойства.
Комментарий: Алгоритм в информатике содержит конечный набор правил, однозначно раскрывающих содержание и последовательность выполнения операций для систематического решения определённого класса задач за конечное число шагов. Алгоритм обладает рядом присущих ему свойств и характеристик, одной из важнейших которых является детерминированность. Детерминированность алгоритма есть определённость, однозначность, означающая, что набор указаний алгоритма должен быть однозначно и точно понят любым исполнителем. Это свойство определяет однозначность результата работы алгоритма при заданных исходных данных. Массовость алгоритма предполагает возможность варьирования исходных данных в определённых пределах. Это свойство определяет пригодность использования алгоритма для решения множества задач данного класса. Свойство массовости алгоритма является определяющим фактором, обеспечивающим экономическую эффективность решения задач на ЭВМ. Из сказанного следует, что для задач, решение которых осуществляется один раз, целесообразность использования ЭВМ, как правило, диктуется внеэкономическими категориями. Результативность алгоритма означает, что для любых допустимых исходных данных он должен через конечное число шагов (или итераций) завершить свою работу. Дискретность алгоритма предопределяет возможность разбиения определённого алгоритмического процесса на отдельные элементарные этапы, возможность реализации которых человеком или ЭВМ не вызывает сомнения, а результат выполнения каждого элементарного этапа вполне определён и понятен. Таким образом, алгоритм даёт возможность чисто механически решать любую конкретную задачу из некоторого класса однотипных задач, осуществляя тем самым алгоритмический процесс. Под алгоритмическим процессом понимается реализация алгоритма на конкретных исходных данных решаемой задачи. При этом алгоритм в информатике может быть описан различными способами.
Понятие: Способы описания алгоритма в информатике.
Комментарий: Словесный способ описания алгоритма отражает содержание выполняемых действий средствами естественного языка. К достоинствам этого способа описания следует отнести его общедоступность, а также возможность описывать алгоритм с любой степенью детализации. К главным недостаткам этого способа следует отнести достаточно громоздкое описание (и, как следствие, относительно низкую наглядность) отсутствие строгой формализации в силу неоднозначности восприятия естественного языка, вытекающего из свойств синонимии, омонимии, полисемии. Формульно-словесный способ описания алгоритма основан на записи содержания выполняемых действий с использованием изобразительных возможностей языка математики, дополненного с целью указания необходимых пояснений средствами естественного языка. Данный способ, обладая всеми достоинствами словесного способа, вместе с тем более лаконичен, а значит, и более нагляден, имеет большую формализацию, однако также не является строго формальным. Графический способ описания алгоритмов представляет собой изображение логико-математической структуры алгоритма, при котором все этапы процесса обработки данных представляются с помощью определённого набора геометрических фигур (блоков), имеющих строго определённую конфигурацию в соответствии с характером выполняемых действий.
Понятие: Составление программ – кодирование, тестирование и отладка.
Комментарий: Составление программ (кодирование) является завершающим этапом технологического процесса разработки программных средств, предшествующим началу непосредственно машинной реализации алгоритма решения задачи. Процесс кодирования заключается в переводе описания алгоритма на один из доступных (понятных) для ЭВМ языков программирования. В процессе составления программы для ЭВМ конкретизируются тип и структура используемых данных, а последовательность действий, реализующих алгоритм, отражается посредством языка программирования. Процесс кодирования в практическом плане непременно завершается тестированием и отладкой написанных программ. Тестирование и отладка составляют заключительный этап разработки программы решения задач. Оба этих процесса функционально связаны между собой, хотя их цели несколько отличаются друг от друга. Тестирование представляет собой совокупность действий, предназначенных для демонстрации правильности работы программы в заданных диапазонах изменений внешних условий и режимов эксплуатации программы. Цель тестирования заключается в демонстрации отсутствия (или выявления) ошибок в разработанных программах на наборе заранее подготовленных контрольных примеров. Процессу тестирования сопутствует понятие "отладка", которое подразумевает совокупность действий, направленное на устранение ошибок в программах, начинающихся с момента обнаружения фактов ошибочной работы программы и завершающихся устранением причин их возникновения. Тестирование и отладка программ сопряжены с трансляцией программ, представляющей процесс перевода с исходного языка программирования во внутренние коды машины (системы). В процессе отладки программ вскрываются и исправляются заложенные в них ошибки, в том числе логические и синтаксические. Синтаксические ошибки в программе представляют собой некорректную запись отдельных языковых конструкций с точки зрения правил их представления на выбранном языке программирования. Эти ошибки выявляются автоматически при трансляции исходной программы для её выполнения. Логические ошибки в программе бывают нескольких видов:
· в какой-то момент программа не может продолжать работу (возникает программное прерывание, обычно сопровождающееся указанием оператора, на котором оно произошло);
· программа работает, но не выдаёт всех запланированных результатов и не выходит на останов (происходит её "зацикливание");
· программа выдаёт результаты и завершает свою работу, но они полностью или частично не совпадают с контрольными.
После выявления логических ошибок и установления причин их возникновения в программу вносятся соответствующие исправления, и её отладка продолжается до полного устранения всех выявляемых ошибок.
Понятие: Инструментальное программное обеспечение.
Комментарий: Инструментальное программное обеспечение (software tools) это средство разработки и развития программного обеспечения (ПО). Инструментальное программное обеспечение, или инструментарий характеризуется набором программ, выполняющих функции, связанные с созданием или модернизацией новых программ. В этот набор как минимум входят текстовый редактор, графический редактор, транслятор, загрузчик, а также средства отладки программ.
Инструментарий обеспечивает выполнение последовательных фаз:
· выработку требований к создаваемому программному обеспечению;
· общее проектирование;
· детальную разработку;
· создание отдельных модулей;
· тестирование полученных модулей;
· объединение модулей в единое целое;
· выпуск проекта;
· эксплуатацию и сопровождение созданных программ.
Кроме того, инструментарий обеспечивает управление всей разработкой. Для выполнения перечисленных функций он опирается на базу данных, создаваемую специально для рассматриваемой цели. Эта база содержит необходимые данные, относящиеся к выполняемому проекту.
Инструментальное программное обеспечение используется в течение всего жизненного цикла (полного жизненного цикла) разрабатываемого проекта, вплоть до морального старения созданных программ.
Понятие: Сопровождение программных средств.
Комментарий: Сопровождение программных средств (ПС) осуществляется разработчиком (поставщиком) по договорённости с заказчиком (пользователем) для повышения качества работ, оперативности исправления ошибок, выявляемых в процессе эксплуатации программных средств, а также выполнения различного рода модификаций, то есть внесение различного рода изменений в уже функционирующие программы.
Понятие: Нисходящее проектирование программ.
Комментарий: Нисходящее проектирование программ (TOPDOWN-метод, или проектирование сверху вниз, иерархическое проектирование) заключается в том, что будущая программа разбивается на более мелкие элементы, которые, в свою очередь, могут быть разбиты на более простые и т. д. до тех пор, пока они не будут доведены до таких примитивов, или элементарных операций, которые могут быть реализованы на ЭВМ. Вместо программ нижнего уровня часто используются программы-заглушки, позволяющие несколько ускорить процессы разработки программного комплекса. Благодаря их использованию обеспечивается возможность имитировать на ЭВМ работу реальной создаваемой программы, а, следовательно, осуществлять проверку работоспособности программ верхнего уровня ещё до того, как будут разработаны и отлажены все составляющие её программы нижнего уровня. С этой точки зрения чрезвычайно продуктивным является создание и использование программных модулей, из которых можно собирать различные сложные программные продукты.
Понятие: Программный модуль.
Комментарий: Программный модуль - это последовательность логически связанных фрагментов, оформленных как отдельная часть программы. Программные модули должны обладать следующими свойствами:
· на модуль можно ссылаться (т. е. обращаться к нему) по имени (в том числе и из других модулей);
· по завершении работы модуль должен возвращать управление тому модулю, который его вызывал;
· модуль должен иметь один вход и один выход;
· модуль должен иметь небольшой размер.
При разработке сложных программ, как правило, в них выделяют головной модуль и подчинённые ему модули, обеспечивающие управление, функциональную обработку и сервисное обслуживание.
Понятие: Модульное проектирование программ.
Комментарий: Модульное проектирование программ, используя в построении сложных программных продуктов отдельно созданные модули, обладает следующими преимуществами:
· большую программу могут разрабатывать одновременно несколько исполнителей, а это позволяет сократить сроки её разработки;
· появляется возможность создавать (и многократно использовать в дальнейшем) библиотеки наиболее употребляемых программ;
· упрощается процедура загрузки больших программ в оперативную память, когда требуется её сегментация;
· возникает много естественных контрольных точек для наблюдения за осуществлением хода разработки программы;
· обеспечивается более эффективное тестирование программ;
· проще осуществляется проектирование и последующая отладка программ.
Преимущества модульного принципа построения программ особенно наглядно проявляются на этапе сопровождения и модификации программных продуктов, позволяя значительно сократить затраты сил и средств на реализацию этого этапа. Вместе с тем модульный принцип имеет и некоторые недостатки, которые могут привести к увеличению:
· времени компиляции и загрузки программ;
· объёма требуемой памяти;
· времени исполнения программ и т. п.
В значительной мере от этих недостатков свободно структурное проектирование программ.
Понятие: Структурное проектирование программ.
Комментарий: Структурное проектирование программ допускает использование операторов безусловного перехода - операторов GOTO - (при общем требовании минимизации их использования), но при обязательном условии, чтобы передача управления осуществлялась только вниз по программе. (Исключение операторов безусловного перехода из программ даёт возможность читать их сверху вниз без перерывов, возникающих из-за передачи управления.) Таким образом, структурное программирование - не просто программирование без операторов безусловного перехода, это дисциплина программирования, объединяющая несколько взаимосвязанных способов создания ясных, лёгких для понимания программ. Одной из современных тенденций развития системного программирования является реализация принципа самодокументирования программ, проявляющегося в форме включения комментариев в исходные тексты программы. Комментарии раскрывают смысл выполняемых действий в отдельных фрагментах программы и функциональное назначение переменных, используемых в программе.
Понятие: Эффективные алгоритмы и структуры данных в информатике.
Комментарий: Алгоритмы сортировки, сопутствующие функционированию ИС, отличаются различной степенью сложности и эффективности. Часто используемыми алгоритмами сортировки являются метод пузырька, наиболее простой для программирования, сортировка через выбор, метод вставки и несколько более трудоемкие для программирования метод быстрой сортировки, сортировка слиянием и сортировка через деревья выбора. Ниже приводятся вычислительные предписания для этих способов сортировки:
· insertsort метод вставки,
· selectsort через выбор,
· bubblesort метод пузырька,
· mergesort метод слияния,
· quicksort быстрая сортировка,
· heapsort через деревья выбора.
Сложность по времени, так же как и сложность по памяти оценивается в зависимости от длины n сортируемой последовательности. По мере необходимости в процессе создания ИС приходится выявлять различие между средней сложностью и сложностью в самом неблагоприятном случае. Средняя сложность показывает, сколь велики затраты алгоритма в среднем для сортировки последовательности длины n, если предположить, что каждое упорядочение элементов (каждая их перестановка) имеет одну и ту же вероятность. Сложность в самом неблагоприятном случае передает максимальные затраты, возможные при сортировке. Эти затраты имеют место, когда элементы в исходной последовательности упорядочены самым неблагоприятным для данного алгоритма образом.
На самом деле затраты того или иного метода сортировки часто сильно зависят от упорядоченности элементов исходной последовательности. Если последовательность играет заметную роль. В дальнейшем, считается, что элементы в исходной последовательности упорядочены случайным образом.
Методы сортировки insertsort и selectsort имеют среднюю временную сложность O(n2). При этом требуется n шагов вставки и выбора, а на i-м шаге затраты на вставку равны i, а на выбор n-i. В обоих случаях получается следующая формула для затрат:
n n-1
å i=å(n-1)=n*(n-1)/2=O(n2).
i=1 i=0
Метод пузырька требует в среднем O(n) проходов и на i-м проходе O(i) шагов для помещения элемента в нужную позицию, так что в среднем затраты составляют O(n2). Это соответствует при всех трех методах также и затратам в самом неблагоприятном случае. Затраты при быстрой сортировке также зависят от исходной упорядоченности элементов. В самом неблагоприятном случае элемент разреза является минимальным (максимальным) элементом. Вследствие этого, заданная последовательность длины i разбивается на последовательность длины (i-1) элемент разреза, пустую последовательность. Таким образом, получается метод, который соответствует сортировке через выбор, и в худшем случае требует O(n2) операций. Впрочем, этот случай имеет малую вероятность. В среднем же возникающие при разбиении последовательности имеют примерно равные длины, так что требуется O(log n) процессов разбиения до того как получатся последовательности длины 1. Тогда дерево вызовов соответствует двоичному дереву высоты O(log n). На i-м слое дерева дальнейшему разбиению подлежат 2i последовательностей, которые имеют длины n/2i, так что на каждом слое потребуется (2i*n/2i) шагов. Поскольку существует O(log n) слоев, то для метода быстрой сортировки получаются затраты времени в среднем O(n log n). Методы mergersort и heapsort имеют затраты также O(n log n). Впрочем, здесь эти затраты мало зависят от упорядоченности элементов в исходной последовательности, так что и в худшем случае затраты составляют O(n log n). Все три алгоритма сложности O(n log n) требуют дополнительной памяти. Для heapsort требуется дополнительная память объема O(n) для управления деревом сортировки. Это же относится и к meigesort; quicksort требует дополнительной памяти объема O(log n)для магазина при управлении рекурсивным вызовом. Получается, что все методы сортировки имеют определенные достоинства и недостатки. Какой из них следует выбирать на практике, зависит от ряда факторов, таких как:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 |


