Лекция 2. Технология разработки программ (часть 1) (1152905)
Текст из файла
1Воробьева И.А. «Информатика. Язык Питон»Технология разработки программ. АлгоритмизацияАнализ и постановка задачи. Формализация данных и выбор методоврешения задачи. Понятие алгоритма. Этапы: алгоритмизация,кодирование, отладка и тестирование. Виды тестирования.Рекомендации. Полная спецификация задачи. Изображение алгоритмов ввиде блок-схем.
Базовые структуры алгоритмов.3. ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММЛюди, понимающие под разработкой программ только лишь слово«кодирование», похожи на столяра, мастерящего картонные табуретки надвух ножках. Как ни странно, но и для разработки сложного программногокомплекса целым коллективом, и для разработки достаточно тривиальнойпрограммы одним человеком требуется пройти все этапы общей технологииразработки программного обеспечения.
Это связано с тем, что этапыразработки направлены на получение качественного продукта, и ключевоеслово в этом вопросе не «большой» или «маленький», «один человек» или«группа людей», а слово «качественный».Этапы разработки программ:анализ требований задачи;спецификация задачи (техническое задание);выбор методов решения задачи;проектирование (алгоритмизация);кодирование;отладка;тестирование (автономное для одного человека и автономное +комплексное – для коллектива разработчиков);документирование;сопровождение(обновлениеверсий,устранениеошибок,техническая поддержка);Даже последний этап не может быть опущен в этой цепочке дляодиночного исполнителя, даже делающего работу только для личногоиспользования, если только человек не делает одноразовую, в смыслеприменения, работу.2Воробьева И.А.
«Информатика. Язык Питон»этапы разработки программанализ требований задачи(5%)спецификация (10%)выбор методов решения(5%)алгоритмизация (10%)кодирование (15%)отладка (15%)тестирование (30%)документирование (10%)Рисунок 3. 1 Оценка объема отдельных этапов работы в процентахПосмотрите на диаграмму на рисунке 3.1. Из диаграммы видно, чтоэтап кодирования, даже вместе с этапом отладки кода занимают вместепорядка трети всего объема необходимых работ.
При этом наиболеетрудоемкий этап – это этап тестирования, о котором мы поговорим отдельно.3.1. Анализ и постановка задачиСпецификация 1 – важная часть технической документации, котораясодержит набор требований и параметров к объекту (формальноеопределение требований к программе, полная постановка задачи:определение исходных данных, формы результата, исключительныхситуаций, особых реакций и т.п.). При выполнении лабораторных работ, подспецификацией часто понимают объединение этих требований с отчетом(документированием), т.е.
кроме собственно спецификации туда включают:алгоритм, полный код программы или ее фрагмент, таблицу проведенныхтестов.1В общей энциклопедии этот термин означает перечисление подробностей, на которые необходимо обратить особое внимание.3Воробьева И.А. «Информатика. Язык Питон»В данном разделе остановимся на подготовке к написаниюспецификации, как она сформулирована в определении. Для этого намнужно пройти первый этап, часто совершенно игнорируемый, что приводит кнеобоснованной трате ресурсов как «заказчика» задания, так и«исполнителя».
Надо понимать, что условный «заказчик» и условный«исполнитель» -- это два совершенно по разному мыслящих «человека» ибольшая ошибка думать что одни и те же слова, сформулированныедостаточно обобщенно, будут ими поняты идентично.Возьмем для примера типичную формулировку задачи, которую надо«решить» при помощи написания программы и рассмотрим, какиетребуются дополнения и уточнения для полной постановки задачи и, вконечном итоге, составления технического задания.Задача 3.1.
Даны n точек. Подсчитать среднее арифметическое техточек, которые попадут в отрезок [-10; 5].Спецификация должна дать ответы на следующие вопросы:В этой задаче мы видим три типа обозначенияКаковы допустимыеданных одновременно: буквенное – «n»,сокращения,словесное «среднее арифметическое» и числовоепереименования,«[-10; 5]». Уместно привести все к единому виду.обозначения вЧисло точек – n изменять не будем, так как этоформулировкеобщепринятое понятное обозначение. Ведемзадачи?«говорящее» сокращение Mean (the arithmeticmean) для вычисляемого среднегоарифметического.
Отрезок также можнообозначить буквами: [A; B], где A=-10, B=5. Максимальное значение n влияет на выбор тиКаков диапазон n?па переменных (тип данных, переменных, рассмотрим подробнее в п. 1.3). В программировании есть разница: придется складывать 10чисел или 1035. Если же придется их перемножать, то влияние n станет гораздо существенней. Если мы допускаем, что n может быть равно нулю, тогда следует учесть и то, что это особая ситуация для программы, так как нет данных (точек) для проведения вычислений.4Воробьева И.А. «Информатика. Язык Питон»Если речь в задаче об отрезке, то почтинаверняка речь идет о вещественных числах, хотяэто, строго говоря, не обязательно. Если точки естьвещественные числа, то с какой точностью онизаданы, после запятой один разряд или вседесять? Даже если точки будут целые числа – их средКакой тип данных унее арифметическое обязано иметь вещестMean?венный тип (например,).Каково его Предельные значения Mean напрямую зависятмаксимальное иот n и границ отрезка:.минимальноеЗаметьте, что все вычисления усложнятся, а козначение?личество вопросов увеличится, если отрезокбудет задан не параметрами-константами, а параметрами- переменными [A; B] (забегая вперед – существенно увеличится и число необходимых проверочных тестов).Тогда программа столкнется с еще однойА что, если ни однаособой ситуацией, когда алгоритм не можетточка не попадет вотработать «в лоб» без ошибки, так как,заданный отрезок?пытаясь вычислить Mean, мы попытаемсяподелить на ноль. Точки могут быть заданы, например, в текстовом файле или их вводят с клавиатуры, генериКаким образомруют программой случайным образом, вычисзаданы точки? Откудаляют программой на предыдущих этапах, – вамы их получаем? Естьриантов много.ли гарантия, что Часто приходится предусматривать возможточки заданы верно?ность ошибки ввода, особенно, если способввода предполагает участие человека (клавиатура, файл).Какой тип данных уточек?В результате, мы получаем так называемую уточненную постановкузадачи:Даны n целочисленных точек, где.
Подсчитать среднееарифметическое (Mean) тех точек, которые попадут в отрезок [A; B], где A=-10,B=5. Число n и значения точек (x,) вводить с клавиатуры.Результат работы программы вывести на экран:1. При нарушении диапазонов n и x вывести сообщение: «Нарушен диапазон входных данных».
Завершить работу.5Воробьева И.А. «Информатика. Язык Питон»2. Если ни одна точка не попадет в заданный отрезок вывести сообщение:«Нет точек на отрезке, величина Mean не подсчитана». Завершитьработу.3. Вывести значение Mean = ____, где– это диапазон и точность результата.Почти всегда начинающий программист использует только третий пунктв качестве результата работы программы.
Более того, он и программу пишеттак, будто первых двух пунктов не существует. Это неверный подход, так как,по известному выражению: «Ты суслика видишь? — Нет. — И я нет. А онесть!». И даже есть определение для описанных ситуаций:Аномальная ситуация – вынужденное прерывание работы программы из-за невозможности реализовать основной алгоритм на полученных данных, когда данные ошибочны (соответствует п. 1), не входят вдиапазон разрешенных значений.Альтернативная ситуация – ветвление программы, зависящее отпромежуточного результата работы (соответствует п.
2), например, когда все входные данные верны (точки х из диапазона:), но попытка продолжить работу по основному алгоритму приведет к ошибке(деление на ноль). Альтернативная ситуация не обязательно должнаприводить к ошибке, это может быть просто отсутствие среди всех допустимых объектов тех, которые удовлетворяют условиям для продолжения основного вычисления программы. Это, по сути, один из вариантов решения задачи, а аномалия – ситуация, когда решение не определено. Приведем еще пример: «подсчитать число K точек, из заданных на отрезке [-5; 5] случайным образом n точек, попавших в отрезок [0; 1]». Решение в форме основного будет выглядеть, как: «Числоискомых точек равно <k>», гдеРешение в форме основногои альтернативного будет выглядеть:«Число искомых точек равно«Искомых точек на отрезке» длянет»для6Воробьева И.А.
«Информатика. Язык Питон»3.2. Формализация данных и выбор методов решениязадачиЧастично мы уже выполнили формализацию данных на предыдущихэтапах, определяя диапазоны типы имена ключевых параметров задачи,однако этот процесс не закончен. Данные 2– особая категория информации,которая описывается отдельным пунктом в спецификации (техническомзадании) и обычно сводится в специальную таблицу.
Более подробноерассмотрение данных нельзя отделить от еще одного понятия – понятияалгоритма.Алгоритм – это точное, логичное описание последовательности действий,необходимых для решения задачи.3.2.1. Данные. Классификация данныхЛюбая программа оперирует с данными (параметрами): получаетизвне, вычисляет в процессе работы, передает в качестве результата. Впервую очередь их делят на классы по смыслу и типы по возможностямобработки (например, в программе).По смыслу данные делятся на следующие классы: входные, выходные ипромежуточные (хранение промежуточных результатов при вычислениях, впроцессе решения задачи).Условие задачи (ввод и инициализация): входные данные –они известны заранее в том смысле, что не получив их,алгоритм попросту не начнет решение задачи.Решениезадачи(алгоритмрешениязадачи):включаетрешениевнутреннихподзадач–входные + промежуточные данные.Вывод результата (сохранение): выходные данные.Важно научиться четко распределять смысловое значение данных, таккак одна и та же переменная в программном коде может относиться кразным классам данных в зависимости от того по отношению к какой задаче2Данные – это информация в формализованном виде, поддающемся многократной интерпретации и пригодном для передачи или обработки с помощью специальных технических средств (см.
лекция 1).7Воробьева И.А. «Информатика. Язык Питон»мыеерассматриваем:исходнойиливнутреннейподзадаче(вспомогательная задача основного алгоритма). Например, промежуточноеданное внутри алгоритма решения основной задачи может одновременноявляться входным/выходным по отношению к выделенной в нем подзадаче.Пример.3.1. Любая знакомая из математики сложная функция вида. Например,, где:– входнойпараметр, – выходной параметр,– промежуточный для ивходной для .Входные данные задачи по смыслу могут являться и выходными для нее же.Например, если задача требует изменить заданный массив, по какому-то правилу, тогда измененный массив– будетрезультатом работы алгоритма и, следовательно, выходное данное задачи.Во время работы программы, входные данные могут являться ивыходными в прямом смысле физического размещения информации, т.е.переменная (специально выделенная ячейка памяти), которая содержалапервоначальное значение, после выполнения нужных действий может бытьзаполнена результирующим значением.
Например, в языке Питонправомерна записьесли первоначальное значениенепотребуется в дальнейшем. Это позволительно, так как в данном случае, мывидим не математический знак операции «равно», а оператор присвоенияязыка программирования Питон. Порядок выполнения оператораприсвоения в языках программирования определяют так: сначалавыполнить выражение справа от знака операции присвоения “=” и толькопотом присвоить значение операнду 3 слева. В разных языках операторприсвоения может выглядеть по-разному, но часто именно в виде знака «=»,что не должно вводить в заблуждение.В языках программирования с любой величиной связаны следующиехарактеристики:3имя – это идентификатор, связывающий величину с физическойячейкой памяти, где будет храниться ее значение;тип – определяет множества допустимых значений переменной иопераций над ней;значение (мы рассмотрим подробнее в следующем разделе специфику, связанную именно с языком Питон):Операнд – в языках программирования это аргумент операции, то есть то, над чем производится операция(или иначе, на что действует оператор).8Воробьева И.А.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.