Разделы презентаций


СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ

Содержание

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

Слайды и текст этой презентации

Слайд 1СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
ОСНОВНЫЕ СВЕДЕНИЯ ОБ АЛГОРИТМАХ

СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕОСНОВНЫЕ СВЕДЕНИЯ ОБ АЛГОРИТМАХ

Слайд 2структурное программирование
вспомогательный алгоритм
рекурсия
подпрограммы: процедуры и функции
фактические и формальные параметры
параметры-значения и

параметры-переменные

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

Слайд 3Структурное программирование
Структурное программирование – технология разработки программного обеспечения, в основе

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

фрагментов (блоков).

!

Э́дсгер Ви́бе Де́йкстра (11.05.1930–6.08.2002) – нидерландский учёный, труды которого оказали влияние на развитие информатики и информационных технологий; один из разработчиков концепции структурного про-граммирования, исследователь формальной верификации и распределенных вычислений. Автор нескольких книг и множества статей, самые известные публикации – книги «Дисциплина программирования», «Заметки по структурному программированию», статья «О вреде оператора GOTO».

Структурное программированиеСтруктурное программирование – технология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической

Слайд 4Принципы структурного программирования
Некоторые принципы структурного программирования
Любая программа строится из трёх

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

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

Слайд 5Вспомогательный алгоритм
Пример 1. Найти периметр треугольника АВС, заданного координатами

своих вершин – (XA, YA), (XB, YB), (XC, YC).
Решение:
Чтобы найти

периметр треугольника, надо знать длины его сторон.

Для вычисления длины отрезка по координатам его концов используем формулу из геометрии.

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

Вызывая вспомогательный алгоритм с разными исходными данными, вычислим длины всех сторон.
А затем Найдем периметр.

Блок-схема

Вспомогательный алгоритм Пример 1. Найти периметр треугольника АВС, заданного координатами своих вершин – (XA, YA), (XB, YB),

Слайд 6Пример программирования сверху вниз
Начало Отрезок
Конец
Начало Периметр
Конец
P := D
Отрезок (XА, YA,

XB, YB, D)
XА, YA, XB, YB, XC, YC
P :=

P + D

Отрезок (XB, YB, XC, YC, D)

P := P + D

Отрезок (XА, YA, XC, YC, D)

P

X1, Y1, X2, Y2

REZ

D := SQRT (SQR(X1-X2)+SQR(Y1-Y2))

Каким будет результат работы алгоритма при следующих исходных данных:
XA = 1, YA = 1, XB = 1, YB = 5, XC = 4, YC = 1?

?

Пример программирования сверху внизНачало ОтрезокКонецНачало ПериметрКонецP := DОтрезок  (XА, YA, XB, YB, D) XА, YA, XB,

Слайд 7Рекурсивные алгоритмы
5
4
3
2
1

Рекурсивные алгоритмы54321

Слайд 8Рекурсивные алгоритмы
Алгоритм называется рекурсивным, если на каком-­либо шаге он прямо

или косвенно обращается сам к себе.
В рекурсивном определении должно присутствовать

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

!

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

?

Ночь, улица, фонарь, аптека, Бессмысленный и тусклый свет. Живи еще хоть четверть века – Все будет так. Исхода нет. Умрешь – начнешь опять сначала И повторится все, как встарь: Ночь, ледяная рябь канала, Аптека, улица, фонарь.
А. Блок

Рекурсивные алгоритмыАлгоритм называется рекурсивным, если на каком-­либо шаге он прямо или косвенно обращается сам к себе.В рекурсивном

Слайд 9Примеры рекурсивных алгоритмов
Пример 2. Числа Фибоначчи – элементы последовательности 1,

1, 2, 3, 5, 8, 13, 21, 34, 55, …

, в которой первые два числа равны 1, а каждое следующее число равно сумме двух предыдущих чисел. Запишите рекуррентное определение чисел Фибоначчи.

Ответ:
F (n) = 1 при n ≤ 2;
F (n) = F (n-1) + F (n-2) при n > 2.



Пример 3. Запишите рекуррентное определение функции, вычисляющей количество цифр в натуральном числе n.

Ответ:
К (n) = 1 при n < 10;
К (n) = К (n div 10) + 1 при n ≥ 10.



Примеры рекурсивных алгоритмовПример 2. Числа Фибоначчи – элементы последовательности 1, 1, 2, 3, 5, 8, 13, 21,

Слайд 10Примеры рекурсивных алгоритмов
Пример 4. Алгоритм вычисления значения функции F (n),

где n – натуральное число, задан следующими соотношениями:
F (1) =

2; F (n) = n ∙ F (n – 1) при n > 1.
Определите значение функции F (6).

Решение:
F (1) = 2
F (2) = 2 ∙ F (1) = 2 ∙ 2 = 4
F (3) = 3 ∙ F (2) = 3 ∙ 4 = 12

F (4) = 4 ∙ F (3) = 4 ∙ 12 = 48
F (5) = 5 ∙ F (4) = 5 ∙ 48 = 240
F (6) = 6 ∙ F (5) = 6 ∙ 240 = 1440

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


Ответ: 1440

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

Слайд 11Подпрограммы в Паскале
Запись вспомогательных алгоритмов в языках программирования осуществляется с

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

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

Слайд 12Процедура
Процедура – подпрограмма, имеющая произволь-ное количество входных и выходных данных.
!
Описание

процедуры:
procedure (;

var <описание параметров-переменных>);
begin
<операторы>
end;

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

ПроцедураПроцедура – подпрограмма, имеющая произволь-ное количество входных и выходных данных.!Описание процедуры:procedure (;

Слайд 13Функция
Функция – подпрограмма, имеющая единственный результат, запи­сываемый в ячейку памяти,

имя которой совпадает с именем функ­ции.
!
Описание функции:
function (): ;
begin

<операторы>
end;

В заголовке функции после её имени приводится описание входных данных – перечень формальных параметров и их типов. Там же указывается тип самой функции, т. е. тип результата. В блоке функции должен присутствовать оператор:
<имя_функции> := <результат>;
Для вызова функции достаточно указать её имя со списком
фактических параметров.

ФункцияФункция – подпрограмма, имеющая единственный результат, запи­сываемый в ячейку памяти, имя которой совпадает с именем функ­ции.!Описание функции:function

Слайд 14используют, если необходимо передать значения переменных в подпрограмму, а затем

возвратить их изменившиеся значения в место вызова подпрограммы
играют роль как

входных, так и выходных параметров
описываются в заголовке: Var Имя_переменной: тип
соответствующие им фактические параметры могут быть только переменными

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

Типы формальных параметров

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

Слайд 15Структурное программирование – технология разработки программного обеспечения, в основе которой

лежит представление программы в виде иерархической структуры логически целостных фрагментов

(блоков).
Основные принципы структурного программирования:
любая программа строится из трёх базовых управляющих конструкций: последовательность, ветвление, цикл;
в программе базовые управляющие конструкции могут быть вложены друг в друга произвольным образом;
повторяющиеся или логически целостные фрагменты программы можно оформить в виде подпрограмм (процедур и функций)
все перечисленные конструкции должны иметь один вход и один выход;
разработка программы ведётся пошагово, методом «сверху вниз».
Структурное программирование – технология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры

Слайд 16Вспомогательный алгоритм – это алгоритм, целиком используемый в составе другого

алгоритма.
Алгоритм называется рекурсивным, если на каком-либо шаге он прямо или

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

Слайд 17Вопросы и задания
Задание 1. Запишите на языке Pascal подпрограмму нахождения

длины отрезка, заданного координатами точек:
с помощью функции;
с помощью процедуры.

Ответ (с

помощью функции): function d (x1,y1, x2,y2: real): real; begin d := sqrt (sqr (x1-x2) + sqr (y1-y2)) end;

Ответ (с помощью процедуры):
procedure otrezok (x1,y1, x2,y2: real; var d: real); begin d := sqrt (sqr (x1-x2) + sqr (y1-y2)) end;

Вопросы и заданияЗадание 1. Запишите на языке Pascal подпрограмму нахождения длины отрезка, заданного координатами точек:с помощью функции;с

Слайд 18Вопросы и задания
Задание 2. С клавиатуры вводятся n чисел (n

запрашивается с клавиатуры). Требуется вывести числа в обратном порядке. Массив

использовать нельзя.

Подсказка. Составьте рекурсивную процедуру.

var n: integer;
procedure back (n: integer); var x: integer; begin if n > 0 then begin read (x); back (n-1); write (x,' ') end end;
BEGIN write ('Введите n = '); readln (n); back (n) END.

Программа

Подсказка

Вопросы и заданияЗадание 2. С клавиатуры вводятся n чисел (n 0 then begin

Слайд 19Вопросы и задания
Задание 3. С клавиатуры вводится натуральное число Х.

Требуется получить число Y, в котором записаны цифры числа Х

в обратном порядке. Например, для Х=123 Y=321.

Примечание. Решите задачу с помощью рекурсивной процедуры.

var x, y: integer; procedure reverse (x: integer; var y: integer); begin if x>0 then begin y := y*10 + x mod 10; reverse (x div 10, y) end end;
BEGIN write ('Введите число = '); readln (x); reverse (x, y); writeln ('Ответ: ', y) END.

Программа

Вопросы и заданияЗадание 3. С клавиатуры вводится натуральное число Х. Требуется получить число Y, в котором записаны

Слайд 20Вопросы и задания
Задание 4. У исполнителя Калькулятор есть две команды:
1.

Прибавить 1 – увеличивает число на экране на 1 2. Умножить

на 2 – умножает число на экране на 2
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 4 результатом является число 14?

Решение:
Количество программ, с помощью которых можно попасть в некоторое число n будем рассматривать как функцию K (n).
К(n) = 0 при n < 4;
К(n) = 1 при n = 4;
К(n) = К(n – 1) + К(n / 2) при n > 4.

Ответ: 5

Вопросы и заданияЗадание 4. У исполнителя Калькулятор есть две команды:1. Прибавить 1 	– увеличивает число на экране

Слайд 21Информационные источники
https://commons.wikimedia.org/wiki/File:Edsger_Wybe_Dijkstra.jpg
https://ru.wikipedia.org/wiki/Дейкстра,_Эдсгер_Вибе
http://iq230.com/images/sampledata/1/teacher-desk.jpg
http://cliparts.co/cliparts/Bcg/je7/Bcgje7dc8.png
http://marshak.su/wp-content/uploads/2015/08/doll_1920_2.png
http://school15yi.ru/wp-content/uploads/2017/04/3333.jpg



Информационные источникиhttps://commons.wikimedia.org/wiki/File:Edsger_Wybe_Dijkstra.jpghttps://ru.wikipedia.org/wiki/Дейкстра,_Эдсгер_Вибеhttp://iq230.com/images/sampledata/1/teacher-desk.jpg http://cliparts.co/cliparts/Bcg/je7/Bcgje7dc8.pnghttp://marshak.su/wp-content/uploads/2015/08/doll_1920_2.pnghttp://school15yi.ru/wp-content/uploads/2017/04/3333.jpg

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика