Цикл с предусловием блок схема примеры

Цикл с предусловием блок схема примеры

Главная > Реферат

Информация о документе
Дата добавления:
Размер:
Доступные форматы для скачивания:

Рис. 5.4. Блок-схема циклов с предусловием и постусловием

Пример 5.5. Построить таблицу значений функции y=x 3 на интервале [1;3] с шагом 0,1.

Задачу решим двумя способами: используя цикл с предусловием и цикл с постусловием. Составим алгоритмы решения данной задачи в виде псевдокода и в виде блок-схемы.

1. Определить начальное значение x=1.

2. Пока x≤3 делать.

2.1. Вычислить y=x 3 .

2.2. Вывести значения x и y.

2.3. Увеличить x на величину шага.

Цикл с предусловием

1. Определить начальное значение x=1.

2. Повторить действия.

2.1. Вычислить y=x 3 .

2.2. Вывести значения x и y.

2.3. Увеличить x на величину шага.

пока не выполнится условие x>3

Цикл с постусловием

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

Пример 5.6. Вычислить = слаг 1 +слаг 2 +…+слаг N

Алгоритм на псевдокоде:

3. Для i= 1, N, 1 повторить:

3.1. S = S + слагаемое.

Сформулируем правило суммирования :

начальное значение суммы S = 0;

в теле некоторой циклической конструкции выполнить команду: S = S + .

Пример 5.7. Подсчет количества элементов. Произведем счет: 1, 2, 3, 4, 5 и т.д., этот процесс является циклическим, так как каждый раз мы со­вершаем одно и то же действие: предыдущее натуральное число увеличиваем на единицу. Обозначив через К — счетчик искомых элементов, легко получить правило счетчика: К = К + 1 (на очередном шаге цикла). Но при первом подсчете должны получить значение К, равное единице, а до начала счета счетчик должен быть пуст, следовательно, начальное значение счетчика равно нулю.

начальное значение счетчика К = 0;

в теле некоторой циклической конструкции выполнить команду: К = К + 1.

5.3.4. Рекурсивный алгоритм

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

Пример 5.8. В качестве примера рассмотрим рекурсивный алгоритм вычисления факториала.

По определению факториал вычисляется как произведение натуральных чисел от 1 до указанного числа, то есть n!=1·2·3·…·n. Так же из определения известно, что 0!=1. Воспользуемся указанными определениями для решения задачи. Решение представим на алгоритмическом языке.

Функция F( арг цел X) : рез цел

Проанализируем работу алгоритма для 3!. Сначала произойдет вызов функции F(3). Это означает, что на первом этапе вычислений X=3. Т.к. X≠0, то F будет вычислена по формуле F=F(2)*3. Другими словами, происходит рекурсивный вызов этой же функции, только значение аргумента новое. На втором этапе вычислений X=2. Т.к. X≠0, то F=F(1)*2. На втором этапе снова произошел вызов функции. На третьем этапе X=1, т.к. X≠0, то F=F(0)*1. И снова рекурсивный вызов функции. На четвертом этапе значение аргумента X=0, тогда F=1. Это значение подставляется на третьем этапе вместо F(0), тогда формула третьего этапа примет вид F=1*1 (значение равно 1). Аналогично, на втором этапе формула вычисления F=1*2 (равно 2), а на первом этапе F=2*3 (значит F=6). Таким образом, результат вычисления F(3) равен 6. Действительно, 3! = 1 · 2 · 3 = 6

6. Языки программирования

и технологии программирования

6.1. Языки программирования

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

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

Сегодня практически все программы создаются с помощью языков программирования. Теоретически программу можно написать и на естественном языке (говорят: программирование на метаязыке), но из-за неоднозначности естественного языка автоматически пере­вести такую программу в машинный код пока невозможно.

Языки программирования – это формальные искусственные языки. Как и естественные языки, они имеют алфавит, словарный запас, грамматику и синтаксис, а также семантику.

Алфавит — разрешенный к использованию набор символов, с помощью которого могут быть образованы слова и величины данного.

Синтаксис – система правил, определяющих допустимые конст­рукции языка программирования из букв алфавита.

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

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

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

Языки программирования, имитирующие естественные, обладающие укрупненными командами, ориентированные «на человека», называют языками высокого уровня .

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

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

Переменная — есть именованный ячейка памяти, которая может изменять свое значение. Имя переменной указывает на значение, а способ ее хранения и адрес остаются скрытыми от программиста. Кроме имени и значения, переменная имеет тип, определяющий, какая информация находится в памяти. Тип переменной задает:

используемый способ записи информации в ячейки памяти;

необходимый объем памяти для ее хранения.

Если переменные присутствуют в программе, на протяжении всего времени ее работы – их называют статическими . Переменные, создающиеся и уничтожающиеся на разных этапах выполнения программы, называют динамическими .

Все остальные данные в программе, значения которых не изменяются на протяжении ее работы, называют константами или постоянными. Константы, как и переменные, имеют тип. Значения констант изменять нельзя.

Читайте также:  Касперский быстрая проверка на вирусы без установки

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

Массивом называется упорядоченная совокупность однотипных величин, имеющих общее имя, элементы которой адресуются порядковыми номерами (индексами). Элементы массива в памяти компьютера хранятся по соседству, одиночные элементы простого типа такого расположения данных в памяти не предполагают.

Работа с элементами массива происходит поэлементно. Например, ввод элементов одномерного массива осуществляется поэлементно, обычно элементы вводятся в порядке возрастания их индексов. Для двумерного массива необходимо соответственно указать два индекса.

6.2. Компиляторы и интерпретаторы

Основу каждой системы программирования составляет транслятор . Это программа, переводящая текст на языке программирования в форму, пригодную для исполнения (на другой язык). Такой формой обычно являются машинные команды, которые могут непосредственно исполняться компьютером. Различают несколько видов трансляторов: компиляторы , интерпретаторы , конверторы .

Компилятор , обрабатывая исходную программу, создает эквивалентную программу на машинном языке, которая называется также объектной программой, или объектным кодом.

Интерпретатор , распознавая, как и компилятор, исходную программу, не формирует машинный код в явном виде. Для каждой операции, которая может потребоваться при исполнении исходной программы, в программе-интерпретаторе заранее заготовлена машинная команда или команды. «Узнав» очередную операцию в исходной программе, интерпретатор выполняет соответствующие команды, потом – следующие, и так всю программу. Интерпретатор – это переводчик и исполнитель исходной программы.

Конвертор – транслятор, переводящий программу не в машинный код, а на другой язык программирования.

6.3. Системы программирования

Процесс создания программы включает:

Составление исходного кода программы на языке про­граммирования.

Этап трансляции, необходимый для создания объектного кода программы.

Построение загрузочного модуля, готового к исполнению.

Все перечисленные выше действия требуют наличия специальных программных средств. Совокупность этих программных средств входит в состав системы программирования:

Текстовый редактор (необходимый для создания и редактирова­ния исходного кода программы на языке программирования).

6.4. Классификация и обзор языков программирования

Современное состояние языков программирования можно представить в виде следующей классификации (рис. 6.1).

Рис. 6.1. Классификация языков программирования

Процедурное программирование есть отражение фон Неймановской архитектуры компьютера. Программа, написанная на этом языке, представ­ляет собой последовательность команд, определяющих алгоритм решения задачи. Основной командой является команда присвоения, предназначенная для определения и изменения содержимого памяти компьютера. Фундаментальная идея процедурного программирования – использование памяти компьютера для хранения данных. Функционирование программы сводится к последовательному вы­полнению команд с целью преобразования исходного состояния памяти, т.е. программа производит пошаговое преобразование содержимого памяти, изменяя его от исходного состояния к результирующему. Примеры таких языков: Фортран, Кобол, Алгол, BASIC, Паскаль (Pascal), АДА, С (Си).

Суть функционального программирования определяется как «способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени функции, а единственным правилом композиции – оператор суперпозиции функций. Никаких ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем, ни передачи управления». Первым таким языком стал Лисп

Концепция логического программирования базируется на поня­тии отношение. Логическая программа – это совокупность аксиом и правил, определяющих отношения между объектами и целью. Пролог – это язык логического программирования.

Основой объектно-ориентированного программирования (ООП) является понятие объект. Его суть состоит в том, что объект объеди­няет в себе структуры данных и характерные только для него проце­дуры (методы) их обработки. Языками ООП являются: Смолток, С++, Java, Visual Basic, Delphi, С++ Builder, Visual С++, VBA.

Языки программирования баз данных отличаются от алгоритмических языков своим функциональным назначением. При работе с базами данных (БД) наиболее часто выполняются следующие операции: создание, преобразование, удаление таблиц в БД; поиск, отбор, сортировка по запросам пользователя; добавление новых записей или модификация существующих; удаление записей и др. Для обработки больших мас­сивов информации и выборки записей по определенным признакам был создан структурированный язык запросов SQL

Появление и активное развитие компьютерных сетей стало причиной создания многочисленных версий популярных языков программирования , адаптированных для использования в сети . Отличительные особенности, присущие сетевым языкам: они являются интерпретируемыми. Интерпретаторы для них распространяются бесплатно, а сами программы – в исходных текстах. Такие языки получили название скрипт-языков. Например, HTML, Perl, Tcl/Tk, VRML.

Для моделирования существуют специальные языки – языки моделирования . При моделировании систем применяются формальные способы их описания – формальные нотации, с помощью которых можно представить объекты и взаимосвязи между ними в системе. Такие системы называют CASE-системами.

6.5. Этапы решения задач на компьютере

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

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

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

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

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

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

Читайте также:  Ворд 2010 как сделать альбомный лист

Составление программы – алгоритм решения переводится на конкретный язык программирования.

Отладка программы – процесс устранения синтаксических и ло­гических ошибок в программе. Иногда данный этап называют тестированием программы.

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

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

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

6.6. Принципы программирования

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

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

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

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

Основным принципом модульного программирования является принцип «разделяй и властвуй». Модульное программирование — это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам. Использование модульного программирования позволяет упростить тестирование программы и обнаружение ошибок. Модульные программы значительно легче понимать, а модули могут использоваться как строительные блоки в других программах.

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

Составить программу вычисляющие сумму чисел:

S = 2 + 4 + 6 + 8 + … + 20

ПРОГРАММА на БЕЙСИКЕ

PRINT “Сумма чисел “

INPUT “Ввести число “, n

FOR i = 2 TO n STEP 2

PRINT “Сумма = “, S

В некоторых случаях нельзя заранее предугадать, сколько раз будет необходимо выполнять действия. Например, Тетушка, послав белить забор Тома, сказала "будешь красить забор, пока . "

В таких случаях удобнее использовать не конкретный параметр, а некоторое заранее заданное условие:

Схемаэто абстракция какого-либо процесса или системы, наглядно отображающая наиболее значимые части. Схемы широко применяются с древних времен до настоящего времени — чертежи древних пирамид, карты земель, принципиальные электрические схемы. Очевидно, древние мореплаватели хотели обмениваться картами и поэтому выработали единую систему обозначений и правил их выполнения. Аналогичные соглашения выработаны для изображения схем-алгоритмов и закреплены ГОСТ и международными стандартами.

На территории Российской Федерации действует единая система программной документации (ЕСПД), частью которой является Государственный стандарт — ГОСТ 19.701-90 «Схемы алгоритмов программ, данных и систем» [1]. Не смотря на то, что описанные в стандарте обозначения могут использоваться для изображения схем ресурсов системы, схем взаимодействия программ и т.п., в настоящей статье описана лишь разработка схем алгоритмов программ.

Рассматриваемый ГОСТ практически полностью соответствует международному стандарту ISO 5807:1985.

Содержание:

Элементы блок-схем алгоритмов

Блок-схема представляет собой совокупность символов, соответствующих этапам работы алгоритма и соединяющих их линий. Пунктирная линия используется для соединения символа с комментарием. Сплошная линия отражает зависимости по управлению между символами и может снабжаться стрелкой. Стрелку можно не указывать при направлении дуги слева направо и сверху вниз. Согласно п. 4.2.4, линии должны подходить к символу слева, либо сверху, а исходить снизу, либо справа.

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

Терминатор начала и конца работы функции

Терминатором начинается и заканчивается любая функция. Тип возвращаемого значения и аргументов функции обычно указывается в комментариях к блоку терминатора.

Операции ввода и вывода данных

В ГОСТ определено множество символов ввода/вывода, например вывод на магнитные ленты, дисплеи и т.п. Если источник данных не принципиален, обычно используется символ параллелограмма. Подробности ввода/вывода могут быть указаны в комментариях.

Выполнение операций над данными

В блоке операций обычно размещают одно или несколько (ГОСТ не запрещает) операций присваивания, не требующих вызова внешних функций.

Блок, иллюстрирующий ветвление алгоритма

Блок в виде ромба имеет один вход и несколько подписанных выходов. В случае, если блок имеет 2 выхода (соответствует оператору ветвления), на них подписывается результат сравнения — «да/нет». Если из блока выходит большее число линий (оператор выбора), внутри него записывается имя переменной, а на выходящих дугах — значения этой переменной.

Вызов внешней процедуры

Вызов внешних процедур и функций помещается в прямоугольник с дополнительными вертикальными линиями.

Начало и конец цикла

Символы начала и конца цикла содержат имя и условие. Условие может отсутствовать в одном из символов пары. Расположение условия, определяет тип оператора, соответствующего символам на языке высокого уровня — оператор с предусловием (while) или постусловием (do … while).

Читайте также:  Как сделать скриншот на ark

Подготовка данных

Символ «подготовка данных» в произвольной форме (в ГОСТ нет ни пояснений, ни примеров), задает входные значения. Используется обычно для задания циклов со счетчиком.

Соединитель

В случае, если блок-схема не умещается на лист, используется символ соединителя, отражающий переход потока управления между листами. Символ может использоваться и на одном листе, если по каким-либо причинам тянуть линию не удобно.

Комментарий

Комментарий может быть соединен как с одним блоком, так и группой. Группа блоков выделяется на схеме пунктирной линией.

Примеры блок-схем

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

Сортировка вставками

Массив в алгоритме сортировки вставками разделяется на отсортированную и еще не обработанную части. Изначально отсортированная часть состоит из одного элемента, и постепенно увеличивается.

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

Блок-схема алгоритма сортировки вставками

В приведенной блок-схеме для организации цикла используется символ ветвления. В главном цикле (i Блок-схема алгоритма сортировки пузырьком

На блок-схеме показано использование символов начала и конца цикла. Условие внешнего цикла (А) проверяется в конце (с постусловием), он работает до тех пор, пока переменная hasSwapped имеет значение true. Внутренний цикл использует предусловие для перебора пар сравниваемых элементов. В случае, если элементы расположены в неправильном порядке, выполняется их перестановка посредством вызова внешней процедуры (swap). Для того, чтобы было понятно назначение внешней процедуры и порядок следования ее аргументов, необходимо писать комментарии. В случае, если функция возвращает значение, комментарий может быть написан к символу терминатору конца.

Сортировка выбором

В сортировке выбором массив разделяется на отсортированную и необработанную части. Изначально отсортированная часть пустая, но постепенно она увеличивается. Алгоритм производит поиск минимального элемента необработанной части и меняет его местами с первым элементом той же части, после чего считается, что первый элемент обработан (отсортированная часть увеличивается).

Блок-схема сортировки выбором

На блок-схеме приведен пример использования блока «подготовка», а также показано, что в ряде случаев можно описывать алгоритм более «укрупнённо» (не вдаваясь в детали). К сортировке выбором не имеют отношения детали реализации поиска индекса минимального элемента массива, поэтому они могут быть описаны символом вызова внешней процедуры. Если блок-схема алгоритма внешней процедуры отсутствует, не помешает написать к символу вызова комментарий, исключением могут быть функции с говорящими названиями типа swap, sort, … .

На блоге можно найти другие примеры блок-схем:

Часть студентов традиционно пытается рисовать блок-схемы в Microsoft Word, но это оказывается сложно и не удобно. Например, в MS Word нет стандартного блока для терминатора начала и конца алгоритма (прямоугольник со скругленными краями, а не овал). Наиболее удобными, на мой взгляд, являются утилиты MS Visio и yEd [5], обе они позволяют гораздо больше, чем строить блок-схемы (например рисовать диаграммы UML), но первая является платной и работает только под Windows, вторая бесплатная и кроссплатфомренная. Все блок-схемы в этой статье выполнены с использованием yEd.

Нужны ли блок-схемы? Альтернативы

Частные конторы никакие блок-схемы не используют, в книжках по алгоритмам [6] вместо них применяют словесное описание (псевдокод) как более краткую форму. Возможно блок-схемы применяют на государственных предприятиях, которые должны оформлять документацию согласно требованиям ЕСПД, но есть сомнения — даже для регистрации программы в Государственном реестре программ для ЭВМ никаких блок-схем не требуется.

Тем не менее, рисовать блок-схемы заставляют школьников (примеры из учебников ГОСТ не соответствуют) — выносят вопросы на государственные экзамены (ГИА и ЕГЭ), студентов — перед защитой диплом сдается на нормоконтроль, где проверяется соответствие схем стандартам.

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

Появляются подозрения, что система образования прогнила и отстала лет на 20, однако аналогичная проблема наблюдается и за рубежом. Международный стандарт ISO 5807:1985 мало чем отличается от ГОСТ 19.701-90, более нового стандарта за рубежом нет. Там же производится множество программ для выполнения этих самых схем — Dia, MS Visio, yEd, …, а значит списывать их не собираются. Вместо блок-схем иногда применяют диаграммы деятельности UML [6], однако удобнее они оказываются, разве что при изображении параллельных алгоритмов.

Периодически поднимается вопрос о том, что ни блок-схемы, ни UML не нужны, да и документация тоже не нужна. Об этом твердят программисты, придерживающиеся методологии экстремального программирования (XP) [7], ходя даже в их кругу нет единого мнения.

В ряде случаев, программирование невозможно без рисования блок-схем, т.к. это один процесс — существуют визуальные языки программирования, такие как ДРАКОН [8], кроме того, блок-схемы используются для верификации алгоритмов (формального доказательства их корректности) методом индуктивных утверждений Флойда [9].

В общем, единого мнения нет. Очевидно, есть области, в которых без чего-то типа блок-схем обойтись нельзя, но более гибкой альтернативы нет. Для формальной верификации необходимо рисовать подробные блок-схемы, но для проектирования и документирования такие схемы не нужны — я считаю разумным утверждение экстремальных программистов о том, что нужно рисовать лишь те схемы, которые помогают в работе и не требуют больших усилий для поддержания в актуальном состоянии [10].

Ссылка на основную публикацию
Хочу создать группу в контакте
Приветствую вас, дорогие читатели. Социальные сети уже давно вошли в нашу жизнь, поэтому всем владельцам абсолютно любого бизнеса, как традиционного,...
Установка mac os transmac
В сети сейчас полно копипастов, по сути одной и той же статьи, про установку MacOS X на хакинтош примерно с...
Установка op com на windows 10
Всем привет! Очень многие вектроводы заказывают с Китая OP-COM и сталкиваются с проблемами установки драйверов самого OP-COM на различных системах...
Хром для андроид тв приставок
Всем привет! Предлагаю очередной раз поднять больную тему браузеров для Android TV. В разделе «вопрос – ответ» уже много раз...
Adblock detector