В.2. Этапы решения задач

B.1. Главные понятия и определения

Программное обеспечение (ПО) является логическим продолжением технических средств. Сфера внедрения определенного компьютера определяется предназначенным для него ПО.

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

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

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

Системные программкипроизводятся совместно с прикладными и служат для управления ресурсами компьютера – центральным микропроцессором, памятью, вводом-выводом. Это программки общего использования, которые В.2. Этапы решения задач созданы для всех юзеров компьютера. Системное программное обеспечение разрабатывается так, чтоб компьютер мог отлично делать прикладные программки.

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

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

Операционную систему можно именовать программным продолжением устройства управления компьютера.

В разных моделях компов употребляют ОС с разной архитектурой и способностями. Для их работы требуются различные ресурсы. Они предоставляют разную степень сервиса для программирования и работы с готовыми программками.

Не считая того, программное обеспечение условно можно разбить на В.2. Этапы решения задач два класса: «маленькое» и «огромное».

«Малое» программное обеспечение имеет последующие свойства: решает одну легкую, верно намеченную цель; размер начального программного кода не превосходит нескольких сотен строк; скорость работы программного обеспечения и нужные ему ресурсы не играют большой роли; вред от неверной работы не имеет огромного значения; модернизация программного В.2. Этапы решения задач обеспечения, дополнение его способностей требуется изредка; обычно, разрабатывается одним разработчиком либо маленький группой; подробная документация не требуется, ее может поменять начальным кодом с комментами.

Примером «малого» ПО могут служить программки базисных алгоритмов, изучаемые в данном пособии и примеры проектов из лабораторных работ.

«Большое» программное обеспечение имеет две три либо более черт В.2. Этапы решения задач из последующего списка: решает совокупа взаимосвязанных задач; внедрение приносит значимую выгоду; удобство его использования играет важную роль; непременно наличие полной и понятной документации; низкая скорость работы приводит к потерям; сбои, некорректная работа, наносит осязаемый вред; программки в составе ПО во время работы ведет взаимодействие с другими программками и программно В.2. Этапы решения задач-аппаратными комплексами; работает на различных платформах; требуется развитие, исправление ошибок, добавление новых способностей; группа разработчиков состоит из более чем 5 человек[ 9 ].

Стоит отметить, что сложное либо «большое» ПО, которое именуют также программными системами, программными комплексами, программными продуктами, отличается от «небольшого» не столько по размерам, сколько по наличию дополнительных причин, связанных с его востребованностью и готовностью юзеров «платить В.2. Этапы решения задач» как за приобретение самого продукта, так и за его сопровождение, и за с обучение работе с ним.

Проектирование ПО предполагает выработку параметров системы на базе анализа постановки задачки, а конкретно: модели предметной области, требований к ПО, также опыта разработчика с учетом структуры программных систем. Не считая того, модель предметной В.2. Этапы решения задач области накладывает ограничения на логику предметной области и структур данных.

Что все-таки определяет структуру и стиль программных систем? Сначала, это парадигма программирования, которой нужно следовать, работая в хоть какой среде системы программирования.

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

В данном учебном пособии при изучениибазовых средств алгоритмического языка высочайшего уровня VisualBasicиспользуется среда программирования VisualStudio .NET. Так как в базе этой среды лежат разные технологии, в том числе технологии структурного, процедурного В.2. Этапы решения задач, зрительного и объектно-ориентированного программирования, то сначала нужно следовать, правилам этих технологий. Они все – всего только разные инструменты, которые можно использовать при разработке ПО. Любой из этих инструментов по-своему неплох. Другими словами, по сути, разные методики «программирования» дают различный выигрыш для решения задач различных классов.

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

Не считая того, в современном программировании очень нередко парадигма программирования определяется набором инструментов программера, а конкретно, языком программирования и применяемыми средствами разработки ПО.

Парадигма программирования определяет и то, в В.2. Этапы решения задач каких определениях описывается логика программки. Так, в властном программировании программка описывается как последовательность действий, а в объектно-ориентированном программировании (ООП) программку принято рассматривать как набор взаимодействующих объектов.

ООП есть, на самом деле, властное программирование, дополненное принципом инкапсуляции данных и способов в объекте (принцип модульности) и наследованием (принципом повторного использования разработанного В.2. Этапы решения задач функционала). Сами же способы (процедуры) разрабатываются на принципах властного программирования.

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

Процедурное программирование –это парадигма программирования, основанная на концепции описания и вызова процедур. Процедуры также известны как подпрограммы, способы В.2. Этапы решения задач либо функции.

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

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

Структурное программирование – методология разработки ПО, в В.2. Этапы решения задач базе которой лежит представление программки в виде иерархической структуры базисных алгоритмических блоков. Она предложена в 70-х годах XX векаЭ. Дейкстрой, разработана и дополнена Н. Виртом. В согласовании с этой методологией:

1) Неважно какая программка представляет собой структуру, построенную из трёх типов базисных конструкций: последовательность – однократное выполнение операций в том порядке, в В.2. Этапы решения задач каком они записаны в тексте программки; разветвление – однократное выполнение одной из 2-ух либо более операций, зависимо от выполнения некого данного условия; цикл – неоднократное выполнение одной и той же операции до того времени, пока производится некое данное условие (условие продолжения цикла); в программке базисные конструкции могут быть вложены друг В.2. Этапы решения задач в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается.

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

3) Разработка программки ведётся пошагово, способом «сверху вниз».

Сущность способа разработки программки «сверху вниз» заключается в последующем. Поначалу пишется текст основной программки, в каком, заместо каждого связного логического куска текста, вставляется вызов В.2. Этапы решения задач подпрограммы, которая будет делать этот кусок. Заместо реальных, работающих подпрограмм, в программку вставляются «заглушки», которые ничего не делают. Приобретенная программка проверяется и отлаживается. После того, как разработчик уверен, что процедуры вызываются в правильной последовательности (другими словами общая структура программки верна), то процедуры-заглушки поочередно заменяются реально работающими. Причём В.2. Этапы решения задач разработка каждой процедуры ведётся этим же способом, что и основной программки. Разработка завершается тогда, когда не остается ни одной «затычки», которая не была бы удалена. Такая последовательность гарантирует, что на каждом шаге разработки программер сразу имеет дело с обозримым и понятным ему обилием фрагментов, и может быть уверен, что В.2. Этапы решения задач общая структура всех более больших уровней программки верна. При сопровождении и внесении конфигураций в программку выясняется, в какие конкретно процедуры необходимо внести конфигурации, и они вносятся, не затрагивая части программки, конкретно не связанные с ними. Это позволяет гарантировать, что при внесении конфигураций и исправлении ошибок не выйдет В.2. Этапы решения задач из строя какая-то часть программки, находящаяся на этот момент вне зоны внимания программера.

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

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

Таким макаром, пошаговая реализация – это стратегия разработки программки, а нисходящее проектирование – это стратегия В.2. Этапы решения задач программирования.

Объектно-ориентированное программирование (ООП) –парадигма программирования, в какой основными концепциями являются понятияобъектовиклассов.

Класс– это тип, описывающий структуру объектов. Понятие «класс» предполагает некое поведение и метод представления. Понятие «объект» предполагает нечто, что обладает определённым поведением и методом представления. Молвят, что объект – это экземпляр класса. Класс можно сопоставить с чертежом В.2. Этапы решения задач, согласно которому создаются объекты. Обычно классы разрабатывают таким макаром, чтоб их объекты соответствовали объектам предметной области. Класс является описываемой на языке начального кода моделью ещё не имеющейся сути – объекта.

ООП появилось в итоге развития идеологиипроцедурного программирования, где данные и процедуры (подпрограммы и функции) их обработки формально не связаны. Не В.2. Этапы решения задач считая того, в современном объектно-ориентированном программировании нередко огромное значение имеют понятия действия (так называемоесобытийно-ориентированное программирование).

В.2. Этапы решения задач

Практически все языки высочайшего уровня современных встроенных систем разработки ПО объектно-ориентированные. Для исследования базисных средств VB мы будем использовать «простейшие» программки с внедрением процедур. Данный подход употребляется для разработки В.2. Этапы решения задач способов классов.

Тогда общая схема решение «простейшихзадач», направленная на разработку процедур (способов) содержит в себе последующие главные этапы, часть из которых осуществляются до использования компьютера:

1) Постановка задачки. Шаг содержит в себе: сбор инфы о задачке; определение конечных целей решения задачки; определение формы выдачи результатов; описание данных.

2) Анализ и исследование задачки. На этом В.2. Этапы решения задач шаге анализируются имеющиеся подобные задачки; разрабатывается математическая модель задачки; осуществляется формализация; определяются структуры данных.

3) Разработка метода. Шаг заключается в выборе формы записи метода и в следующем процессе разработки метода и его описания.

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

5) Тестирование и отладка. При тестировании и отладке выявляют синтаксические, семантические (смысловые) и логические ошибки, допущенные при разработке метода и программировании. Анализ результатов тестирования позволяет убрать все выявленные семантические и логические ошибки.

6) Анализ результатов решения задачки. На этом шаге осуществляется прогон программки при реальных начальных данных В.2. Этапы решения задач. В итоге анализа результатов расчета может быть уточнение математической модели и повторение шагов 2-5.

Одними из самых трудозатратных и ответственных шагов, из перечисленных выше, являются этапы алгоритмизации и программирования.

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

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

· детерминированность – однозначность получения результата при одних и тех же начальных данных;

· результативность – обязательность получения искомого ре­зультата за конечное число шагов;

· массовость – возможность получения результата при различ­ных начальных данных рассматриваемого класса задач;

· дискретность – возможность В.2. Этапы решения задач разбиения метода на отдель­ные простые деяния, дозволяющие рассматривать ал­горитм с разным уровнем детализации.

Есть разные методы описания алгоритмов. На прак­тике более всераспространены последующие формы представления алгоритмов:

· словесная– последовательность действий, описанная на естественном языке;

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

· программная– текст программки на языке В.2. Этапы решения задач программирования.

Разглядим некие формы представления алгоритмов подробнее.

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

Словесный метод не имеет широкого распространения, так как такие описания: строго не формализуются; мучаются многословностью записей; допускают неоднозначность толкования отдельных предписаний В.2. Этапы решения задач.

Графический метод представления алгоритмов является более малогабаритным и приятным по сопоставлению со словесным представлением.

При графическом представлении метод изображается в виде последовательности связанных меж собой многофункциональных блоков, любой из которых соответствует выполнению 1-го либо нескольких действий. Такое графическое представление именуется схемой метода. В схеме метода каждому типу действий (вводу начальных данных, вычислению В.2. Этапы решения задач значений выражений, проверке критерий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного знака. В согласовании с логикой решения определенной задачки, блоки связы­вают вместе линиями, которые именуются линиями потока. Внедрение этого метода описания метода в особенности полезно на исходном шаге исследования языка программирования. На В.2. Этапы решения задач рис. В.2-1 приведен список главных обозначений, принятых в схемах алгоритмов.

Наименование Обозначение Предназначение
Запуск/останов Начало либо конец обработки данных.
Ввод/вывод Ввод начальных данных либо вывод результатов.
Процесс Выполнение операции либо группы операций, в итоге которых меняется значение, форма представления либо расположения данных.
Решение Выбор направления выполнения метода В.2. Этапы решения задач зависимо от значения логического условия
Модификация Начало постоянной повторяющейся структуры.
Предопределенный процесс Внедрение ранее сделанных и раздельно обрисованных алгоритмов.
Полосы потока Указание последовательности связей меж блоками.
Соединитель Указатель связей меж прерван­ными линиями потока.
Комментарий Пояснения частей схемы.
Межстраничный соединитель Указатель связей меж страничками, если схема метода занимает несколько листов В.2. Этапы решения задач.

Рис. В.2-1. Главные обозначения, принятые в схемах алгоритмов

Пример В.2-1.Разглядим запись метода нахождения большего общего делителя (НОД) 2-ух натуральных чисел (метод Эвклида) при помощи схемы метода.

Извыше перечисленных методов описания алгоритмов самым всераспространенным и более приятным является графический метод, потому в предстоящем все методы будут изображаться графически, в виде В.2. Этапы решения задач схем алгоритмов, реализованные средствами графической программки Visio[10] и см. Приложение 2 реального пособия.

Рис В.2-2. Пример графического описания алгоритмов


v-zav-ti-ot-rodovogo-obekta-posyagatelstva-oboznacheni-v-nazv-glav-koap.html
v-zavisimosti-ot-chisla-truboprovodov-ispolzuemih-dlya-teplosnabzheniya-dannoj.html
v-zavisimosti-ot-gospodstvuyushej-ideologii-gosudarstva.html