SlideShare a Scribd company logo
1 of 6
LOGO
Понятие модуля. Конструктивные
характеристики модуля.
Использование подпрограмм.
Процедуры и функции. Правила
локализации идентификаторов.
Рекурсивные подпрограммы
Лекция №5
LOGO
Понятие модуля. Конструктивные
характеристики модуля
Конструктивными характеристики модуля:
*размер модуля
*прочность модуля
*сцепление с другими модулями
*рутинность модуля (независимость от предыстории
обращений к нему)
LOGO
Использование подпрограмм.
Процедуры и функции
Использование модуля целесообразно
оформлять в виде подпрограммы.
Подпрограммой называется именованная,
логически законченная группа операторов языка,
которую можно вызывать по имени любое
количество раз из различных мест программы.
В языке Pascal имеются два вида подпрограмм –
процедуры и функции. Они имеют один и тот же
смысл и аналогичную структуру, но различаются
назначением и способом использования.
LOGO
Использование подпрограмм.
Процедуры и функции
Пример описания функции:
Function Power (Base : real; Index : integer) : real;
{возведение в целую степень вещественного основания}
Var
P : real;
I : integer; Begin
If Index = 0
then Power := 1
else
begin
P := Base;
For I := 2 to abs (Index) do P := P * Base;
If Index > 0
then Power := P else Power := 1/P
end
End; {Конец функции Power}
LOGOРекурсивные подпрограммы
Подпрограммы, реализующие рекурсию, называются
рекурсивными. Для понимания сути работы программы
будем рассматривать рекурсивный вызов как вызов другой
подпрограммы. В этом случае при каждом рекурсивном
вызове создается новое множество локальных
переменных. Таким образом, рекурсивный вызов не
изменяет переменных, расположенных вне вызываемой
программы.
При написании рекурсивных подпрограмм особое
внимание необходимо обращать на выход из
подпрограммы в нужный момент, так как возможен выход
значений из допустимого диапазона или потеря порядка
(обращение результата в нуль).
http://ppt.prtxt.ru Company Logo
LOGOРекурсивные подпрограммы
В качестве примера рассмотрим описанную выше
задачу возведения вещественного числа в целую
степень, но теперь используем в теле функции
рекурсивный вызов.
Function PowerR (Base: real; Index : integer) : real;
{возведение в целую степень вещественного основания}
Begin
If Index < 0
then PowerR := 1/PowerR(Base, abs(Index)
else
If Index > 0
then PowerR := Base * PowerR(Base, Index-1)
else PowerR := 1
End; {Конец функции PowerR}
http://ppt.prtxt.ru Company Logo

More Related Content

What's hot

Автоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharpАвтоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharpGoSharp
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basicsRoman Brovko
 
Интегрированная среда разработки
Интегрированная среда разработкиИнтегрированная среда разработки
Интегрированная среда разработкиspillector
 
Автоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharpАвтоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharpgeekfamilyrussia
 
Андрей Кирпичев "Гибкая модульность инструментами АОП"
Андрей Кирпичев  "Гибкая модульность инструментами АОП"Андрей Кирпичев  "Гибкая модульность инструментами АОП"
Андрей Кирпичев "Гибкая модульность инструментами АОП"MskDotNet Community
 
Характеристики языка С++
Характеристики языка С++Характеристики языка С++
Характеристики языка С++DEVTYPE
 

What's hot (10)

Автоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharpАвтоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharp
 
Java: вчера, сегодня, завтра
Java: вчера, сегодня, завтраJava: вчера, сегодня, завтра
Java: вчера, сегодня, завтра
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basics
 
Интегрированная среда разработки
Интегрированная среда разработкиИнтегрированная среда разработки
Интегрированная среда разработки
 
Java 9 - кратко о новом
Java 9 -  кратко о новомJava 9 -  кратко о новом
Java 9 - кратко о новом
 
Автоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharpАвтоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharp
 
Андрей Кирпичев "Гибкая модульность инструментами АОП"
Андрей Кирпичев  "Гибкая модульность инструментами АОП"Андрей Кирпичев  "Гибкая модульность инструментами АОП"
Андрей Кирпичев "Гибкая модульность инструментами АОП"
 
C# programming
C# programmingC# programming
C# programming
 
Характеристики языка С++
Характеристики языка С++Характеристики языка С++
Характеристики языка С++
 
Step 5
Step 5Step 5
Step 5
 

Viewers also liked (13)

Myassignment.
Myassignment.Myassignment.
Myassignment.
 
Capitulo 12
Capitulo 12Capitulo 12
Capitulo 12
 
My CV
My CVMy CV
My CV
 
Sandra perez
Sandra perezSandra perez
Sandra perez
 
About me
About meAbout me
About me
 
Gestion
GestionGestion
Gestion
 
HURRICANE HUNTER
HURRICANE HUNTERHURRICANE HUNTER
HURRICANE HUNTER
 
Important
ImportantImportant
Important
 
Cheap Brochure Printing
Cheap Brochure PrintingCheap Brochure Printing
Cheap Brochure Printing
 
Waseem butt
Waseem buttWaseem butt
Waseem butt
 
Media institution
Media institutionMedia institution
Media institution
 
2.Dissertation
2.Dissertation2.Dissertation
2.Dissertation
 
Sistemas de numeracion
Sistemas de numeracionSistemas de numeracion
Sistemas de numeracion
 

Similar to Lektsia 5

модульное программирование (35)
модульное программирование  (35)модульное программирование  (35)
модульное программирование (35)romachka_pole
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPmikhailshurgulaya
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковCodeFest
 
Евгений Кривошеев: Фундаментальные правила и принципы проектирования ПО
Евгений Кривошеев: Фундаментальные правила и принципы проектирования ПОЕвгений Кривошеев: Фундаментальные правила и принципы проектирования ПО
Евгений Кривошеев: Фундаментальные правила и принципы проектирования ПОLuxoft Education Center
 
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.Igor Shkulipa
 
9 структура компонентных приложений
9 структура компонентных приложений9 структура компонентных приложений
9 структура компонентных приложенийKewpaN
 
C:\fakepath\lopc_midlet
C:\fakepath\lopc_midletC:\fakepath\lopc_midlet
C:\fakepath\lopc_midletstaticboy44
 
Внедрение CASE-технологий
Внедрение CASE-технологийВнедрение CASE-технологий
Внедрение CASE-технологийОтшельник
 
Построение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кодаПостроение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кодаTatyanazaxarova
 
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.EatDog
 
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияСоздаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияOvadiah Myrgorod
 

Similar to Lektsia 5 (20)

модульное программирование (35)
модульное программирование  (35)модульное программирование  (35)
модульное программирование (35)
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAP
 
МиСПИСиТ (разработка программного модуля)
МиСПИСиТ (разработка программного модуля)МиСПИСиТ (разработка программного модуля)
МиСПИСиТ (разработка программного модуля)
 
Deep storm presentation
Deep storm presentationDeep storm presentation
Deep storm presentation
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
Евгений Кривошеев: Фундаментальные правила и принципы проектирования ПО
Евгений Кривошеев: Фундаментальные правила и принципы проектирования ПОЕвгений Кривошеев: Фундаментальные правила и принципы проектирования ПО
Евгений Кривошеев: Фундаментальные правила и принципы проектирования ПО
 
Design Rules And Principles
Design Rules And PrinciplesDesign Rules And Principles
Design Rules And Principles
 
Java 2 - Java Intro
Java 2 - Java IntroJava 2 - Java Intro
Java 2 - Java Intro
 
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.
 
9 структура компонентных приложений
9 структура компонентных приложений9 структура компонентных приложений
9 структура компонентных приложений
 
C:\fakepath\lopc_midlet
C:\fakepath\lopc_midletC:\fakepath\lopc_midlet
C:\fakepath\lopc_midlet
 
Внедрение CASE-технологий
Внедрение CASE-технологийВнедрение CASE-технологий
Внедрение CASE-технологий
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Построение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кодаПостроение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кода
 
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.
 
drools introduction
drools introductiondrools introduction
drools introduction
 
Java 9 - Back to the Future
Java 9 - Back to the FutureJava 9 - Back to the Future
Java 9 - Back to the Future
 
10 инф
10 инф10 инф
10 инф
 
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияСоздаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровождения
 
МиСПИСиТ (структура)
МиСПИСиТ (структура)МиСПИСиТ (структура)
МиСПИСиТ (структура)
 

Lektsia 5

  • 1. LOGO Понятие модуля. Конструктивные характеристики модуля. Использование подпрограмм. Процедуры и функции. Правила локализации идентификаторов. Рекурсивные подпрограммы Лекция №5
  • 2. LOGO Понятие модуля. Конструктивные характеристики модуля Конструктивными характеристики модуля: *размер модуля *прочность модуля *сцепление с другими модулями *рутинность модуля (независимость от предыстории обращений к нему)
  • 3. LOGO Использование подпрограмм. Процедуры и функции Использование модуля целесообразно оформлять в виде подпрограммы. Подпрограммой называется именованная, логически законченная группа операторов языка, которую можно вызывать по имени любое количество раз из различных мест программы. В языке Pascal имеются два вида подпрограмм – процедуры и функции. Они имеют один и тот же смысл и аналогичную структуру, но различаются назначением и способом использования.
  • 4. LOGO Использование подпрограмм. Процедуры и функции Пример описания функции: Function Power (Base : real; Index : integer) : real; {возведение в целую степень вещественного основания} Var P : real; I : integer; Begin If Index = 0 then Power := 1 else begin P := Base; For I := 2 to abs (Index) do P := P * Base; If Index > 0 then Power := P else Power := 1/P end End; {Конец функции Power}
  • 5. LOGOРекурсивные подпрограммы Подпрограммы, реализующие рекурсию, называются рекурсивными. Для понимания сути работы программы будем рассматривать рекурсивный вызов как вызов другой подпрограммы. В этом случае при каждом рекурсивном вызове создается новое множество локальных переменных. Таким образом, рекурсивный вызов не изменяет переменных, расположенных вне вызываемой программы. При написании рекурсивных подпрограмм особое внимание необходимо обращать на выход из подпрограммы в нужный момент, так как возможен выход значений из допустимого диапазона или потеря порядка (обращение результата в нуль). http://ppt.prtxt.ru Company Logo
  • 6. LOGOРекурсивные подпрограммы В качестве примера рассмотрим описанную выше задачу возведения вещественного числа в целую степень, но теперь используем в теле функции рекурсивный вызов. Function PowerR (Base: real; Index : integer) : real; {возведение в целую степень вещественного основания} Begin If Index < 0 then PowerR := 1/PowerR(Base, abs(Index) else If Index > 0 then PowerR := Base * PowerR(Base, Index-1) else PowerR := 1 End; {Конец функции PowerR} http://ppt.prtxt.ru Company Logo