- •Глава I. Структурное программирование…………………………………..5
- •Глава II. Типы данных………………………………………………………...16
- •Глава 1. Структурное программирование
- •1.1. Понятие структурного программирования
- •1.2. Нисходящее и восходящее программирования
- •1.3. Оператор цикла while
- •Глава 2. Типы данных
- •2.1. Целые типы
- •2.2. Вещественные типы
Глава 1. Структурное программирование
1.1. Понятие структурного программирования
Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.
При создании средних по размеру приложений (несколько тысяч строк исходного кода) используется структурное программирование, идея которого заключается в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из исходного текста. Для этого надо иметь средства для создания программы не только с помощью трех простых операторов, но и с помощью средств, более точно отражающих конкретную структуру алгоритма. С этой целью в программирование введено понятие подпрограммы – набора операторов, выполняющих нужное действие и не зависящих от других частей исходного кода. Программа разбивается на множество мелких подпрограмм, каждая из которых выполняет одно из действий, предусмотренных исходным заданием. Комбинируя эти подпрограммы, удается формировать итоговый алгоритм уже не из простых операторов, а из законченных блоков кода, имеющих определенную смысловую нагрузку, причем обращаться к таким блокам можно по названиям.
Структурное программирование – дисциплинированный подход к написанию программ, отличающихся от неструктурированных программ ясностью, простотой тестирования и отладки и легкостью модификации.
Типы управляющих структур:
последовательность;
альтернатива (условие выбора);
цикл.
В качестве основного языка структурного программирования используется псевдокод. В тексте псевдокода в последующих примерах строчными буквами будет написано то , что написано в блоках блок-схемы, а прописными специальные слова псевдокода, называемые ключевыми.
Блок-схема — это графическое представление алгоритма или фрагмента алгоритма. Блок-схема рисуется с использованием специальных символов, таких, как прямоугольники, ромбы, овалы, и малые окружности; эти символы соединяются стрелками, называемыми линиями связи.
Структурное программирование делает программу более понятной. Ее легче отлаживать и сопровождать. Разные модули (в которых содержатся функции и процедуры) могут разрабатывать разные люди, в результате чего проще организовать коллективное решение одной большой задачи, т.к. каждый будет решать свою подзадачу.
Структурное программирование было особенно популярным в 70-х годах. На сегодняшний день программирование зачастую начинают изучать именно с него.
1.2. Нисходящее и восходящее программирования
Распространены две методики (стратегии) разработки программ, относящиеся к структурному программированию:
нисходящее программирование
восходящее программирование.
Технология нисходящего проектирования с пошаговой детализацией является неотъемлемой частью создания хорошо структурированных программ. При написании программы с использованием этой технологии вся задача рассматривается как единственное предложение (вершина), выражающее общее назначение программы.
На первом этапе разработки кодируется, тестируется и отлаживается головной модуль, который отвечает за логику работы всего программного комплекса. Остальные модули заменяются заглушками, имитирующими работу этих модулей. Применение заглушек необходимо для того, чтобы на самом раннем этапе проектирования можно было проверить работоспособность головного модуля. На последних этапах проектирования все заглушки постепенно заменяются рабочими модулями.
В данном случае программа конструируется иерархически - сверху вниз: от главной программы к подпрограммам самого нижнего уровня, причем на каждом уровне используются только простые последовательности инструкций, циклы и условные разветвления.
Нисходящее программирование является достаточно распространенным методом разработки модульных программ. Преимущества нисходящего программирования следующие:
на ранних стадиях проектирования могут быть получены исходные тексты модулей верхних уровней, что во многих случаях является важным, так как точность и полнота представления программы на реальном языке программирования значительно выше, чем при использовании псевдокода или схем алгоритмов;
в процессе программирования вскрываются противоречия и трудности, которые могут оказаться незамеченными долгое время;
нисходящее проектирование может быть совмещено с выполнением, отладки программы нисходящим методом.
Такой подход удобен тем, что позволяет человеку постоянно мыслить на предметном уровне, не опускаясь до конкретных операторов и переменных. Кроме того, появляется возможность некоторые подпрограммы не реализовывать сразу, а временно откладывать, пока не будут закончены другие части. Например, если имеется необходимость вычисления сложной математической функции, то выделяется отдельная подпрограмма такого вычисления, но реализуется она временно одним оператором, который просто присваивает заранее выбранное значение (например, 5). Когда все приложение будет написано и отлажено, тогда можно приступить к реализации этой функции.
Недостатки нисходящего проектирования:
Необходимость заглушек.
До самого последнего этапа проектирования неясен размер программного комплекса и его эксплутационные характеристики, за которые, как правило, отвечают модули самого низкого уровня.
Программирование «снизу вверх», или восходящее программирование – это методика разработки программ, начинающаяся с разработки подпрограмм (процедур, функций), в то время когда проработка общей схемы не закончилась.
При восходящем проектировании на первом этапе разрабатываются модули самого низкого уровня. На следующем этапе к ним подключаются модули более высокого уровня и проверяется их работоспособность. На завершающем этапе проектирования разрабатывается головной модуль, отвечающий за логику работы всего программного комплекса.
Такая методика является менее предпочтительной по сравнению с нисходящим программированием, так как часто приводит к нежелательным результатам, переделкам и увеличению времени разработки.
Преимущество восходящего программирования – не нужно писать заглушки.
Недостаток восходящего программирования – головной модуль разрабатывается на завершающем этапе проектирования, что порой приводит к необходимости дорабатывать модули более низких уровней.
На практике применяются оба метода:
сверху вниз — при разработке нового программного комплекса;
снизу вверх — при модификации уже существующего комплекса
