5.2. ИСТОРИЯ ВОЗНИКНОВЕНИЯ ПРОЕКТНОЙ ПРОЦЕДУРЫ
5.2. ИСТОРИЯ ВОЗНИКНОВЕНИЯ ПРОЕКТНОЙ ПРОЦЕДУРЫ
С появлением ЭВМ актуальным стал поиск способов описания вычислительных алгоритмов. В 60-х годах уже применялись два способа описания алгоритмов: словесный пошаговый и графический в виде схем алгоритмов программ (жаргонно: блок-схем алгоритмов).

Рис. 5.1. Изображение алгоритма в форме графической схемы алгоритма
При словесно-пошаговом способе алгоритмы описывались по изложенному ниже принципу.
Шаг 1. Выполняется такое-то действие для того-то. Если получается, что А < В, то переходим к шагу 4.
Шаг 2. Выполняется такое-то действие для того-то.
Шаг 3. Если А > В, то переходим к выполнению шага 1.
Шаг 4. Выполняется такое-то действие для того-то.
Шаг 5. Если А > В, то переходим к выполнению шага 2.
Изображение того же алгоритма в форме схемы алгоритма приведено на рис. 5.1.
Недостатки каждого из способов приведены в табл. 5.1, из которой видно, что графический способ в виде схем алгоритмов программ облегчил лишь отслеживание передач управления и одновременно затруднил описание сути процессов (их комментирование).
Таблица 5.1
Недостатки словесно-пошагового и графического способов в виде схем описания алгоритмов программ
Способ описания Недостатки Словесно-пошаговый Неясно, что является главным, а что второстепенным (что-то понять можно лишь после индукции основного замысла). Трудно отслеживаются передачи управления Невозможность эффективного тестирования. Графический в виде схем алгоритмов программ Неясно, что является главным, а что второстепенным (что-то понять можно лишь после индукции основного замысла). Трудно записывать комментарии. Для понимания схемы алгоритмов необходимо дополнять достаточно длинными текстовыми описаниями, которые должны содержать большое количество тестовых данных для различных маршрутов вычислений. Невозможность эффективного тестирования.До конца 70-х годов проектная процедура получения алгоритмов базировалась на операционном (маршрутном) мышлении, которое закладывается еще в школе математическими и физическими учебными дисциплинами. Операционный подход не требует свободного владения дедуктивным мышлением и основан на более простом и уже освоенном индуктивном мышлении "от частного к общему". При операционном мышлении сначала записываются последовательные действия по главному основному маршруту. Затем эти действия дополняются операциями ветвления (if), операциями безусловного перехода (go to) и дополнительными действиями других маршрутов.
В результате использования операционного подхода получались программы (подпрограммы) со структурными элементами в виде операторов языка программирования и единственной сверхсложной структурой "вся программа" типа "спагетти" — множеством неупорядоченных передач управлений вперед и назад (см. рис. 5.1). Все это можно отнести и к большинству текстовых инструкций.
Программы, алгоритмы которых получаются операционным подходом, являлись практически несопровождаемыми. Даже при использовании графических схем алгоритмов их необходимо было дополнять достаточно длинными текстовыми описаниями. Эти текстовые описания должны были содержать огромное количество отдельных тестовых данных для отслеживания всех маршрутов вычислений с целью понимания алгоритма каждого отдельного маршрута. Сложность таких описаний приводила к несоответствию комментариев вычислительным процессам, а также к неоправданно длительному анализу алгоритма с просчетом трассы счета по всем маршрутам в процессе отладки. При использовании схем алгоритмов программ вне документации остается ход мыслей проектировщика по получению алгоритмов. Само вычерчивание схем алгоритмов программ занимает достаточно большое время. Огромное, поистине астрономическое число вычислительных маршрутов требовало подготовки астрономического количества тестов. Программы были ненадежными по сравнению с нынешними программами. Отладка программы в виде одной неразделимой структуры "спагетти" и длиной всего в 600 строк занимала время до полугода. Написание и отладка такой программы при современных технологиях производится программистом за два-три рабочих дня.
Согласно современным технологиям программирования, описания алгоритмов в словесно-пошаговой и графической формах в виде схем алгоритмов программ практически не используются. Их заменили самодокументированные тексты, состоящие из стандартных структур кодирования.
Составлению описания проектной процедуры предшествовали труды Дейкстры (с концепцией программирования без go to), одна из первых работ по структурному кодированию программ [9] и длительный опыт программирования и преподавания авторов.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
15.17.2 Процедуры NFS
15.17.2 Процедуры NFS Существуют процедуры NFS, обеспечивающие клиенту доступ, чтение или запись удаленного файла. Клиент может узнать структуру и реальную емкость удаленной файловой системы либо запросить атрибуты удаленного файла. Допустимо удалять и переименовывать
2.4.2. Роботы и люди (два крыла интернета). История возникновения и сущность SMO
2.4.2. Роботы и люди (два крыла интернета). История возникновения и сущность SMO Оценивая историю развития онлайн-поиска, можно отметить тот факт, что настоящая популярность к сервису пришла только тогда, когда в его рамках столкнулись два коммерческих «друга» – спрос и
3.2. Процедуры
3.2. Процедуры Пример 1.8: Процедура вычисляет корни квадратного уравненияAX2+BX+C=0PROGRAM KU (INPUT, OUTPUT);VAR A, B, C, D, X1, X2 : REAL;PROCEDURE KVUR (A, B, C: REAL; VAR D, X1, X2: REAL); BEGIN D:=SQR (B) -4*A*C; IF D = 0 THEN X1:= (-B) / (2*A) ELSE IF D> 0 THEN BEGIN X1:= ((-B) – SQRT (D)) / (2*A); X2:= ((-B) + SQRT (D)) / (2*A) END END; BEGINWRITE (‘Введите A=’);READLN (A);WRITE (‘Введите
Процедуры
Процедуры Введение Наконец-то мы принимаемся за хорошую главу!К этому моменту мы изучили почти все основные особенности компиляторов и синтаксического анализа. Мы узнали как транслировать арифметические выражения, булевы выражения, управляющие конструкции,
1.1. История возникновения компьютерных вирусов
1.1. История возникновения компьютерных вирусов Если бы разработчики первых компьютеров, сетей и сетевых протоколов могли заглянуть в будущее, то, вполне вероятно, проблем с защищенностью информации сегодня было бы меньше. Первоначально компьютеры занимали целые здания,
История возникновения спама
История возникновения спама Идея массово рассылать рекламу, используя средства связи, возникла еще в конце ХIХ века. Тогда для этих целей использовался телеграф. В Интернете спам зафиксирован практически с первых дней, но как серьезное явление стал восприниматься только
История возникновения и эволюции UNIX
История возникновения и эволюции UNIX O В этой главе:O Первые ЭВМO Изобретение ассемблераO Операционные системы RSX и OS/360O История MUTLICSO Возникновение UNIXO Берклиевский бумO UNIX в СССРO Краткая история
История возникновения и эволюции Windows
История возникновения и эволюции Windows O Хаос семидесятыхO BASIC - первые шаги MicrosoftO Краткая история создания IBM PCO История CP/MO Возникновение MS-DOSO Становление MS-DOS стандартной системой IBM PCO Появление MS-DOS 2.0O Изобретение мыши и графического интерфейса в Palo Alto Research CenterO Первая
Процедуры сравнения
Процедуры сравнения Само действие поиска элемента в наборе элементов требует возможности отличать элементы друг от друга. Если мы не можем различить два элемента, то не имеет смысла искать один из таких элементов. Таким образом, первая трудность, которую нам потребуется
Процедуры создания
Процедуры создания Все до сих пор рассмотренные инструкции создания основывались на инициализации по умолчанию. В некоторых случаях инициализация, определенная в языке, может нас не устраивать - хотелось бы обеспечить создаваемый объект специфической информацией. В
5.1. ОБЩИЕ СВЕДЕНИЯ О ПРОЕКТНОЙ ПРОЦЕДУРЕ
5.1. ОБЩИЕ СВЕДЕНИЯ О ПРОЕКТНОЙ ПРОЦЕДУРЕ Развитие отдельных направлений программирования, филологии, психологии, теории проектирования и искусственного интеллекта подошло к точке, когда ощущается настоятельная необходимость интеграции накопленных результатов.
5.3. ОБЩЕЕ ОПИСАНИЕ ПРОЕКТНОЙ ПРОЦЕДУРЫ
5.3. ОБЩЕЕ ОПИСАНИЕ ПРОЕКТНОЙ ПРОЦЕДУРЫ Принципы описания последовательности действий для алгоритмов и эвроритмов практически не отличаются. В описаниях алгоритмов обычно присутствует лишь большая формализация. При написании программ программист обычно использует
Предпосылки возникновения одиночества в киберпространстве
Предпосылки возникновения одиночества в киберпространстве ИдентификацияПодростки пытаются определить свое место в окружающем их мире. Они задают себе «общемировые» вопросы: кто я? Зачем я живу? Ответ на эти вопросы они находят в киберпространстве.Интимность и