Тема 1. Подпрограммы Раздел

Скачать презентацию Тема 1.  Подпрограммы Раздел Скачать презентацию Тема 1. Подпрограммы Раздел

Подпрограммы.ppt

  • Количество слайдов: 33

>   Тема 1.  Подпрограммы Раздел 6. Процедуры и функции.  Тема 1. Подпрограммы Раздел 6. Процедуры и функции. Стр. 80 -91.

>Эпиграф.  1. Звездное небо над головой и моральный закон внутри нас наполняют ум Эпиграф. 1. Звездное небо над головой и моральный закон внутри нас наполняют ум все новым и возрастающим восхищением и трепетом, тем больше, чем чаще и упорнее мы над этим размышляем. Кант (22. 04. 1724 – 12. 02. 1804)

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

> Использование подпрограмм:  • сокращает объем программы;  • улучшает структуру программы, что Использование подпрограмм: • сокращает объем программы; • улучшает структуру программы, что делает её наглядной и хорошо читаемой; • облегчает процесс отладки; • уменьшает вероятность ошибок.

>Структура программы и П/П Структура основной Структура  программы:    подпрограммы: 1. Структура программы и П/П Структура основной Структура программы: подпрограммы: 1. [Заголовок 1. Заголовок программы. ] подпрограммы. 2. Раздел описаний. 3. Раздел операторов: Begin Begin …. End; End.

>Вывод: Программа отличается от подпрограммы:  • Заголовком  {В подпрограмме заголовок обязателен}. Вывод: Программа отличается от подпрограммы: • Заголовком {В подпрограмме заголовок обязателен}. • Окончанием раздела операторов {В конце подпрограммы ставится точка с запятой (; )}

>  Раздел описаний •  Label •  Const •  Type • Раздел описаний • Label • Const • Type • Var • Procedure • Function

>  Константы (Стр. 28) • Константы без типа (обычные):  Const n=10; s=‘A’; Константы (Стр. 28) • Константы без типа (обычные): Const n=10; s=‘A’; {НЕ изменяются в программе!!!} • Типизированные константы: Const n: Byte=10; s: Char=‘A” {Могут изменяться в программе и служат для задания начальных значений}

>Пример типизированных констант в программе  «Таблица» Пример типизированных констант в программе «Таблица»

>   Сравнение процедуры и функции • Существуют два вида подпрограмм:  - Сравнение процедуры и функции • Существуют два вида подпрограмм: - функция (Function); - процедура (Procedure). • Они различаются: - назначением; - способом использования.

> Различия в назначении Функция    Процедура • Функция   • Различия в назначении Функция Процедура • Функция • Процедура предназначена для того, чтобы выполнения возвращать в некоторой программу только последовательности одно значение. действий.

>  Различия в заголовке Функция    Процедура Function   Procedure Различия в заголовке Функция Процедура Function Procedure <имя функции> <> [<список формальных параметров >]: параметров >]; <тип результата>;

>Вывод:  • В заголовке используются разные  зарезервированные слова: - Function; - Procedure. Вывод: • В заголовке используются разные зарезервированные слова: - Function; - Procedure. • В заголовке функции необходимо указать тип возвращаемого в программу результата.

>Различия в разделе операторов Функция  Процедура Begin …   … <имя функции>: Различия в разделе операторов Функция Процедура Begin … … <имя функции>: = … <значение>; … … End; End;

>Вывод:  • В теле функции обязательно должен  быть хотя бы один оператор Вывод: • В теле функции обязательно должен быть хотя бы один оператор присваивания, где в левой части стоит имя функции, а в правой её значение. Иначе возвращаемое в программу значение не будет определено.

>Обмен данными между основной программой и подпрограммой  Основная  Программа:   Обмен Обмен данными между основной программой и подпрограммой Основная Программа: Обмен Подпрограмма: Вызов П/П

>   Обмен данными между основной программой и подпрограммой  осуществляется двумя способами: Обмен данными между основной программой и подпрограммой осуществляется двумя способами: • без параметров с помощью глобальных переменных, что опасно из-за непредсказуемых изменений; • с помощью параметров.

>  Глобальные переменные  (Раздел 6. 4. Стр. 94) • Все переменные, объявленные Глобальные переменные (Раздел 6. 4. Стр. 94) • Все переменные, объявленные в разделе описаний основной программы, доступны во всех описанных в ней подпрограммах, если описание переменных предшествует описанию подпрограмм. • Эти переменные называются глобальными.

>  Локальные переменные • Переменные, объявленные в разделе  описаний подпрограммы, доступны Локальные переменные • Переменные, объявленные в разделе описаний подпрограммы, доступны только в теле этой подпрограммы. • Поэтому они называются локальными переменными.

>   Совпадение имен • Локальная и глобальная переменные  могут иметь одинаковое Совпадение имен • Локальная и глобальная переменные могут иметь одинаковое имя. • Несмотря на это они являются двумя различными переменными, которые располагаются в различных областях памяти. • В этом случае глобальная переменная становится недоступной в подпрограмме.

>  Классификация параметров    Параметры  Формальные  Фактические  Параметры- Классификация параметров Параметры Формальные Фактические Параметры- значения переменные

>Формальные параметры  Это переменные фиктивно присутствующие в описании подпрограммы и определяющие тип и Формальные параметры Это переменные фиктивно присутствующие в описании подпрограммы и определяющие тип и место подстановки фактических параметров.

>Фактические параметры Это параметры, которые передаются в подпрограмму при обращении к ней. Фактические параметры Это параметры, которые передаются в подпрограмму при обращении к ней.

> Правило соответствия • Число и тип  формальных и фактических  параметров должны Правило соответствия • Число и тип формальных и фактических параметров должны совпадать с точностью до их следования.

> Классификация параметров Формальные параметры  Параметры- Параметры - значения  переменные Классификация параметров Формальные параметры Параметры- Параметры - значения переменные

> Параметры-значения • Они копируют значение некоторой  переменной из основной программы и Параметры-значения • Они копируют значение некоторой переменной из основной программы и передает её в подпрограмму. • Подпрограмма каким-то образом манипулирует этой копией, а затем по завершению работы подпрограммы эта копия теряется. Исходное значение переменной остается неизменным.

> Параметр-переменная • Предоставляет доступ подпрограмме  непосредственно к самой переменной из  основной Параметр-переменная • Предоставляет доступ подпрограмме непосредственно к самой переменной из основной программы. • При этом подпрограмма манипулирует значением этой переменной. • После завершения работы подпрограммы переменная из основной программы остается с новым значением.

> Отличие в описании Чтобы отличать параметры-значения от параметров-переменных, параметры-переменные в списке формальных параметров Отличие в описании Чтобы отличать параметры-значения от параметров-переменных, параметры-переменные в списке формальных параметров пишутся после слова Var.

> Схема действия параметров     Формальные параметры  • Раздел описаний: Схема действия параметров Формальные параметры • Раздел описаний: Procedure QQ(x: Integer; Var y: Real); Параметр- Параметр- значение переменная • Раздел операторов: {Вызов процедуры}QQ(a, b); Фактические параметры

>Вывод:  • Параметр-значение – это средство  передачи данных в одном направлении: Вывод: • Параметр-значение – это средство передачи данных в одном направлении: из основной программы в подпрограмму. a Подпрограмма • Параметр-переменная позволяет передавать данные в обоих направлениях b Подпрограмма

>     Замечание 1.  • Нельзя использовать константы в Замечание 1. • Нельзя использовать константы в качестве фактического параметра, если этот параметр описан как параметр-переменная.

>      Замечание 2.  • Можно использовать слово Var Замечание 2. • Можно использовать слово Var в списке формальных параметров функции {Function QQ(x: Integer; Var y: Real): Char; }, но это считается дурным тоном, так как функция по определению должна возвращать единственное значение.

>Вывод:  • Знание подпрограмм позволит Вам легко  работать с модулями языка Паскаль. Вывод: • Знание подпрограмм позволит Вам легко работать с модулями языка Паскаль. • Понимание параметров подпрограмм даст возможность легко обращаться к процедурам и функциям модулей.