Метод пошаговой детализации
Эффективным методом построения алгоритмов является метод пошаговой детализации (последовательного построения). При этом сложная задача разбивается на ряд более простых. Для каждой подзадачи составляется свой, относительно решения основной задачи, вспомогательный алгоритм. Требования к ним продиктованы необходимостью, как решения подзадачи, так и последующей их «стыковки» в основном алгоритме. Эти подзадачи могут, в свою очередь, потребовать разбиения на ещё более простые подзадачи, и т.д. В результате некоторые вспомогательные алгоритмы могут стать основными по отношению к вспомогательным алгоритмам более низкого уровня. Процесс пошаговой детализации заканчивается, когда задачи очередного уровня окажутся совсем простыми. Метод пошаговой детализации универсален. Он применим для решения задач из разных областей жизни.
Следовательно, вспомогательные алгоритмы создаются, когда возникает необходимость разбиения задачи на ряд более простых задач или когда есть необходимость многократного использования одного и того же набора действий в одном или разных алгоритмах. Вспомогательные алгоритмы должны быть состыкованы между собой в процессе «сборки» основного алгоритма. Для этого используют заголовки вспомогательных алгоритмов; с их помощью вызывают этот алгоритм (обращаются к его работе) из других вспомогательных или основного алгоритмов.
При составлении и использовании вспомогательных алгоритмов важно знать, что является для них исходными данными (аргументами) и результатами. Иногда команды вызова вспомогательного алгоритма содержат указание на имена тех переменных, которые вносят в него исходные значения, а также переменных, в которые перед выходом из него попадут значения результата для дальнейшего использования вне вспомогательного алгоритма. Иногда результатом работы вспомогательного алгоритма может стать значение некоторой сигнальной переменной, сообщающее об истинности какого-то условия или о наличии какого-либо факта, например, о возможности вычислить действительные корни квадратного уравнения ввиду отличного от нуля дискриминанта (значение флажка должно быть равно 1 или 0).
Записывая программу для компьютера на «понятном» ему языке программирования, вспомогательные алгоритмы можно организовать, например, как подпрограммы. Правила обращения к ним и возврата из них в основную программу определяются конкретным языком программирования. Подпрограммы общего назначения могут объединяться в библиотеки подпрограмм, а иногда образовывать набор стандартных функций.
Этот способ называется пошаговой детализацией алгоритмов и программ. При пошаговой детализации алгоритмы записываются в виде множества вспомогательных алгоритмов, решающих вспомогательные подзадачи, а каждая из них требует получения определенных промежуточных результатов.
Разработав основной алгоритм, можно приступить к разработке алгоритмов "второго уровня", которые в свою очередь могут требовать дальнейшей детализации. Процесс детализации продолжается до тех пор, пока не будут написаны все нужные вспомогательные алгоритмы. Таким образом, основной алгоритм представляет собой план действий, которые необходимо выполнить для достижения поставленной цели, а суть каждого действия расшифровывается в соответствующем вспомогательном алгоритме.
Решение новых задач мы всегда пытаемся свести к решению уже известных, а решение сложных задач - к решению более простых подзадач. Соответственно в алгоритмах решения сложных задач для решения подзадач могут выделяться вспомогательные алгоритм, которые служат для их решения. Каждый такой вспомогательный алгоритм описывает способ решения некоторой вспомогательной задачи или даже общий способ решения некоторого класса вспомогательных подзадач.
Алгоритмы, целиком, используемые в составе других алгоритмов, будем называть вспомогательными алгоритмами.
4.Основні поняття платформи Microsoft .Net
Весь компьютерный мир поделен на два лагеря — разработчиков ПО и пользователей, причем все представители первого всегда относятся и ко второму — они работают с чужими программами.
Зачастую они мыслят по-разному, ведь одним нужны интересные проекты, другим — качественные программы. Но друг без друга они существовать не могут, и потому им приходится искать общий язык. Общим же для них является то, что современные технологии разработки программных продуктов ни тех, ни других совершенно не устраивают (хотя многие из них не признаются в этом).
За последние годы стоимость компьютеров и аппаратного обеспечения упала в сотни раз, а производительность возросла в тысячи. Однако стоимость разработки ПО практически не изменилась. Почему? Каждый отвечает на этот вопрос по-своему, и к тому же всякий раз по-разному. Если же считать существующую систему разработки программ саморазвивающейся, то ответ лежит на поверхности — причины следует искать в современных технологиях. Как и в природе, где все закономерно, лучше других приспособлены к условиям среды обитания именно те формы, которые отвечают требованиям времени, т. е. жизнь сама выбирает, что лучше. В пользу этой версии свидетельствует и то, что технологии разработки ПО у разных производителей весьма схожи.
Сейчас в компьютерном мире правит бал корпорация Microsoft. Но здесь не будем предаваться размышлениям на тему, хорошо это или плохо. Ругают или нет Windows, она все равно царит повсеместно. Ругают или нет серверные продукты Microsoft (SQL Server, Exchange Server и т.д.), а их доля на рынке постоянно возрастает. Не столь важно, чем такой успех обеспечен, — удачным маркетингом или отличными технологиями, сколь важно то, что появление огромного количества продуктов Microsoft на рынке приводит к качественным изменениям. Значит, уже можно говорить о том, что есть два компьютерных мира — Microsoft вместе с компаниями, идущими близким курсом, и все остальные. Почти во всех сферах своей деятельности Microsoft испытывает мощное противоборство: в области серверных ОС с ним соперничает Sun, в сфере создания продуктов для Internet — Apache, в СУБД — Oracle и другие производители. Однако ни один противник не способен противопоставить ей что-либо по всем фронтам.
Поэтому в руках Microsoft оказался очень сильный козырь — ее неоспоримое преимущество, пользуясь которым она может попытаться изменить компьютерный мир и вывести его на новую ступень развития. Естественно, что ее устремления могут быть далеко не бескорыстны, но здесь интересно другое — можно ли изменить этот мир усилиями одной, пусть даже очень сильной компании. Подобная ситуация уже имела место примерно два десятилетия назад, в пору расцвета империи IBM. Однако ее американское правосудие быстро лишило возможности влиять на судьбы мира. Нечто подобное происходит сейчас и с Microsoft.
Однако рассмотрим ситуацию исключительно с технической стороны. Microsoft выдвинула интересную инициативу, названную «.Net» (читается и пишется «dotNet» — «дотНет»). Так что же она собирается предпринять?
Что такое и что дает dotNet?
Отвечая на каждый вопрос, можно сказать, что dotNet — новая технология Microsoft, направленная на изменение компьютерного мира, а если говорить чуть подробнее, то это набор нескольких инициатив и технологий, программного обеспечения, стандартов и средств разработки. Основное преимущество dotNet для потребителя — реализация единого информационного пространства, соединяющего его с компьютерами и программами, а также ПО между собой. Разработчикам же она позволит просто и быстро создавать нужные продукты.