Каковы правила структурного программирования

Вопрос 61. Каковы правила структурного программирования?

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

Разрешается использовать только три базовые структуры – следование, ветвление, цикл.

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

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

Вопрос 62. Каковы этапы решения задач на эвм?

Постановка задачи (условия и цели).

Построение математической модели (осуществляется перевод словесного описания задачи на математический язык).

Выбор и обоснование метода решения.

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

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

Тестирование и отладка программы.

Исполнение программы на компьютере.

Анализ полученных результатов (в случае чего, корректировка с п2-5)

Сопровождение программы (доработка, составление документации)

63. Что включает алфавит языка Паскаль?

латинские буквы от a до z (строчные и заглавные);

разделители: запятая, точка с запятой, точка, двоеточие, ‘ апостроф, кавычки, скобки, символ ;

знаки арифметических действий: + (сложение), — (вычитание), * (умножение), / (деление);

знаки операций отношений: > (больше), < (меньше), >= (больше или равно), (не равно), = (равно)

64. Какие типы данных имеются в Паскале?

Источник

4.2 Основные правила структурного программирования

Функциональная вершина используется для представления функции F: X—>Y. Предикатная вершина используется для представления функ­ции (или предиката) р: Х—> F>, т. е. логического выражения, пере­дающего управление по одной из двух возможных ветвей. Объединяю­щая вершина представляет передачу управления от одной из двух входящих ветвей к одной выходящей ветви.

Читайте также:  Использование языка программирования php

Структурная блок-схема — это блок-схема, которая может быть выражена как композиция из четырех элементарных блок-схем, изображенных на рис. 4.2. Сравнительно просто доказать, что любая программа для вычислительной машины может быть «представлена» блок-схемой. Как было показано Бомом и Якопини, верно (хотя да­леко не очевидно) и то, что любая блок-схема может, в свою очередь, быть представлена структурной блок-схемой. Из этого результата немедленно следует, что для разработки любого алгоритма достаточно четырех элементарных блок-схем, приведенных на рис. 4.2.

Когда структурная блок-схема служит как представление про­граммы, В интерпретируется как булевское выражение, a S1 и S2 интерпретируются как программные операторы (или процедуры).

Блок-схемы на рис. 4.2 а, б, в и г называют структурами уп­равления программы. Схема на рис. 4.2 а называется композицией и записывается в виде S1; S2. Схема на рис. 4.2 б называется выбором (или альтернативой) и записывается в виде if В then SI else S2. Блок-схемы на рис. 4.2 в и г называются итерацией (или по­вторением) и записываются соответственно как while В do S1 и do SI while S.

Следует отметить, что часто употребляемый упрощенный оператор if В then Si, блок-схема которого приведена на рис. 4.3, представ­ляет собой частный случай оператора if — then-else.

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

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

Читайте также:  Delphi язык программирования задании

If В then if С then SI; S2

Обратите внимание на то, что в предыдущих блок-схемах совершенно отсутствует оператор goto.

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

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

Первый пример (рис. 4.5) соответствует ситуации, обрабатывае­мой на Турбо-Бейсике оператором SELECT. END SELECT. Лингвистически эту блок схему можно выразить в виде:

Если же такую конструкцию представить в виде совокупности операторов IF, то можно утонуть в рассуждениях относительно условий пересылки.

Кроме того, может возникнуть ситуация, когда обычный переход является лаконичным, простым и ясным средством, в то время как другие подходы сравнительно неудачны. Хотя более строгие формы структурного программирования исклю­чают применение оператора goto, блок-схемы, в которых оператор goto используется достаточно аккуратно, могут сохранить свойство структурных блок-схем: один вход и один выход.

Еще один пример простой неструктурированной блок-схемы, которая может встречаться в программировании, при­веден на рис. 4.6а. На рис. 4.6 б ука­зан один из способов структурирования этой блок-схемы, хотя получаемый резуль­тат и нельзя считать вполне естественным. Заметим, что лингвистический оператор для неструктурированной блок-схемы на рис. 4.6 а требует применения оператора goto. Например,

тогда как лингвистический оператор для структурированной блок-схемы на рис. 4.6 б его не содержит. Например,

Вообще, структурное програм­мирование определяет процесс разработки алгоритмов в терминах «квазиструктурирован-ных» блок-схем, в которых элемен­тарные структуры управления являются, как правило, структурами Бома и Якопини. Впрочем, допускаются и другие структуры «простого типа» при условии, что они обладают свойством «один вход и один выход».

Читайте также:  Визуальная объектно ориентированная среда программирования

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

Теперь попытаемся дать определение структурного программирования

Структурное программирование сверху-вниз — это процесс про­граммирования сверху вниз, ограниченный использованием струк­турных блок-схем. Идея весьма проста. Предположим, что требуется разработать алгоритм для некоторой конкретной функции f. Пусть далее можно доказать, что f есть композиция двух других (надо пола­гать, более простых) функций g и h, т.е. f(x)=h(g(x)), как показано на рис. 4.8. Тогда проблема разработки алгоритма для f сводится к проблемам разработки алгоритмов для g и h. Пусть далее можно доказать, что функция g равна некоторой функции i, когда заданный параметр х неотрицателен, или равна некоторой другой функции j, когда х отрицателен. Тогда алгоритм для вычисле­ния g можно выразить в форме конструкции if-then-else (рис. 4.9).

Поэтому, если алгоритмы для функций i и j построены, то правильный алгоритм для функции g строится автоматически.

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

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

Источник

Оцените статью