
Билет №18
Языковые средства управления вычислениями: операторы ветвления, операторы цикла; их синтаксис и семантика.
Условные операторы ( операторы ветвления):
Полный условный оператор
If (B) S1; else S2;
Здесь В – выражение, принимающее логическое значение; S1 –оператор, исполняемый, если В истинно, S2 – оператор, исполняемый, если В ложно.
Структурная схема:
S1
S2
Сокращенный условный оператор
If (B) S;
Здесь S – оператор, исполняемый, если В истинно, в противном случаевыполняется следующий по порядку оператор.
С
S
труктурная
схема:
Оператор переключатель (оператор варианта):
Switch (J)
{ case L1: S1; break;
Case L2: S2; break;
…
Case Ln: Sn; break;
}
Здесь J – выражение целого типа; L1, L2, …, Ln – константы того же типа, что и J; S1, S2, …, Sn – операторы, из которых выполняется тот, с константой которого совпало значение J.
Структурная схема оператора:
S2
S1
Sn
…
Билет № 19
Понятие модульного программирования. Цели модульного программирования. Понятие подпрограммы. Виды подпрограмм: функция, процедура.
При нисходящей разработке проектирование программы ведется “сверху-вниз”. В решаемой задаче сначала выделяется небольшое число достаточно самостоятельных, более простых задач (подзадач), а в проектируемой программе намечается соответствующее число блоков (частей программы), каждый из которых предназначен для решения одной из подзадач. Определяется функциональное назначение каждого блока (модуля): что он должен делать, какие данные являются исходными для блока, какие – результатами. Если какие-то из подзадач оказываются достаточно сложными (алгоритмы их решения не являются очевидными), то к каждой из них применяется аналогичный процесс выделения подзадач.
Этот процесс пошаговой детализации продолжается до тех пор, пока каждый из выделенных блоков программы не окажется таким, что его реализация (кодирование) на выбранном языке программирования уже не вызовет трудностей. Таким образом, программа может иметь многоуровневую структуру:
Главный (управляющий) модуль (М1) Модуль 1 уровня
М2 М3 М4 Модуль 2 уовня
М5 М6 Модуль 3 уровня
и т. д.
Если на каждом шаге детализации будут использоваться принципы структурного программирования, то это обеспечит хорошую структурированность и программы в целом.
В языках программирования одним из средств реализации модульной структуры программы является метод подпрограмм.
Подпрограмма – это самостоятельная программная единица, которая позволяет выделить из программы частичный алгоритм и записать его только один раз, но использовать столько раз, сколько это необходимо.
Основные свойства подпрограмм:
1) подпрограмма должна иметь один вход и один выход;
2) подпрограмма должна решать самостоятельную задачу по принципу одна подпрограмма – одна функция. Например, ввод линейного массива, вычисление произведения матриц, поиск наибольшего элемента в одномерном массиве и т.д.;
3) подпрограмма должна возвращать управление в ту часть программы, которая ее вызвала;
4) подпрограмма может вызывать другую подпрограмму, в том числе и саму себя, в последнем случае мы имеем дело с рекурсивной подпрограммой;
5) подпрограмма должна настраиваться на входные данные вызывающей части и возвращать результат;
6) размер подпрограммы желательно ограничивать одной-двумя страницами исходного текста.
Каждой подпрограмме дается имя, которое используется для активации действий, описанных в подпрограмме (вызова подпрограммы) в тех местах программы, где необходимо их выполнить. В точке вызова подпрограммы управление передается ее первой команде. Выполнение подпрограммы завершается действиями по возвращению управления в точку вызова – т.е. команде, непосредственно следующей за точкой вызова, называемой точкой возврата.
Таким образом, в структурированной программе между программными единицами устанавливается отношение вызываемая–вызывающая.
Схема взаимодействия вызывающей и вызываемой может быть следующей: