Основной целью программирования является построение надёжной легко читаемой и модифицируемой программы, решающей поставленную задачу. Для этого программа должна иметь возможно более простую структуру. Хотя решаемые задачи имеют различную сложность, выбор варианта их решения в большинстве случаев должен определяться простотой понимания этого решения. Поэтому для того чтобы стать профессионалом, необходим опыт и знание основных принципов, выработанных программистами за время существования программирования.
Рассмотрим основные методы и технологии разработки алгоритмов и программ.
Структурное программирование– метод создания достаточно простых, понятных и легко читаемых программ, в которых используются только стандартные управляющие структуры.
Процедурное программирование– метод построения программы как совокупности её функциональных частей — процедур или функций. Каждая процедура или функция представляет собой функционально законченную последовательность действий и выполняется как единая операция.
Методы разработки эффективных алгоритмов
Модульное программирование– организация программы в виде совокупности независимых частей – модулей, со строгим порядком их взаимодействия. В модулях группируются процедуры и функции по их назначению. Модули разрабатываются и транслируются отдельно.
Объектно-ориентированное программирование– метод программирования, основанный на использовании в программе совокупности объектов, каждый из которых содержит некоторые данные и методы их обработки. Объекты связываются между собой по принципу наследования.
Перечисленные методы реализуют одну из возможных технологий современного программирования: нисходящую или восходящую.
Нисходящее проектирование- технология разработки программ, при которой на каждом шаге проектирования задача разбивается на более мелкие подзадачи так, что в любой момент разработки имеется действующий вариант программы в терминах выделенных подзадач.
Восходящее проектирование– технология разработки программ, при которой сначала проектируются и отлаживаются подпрограммы для выполнения простых операций, после чего они связываются в единую программу.
4.1 Сущность структурного программирования
Структурное программированиепредставляет собой метод, реализующий нисходящую технологию проектирования программ.
Структурное программирование предполагает:
— разбиение задачи на взаимодействующие более простые подзадачи;
— составление программы последовательными уточняющими шагами сверху вниз;
— использование в программе только стандартных управляющих структур.
Иногда этот метод называют «программированием без goto» (без использования оператора безусловного перехода). Однако никакие принципы нельзя возводить в абсолют. Поэтому иногда использованиеgotoоправдано и приводит к упрощению алгоритма.
Стандартные управляющие структуры делятся на две группы: базовые и дополнительные.
4.1.1 Базовые управляющие структуры
В теории программирования доказано, что любой алгоритм любой сложности может быть представлен как совокупность трёх структур, которые называются базовыми. Этоследование,ветвлениеицикл с предусловием. Каждая из них имеет один вход и один выход, поэтому они могут вкладываться друг в друга произвольным образом. Программа, составленная из базовых конструкций, легко читаема, её легко отлаживать и изменять.
Алгоритм разработки программ
Управляющая структура Следованиепредполагает последовательное выполнение заданных действий в вычислительном процессе и представляет собой алгоритмическую структуру вида:
Источник: studfile.net
Технология разработки алгоритмов
Опыт практической алгоритмизации и программирования привел к формированию неких общих принципов и методов проектирования, разработки и оформления алгоритмов.
Какими качествами должен обладать хороший алгоритм?
Прежде всего, от алгоритма требуется, чтобы он правильно решал поставленную задачу. Но не менее важно, какой ценой это достигается. Речь идет о разумности затрат на его создание. С этой точки зрения алгоритм должен быть легким для понимания, простым для доказательства правильности и удобным для модификации. В рамках такой идеологии и сформировался так называемый структурный подход к конструированию и оформлению алгоритмов, позволяющий уменьшить количество ошибок в алгоритмах, упрощающий их контроль и модификацию.
По своей сути структурный подход есть отказ от беспорядочного стиля в алгоритмизации и программировании (в частности, отказ от оператора goto) и определение ограниченного числа стандартных приемов построения легко читаемых алгоритмов и программ с ясно выраженной структурой. Теоретическим фундаментом этого подхода является теорема о структурировании, из которой следует, что алгоритм решения любой практически вычислимой задачи может быть представлен с использованием трех элементарных базисных управляющих структур: а) структуры следования или последовательности; б) структуры ветвления; в) структуры цикла с предусловием (см. рисунок, где P – условие, S – оператор).

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


Дополнительные управляющие структуры
Любой алгоритм может быть построен посредством композиции базисных и дополнительных структур:
— их последовательным соединением — образованием последовательных конструкций;
— их вложением друг в друга — образованием вложенных конструкций.
Разработка программы
Процесс программирования — это запись разработанного алгоритма на специальном языке (языке программирования) — представление алгоритма на языке, «понятном» исполнителю (вычислительной машине), т. е. в форме, допускающей ввод в машину и последующий перевод на машинный язык (в коды машины).
Язык программирования- это строго формализованный язык для описания процесса решения задачи на ЭВМ, представляет собой совокупность ограниченного набора символов и строгих правил их использования. Составленная программа вводится в ЭВМ и затем автоматически переводится на язык машины с помощью специальных программных средств, позволяющих автоматизировать этот процесс. Перевод – «трансляция» исходного текста программы выполняется служебной программой – транслятором, который осуществляет синтаксический контроль текста программы и последующий его перевод.
Трансляторы могут быть компилирующего типа – компиляторы и интерпретирующего типа – интерпретаторы.
Компиляторанализирует и преобразует исходный текст в, так называемый, объектный код (промежуточное состояние программы в относительных адресах и с неразрешенными внешними ссылками) с использованием всей логической структуры программы. Затем программа, представленная в объектном коде, обрабатывается служебной программой – компоновщиком, который осуществляет подключение внешних подпрограмм/разрешение внешних ссылок и выполняет дальнейший перевод программы пользователя в коды машины (в абсолютный/загрузочный код – с абсолютной адресацией машинных команд). Программа в абсолютном коде может быть сохранена (в.exe-файле) и выполнена на компьютере. Загрузка программы из.exe-файла в память машины для её выполнения осуществляется служебной программой загрузчик.
Интерпретаторсразу производит анализ, перевод (в машинный код) и выполнение программы строка за строкой. Поэтому интерпретатор должен находиться в оперативной памяти в течение всего времени выполнения программы пользователя. При интерпретации скорость выполнения программы существенно снижается, однако весь процесс прохождения программы на ЭВМ упрощается и имеется возможность организации диалогового (интерактивного) режима отладки и выполнения программы.
Выбор языка программирования определяется многими факторами: типом решаемой задачи, располагаемыми вычислительными средствами, вкусами и знаниями заказчика и разработчика.
Язык программирования Паскальбыл создан профессором, директором института информатики Швейцарской высшей политехнической школы г. Цюриха Никлаусом Виртом, в 1968 г. впервые опубликовано предварительное описание языка, а в 1970 г. представлен компилятор. Язык назван в честь известного математика Блеза Паскаля (1623 – 1662 г.г.), автора первой механической вычислительной сумматорной машины. Язык Паскаль был создан автором специально для обучения дисциплине программирования в высшей школе как язык поддержки технологии структурного программирования и средство формирования у обучаемого определенного стиля и практических навыков программирования. Основной тезис его разработки: «язык должен быть очевидным и естественным отражением фундаментальных и наиболее важных концепций алгоритмов». Широкое распространение языка Паскаль, его современных диалектов, свидетельствует о его практической ценности в различных сферах применения и, прежде всего, в сфере начального обучения программированию и формирования профессиональных навыков будущего специалиста в области IT-технологий.
Источник: cyberpedia.su
Лекции: Разработки алгоритмов и программ
3.1. Основные этапы разработки программного обеспечения.
Программное обеспечение (ПО) в процессе своего создания и эксплуатации проходит последовательно следующие этапы:
— постановка и анализ задачи; составление спецификаций будущего ПО (т. е. описание технических требований к решению этой задачи).
— построение и анализ формальной модели задачи. В ходе анализа модели выявляются главные факторы, влияющие на ее работу; связь между этими факторами. Определяется последовательность работы и взаимодействие частей модели. Проводится поиск и запись математических и логических соотношений между элементами модели.
— проектирование алгоритма решения задачи.
— проектирование структуры исходной, промежуточной и выходной информации для данной задачи.
Этот и предыдущий этапы позволяют обоснованно выбрать язык программмирования для записи (кодирования) исходной
программы.
— запись программы в соответствии с синтаксическими правилами соответствующего языка программирования.
— автоматическая трансляция (перевод) исходной программы на машинный язык. С этого момента начинается процесс отладки и тестирования (испытания) программы.
— подготовка технической документации по программе в соответствии с требованиями государственного стандарта.
— эксплуатация и сопровождение программы. С этого момента начинается «жизненный цикл» программы, в процессе которого возможна ее модернизация.
Источник: studizba.com