Повторяющиеся фрагменты программы можно оформить в виде подпрограмм процедур и функций

Введение
Структурное программирование является первым направлением, которое оформилось в виде парадигмы. Предпосылкой этого был тот факт, что Э. Дейкстра выявил обратную зависимость между числом неограниченных операторов перехода go to и качеством программы. Качество программы в данном случае определялось двумя показателями – скоростью отладки и степенью надежности.

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

Подобный стиль программирования предполагает проведение тестовых испытаний всех завершенных модулей в случае добавления или редактирования любого модуля. Это требует дополнительных трудозатрат, однако оказывает чрезвычайно благотворное психологическое воздействие на разработчика, и еще более благотворное воздействие такой стиль программирования оказывает на заказчика. Важно отметить, что свойство структурности программы не предопределяется системой программирования – оно вносится самим программистом. Любая программа в любой системе программирования может быть написано структурно, а может и не структурно (например, с использованием оператора безусловного перехода go to).

Информатика 11 класс (Урок№4 — Вспомогательные алгоритмы.)

  1. Понятие структурного программирования
  1. История структурного программирования и проектирования программ
  1. Основы структурного программирования
  1. Принципы структурного программирования
  1. Методика разработки программ
  • программирование должно осуществляться «сверху вниз»;
  • весь проект должен быть разбит на модули/подпрограммы с одним входом и одним выходом;
  • любая подпрограмма должна допускать только три основные структуры: последовательное выполнение операторов, ветвление и цикл;
  • недопустим оператор безусловной передачи управления goto;
  • документация должна создаваться одновременно с программированием, частично в виде комментариев к программе. Применение принципов и методов структурного программирования позволяет повысить надежность программ (благодаря хорошему структурированию при проектировании программа легко поддается тестированию и отладке) и их эффективность (структурирование программы позволяет легко находить и корректировать ошибки, а отдельные подпрограммы можно переделывать/модифицировать независимо от других), уменьшить время и стоимость программной разработки, улучшить читабельность программ.
  1. Берг О.Ю. Метрики оценки качества программного обеспечения // Труды международного симпозиума надежность и качество. — Пенза: Пензенский государственный университет, 2005. — Т.1. — С. 321-322.
  2. Благодатских В.А. Стандартизация разработки программных средств / Благодатских В.А., Волнин В.А., Поскакалов К.Ф. — М.: Финансы и статистика, 2005. — 288 с.
  3. Валова О.В. Программная инженерия. — Чита: Читинский гос. ун-т, 2009. — 175 с.
  4. Захарова А.А. Информатика и программирование: программные средства реализации информационных процессов / А.А. Захарова, Е.В. Молнина, Т.Ю. Черныева. – Томск: Изд-во ТПУ, 2013. – 318 с.
  5. Звездин С.В. Проблемы измерения качества программного кода // Вестник Южно-Уральского государственного университета. Серия: Компьютерные технологии, управление, радиоэлектроника. — 2010. — № 2. — С. 62-66.
  6. Иванова Г.С. Технология программирования. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2014. – 56 с.
  7. Кознов Д.В. Введение в программную инженерию. — М.: Национальный открытый университет «Интуит», 2016. — 307 с.
  8. Константайн Л., Локвуд Л. Разработка программного обеспечения. — СПб: Питер, 2004. — 592 с.
  9. Липаев В.В. Качество программных средств. — М.: Янус-К, 2002. — 400 с.
  10. Макарова Н.В. Основы программирования. — М.: КНОРУС, 2016. — 454 с.
  11. Мухортов В.В. Объектно-ориентированное программирование, анализ и дизайн / В.В. Мухортов, В.Ю. Рылов. – Новосибирск: Изд-во ООО «Новософт», 2012. – 108 с.
  12. Назаров С.В., Белоусова С.Н., Бессонова И.А., Гиляревский Р.С., Гудыно Л.П. Введение в программные системы и их разработку. — М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2012. — 456 с.
  13. Назаров С.В. Архитектуры и проектирование программных систем. — М.: ИНФРА-М, 2013. — 413 с.
  14. Новиков Ф.А. Технологические подходы к разработке программного обеспечения. – СПб.: Изд-во ИТМО, 2014. -137 с.
  15. Соловьев С.В. Технология разработки прикладного программного обеспечения / С.В. Соловьев, Л.С. Гринкруг, Р.И. Цой. – М.: БИНОМ, 2012. – 321 с.
  16. Степович-Цветкова Г.С. Стандарты качества компьютерных программ // Наука сегодня. Сборник научных трудов по материалам VII международной научно-практической конференции: в 4 частях. Научный центр «Диспут». — Вологда: ООО «Маркер», 2015. — С. 96-97.
Читайте также:
Какая программа не предназначена для совершения видеозвонков

Источник: kopilkaurokov.ru

Подпрограммы, процедуры и функции

Урок 13
§9 (1, 2). Структурное программирование

liniya

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

Одна из таких технологий — структурное программирование — была разработана ещё в начале 70-х годов прошлого века и связана с именем выдающегося нидерландского ученого Эдсгера Дейкстры (1930-2002).

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

Перечислим некоторые принципы структурного программирования.

1. Любая программа строится из трёх базовых управляющих конструкций: последовательность, ветвление, цикл.
2. В программе базовые управляющие конструкции могут быть вложены друг в друга произвольным образом.
3. Повторяющиеся фрагменты программы можно оформить в виде подпрограмм (процедур и функций). В виде подпрограмм можно оформить логически целостные фрагменты программы, даже если они не повторяются.
4. Все перечисленные конструкции должны иметь один вход и один выход.
5. Разработка программы ведётся пошагово, методом «сверху вниз».

Cкачать материалы урока

Источник: xn—-7sbbfb7a7aej.xn--p1ai

Структурное программирование. Лекция 3

Программирование на языке Python (§ 54 - § 61)

Теорема Бёма – Якопини – любой исполняемый алгоритм
может быть преобразован к структурированному виду, то есть
такому виду, когда ход его выполнения определяется только
при помощи трех структур управления: последовательной,
ветвлений и повторов (циклов) [1].
Коррадо Бём
• последовательность – обозначается: f THEN g,
• ветвление – обозначается: IF p THEN f ELSE g,
• цикл – обозначается: WHILE p DO f,
где f, g – блок-схемы с одним входом и одним выходом, р – условие,
THEN, IF, ELSE, WHILE, DO – ключевые слова.
1. Bohm, Corrado; and Giuseppe Jacopini (May 1966). «Flow Diagrams, Turing Machines and Languages with Only Two
Formation Rules». Communications of the ACM 9 (5): 366–371. DOI:10.1145/355592.365646
3

Читайте также:
Группа людей которая выдвигает программу развития общества называется

4.

Принципы структурного программирования
Принцип 1. Следует отказаться от использования
оператора безусловного перехода goto.
Принцип 2. Любая программа строится из трех базовых
управляющих
конструкций:
последовательность,
ветвление, цикл.
Эдсгер Вибе Дейкстра
Последовательность – однократное выполнение операций в том порядке,
в котором они записаны в тексте программы.
Ветвление – однократное выполнение одной из двух или более операций, в
зависимости от выполнения заданного условия.
Цикл – многократное исполнение одной и той же операции до тех пор,
пока выполняется заданное условие (условие продолжения цикла).
4

5. Управляющие конструкции

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

Принцип 3. В программе базовые управляющие
конструкции могут быть вложены друг в друга
произвольным образом. Никаких других средств
управления последовательностью выполнения
операций не предусматривается.
Вложенный цикл – цикл, входящий в тело другого цикла.
• вложенный цикл по отношению к циклу, в тело которого
он вложен, будет называться внутренним циклом.
• цикл, в теле которого существует вложенный цикл, будет
называться внешним циклом.
• количество уровней вложенности не ограничено.
6

7.

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

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

Принцип 5. Каждую логически законченную группу инструкций следует
оформить как блок.
Блок – это логически сгруппированная часть исходного кода.
C
Python 3
обращение к блоку происходит PascalABC.NET
var n,s:integer; #include
n = 0
как к единой конструкции;
begin

s = 0
void main()
while s блоки
применяются
для n := 0;
s := 0;
s = s + 3
ограничения области видимости; while s n = n + 2
n = 0;
print(n)
блоки могут быть пустыми или begin
s := s + 3;
s = 0;
вложенными один в другой;
n := n + 2;
while (s границы
блока
выделяются end;
write(n)
s = s + 3;
разными конструкциями;
end.
n = n + 2;
>
блоки
являются
основой
структурного программирования.
print(“%d)”,n);
8
>

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

Принцип 6. Все
перечисленные
конструкции
должны
иметь
один вход и один
выход.
• красный цвет указывает на вход, зеленый на выход;
• в случае условий выход будет один из двух, отмеченных в блок-схеме.
9

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

Принцип 7. Разработка программы ведется пошагово, методом
«сверху вниз» (top–down method)
• разработка основной программы, в
которой вместо каждого связного
логического фрагмента текста
вставляется вызов функции, которая
будет выполнять этот фрагмент;
• вместо функций в программу
вставляются фиктивные части –
«заглушки», которые ничего не делают;
• проверка и отладка программы;
• последовательная замена заглушек по
механизму, описанному выше.
10

Читайте также:
Как настроить программу клиент

11. Варианты ветвлений

Условный оператор
Условный оператор с одной ветвью
if p then f
Условный оператор с двумя ветвями
if p then f else s
Условный оператор с несколькими
условиями
if p1 then f else if p2 then s …
Переключатель
(оператор выбора)
Оператор выбора (case, switch)
11

12. Варианты ветвлений (реализация)

PascalABC.NET
if a > 0 then
writeln(“yes”)
else
writeln(“no”);
C
if (a > 0) printf(“yes”);
> else print(“no”)
>
PascalABC.NET
Case someChar of
‘a’: actionOnA;
‘x’: actionOnX;
‘y’,‘z’: actionOnYandZ;
else actionOnNoMatch;
end
Shell
if [ $a –gt 0]; then
echo “yes”
else
echo “no”
fi
C
Python 3
if a > 0:
print(“yes”)
else:
print(“no”)
Shell
Switch (someChar) case $coneChar in
case ‘a’: actionOnA; break;
a)
actionOnA ;;
case ‘x’: actionOnX; break;
x)
actionOnX ;;
case ‘y’:
[yz]) actionOnYandZ ;;
case ‘z’: actionOnYandZ; break;
*)
actionOnNoMatch ;;
default: actionOnNoMatch;
esac
>
12

13. Варианты циклов. Цикл с предусловием (while)

Цикл с предусловием (while) – цикл, который выполняется, пока истинно
некоторое условие, указанное перед его началом (тело может быть не
выполнено ни разу).
PascalABC.NET
program Fact;
var
Counter, Factorial: integer;
begin
Counter := 5;
Factorial := 1;
while Counter > 0 do
begin
Factorial := Factorial * Counter;
Counter := Counter — 1
end;
WriteLn(Factorial)
end.
PHP
$counter = 5; $factorial = 1;
while($counter > 0) $factorial *= $counter;
$counter—;
>
print $factorial;
13

14. Варианты циклов. Циклы с постусловием

Цикл с постусловием (repeat … until) – цикл, в котором условие
проверяется после выполнения тела цикла. Пока условие ложно.
Цикл с постусловием (do … while) – цикл, в котором условие проверяется
после выполнения тела цикла. Пока условие истинно.
Тело в любом варианте выполняется хотя бы один раз.
PascalABC.NET
repeat

until
Цикл с постусловием
(repeat … until)
С
do
> while ()
14

15. Варианты циклов. Цикл со счетчиком (for)

Цикл со счетчиком (for) – цикл, в котором некоторая переменная изменяет
свое значение от заданного начального значения до конечного значения с
некоторым шагом, и для каждого значения этой переменной тело цикла
выполняется один раз.
JavaScript
for (var i = 0; i < 5; i++) // .
>
Lua
MATLAB
for i = start, stop, interval do for n = 1:5
— statements
— statements
end
end
15

16. Пропуск итерации и досрочный выход из цикла

Досрочный выход из цикла. Команда
for i in range(1, 6, 1):
досрочного выхода применяется, когда
if i == 3:
необходимо прервать выполнение цикла, в
котором условие выхода еще не достигнуто.
break
Команда досрочного выхода обычно
print(i)
называется exit или break
Пропуск итерации. Данный оператор
применяется, когда в текущей итерации
цикла необходимо пропустить все команды
до конца тела цикла.
Команда пропуска итерации обычно
называется continue
for i in range(1, 6, 1):
if i == 3:
continue
print(i)
16

Источник: ppt-online.org

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru