- •Определение аис, структура, характеристика, классификация.
- •2 Жизненный цикл аис: понятие, структура, стадии и процессы жизненного цикла
- •3 Модели жц аис. Каскадная и спиральнаясхемы проектирования аис. Положительные стороны и недостатки.
- •4 Требования к технологии проектирования, разработки и сопровождения аис
- •Требования к сопровождению
- •5 Структурный и обьектно-ориентированный подход к проектирования аис
- •6 Разработка технического задания
- •7 Методология проектирования аис rad
- •Преимущества:
- •8 Методология проектирования аис sadt
- •Недостатки
- •Основные функции субд
- •13 Основные типы моделей данных.
- •14 Основные этапы проектирования Баз Данных
- •Dhcp-сервер
- •Управление dhcp из командной строки
- •Виды dns-запросов:
- •База данных wins
- •Сжатие базы данных
- •Архивирование базы данных wins
- •Файлы базы данных wins
- •Языки описания архитектуры - используются для описания архитектуры программного обеспечения.
- •Файловый сервер -выделенный сервер, оптимизированный для выполненияфайловых операций ввода-вывода. Предназначен для хранения файлов любого типа. Обладает большим объемом дискового пространства.
- •Архитектура «файл-сервер»
- •Преимущества серверов приложений:
- •27 Технология «клиент сервер»
- •Преимущества
- •Недостатки
- •28 Основные технологии построения рапределенных систем (сом, dcom, corba).
- •Принципы работы com
- •Технологии, основанные на стандарте com dcoMпозволяет com-компонентам взаимодействовать друг с другом по сети. Главным конкурентом dcom является другая известная распределённая технология — corba.
- •1 Основные характеристики эвм, порядок их определения
- •2 Основная память. Состав, организация и принципы работы.
- •Функции памяти
- •Классификация типов памяти
- •Доступные операции с данными
- •Метод доступа
- •Назначение
- •Организация адресного пространства
- •Удалённость и доступность для процессора
- •Управление процессором
- •3 Система счисления
- •Позиционные системы счисления
- •4 Система прерываний эвм
- •Система прерываний эвм
- •5 Принципы управления внешним устройством
- •1)Узлы устройств
- •2)Классы устройств
- •3)База данных конфигурации устройств
- •Состояние устройств
- •6 Виды интерфейса в аппаратном комплексе.
- •Примеры
- •7 Прямой доступ к памяти
- •8 Способы организации совместной работы периферийных устройств и центральных устройств
- •9 Видеоподсистема эвм. Состав, виды и назначение устройств.
- •10 Архитектура вычислительной системы
- •Современную архитектуру компьютера определяют принципы:
- •Классификация по назначению
- •МиниЭвм
- •МикроЭвм
- •Классификация по уровню специализации
- •Классификация по размеру
- •Классификация по совместимости
- •11 Дисковая подсистема эвм
- •Интерфейс esdi
- •Интерфейс scsi
- •Интерфейс scsi-II
- •Интерфейс ide
- •12 Устройства вывода информации на печать.
- •13 Сканер. Принцип действия, основные характеристики.
- •В культуре
- •Интерфейс
- •1 Архитектура и топология локальных вычислительных сетей Архитектура лвс
- •Шинная топология
- •Древовидная структура лвс
- •Еthernet-кабель
- •Сheapernеt-кабель
- •Оптоволоконные линии
- •Сетевая карта
- •Репитер
- •Локальная сеть Token Ring
- •Локальная сеть Ethernet
- •2 Проводные и беспроводные технологии компьютерных сетей
- •Отличия проводных и беспроводных технологий передачи данных
- •3.Физическая среда передачи данных Основные типы кабельных и беспроводных сред передачи данных
- •Оптоволоконный кабель
- •Кодирование сигналов
- •Плата сетевого адаптера (са)
- •Типы и компоненты беспроводных сетей
- •Передача "точка-точка"
- •4 Сетевое передающие оборудование
- •Параметры сетевого адаптера
- •Функции и характеристики сетевых адаптеров
- •Активное сетевое оборудование
- •Пассивное сетевое оборудование
- •5 Эталонная модель взаимодействия открытых систем osi
- •6 Протоколы локальных сетей
- •Распространенные протоколы
- •Набор протоколов osi
- •7 Архитектура стека протоколов tcp/ip
- •[Править]Физический уровень
- •[Править]Канальный уровень
- •[Править]Сетевой уровень
- •Транспортный уровень
- •Прикладной уровень
- •8 Методы доступа в сети
- •1. Метод Ethernet
- •2. Метод Archnet
- •3. Метод TokenRing
- •Способы коммутации и передачи данных
- •Характеристики способов передачи данных.
- •Адресация и маршрутизация пакетов данных. Способы адресации в сетях
- •Маршрутизация пакетов данных
- •К лассификация алгоритмов маршрутизации.
- •9 Адресация в компьютерных сетях
- •10 Сетевые ос
- •Основное назначение
- •11 Защита информации
- •1 Алгоритмы: определение алгоритма, свойства, формы записи.
- •Свойства алгоритма.
- •2 Способы описания алгоритмов. Описание алгоритмов с помощью языка блок схем. Правила составления блок схем
- •Язык блок-схем
- •Язык блок-схем прост (хотя существуют его расширенные варианты):
- •Основные элементы схем алгоритма:
- •3 Алгоритм базовые структуры
- •4 Данные. Понятие типа Данных
- •5 Языки программирования: эволюция, классификация
- •Начало развития
- •Структурное программирование
- •6 Языки программирования и системы программирования. Назначение и состав системы программирования.
- •Условный оператор if
- •Оператор варианта case
- •Цикл с предусловием while
- •Цикл с постусловием repeat
- •Цикл с параметром for
- •Рекомендации по использованию циклов
- •Виды циклов:
- •1)Безусловные циклы
- •4)Цикл с выходом из середины
- •Циклы pascal
- •Арифметические циклы
- •Итерационные циклы с предусловием
- •Итерационные циклы с постусловием
- •Операторы завершения цикла
- •Конструкторы и деструкторы
- •10 Основные понятия структурного программирования.
- •11 Методы построения алгоритмов.
- •12 Массивы: понятие, виды, описание.
- •Динамические библиотеки
- •Статические библиотеки
11 Методы построения алгоритмов.
Составление алгоритмов решения задач - это работа творческая. Нет универсального способа, позволяющего без особого труда составлять любые алгоритмы.
В большинстве случаев та или иная задача может быть решена несколькими численными методами. Выбор конкретного численного метода решения задачи обычно производится по критериям:
обеспечение оптимального времени решения задачи;
обеспечение оптимального использования имеющихся ресурсов (памяти);
обеспечение требуемой точности вычислений;
минимальные стоимостные затраты;
возможность использования стандартных подпрограмм.
При дальнейшей постановке задачи на ПК отыскивается наиболее рациональный способ решения задачи.
Структурное программирование - одна из популярных методик. Фундаментом структурного программирования является теорема о структурировании. Эта теорема устанавливает, что как бы сложна ни была задача, блок-схема соответствующей программы (читай - "соответствующего алгоритма") всегда может быть представлена с использованием весьма ограниченного числа элементарных управляющих структур (последовательность, ветвление, цикл).
Главная идея доказательства этой теоремы состоит в преобразовании каждой части алгоритма в одну из трех основных структур или их комбинацию так, чтобы неструктурированная часть алгоритма уменьшилась. После достаточного числа таких преобразований оставшаяся неструктурированной часть либо исчезнет, либо станет ненужной. Доказывается, что в результате получится алгоритм, эквивалентный исходному и использующий лишь упомянутые управляющие структуры.
Цель структурного программирования - выбор структуры программы путем расчленения исходной задачи на подзадачи. Программы должны иметь простую структуру. Сложные, запутанные программы, как правило, являются неработоспособными, а их тестирование требует больших затрат.
Разработка алгоритма, являясь четким логичным процессом, упрощается на каждом уровне шаг за шагом. Затем в процессе задействуется следующий метод алгоритмизации - метод пошагового уточнения (совершенствования). Сначала задача рассматривается в целом, выделяются наиболее крупные ее части. Алгоритм, указывающий порядок выполнения этих частей, описывается в структурированной форме, не вдаваясь в мелкие детали. Затем от общей структуры переходят к описанию отдельных частей. Таким образом, разработка алгоритма состоит из последовательности шагов в направлении уточнения алгоритма.
Дальнейшим развитием, расширением структурного программирования является модульное программирование, идея которого состоит в том, что алгоритм может быть представлен в виде системы, совокупности отдельных модулей. Каждый модуль рассматривается как самостоятельная, относительно независимая программа, которая может содержать набор данных и функций, доступных только из этого модуля.
Модульное программирование позволяет значительно ускорить процесс за счёт привлечения к работе нескольких специалистов сразу, доверив каждому разработку отдельного модуля. Кроме того, модульное программирование предполагает возможность использования заранее разработанных стандартных программ (т.н. библиотек стандартных подпрограмм).
На этапе проектирования алгоритма решения сложной задачи, состоящей из нескольких подзадач, используют два подхода: нисходящий и восходящий. При нисходящем проектировании вначале проектируются функции управляющей программы - драйвера. Затем более подробно представляют каждую подзадачу и разрабатывают другие модули. При нисходящем проектировании на каждом шаге функционирование модуля описывается с помощью ссылок на последующие, более подробные шаги.
При восходящем проектировании вначале проектируют программы низшего уровня, иногда в виде самостоятельных подпрограмм. Затем на каждом шаге разрабатываются модули более высокого уровня.
Существует также несколько общих алгоритмических методов решения очень сложных задач. Более подробно ознакомиться с некоторыми из них можно в (методы частных целей, подъема и отрабатывания назад, метод ветвей и границ и др.).
Методы разработки алгоритмов. Метод декомпозиции.
Самым важным и наиболее широко применимым методом проектирования эффективных алгоритмов является метод, называемый методом декомпозиции (или метод "разделяй и властвуй", или метод разбиения). Этот метод предполагает такую декомпозицию (разбиение) задачи размера n на более мелкие задачи, что на основе решений этих более мелких задач можно легко получить решение исходной задачи. Чтобы проиллюстрировать этот метод, рассмотрим хорошо известную головоломку "Ханойские башни". Имеются три стержня А, В и С. Вначале на стержень А нанизаны несколько дисков: диск наибольшего диаметра находится внизу, а выше — диски последовательно уменьшающегося диаметра, как показано на рис.. Цель головоломки — перемещать диски (по одному) со стержня на стержень так, чтобы диск большего диаметра никогда не размещался выше диска меньшего диаметра и чтобы в конце концов все диски оказались нанизанными на стержень В. Стержень С можно использовать для временного хранения дисков.
Для решения этой головоломки подходит следующий простой алгоритм. Представьте, что стержни являются вершинами треугольника. Пронумеруем все перемещения дисков. Тогда при перемещениях с нечетными номерами наименьший диск нужно перемещать в треугольнике на соседний стержень по часовой стрелке. При перемещениях с четными номерами выполняются другие допустимые перемещения, не связанные с наименьшим диском.
Задачу перемещения n наименьших дисков со стержня A на стержень B можно
представить себе состоящей из двух подзадач размера n – 1.Сначала нужно
переместить n – 1 наименьших дисков со стержня A на стержень C, оставив на
стержне A n-й наибольший диск. Затем этот диск нужно переместить с A на B.
Потом следует переместить n – 1 дисков со стержня C на стержень B. Это
перемещение n – 1 дисков выполняется путем рекурсивного применения указанного метода. Поменьше тех, которые в перемещении не участвуют, не нужно
задумываться над тем, что находится под перемещаемыми дисками на стержнях A,
B или C.
Хотя фактическое перемещение отдельных дисков не столь очевидно, а
моделирование вручную выполнить непросто из-за образования стеков рекурсивных
вызовов, с концептуальной точки зрения этот алгоритм все же довольно прост
для понимания и доказательства его правильности (а если говорить о быстроте
разработки, то ему вообще нет равных). Именно легкость разработки алгоритмов
по методу декомпозиции обусловила огромную популярность этого метода; к тому
же во многих случаях эти алгоритмы оказываются более эффективными, чем
алгоритмы, разработанные традиционными методами.
Расписание проведения турнира, таким образом, представляет собой таблицу, состоящую из л строк и п — 1 столбцов; элементом на пересечении строки i и столбца j является номер игрока, с которым игрок i должен провести матч в у'-й день. Метод декомпозиции позволяет составить расписание для половины игроков. Это расписание составляется на основе рекурсивного применения данного алгоритма для половины этой половины игроков и т.д. Когда количество игроков будет сокращено до двух, возникнет "базовая ситуация", в которой мы просто устанавливаем порядок проведения встреч между ними. Допустим, в турнире участвуют восемь игроков. Расписание для игроков 1 - 4 заполняет верхний левый угол (4 строки х З столбца) составляемого расписания. Нижний левый угол (4 строки х З столбца) этого расписания должен свести между собой игроков с более высокими номерами (5 - 8). Эта часть расписания получается путем прибавления числа 4 к каждому элементу в верхнем левом углу.
Итак, нам удалось упростить задачу. Теперь остается свести между собой игроков с низкими и более высокими номерами. Сделать это нетрудно: надо на 4-й день свести в пары игроков, имеющих номера 1 - 4, с игроками 5-8 соответственно, а в последующие дни просто циклически переставлять номера 5 - 8. Этот процесс показан на рис. 10.3. Надеемся, теперь читатель сможет обобщить описанный алгоритм и составить расписание для 2* игроков при любом значении k.