Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_po_programmirovaniyu.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
69.6 Кб
Скачать

1) Следование

                                               A;  B;

        Действия А и В могут быть:

  • отдельным оператором;

  • вызовом с возвратом некоторой процедуры;

  •  другой управляющей структурой.

2) Развилка

                         IF  P  then  A  else  B;

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

                         IF  P  then  A ;

3) Повторение

цикл

 

 

 

 

While  P do  A  ;

Действие А будет повторяться до тех пор, пока значение предиката будет оставаться истинным. Поэтому в действии А должно изменяться значение переменных, от которых зависит Р. В противном случае произойдет зацикливание. Вычисление предиката производится до начала выполнения действия А, и может случиться так, что действие А не будет выполняться ни разу.

цикл – до

                         Repeat  A  until  P;

Повторение типа  Repeat until всегда выполняется хотя бы 1 раз. Действие А перестает выполняться, как только предикат становится истинным.

           4) выбор – переключатель case (обобщение развилки), структура, облегчающая программирование без ущерба для ясности программы. Структура «выбор» полезна в том случае, когда требуется выбрать одну из нескольких альтернатив. 

 

            В зависимости от значения  Р выполняется одно из действий А, В, …Z. После чего происходит переход к выполнению следующей управляющей структуры.

3)Структурное и модульное программирование. Цели и основные принципы структурного программирования. Нисходящие проектирование. Структурное кодирование. Модульное программирование. Требования к программе, разработанной в соответствии с принципами структурного программирования.

Цели структурного программирования:

1) Повысить надежность программ (для этого нужно, чтобы программа легко поддавалась тестированию и не создавала проблем при отладке. Достигается это хорошим структурированием программы при ее проектировании);

2) Повысить эффективность программ (она может быть достигнута при структурировании программы, при разбиении ее на модули так, чтобы можно было бы легко находить и корректировать ошибки, а также чтобы текст любого модуля с целью повышения эффективности его работы можно было переделать независимо от других);

3) Уменьшить время и стоимость программной разработки (Достижимо при повышении производительности труда программиста);

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

Принципы структурного программирования:

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

  2. Принцип формальности - предполагает строгий методический подход к программированию, придает творческому процессу определенную строгость и дисциплину

  3. Принцип модульности - программа разделяется на отдельные законченные фрагменты, модули, которые просты по управлению и допускают независимую отладку и тестирование. В результате отдельные ветви программы могут создаваться разными группами программистов.

  4. Принцип иерархического упорядочения - Взаимосвязь между частями программы должна носить иерархический, подчиненный характер. Это, кстати, следует и из принципа нисходящего проектирования

Нисходящее проектирование

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

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

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

Структурное кодирование

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

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

Модульное программирование

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

Программа, разработанная в соответствии с принципами структурного программирования, должна удовлетворять следующим требованиям:

  • программа должна разделяться на независимые части, называемые модулями

  • модуль - это независимый блок, код (текст) которого физически и логически отделен от кода других модулей;

  • модуль выполняет только одну логическую функцию, иначе говоря, должен решать самостоятельную задачу своего уровня по принципу: один программный модуль - одна функция;

  • работа программного модуля не должна зависеть:

  1. от входных данных;

  2. от того, какому программному модулю предназначены его выходные данные;

  3. от предыстории вызовов программного модуля;

  • размер программного модуля желательно ограничивать одной-двумя страницами исходного листинга (50-100 строк исходного кода);

  • модуль должен иметь только одну входную и одну выходную точку;

  • взаимосвязи между модулями устанавливаются по иерархической структуре;

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

  • при создании модуля можно использовать только стандартные управляющие конструкции: выбор, цикл, блок (последовательность операторов);

  • оператор безусловного перехода или вообще не используется в модуле, или применяется в исключительных случаях только для перехода на выходную точку модуля;

  • в тексте модуля необходимо использовать комментарии, в особенности в сложных местах алгоритма;

  • идентификаторы переменных и модулей должны быть смысловыми, «говорящими»;

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

  • желательно не допускать вложенности более, чем трех уровней;

  • следует избегать использования языковых конструкций с неочевидной семантикой и программистских «трюков».

Все эти вместе взятые меры направлены на повышение качества разрабатываемого программного обеспечения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]