Лекция 3. Технология разработки программ (часть 2) (1152906)
Текст из файла
1Воробьева И.А. «Информатика. Язык Питон»Технология разработки программ. АлгоритмизацияАнализ и постановка задачи. Формализация данных и выбор методов решениязадачи. Понятие алгоритма. Изображение алгоритмов в виде блок-схем.Базовые структуры алгоритмов. Этапы: алгоритмизация, кодирование,отладка и тестирование. Виды тестирования. Рекомендации. Полнаяспецификация задачи.3. ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММ(продолжение)В этой части продолжим рассмотрение основных (см. выделенное) этапов разработкипрограмм:анализ требований задачи;спецификация задачи (техническое задание);выбор методов решения задачи;проектирование (алгоритмизация);кодирование;отладка;тестирование (автономное для одного человека и автономное + комплексное – дляколлектива разработчиков);документирование;сопровождение (обновление версий, устранение ошибок, техническая поддержка);3.3. Алгоритм.
Блок-схемаМы уже знаем, что алгоритм – это точное, логичное описаниепоследовательности действий, необходимых для решения задачи.Основные свойства алгоритма:определенность – все команды алгоритма должны быть в системе команд«исполнителя», то есть однозначно понимаемы «исполнителем»;конечность (результативность) – выполнение алгоритма должноприводить за конечное число шагов к нужному результату;массовость – алгоритм должен быть пригоден для решения любой задачииз данного класса (данный класс – определенный диапазон исходныхданных).2Воробьева И.А.
«Информатика. Язык Питон»Применяются два основных способа представления алгоритма:однотипные (унифицированные) словесные инструкции – они часто похожина укрупненный код программы;графическое (схематическое) изображение последовательности действий иих взаимосвязей – блок-схема.Замечание 3.1. Понятие инструкция алгоритма более широкое, чем инструкцияязыка программирования, т.к. оно может включать конструкцию из отдельныхинструкций (операторов) языка, различных операций, переменных, функций,констант.
Например, инструкция алгоритма «ввести массив из чисел» можетскрывать: определение переменных, открытие файла данных, проверку ,конструкцию «цикл», считывание/проверку/ отображение данных, закрытиефайла.Первый способ описания алгоритма достаточно удобен и интуитивнопонятен, но у него есть недостатки: излишняя громоздкость, плохо видны связимежду отдельными логическими блоками программы. У графического способаотсутствуют эти недостатки, но есть свои: он трудоемок в исполнениитехническими средствами (как всякий рисунок), ограничен в объемеописательной части инструкций.Остановимся на изучении блок-схем, так как в задачах со многимипараметрами, логическими условиями и ветвлениями это самый наглядныйспособ описания алгоритма – мозг человека гораздо лучше оперируетграфической информацией, чем просто набором текстовых инструкций.В блок-схемах общеприняты следующие графические символы:Начало / завершениеВыполнение инструкций,действий, вычислений.Ввод исходных данных /Вывод результатаВыбор, принятиерешений, ветвление.3Воробьева И.А.
«Информатика. Язык Питон»С помощью организации связей между этими четырьмя типами символов можноописать любой алгоритм в программировании, однако часто применяют еще дваудобных символа, которые позже используем и мы:Блок выделенной локальнойподзадачи в схемеЦикл с t-шагомиз n-числа шаговБазовые структуры алгоритмов:следование – линейная структура со строгой очередностью действий(команд) алгоритма:o < команда-предшественник > ; < команда-преемник >o блок-схема на рис.3.2. а)ветвление – структура с выбором выполнения либо одной команды, либодругой команды, зависящим от выполнения условия; бываютмножественные ветвления, но они все могут быть описаны, в конечномитоге, через базовую структуру алгоритма:o ЕСЛИ < условие выполнено > ТО < команда, выполняемая по ветви«ДА» > ИНАЧЕ < команда, выполняемая по ветви «НЕТ» >o блок-схема на рис.3.2.
б)цикл – это структура, предназначенная для компактной записи выполненияодного набора команд, которое принято называть телом цикла. Телоцикла:− может состоять и из одной команды;− может содержать параметр, изменяющийся при выполнении команд;− может быть и пустым.Есть разные типы циклов (мы изучим их позже) однако любой из них можетбыть переписан с помощью базовой структуры цикла ПОКА:o ПОКА < условие выполнено > :[ < команда 1 >< команда 2 >…< команда N > ]o блок-схема на рис.3.2. в)4Воробьева И.А. «Информатика.
Язык Питон»Рисунок 3.2. Базовые структуры алгоритмов.Рассмотрим два примера простейших алгоритмов, описываемых блоксхемой.Пример.3.4. Построим блок-схему решения задачи: «Клиент заполняет поляформы параметрами и . Требуется присвоить параметру С значениебольшего из введенных значений и . Все параметры – целые числа сознаком».началоввод А, BДаA>B?С=AНетC=BконецЗамечание 3.2. Блок «Ввод А, В» скрывает одну из возможных подзадач длякаждой величины А и В: «Проверить, что вводимые в поля формы данныеявляются целыми числами со знаком». Блок-схема такой проверки будет намногосложнее блок-схемы примера 3.4.
Чтобы это показать достаточно привестиследующий пример, который отражает только малую часть алгоритма проверкиввода: без циклов, правил преобразования «набора символов» в число,специальных буферов ввода и т.п.5Воробьева И.А. «Информатика. Язык Питон»Пример.3.5. Блок-схема «Реакция на нажатие клавиши клавиатуры»:началоДаклавиша «цифра»или «-» ?Нетклавиша«Backspace»?ДаНетклавиша«Enter»?Нетсимвол не вводитьстереть символДазафиксироватьпараметрконецИз примеров 3.4 и 3.5 хорошо видно, что простая словесная инструкция водном алгоритме скрывает множество инструкций в другом, болеедетализированном; и такое вложение может повторяться, пока не дойдет доинструкций (операторов), которые нужно будет реализовывать при кодированииалгоритма на языке программирования.
Это лучшая иллюстрация того факта, чтоалгоритм начального («нулевого») уровня на этапе проектирования 1(алгоритмизации) представляет из себя набор ключевых (укрупненных) действий,которые необходимо совершить для решения задачи. Подобное укрупнениеоблегчает понимание логики решения, позволяет избегать ошибок. И именнопоэтому разработка алгоритма является необходимым этапом написанияпрограммы при решении большинства не элементарных задач.На этапе кодирования проект (алгоритм) записывается на языкепрограммированияконкретнойвычислительнойсистемы.Поэтому,использование в блок-схемах алгоритма (на этапе проектирования)операторов конкретного языка программирования является ошибкой!Алгоритм решения задачи может быть переведен на множество языков1Речь идет о технологии нисходящего проектирования алгоримов, которая изучается в данномкурсе.6Воробьева И.А.
«Информатика. Язык Питон»программирования и записываться должен с учетом этого факта. Читающий блоксхему алгоритма должен понять, что требуется выполнить, и вовсе не обязанзнать синтаксис определенного языка программирования.На этапе отладки компьютерной программы обнаруживают,локализуют и устраняют ошибки.
В первую очередь на этом этапе устраняютсясинтаксические и логические ошибки. Существует два основных способа отладки: использованиеспециальныхсредств,предоставляемыхсредойпрограммирования, так называемых «отладчиков», в которых выполняетсяпошаговое исполнение кода программы с возможностью просмотрасодержимого ячеек данных (переменных программы); вывод текущего состояния программы с помощью расположенных вкритических точках программы операторов вывода (на экран, в файл и т.п.).На этом этапе устраняется большинство ошибок, однако для окончательногопринятия решения о работоспособности программы, совершенно необходим этаптестирования.3.4.
Тестирование программы. Функциональные тестыТестирование (программы) — процесс испытания программного кода,имеющий две цели:продемонстрировать, что программа соответствует требованиям;выявить ситуации, в которых поведение программы является неправильным, или не соответствующим спецификации.Распространенная ошибка «новичка», решающего задачу, заключается втом, что вторая цель вообще упускается из виду, а значит, строятся тесты только на«удобных/красивых» исходных данных.
Цель таких тестов показать, что все«работает как надо», а необходимо убедиться еще и в том, что «как не надо неработает», а это как раз, обычно, сделать гораздо сложнее.Тестирование программного кода является важнейшим пунктом в решениизадачи. Действительно, как можно утверждать, что задача решена, если нетобоснованной уверенности в работоспособности кода.
А как эту уверенностьполучить, если не подтвердить надежность кодаожидаемыми(предсказуемыми) результатами на определенных входных данных?Слова: «Я уверен, что у меня все работает», – могут убедить толькоговорящего. Больше никого. Надо это понимать.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.