🗊Презентация понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций

Нажмите для полного просмотра!
понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №1понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №2понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №3понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №4понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №5понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №6понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №7понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №8понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №9понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №10понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №11понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №12понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №13понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №14понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №15понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №16понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №17понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №18понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №19понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №20понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №21понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №22понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №23понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №24понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №25понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №26понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №27понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №28понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №29понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №30понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №31понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №32понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №33понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №34понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №35понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №36понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №37понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №38понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №39понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №40понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №41понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №42понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №43понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №44понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №45понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №46понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №47понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №48понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №49понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №50понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №51понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №52понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №53понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №54понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №55понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №56понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №57понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №58понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №59понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №60понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №61понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №62понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №63понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №64понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №65понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №66понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №67понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №68понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №69понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №70понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №71понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №72понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №73понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №74понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №75понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №76понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №77понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №78понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №79понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №80понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №81понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №82понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №83понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №84понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №85понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №86понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №87понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №88понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №89понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №90понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №91понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №92понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №93понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №94

Содержание

Вы можете ознакомиться и скачать презентацию на тему понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций. Доклад-сообщение содержит 94 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №1
Описание слайда:

Слайд 2


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №2
Описание слайда:

Слайд 3






Тема урока: понятие подпрограмм.  Механизм реализации подпрограмм с помощью процедур и функций
Описание слайда:
Тема урока: понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций

Слайд 4





I. Повторение материала
Какова структура программы?
Обязателен ли заголовок  программы?
Какие разделы описаний вы знаете?
С чего начинается раздел констант?
Как описать переменные?
С чего начинается основная часть программы? Как ее закончить?
Описание слайда:
I. Повторение материала Какова структура программы? Обязателен ли заголовок программы? Какие разделы описаний вы знаете? С чего начинается раздел констант? Как описать переменные? С чего начинается основная часть программы? Как ее закончить?

Слайд 5





При создании программы для решения сложной задачи программисты выполняют разделение этой задачи на подзадачи, подзадачи – на еще меньшие подзадачи и так далее, до легко программируемых элементарных задач. Со временем у каждого программиста через некоторое время появляется большой набор собственных  заготовок, неординарных решений и т.д.,  которые он хотел бы использовать во всех своих творениях. 
При создании программы для решения сложной задачи программисты выполняют разделение этой задачи на подзадачи, подзадачи – на еще меньшие подзадачи и так далее, до легко программируемых элементарных задач. Со временем у каждого программиста через некоторое время появляется большой набор собственных  заготовок, неординарных решений и т.д.,  которые он хотел бы использовать во всех своих творениях. 
Языки программирования  Qbasic  и  Turbo Pascal позволяют разделять программу на  отдельные части, которые называются подпрограммами.   Сам термин подпрограмма говорит о том, что она  подобна и подчинена  основной программе.
Описание слайда:
При создании программы для решения сложной задачи программисты выполняют разделение этой задачи на подзадачи, подзадачи – на еще меньшие подзадачи и так далее, до легко программируемых элементарных задач. Со временем у каждого программиста через некоторое время появляется большой набор собственных заготовок, неординарных решений и т.д., которые он хотел бы использовать во всех своих творениях. При создании программы для решения сложной задачи программисты выполняют разделение этой задачи на подзадачи, подзадачи – на еще меньшие подзадачи и так далее, до легко программируемых элементарных задач. Со временем у каждого программиста через некоторое время появляется большой набор собственных заготовок, неординарных решений и т.д., которые он хотел бы использовать во всех своих творениях. Языки программирования Qbasic и Turbo Pascal позволяют разделять программу на отдельные части, которые называются подпрограммами. Сам термин подпрограмма говорит о том, что она подобна и подчинена основной программе.

Слайд 6





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

Слайд 7





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

Слайд 8


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №8
Описание слайда:

Слайд 9





Процедуры предназначены для выполнения некоторой последовательности действий. 
Процедуры предназначены для выполнения некоторой последовательности действий. 
Любая процедура начинается с заголовка, обязательной частью, (в отличие от заголовка программы). 
Заголовок состоит из служебного слова Procedure (Sub в языке QBasic), за которым следует имя процедуры, а в круглых скобках — список формальных параметров. После заголовка могут идти те же разделы, что и в программе. Таким образом, общий вид будет следующим:

SUB<имя>[(формальные параметры)]     Procedure<имя>[(формальные   параметры)];
  Список  формальных параметров  может отсутствовать.
Объявление переменных		описательная часть
                                                                          Begin
   тело процедуры			 тело процедуры
EXIT SUB   	  досрочный выход	 EXIT SUB		
 END SUB 		 		End;
Описание слайда:
Процедуры предназначены для выполнения некоторой последовательности действий. Процедуры предназначены для выполнения некоторой последовательности действий. Любая процедура начинается с заголовка, обязательной частью, (в отличие от заголовка программы). Заголовок состоит из служебного слова Procedure (Sub в языке QBasic), за которым следует имя процедуры, а в круглых скобках — список формальных параметров. После заголовка могут идти те же разделы, что и в программе. Таким образом, общий вид будет следующим: SUB<имя>[(формальные параметры)] Procedure<имя>[(формальные параметры)]; Список формальных параметров может отсутствовать. Объявление переменных описательная часть Begin тело процедуры тело процедуры EXIT SUB досрочный выход EXIT SUB END SUB End;

Слайд 10





Формальные и фактические параметры
Результат выполнения процедуры — это одно или несколько значений. Оно (или они) передается в основную программу как значение ее параметра. При вызове процедуры ее формальные параметры заменяются фактическими в порядке их следования.
Фактические параметры — это параметры, которые передаются процедуре при обращении к ней.
Число и тип формальных и фактических  параметров должны совпадать с точностью до их следования.
Формальные параметры — это переменные, фиктивно присутствующие в процедуре и определяющие тип и место подстановки фактических пара­метров, над которыми производятся действия. 
Все формальные параметры делятся на два вида:
 параметры-переменные и параметры-значения.
Описание слайда:
Формальные и фактические параметры Результат выполнения процедуры — это одно или несколько значений. Оно (или они) передается в основную программу как значение ее параметра. При вызове процедуры ее формальные параметры заменяются фактическими в порядке их следования. Фактические параметры — это параметры, которые передаются процедуре при обращении к ней. Число и тип формальных и фактических параметров должны совпадать с точностью до их следования. Формальные параметры — это переменные, фиктивно присутствующие в процедуре и определяющие тип и место подстановки фактических пара­метров, над которыми производятся действия. Все формальные параметры делятся на два вида: параметры-переменные и параметры-значения.

Слайд 11





Qbasic
В Qbasic для передачи по значению переменные берутся в круглые скобки. Т. е. передается только  копия значения этих параметров, внутри процедуры можно производить  любые действия с данными формальными параметрами (допустимыми для его типа), но их любые изменения никак не отражаются на значениях соответствующих фактических параметров, то есть какими они были до вызова процедуры, то такими же и останутся после завершения ее работы. 
Без круглых скобок переменные передаются по ссылке.  Это делается для того, чтобы изменения в теле процедуры значений формальных параметров приводило к изменению соответствующих фактических параметров, таким образом, они и получают новое значение.
Описание слайда:
Qbasic В Qbasic для передачи по значению переменные берутся в круглые скобки. Т. е. передается только копия значения этих параметров, внутри процедуры можно производить любые действия с данными формальными параметрами (допустимыми для его типа), но их любые изменения никак не отражаются на значениях соответствующих фактических параметров, то есть какими они были до вызова процедуры, то такими же и останутся после завершения ее работы. Без круглых скобок переменные передаются по ссылке. Это делается для того, чтобы изменения в теле процедуры значений формальных параметров приводило к изменению соответствующих фактических параметров, таким образом, они и получают новое значение.

Слайд 12





Turbo Pascal 7.0
Параметры-переменные в Turbo Pascal 7.0  — это те формальные параметры, перед которыми стоит служебное слово Var. Они передаются по ссылке (передается адрес фактического параметра) тогда, когда необходимо передать некоторые новые значения в точку вызова процедуры из программы, то есть когда нужно, чтобы изменения в теле процедуры значений формальных параметров приводило к изменению соответствующих фактических параметров, таким образом, они и получают новое значение.
Параметры-значения — перед ними слово Var не ставится, и идет передача по значению, т. е. передается только копия значения этих параметров, внутри процедуры можно производить любые действия с данными формальными параметрами (допустимые для его типа), но их любые изменения никак не отражаются на значениях соответствующих фактических параметров, то есть какими они были до вызова процедуры, то такими же и останутся после завершения ее работы.
Описание слайда:
Turbo Pascal 7.0 Параметры-переменные в Turbo Pascal 7.0 — это те формальные параметры, перед которыми стоит служебное слово Var. Они передаются по ссылке (передается адрес фактического параметра) тогда, когда необходимо передать некоторые новые значения в точку вызова процедуры из программы, то есть когда нужно, чтобы изменения в теле процедуры значений формальных параметров приводило к изменению соответствующих фактических параметров, таким образом, они и получают новое значение. Параметры-значения — перед ними слово Var не ставится, и идет передача по значению, т. е. передается только копия значения этих параметров, внутри процедуры можно производить любые действия с данными формальными параметрами (допустимые для его типа), но их любые изменения никак не отражаются на значениях соответствующих фактических параметров, то есть какими они были до вызова процедуры, то такими же и останутся после завершения ее работы.

Слайд 13





Локальные или глобальные переменные
Область действия переменной (идентификатора) - часть программы, где он может быть использован. Область действия переменной определяется местом  их объявления. В программе все переменные делятся на глобальные и локальные. 
Глобальные переменные — это те переменные, которые объявлены в описании основной части, и ее могут использовать любые процедуры и функции данной программы. 
Переменные, описанные внутри подпрограммы, называются локальными и могут быть использованы только внутри данной подпрограммы. Локальные переменные  могут быть описаны  как  в заголовке программы, так и в разделе описания переменных. При совпадении имен глобальных и локальных переменных, локальные определения в пределах своего действия отменяют действия глобальных, и эти переменные никак не связаны между собой.
Описание слайда:
Локальные или глобальные переменные Область действия переменной (идентификатора) - часть программы, где он может быть использован. Область действия переменной определяется местом их объявления. В программе все переменные делятся на глобальные и локальные. Глобальные переменные — это те переменные, которые объявлены в описании основной части, и ее могут использовать любые процедуры и функции данной программы. Переменные, описанные внутри подпрограммы, называются локальными и могут быть использованы только внутри данной подпрограммы. Локальные переменные могут быть описаны как в заголовке программы, так и в разделе описания переменных. При совпадении имен глобальных и локальных переменных, локальные определения в пределах своего действия отменяют действия глобальных, и эти переменные никак не связаны между собой.

Слайд 14





Какова роль локальных переменных, нельзя  ли все переменные  описать как  глобальные? Подпрограмма должна быть, по возможности, независима от основной программы,  поэтому  все переменные, нужные только в пределах подпрограммы, должны описываться как локальные. Общение основной программы с подпрограммой должно, как правило, идти через список параметров подпрограммы, что придает ей необходимую гибкость.
Какова роль локальных переменных, нельзя  ли все переменные  описать как  глобальные? Подпрограмма должна быть, по возможности, независима от основной программы,  поэтому  все переменные, нужные только в пределах подпрограммы, должны описываться как локальные. Общение основной программы с подпрограммой должно, как правило, идти через список параметров подпрограммы, что придает ей необходимую гибкость.
Локальность или глобальность – понятия относительные. Программа с вложенными в нее подпрограммами - иерархическое дерево. Объект, локальный по отношению к более высокому уровню иерархии, ведет себя как глобальный по отношению к объектам более низкого уровня.
Программу можно изобразить в виде блоков (подпрограмм), каждый блок это дом с зеркальными стеклами в окнах. Изнутри через них видно все, что находиться снаружи, внутрь заглянуть нельзя.
Программу можно изобразить в виде блоков (подпрограмм), каждый блок это дом с зеркальными стеклами в окнах. Изнутри через них видно все, что находиться снаружи, внутрь заглянуть нельзя.
Описание слайда:
Какова роль локальных переменных, нельзя ли все переменные описать как глобальные? Подпрограмма должна быть, по возможности, независима от основной программы, поэтому все переменные, нужные только в пределах подпрограммы, должны описываться как локальные. Общение основной программы с подпрограммой должно, как правило, идти через список параметров подпрограммы, что придает ей необходимую гибкость. Какова роль локальных переменных, нельзя ли все переменные описать как глобальные? Подпрограмма должна быть, по возможности, независима от основной программы, поэтому все переменные, нужные только в пределах подпрограммы, должны описываться как локальные. Общение основной программы с подпрограммой должно, как правило, идти через список параметров подпрограммы, что придает ей необходимую гибкость. Локальность или глобальность – понятия относительные. Программа с вложенными в нее подпрограммами - иерархическое дерево. Объект, локальный по отношению к более высокому уровню иерархии, ведет себя как глобальный по отношению к объектам более низкого уровня. Программу можно изобразить в виде блоков (подпрограмм), каждый блок это дом с зеркальными стеклами в окнах. Изнутри через них видно все, что находиться снаружи, внутрь заглянуть нельзя. Программу можно изобразить в виде блоков (подпрограмм), каждый блок это дом с зеркальными стеклами в окнах. Изнутри через них видно все, что находиться снаружи, внутрь заглянуть нельзя.

Слайд 15





Составить процедуру сложения двух чисел, вводимых с клавиатуры
Описание слайда:
Составить процедуру сложения двух чисел, вводимых с клавиатуры

Слайд 16





Процедура вызывается как оператор, состоящий из имени процедуры. В круглых скобках передаются фактические параметры. В нашем примере, фактические параметры а, в и s передают свои значения соответственно формальным параметрам X, Y и S. После завершения работы процедуры переменные A и B имеют те же значения, что и при вызове, а S получает новое значение.
Процедура вызывается как оператор, состоящий из имени процедуры. В круглых скобках передаются фактические параметры. В нашем примере, фактические параметры а, в и s передают свои значения соответственно формальным параметрам X, Y и S. После завершения работы процедуры переменные A и B имеют те же значения, что и при вызове, а S получает новое значение.
Передача параметров очень важна для процедур и функций. Это процесс, благодаря которому передается информация.
Пусть а=3 и в=4. Когда в программе встречается оператор
 summa((a), (b),S) или  summa (a,b,s);, то ЭВМ выполняет следующие действия:
-  выделяет память для переменных, опи­санных в процедуре;
-  присваивает формальным параметрам значе­ния фактических: х:=а (х=3), у:=в (у=4), s:=s;
-  выполняет операторы процедуры, то есть найдет сумму
- полученное значение присвоит перемен­ной S, а переменные A и B остаются прежними, после этого переходит к выполнению следующих действий программы в точке вызова, то есть выполняется следующий оператор, стоящий за обращением процедуры.
Описание слайда:
Процедура вызывается как оператор, состоящий из имени процедуры. В круглых скобках передаются фактические параметры. В нашем примере, фактические параметры а, в и s передают свои значения соответственно формальным параметрам X, Y и S. После завершения работы процедуры переменные A и B имеют те же значения, что и при вызове, а S получает новое значение. Процедура вызывается как оператор, состоящий из имени процедуры. В круглых скобках передаются фактические параметры. В нашем примере, фактические параметры а, в и s передают свои значения соответственно формальным параметрам X, Y и S. После завершения работы процедуры переменные A и B имеют те же значения, что и при вызове, а S получает новое значение. Передача параметров очень важна для процедур и функций. Это процесс, благодаря которому передается информация. Пусть а=3 и в=4. Когда в программе встречается оператор summa((a), (b),S) или summa (a,b,s);, то ЭВМ выполняет следующие действия: - выделяет память для переменных, опи­санных в процедуре; - присваивает формальным параметрам значе­ния фактических: х:=а (х=3), у:=в (у=4), s:=s; - выполняет операторы процедуры, то есть найдет сумму - полученное значение присвоит перемен­ной S, а переменные A и B остаются прежними, после этого переходит к выполнению следующих действий программы в точке вызова, то есть выполняется следующий оператор, стоящий за обращением процедуры.

Слайд 17





Составить процедуру нахождения максимального из двух  действительных чисел, вводимых с клавиатуры. Используйте процедуру для нахождения максимального значения для четырех чисел.
Описание слайда:
Составить процедуру нахождения максимального из двух действительных чисел, вводимых с клавиатуры. Используйте процедуру для нахождения максимального значения для четырех чисел.

Слайд 18


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №18
Описание слайда:

Слайд 19





Составить программу, которая будет находить аb, то есть b-ую степень числа A, где A  и  B - это целые числа и B>0, вводимые с клавиатуры.
					uses crt;
DIM A, B  AS  INTEGER		 var a,b:integer; 
DIM S  AS  LONGSUB 		 s:longint;
stepen (X, Y AS INTEGER,	 procedure  stepen (x,y:integer;var 
S AS LONG)			 s:longint);
DEFINT I 			var i:integer; 
					 begin
 S = 1 				 s:=1;
FOR I = 1 TO Y			 for i:=1 to y do
 S = S * X 			s:=s*x;
NEXT				
END SUB			 end;
Описание слайда:
Составить программу, которая будет находить аb, то есть b-ую степень числа A, где A и B - это целые числа и B>0, вводимые с клавиатуры. uses crt; DIM A, B AS INTEGER var a,b:integer; DIM S AS LONGSUB s:longint; stepen (X, Y AS INTEGER, procedure stepen (x,y:integer;var S AS LONG) s:longint); DEFINT I var i:integer; begin S = 1 s:=1; FOR I = 1 TO Y for i:=1 to y do S = S * X s:=s*x; NEXT END SUB end;

Слайд 20


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №20
Описание слайда:

Слайд 21


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №21
Описание слайда:

Слайд 22


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №22
Описание слайда:

Слайд 23





Тема урока: Понятие подпрограмм.  Механизм реализации подпрограмм с помощью процедур и функций
Проверка домашнего задания.
      1. Ответить на вопросы: 
	а) что такое подпрограмма?
      б) какие преимущества она дает?
	в) какие бывают параметры?
	г) чем отличаются друг от друга формальные и фактические параметры?
	д)  что такое область действия переменной?
	е) чем отличаются друг от друга глобальные и локальные параметры?
     2. Используя процедуру упорядочить значения трех переменных a, b,  и с в порядке их возрастания.
Решение.
В основной программе  появятся строки:
IF A<B THEN SWAP A,B		IF A<B THEN SWAP(A,B)
IF A<C THEN SWAP A,C		IF A<C THEN SWAP(A,C)
IF B<C THEN SWAP B,C		IF B<C THEN SWAP(B,C)
Описание слайда:
Тема урока: Понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций Проверка домашнего задания. 1. Ответить на вопросы: а) что такое подпрограмма? б) какие преимущества она дает? в) какие бывают параметры? г) чем отличаются друг от друга формальные и фактические параметры? д) что такое область действия переменной? е) чем отличаются друг от друга глобальные и локальные параметры? 2. Используя процедуру упорядочить значения трех переменных a, b, и с в порядке их возрастания. Решение. В основной программе появятся строки: IF A<B THEN SWAP A,B IF A<B THEN SWAP(A,B) IF A<C THEN SWAP A,C IF A<C THEN SWAP(A,C) IF B<C THEN SWAP B,C IF B<C THEN SWAP(B,C)

Слайд 24





 Описание функции
Функции предназначены для того, чтобы вычислять только одно значение, поэтому ее первое отличие состоит в том, что процедура может иметь новые значения у нескольких параметров, а функция только одно (оно и будет ее результатом).
Второе отличие заключается в заголовке функции. Он состоит из слова Function, за которым идет имя функции, затем в круглых скобках идет список формальных параметров, после чего через двоеточие записывается тип результата функции. Остальное как в процедуре. В Бейсике тип результата не записывается.
Кроме того:
 В теле функции обязательно должен быть хотя бы один оператор присвоения, где в левой части стоит имя функции, а в правой — ее значение. Иначе, значение не будет определено.
Таким образом, общий вид такой:
Описание слайда:
Описание функции Функции предназначены для того, чтобы вычислять только одно значение, поэтому ее первое отличие состоит в том, что процедура может иметь новые значения у нескольких параметров, а функция только одно (оно и будет ее результатом). Второе отличие заключается в заголовке функции. Он состоит из слова Function, за которым идет имя функции, затем в круглых скобках идет список формальных параметров, после чего через двоеточие записывается тип результата функции. Остальное как в процедуре. В Бейсике тип результата не записывается. Кроме того: В теле функции обязательно должен быть хотя бы один оператор присвоения, где в левой части стоит имя функции, а в правой — ее значение. Иначе, значение не будет определено. Таким образом, общий вид такой:

Слайд 25





Описание функции
Function <имя>			 Function <имя>
[(<список форм. параметр.>)]   [(<список форм.параметров>)]:
 В Бейсике тип результата не записывается.    
 <тип результата>
		Эта часть заголовка может отсутствовать.
Описательная часть 			Описательная часть

                                                                        Begin
Тело функции 				 Тело функции
 <имя>=<значение>    		<имя>:=<значение>;
End function				End;
Описание слайда:
Описание функции Function <имя> Function <имя> [(<список форм. параметр.>)] [(<список форм.параметров>)]: В Бейсике тип результата не записывается. <тип результата> Эта часть заголовка может отсутствовать. Описательная часть Описательная часть Begin Тело функции Тело функции <имя>=<значение> <имя>:=<значение>; End function End;

Слайд 26





Пример. Составить программу, подсчитывающую число сочетаний без повторения из N элементов по К элементов.
Описание слайда:
Пример. Составить программу, подсчитывающую число сочетаний без повторения из N элементов по К элементов.

Слайд 27





Обозначим:
Обозначим:
п, k — переменные для хранения введенных чисел;
С — переменная для хранения результата. Чтобы подсчитать количество сочетаний без повторения, необходимо вычислить n!, (n—k)!, k!.
Опишем функцию, вычисляющую факториал числа n (n!=1*2*...*n).
Описание слайда:
Обозначим: Обозначим: п, k — переменные для хранения введенных чисел; С — переменная для хранения результата. Чтобы подсчитать количество сочетаний без повторения, необходимо вычислить n!, (n—k)!, k!. Опишем функцию, вычисляющую факториал числа n (n!=1*2*...*n).

Слайд 28





Опишем функцию, вычисляющую факториал числа n (n!=1*2*...*n).

FUNCTION Factorial (N AS 		function   factorial 
INTEGER) 				(n:integer): longint;
DEFINT I				var i: integer;
DEFLNG REZ				rez:longint;
						begin
REZ = 1 				rez:=1;
FOR I = 1 TO N 			for i:=1 to n do
REZ = REZ * I			rez:=rez*i;
 NEXT
Factorial =REZ			factorial :=rez;
END FUNCTION			end;
Описание слайда:
Опишем функцию, вычисляющую факториал числа n (n!=1*2*...*n). FUNCTION Factorial (N AS function factorial INTEGER) (n:integer): longint; DEFINT I var i: integer; DEFLNG REZ rez:longint; begin REZ = 1 rez:=1; FOR I = 1 TO N for i:=1 to n do REZ = REZ * I rez:=rez*i; NEXT Factorial =REZ factorial :=rez; END FUNCTION end;

Слайд 29





 Первая строчка в описании функции — это заголовок функции. Служебное слово function (функция) указывает на то, что именем factorial названа функция. В скобках перечислен список формальных параметров функции, указаны их имена и задан их тип. 
 Первая строчка в описании функции — это заголовок функции. Служебное слово function (функция) указывает на то, что именем factorial названа функция. В скобках перечислен список формальных параметров функции, указаны их имена и задан их тип. 
 Функция factorial имеет один параметр n (число, факториал которого мы будем находить), который является целым числом. 
 Далее в Turbo Pascal 7.0   в заголовке указывается тип значения функции, ее результата. В данном примере результат функции factorial— целое число.
 За заголовком функции следует описательная часть функции, которая, как и у программы, может состоять из раздела описаний переменных, констант, типов и т.д. В данном примере нам понадобится только раздел переменных. Опишем переменные i (переменная для управления циклом) и rez (для накопления значения факториала).
Описание слайда:
Первая строчка в описании функции — это заголовок функции. Служебное слово function (функция) указывает на то, что именем factorial названа функция. В скобках перечислен список формальных параметров функции, указаны их имена и задан их тип. Первая строчка в описании функции — это заголовок функции. Служебное слово function (функция) указывает на то, что именем factorial названа функция. В скобках перечислен список формальных параметров функции, указаны их имена и задан их тип. Функция factorial имеет один параметр n (число, факториал которого мы будем находить), который является целым числом. Далее в Turbo Pascal 7.0 в заголовке указывается тип значения функции, ее результата. В данном примере результат функции factorial— целое число. За заголовком функции следует описательная часть функции, которая, как и у программы, может состоять из раздела описаний переменных, констант, типов и т.д. В данном примере нам понадобится только раздел переменных. Опишем переменные i (переменная для управления циклом) и rez (для накопления значения факториала).

Слайд 30


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №30
Описание слайда:

Слайд 31


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №31
Описание слайда:

Слайд 32


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №32
Описание слайда:

Слайд 33





При выполнении программы описание функции хранится в памяти ЭВМ. Действия функции выполняются тогда, когда в основной части программы необходимо найти значение функции, то есть в момент обращения к этой функции. Ее вызов осуществляется внутри некоторого выражения. Обращение записывается в виде имени функции, за которым следует в круглых скобки список параметров, отделенных друг от друга запятыми. 
При выполнении программы описание функции хранится в памяти ЭВМ. Действия функции выполняются тогда, когда в основной части программы необходимо найти значение функции, то есть в момент обращения к этой функции. Ее вызов осуществляется внутри некоторого выражения. Обращение записывается в виде имени функции, за которым следует в круглых скобки список параметров, отделенных друг от друга запятыми. 
     Например:
 A1 = factorial(n) — есть обращение к функции factorial в QBasic.
a1:= factorial(n) — есть обращение к функции factorial  в TPascal
Параметры, записываемые в обращении к функции, называются фактическими, а параметры, указанные в ее описании, называют формальными. Тип фактических параметров определяется типом формальных параметров. Перед вычислением функции формальным параметрам присваиваются значения фактических параметров. Фактическими параметрами могут быть не только константы и переменные, но также и выражения.
Описание слайда:
При выполнении программы описание функции хранится в памяти ЭВМ. Действия функции выполняются тогда, когда в основной части программы необходимо найти значение функции, то есть в момент обращения к этой функции. Ее вызов осуществляется внутри некоторого выражения. Обращение записывается в виде имени функции, за которым следует в круглых скобки список параметров, отделенных друг от друга запятыми. При выполнении программы описание функции хранится в памяти ЭВМ. Действия функции выполняются тогда, когда в основной части программы необходимо найти значение функции, то есть в момент обращения к этой функции. Ее вызов осуществляется внутри некоторого выражения. Обращение записывается в виде имени функции, за которым следует в круглых скобки список параметров, отделенных друг от друга запятыми. Например: A1 = factorial(n) — есть обращение к функции factorial в QBasic. a1:= factorial(n) — есть обращение к функции factorial в TPascal Параметры, записываемые в обращении к функции, называются фактическими, а параметры, указанные в ее описании, называют формальными. Тип фактических параметров определяется типом формальных параметров. Перед вычислением функции формальным параметрам присваиваются значения фактических параметров. Фактическими параметрами могут быть не только константы и переменные, но также и выражения.

Слайд 34





 Еще раз подчеркнем, что описание функции - это самостоятельная часть программы, имеющая собственные переменные, которым отводится отдельное, не зависящее от основной программы место в памяти ЭВМ. Этим объясняется тот факт, что переменные, именуемые одним именем и используемые как в описании функции, так и в основной программе, фактически являются разными переменными (в примере — переменная n основной части программы и параметр n в описании функции). При выполнении программы машина не путает имена этих переменных, так как области их действия не совпадают.
 Еще раз подчеркнем, что описание функции - это самостоятельная часть программы, имеющая собственные переменные, которым отводится отдельное, не зависящее от основной программы место в памяти ЭВМ. Этим объясняется тот факт, что переменные, именуемые одним именем и используемые как в описании функции, так и в основной программе, фактически являются разными переменными (в примере — переменная n основной части программы и параметр n в описании функции). При выполнении программы машина не путает имена этих переменных, так как области их действия не совпадают.
Таким образом, программист может вводить в описание функции различные имена, не заглядывая в другие части программы, что особенно важ­но при написании больших программ.
Описание слайда:
Еще раз подчеркнем, что описание функции - это самостоятельная часть программы, имеющая собственные переменные, которым отводится отдельное, не зависящее от основной программы место в памяти ЭВМ. Этим объясняется тот факт, что переменные, именуемые одним именем и используемые как в описании функции, так и в основной программе, фактически являются разными переменными (в примере — переменная n основной части программы и параметр n в описании функции). При выполнении программы машина не путает имена этих переменных, так как области их действия не совпадают. Еще раз подчеркнем, что описание функции - это самостоятельная часть программы, имеющая собственные переменные, которым отводится отдельное, не зависящее от основной программы место в памяти ЭВМ. Этим объясняется тот факт, что переменные, именуемые одним именем и используемые как в описании функции, так и в основной программе, фактически являются разными переменными (в примере — переменная n основной части программы и параметр n в описании функции). При выполнении программы машина не путает имена этих переменных, так как области их действия не совпадают. Таким образом, программист может вводить в описание функции различные имена, не заглядывая в другие части программы, что особенно важ­но при написании больших программ.

Слайд 35





Написать функцию, подсчитывающую количество цифр целого  числа. Используя ее, определить, в каком из двух данных чисел больше цифр.

Для решения задачи вспомним, как подсчитать количество цифр?
Для этого можно выделять последнюю цифру до тех пор, пока число не станет равным нулю. При этом каждый раз надо увеличивать счетчик на 1 (начальное значение счетчика — 0). Тогда можно описать такую функцию:
Описание слайда:
Написать функцию, подсчитывающую количество цифр целого числа. Используя ее, определить, в каком из двух данных чисел больше цифр. Для решения задачи вспомним, как подсчитать количество цифр? Для этого можно выделять последнюю цифру до тех пор, пока число не станет равным нулю. При этом каждый раз надо увеличивать счетчик на 1 (начальное значение счетчика — 0). Тогда можно описать такую функцию:

Слайд 36





В заголовке функции указано ее имя — Zifr. Ей передается только один параметр — число, количество цифр которого надо найти. Результат — то же целое число. В разделе переменных описана переменная k — это счетчик цифр. В теле функции с помощью цикла While и выполняются указанные выше действия (увеличение значения счетчика и "удаление" последней цифры).

В заголовке функции указано ее имя — Zifr. Ей передается только один параметр — число, количество цифр которого надо найти. Результат — то же целое число. В разделе переменных описана переменная k — это счетчик цифр. В теле функции с помощью цикла While и выполняются указанные выше действия (увеличение значения счетчика и "удаление" последней цифры).

     Еще раз заметим, что память для переменной k, которая является локальной, выделяется только тогда, когда начинает свою работу функция. После завершения ее работы эта часть памяти снова освобождается и значение k будет не определено.
Описание слайда:
В заголовке функции указано ее имя — Zifr. Ей передается только один параметр — число, количество цифр которого надо найти. Результат — то же целое число. В разделе переменных описана переменная k — это счетчик цифр. В теле функции с помощью цикла While и выполняются указанные выше действия (увеличение значения счетчика и "удаление" последней цифры). В заголовке функции указано ее имя — Zifr. Ей передается только один параметр — число, количество цифр которого надо найти. Результат — то же целое число. В разделе переменных описана переменная k — это счетчик цифр. В теле функции с помощью цикла While и выполняются указанные выше действия (увеличение значения счетчика и "удаление" последней цифры). Еще раз заметим, что память для переменной k, которая является локальной, выделяется только тогда, когда начинает свою работу функция. После завершения ее работы эта часть памяти снова освобождается и значение k будет не определено.

Слайд 37


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №37
Описание слайда:

Слайд 38





 Домашнее задание
Ответить на вопросы:
Как описывается функция?
Каковы отличия функции от процедуры?
Указывается ли тип результата в Quick Basic?
Чем отличаются друг от друга формальные и фактические параметры?
Что такое область действия переменной?
Чем отличаются друг от друга глобальные и локальные параметры?
Описание слайда:
Домашнее задание Ответить на вопросы: Как описывается функция? Каковы отличия функции от процедуры? Указывается ли тип результата в Quick Basic? Чем отличаются друг от друга формальные и фактические параметры? Что такое область действия переменной? Чем отличаются друг от друга глобальные и локальные параметры?

Слайд 39


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №39
Описание слайда:

Слайд 40





Тема урока: Рекурсия. Примеры рекурсивного программирования
Проверка домашнего задания.
Как описывается функция?
Каковы отличия функции от процедуры?
Указывается ли тип результата в Quick Basic?
Чем отличаются друг от друга формальные и фактические параметры?
Что такое область действия переменной?
Чем отличаются друг от друга глобальные и локальные параметры?
Описание слайда:
Тема урока: Рекурсия. Примеры рекурсивного программирования Проверка домашнего задания. Как описывается функция? Каковы отличия функции от процедуры? Указывается ли тип результата в Quick Basic? Чем отличаются друг от друга формальные и фактические параметры? Что такое область действия переменной? Чем отличаются друг от друга глобальные и локальные параметры?

Слайд 41





Рекурсия
Подпрограммы в Turbo Pascal и Qbasic могут обращаться к самим к себе. Такое обращение называется рекурсией. Объект, который частично определяется через самого себя, называется  рекурсивным. 
Рекурсивные определения как мощный аналитический аппарат используются во многих областях науки, особенно в математике.  Для того чтобы не было бесконечного обращения подпрограммы к самой себе,  требуется наличие некоторого условия (условного оператора) в тексте программы, по достижении которого дальнейшее обращение не происходит. 
Таким образом, рекурсивное программирование может включаться только в одну из ветвей условного оператора, присутствующего  в подпрограмме.
Некоторые задачи являются рекурсивными по своему определению, поэтому  рекурсивные алгоритмы – это точные копии с соответствующего определения.
Описание слайда:
Рекурсия Подпрограммы в Turbo Pascal и Qbasic могут обращаться к самим к себе. Такое обращение называется рекурсией. Объект, который частично определяется через самого себя, называется рекурсивным. Рекурсивные определения как мощный аналитический аппарат используются во многих областях науки, особенно в математике. Для того чтобы не было бесконечного обращения подпрограммы к самой себе, требуется наличие некоторого условия (условного оператора) в тексте программы, по достижении которого дальнейшее обращение не происходит. Таким образом, рекурсивное программирование может включаться только в одну из ветвей условного оператора, присутствующего в подпрограмме. Некоторые задачи являются рекурсивными по своему определению, поэтому рекурсивные алгоритмы – это точные копии с соответствующего определения.

Слайд 42





Вычисление факториала натурального числа
Как правило, N! факториал определяют как произведение первых   N чисел:  N!=123   N, (так называемое итеративное определение). Такое произведение конечно можно легко вычислить с помощью оператора цикла, однако существует и другое определение факториала (рекурсивное):
Для того, чтобы вычислить N!, надо знать значение (N—1)! и умножить его на N, при этом 1!=1. В общем виде это можно записать так:
		 
Для вычисления факториала опишем функцию, которая будет вычислять его значение. Ей будет передаваться целое число, поэтому у нее есть только один параметр. Результат выполнения — тоже целое число. Например, можно описать такую функцию:
Описание слайда:
Вычисление факториала натурального числа Как правило, N! факториал определяют как произведение первых N чисел: N!=123   N, (так называемое итеративное определение). Такое произведение конечно можно легко вычислить с помощью оператора цикла, однако существует и другое определение факториала (рекурсивное): Для того, чтобы вычислить N!, надо знать значение (N—1)! и умножить его на N, при этом 1!=1. В общем виде это можно записать так: Для вычисления факториала опишем функцию, которая будет вычислять его значение. Ей будет передаваться целое число, поэтому у нее есть только один параметр. Результат выполнения — тоже целое число. Например, можно описать такую функцию:

Слайд 43





Вычисление факториала натурального числа
FUNCTION faсtorial 			Function   faсtorial 
(N AS INTEGER) 			(n:integer):longint;
						Begin
IF N = 1 THEN factorial = 1	if n=1 then factorial: =1 
ELSE factorial  = N * factorial	else 		
(N - 1)					factorial:=n*factorial 
						(n-1);
END IF
END FUNCTION			end;
Описание слайда:
Вычисление факториала натурального числа FUNCTION faсtorial Function faсtorial (N AS INTEGER) (n:integer):longint; Begin IF N = 1 THEN factorial = 1 if n=1 then factorial: =1 ELSE factorial = N * factorial else (N - 1) factorial:=n*factorial (n-1); END IF END FUNCTION end;

Слайд 44





Найдем 3!. Как же будет вычисляться факториал этого числа? Первый вызов этой функции будет из основной программы (Например, а:= factorial(3)), где переменной а присваиваем значение 3!).
Найдем 3!. Как же будет вычисляться факториал этого числа? Первый вызов этой функции будет из основной программы (Например, а:= factorial(3)), где переменной а присваиваем значение 3!).
При каждом обращении к функции будет появляться свой набор локальных переменных со своими значениями, в данном случае — переменная n, для которых выделяется память. А после завершения работы эта часть памяти освобождается и переменные удаляются. 
Так как N<>1, то пойдем по ветке Else и функции Factorial присваиваем значение n*Factorial(n—l), т. е. надо умножить 3 на значение функции Factorial(2). Поэтому обращаемся второй раз к этой же функции, но передаем ее новое значение параметра -2.
Описание слайда:
Найдем 3!. Как же будет вычисляться факториал этого числа? Первый вызов этой функции будет из основной программы (Например, а:= factorial(3)), где переменной а присваиваем значение 3!). Найдем 3!. Как же будет вычисляться факториал этого числа? Первый вызов этой функции будет из основной программы (Например, а:= factorial(3)), где переменной а присваиваем значение 3!). При каждом обращении к функции будет появляться свой набор локальных переменных со своими значениями, в данном случае — переменная n, для которых выделяется память. А после завершения работы эта часть памяти освобождается и переменные удаляются. Так как N<>1, то пойдем по ветке Else и функции Factorial присваиваем значение n*Factorial(n—l), т. е. надо умножить 3 на значение функции Factorial(2). Поэтому обращаемся второй раз к этой же функции, но передаем ее новое значение параметра -2.

Слайд 45





Так делаем до тех пор, пока не передадим значение, равное 1. Тогда N=1, а поэтому значение функции Factorial:=1. Таким образом, N=1 — это условие, по которому процесс входа в следующую рекурсию заканчивается. Идет возвращение в точку вызова и подстановка в оператор присвоения значения вычисленной функции. То есть возвращаемся в предыдущую функцию для n=2:Factorial:=n*Factorial(n-l), значит, Factorial:=2*1, следовательно, Factorial(2)=2. И возвращаемся дальше n=3: Factorial:=n*Factorial(n-l), значит, Factorial:=3*2*1, следовательно, Factorial(3)=6.. Таким образом, получаем значение Factorial(3)=6, это значение и присвоим переменной а.
Так делаем до тех пор, пока не передадим значение, равное 1. Тогда N=1, а поэтому значение функции Factorial:=1. Таким образом, N=1 — это условие, по которому процесс входа в следующую рекурсию заканчивается. Идет возвращение в точку вызова и подстановка в оператор присвоения значения вычисленной функции. То есть возвращаемся в предыдущую функцию для n=2:Factorial:=n*Factorial(n-l), значит, Factorial:=2*1, следовательно, Factorial(2)=2. И возвращаемся дальше n=3: Factorial:=n*Factorial(n-l), значит, Factorial:=3*2*1, следовательно, Factorial(3)=6.. Таким образом, получаем значение Factorial(3)=6, это значение и присвоим переменной а.
Описание слайда:
Так делаем до тех пор, пока не передадим значение, равное 1. Тогда N=1, а поэтому значение функции Factorial:=1. Таким образом, N=1 — это условие, по которому процесс входа в следующую рекурсию заканчивается. Идет возвращение в точку вызова и подстановка в оператор присвоения значения вычисленной функции. То есть возвращаемся в предыдущую функцию для n=2:Factorial:=n*Factorial(n-l), значит, Factorial:=2*1, следовательно, Factorial(2)=2. И возвращаемся дальше n=3: Factorial:=n*Factorial(n-l), значит, Factorial:=3*2*1, следовательно, Factorial(3)=6.. Таким образом, получаем значение Factorial(3)=6, это значение и присвоим переменной а. Так делаем до тех пор, пока не передадим значение, равное 1. Тогда N=1, а поэтому значение функции Factorial:=1. Таким образом, N=1 — это условие, по которому процесс входа в следующую рекурсию заканчивается. Идет возвращение в точку вызова и подстановка в оператор присвоения значения вычисленной функции. То есть возвращаемся в предыдущую функцию для n=2:Factorial:=n*Factorial(n-l), значит, Factorial:=2*1, следовательно, Factorial(2)=2. И возвращаемся дальше n=3: Factorial:=n*Factorial(n-l), значит, Factorial:=3*2*1, следовательно, Factorial(3)=6.. Таким образом, получаем значение Factorial(3)=6, это значение и присвоим переменной а.

Слайд 46





Программа вычисления факториала натурального числа
						Uses crt;
DEFINT N				Var n:integer; 
DEFLNG A				a:longint;
FUNCTION factorial  (N AS INTEGER)	function   factorial  						(n:integer):longint;
						 begin
IF N = 1 THEN factorial  = 1		if n=1 then factorial :=1 
 ELSE factorial = N * factorial (N - 1)     else factorial :=n*factorial 
						(n-1); 
END IF
END FUNCTION  			end;
						begin
CLS  					clrscr; 
INPUT "n="; N 			 	writeln('n='); readln(n);
A= factorial (N)				a:=factorial (n);
PRINT”A=”;A  				writeln('a=',a); 
						readln;
END					end.
Описание слайда:
Программа вычисления факториала натурального числа Uses crt; DEFINT N Var n:integer; DEFLNG A a:longint; FUNCTION factorial (N AS INTEGER) function factorial (n:integer):longint; begin IF N = 1 THEN factorial = 1 if n=1 then factorial :=1 ELSE factorial = N * factorial (N - 1) else factorial :=n*factorial (n-1); END IF END FUNCTION end; begin CLS clrscr; INPUT "n="; N writeln('n='); readln(n); A= factorial (N) a:=factorial (n); PRINT”A=”;A writeln('a=',a); readln; END end.

Слайд 47





Если для факториала, на первый взгляд,  рекурсивное определение выглядит сложнее чем итеративное, то для чисел Фибоначчи рекурсивное определение выглядит для вычисления лучше чем прямая формула.
Если для факториала, на первый взгляд,  рекурсивное определение выглядит сложнее чем итеративное, то для чисел Фибоначчи рекурсивное определение выглядит для вычисления лучше чем прямая формула.
	                 	 		рекурсивное определение
Описание слайда:
Если для факториала, на первый взгляд, рекурсивное определение выглядит сложнее чем итеративное, то для чисел Фибоначчи рекурсивное определение выглядит для вычисления лучше чем прямая формула. Если для факториала, на первый взгляд, рекурсивное определение выглядит сложнее чем итеративное, то для чисел Фибоначчи рекурсивное определение выглядит для вычисления лучше чем прямая формула. рекурсивное определение

Слайд 48





Нахождение НОД (наибольшего общего делителя) двух натуральных чисел
Способ нахождения этого значения - алгоритм Евклида. 
Пусть есть два целых числа а и b. 
Если а=b, то НОД(а,b)=а. 
Если а>b, то НОД(а,b)=НОД(а-b,b). 
Если а<b, то НОД(а,b)=НОД(а,b-а).
Например. Найдем наибольший общий делитель чисел 22 и 16.
Описание слайда:
Нахождение НОД (наибольшего общего делителя) двух натуральных чисел Способ нахождения этого значения - алгоритм Евклида. Пусть есть два целых числа а и b. Если а=b, то НОД(а,b)=а. Если а>b, то НОД(а,b)=НОД(а-b,b). Если а<b, то НОД(а,b)=НОД(а,b-а). Например. Найдем наибольший общий делитель чисел 22 и 16.

Слайд 49





Составим следующую функцию и программу:
						Uses crt;
DEFLNG A-B				 var a,b:longint;
FUNCTION nod (a AS LONG, 		function nod (a,b:longint): longint; 
b AS LONG)  
						begin
IF A = B THEN nod = A  			if a =b  then nod:=a
ELSE   					else 
IF A > B THEN				if a>b then nod:=nod(a - b,b) 
nod = nod (A - B, B):EXIT FUNCTION
ELSE nod = nod(A, B – A)		else nod:=nod (a, b- a) 
END IF
END FUNCTION				 end;
						begin 
 CLS					clrscr; 
INPUT "a,b="; A, B			writeln('a=b=');readln(a,b);
A = nod(A, B)				a:=nod(a,b); 
PRINT "nod="; A				writeln('nod= ',a);
						readln;
END					end
Описание слайда:
Составим следующую функцию и программу: Uses crt; DEFLNG A-B var a,b:longint; FUNCTION nod (a AS LONG, function nod (a,b:longint): longint; b AS LONG) begin IF A = B THEN nod = A if a =b then nod:=a ELSE else IF A > B THEN if a>b then nod:=nod(a - b,b) nod = nod (A - B, B):EXIT FUNCTION ELSE nod = nod(A, B – A) else nod:=nod (a, b- a) END IF END FUNCTION end; begin CLS clrscr; INPUT "a,b="; A, B writeln('a=b=');readln(a,b); A = nod(A, B) a:=nod(a,b); PRINT "nod="; A writeln('nod= ',a); readln; END end

Слайд 50





Перевод натурального числа из десятичной системы счисления в двоичную
Для решения этой задачи рассмотрим сначала, как перевести число из десятичной системы счисления в двоичную. Пусть есть число 39, которое и надо представить в двоичной системе. Для этого разделим его на 2, получим целую часть и остаток от деления. Целую часть снова делим на 2 и получаем целую часть и остаток. Так делаем до тех пор, пока целую часть можно делить на 2 (то есть пока она не станет,  равной 1).
Теперь, начиная с этой единицы, выписываем в обратном порядке все остатки от деления, это и будет запись числа 39 в двоичной системе счисления:   3910=1001112.
Таким образом можно переводить любое натуральное число из десятичной системы счисления в двоичную, а также и другие системы (например, восьмеричную или шестеричную).
Описание слайда:
Перевод натурального числа из десятичной системы счисления в двоичную Для решения этой задачи рассмотрим сначала, как перевести число из десятичной системы счисления в двоичную. Пусть есть число 39, которое и надо представить в двоичной системе. Для этого разделим его на 2, получим целую часть и остаток от деления. Целую часть снова делим на 2 и получаем целую часть и остаток. Так делаем до тех пор, пока целую часть можно делить на 2 (то есть пока она не станет, равной 1). Теперь, начиная с этой единицы, выписываем в обратном порядке все остатки от деления, это и будет запись числа 39 в двоичной системе счисления: 3910=1001112. Таким образом можно переводить любое натуральное число из десятичной системы счисления в двоичную, а также и другие системы (например, восьмеричную или шестеричную).

Слайд 51





						uses crt;
						uses crt;
DEFLNG N  				var n:longint;
SUB rec (N AS LONG) 			procedure  REC (n:longint);
						begin
IF N > 1 THEN rec (N \ 2)		if n>1  then rec(n div 2); 
PRINT N MOD 2;			write(n mod 2); 
END SUB 				end;
						begin
CLS 					clrscr;
INPUT "n="; N 			    	writeln('n=');readln(n); 
rec (N)					rec(n); 
						readln;
END					end.
Описание слайда:
uses crt; uses crt; DEFLNG N var n:longint; SUB rec (N AS LONG) procedure REC (n:longint); begin IF N > 1 THEN rec (N \ 2) if n>1 then rec(n div 2); PRINT N MOD 2; write(n mod 2); END SUB end; begin CLS clrscr; INPUT "n="; N writeln('n=');readln(n); rec (N) rec(n); readln; END end.

Слайд 52





Определить, является ли заданное натуральное число простым
Суть заключается в том, что если нельзя извлечь рекурсию из постановки задачи, то можно расширить задачу, обобщить ее (например, введя дополнительный параметр). Удачное обобщение дает возможность увидеть рекурсию. После этого возвращаемся к частному случаю и решаем исходную задачу.
Данную задачу можно обобщить, например, так: определить, верно ли, что заданное натуральное число N не  делится ни на одно число, большее или равное М, но меньшее N. При этом значения числа М находятся в промежутке от 2 до N. Истина может быть в двух случаях:
- Если M=N;
- N не делится на М и истина для чисел М+1 и N.
N не делится на М — это значит, что остаток от деления N на М не равен 0.
Описание слайда:
Определить, является ли заданное натуральное число простым Суть заключается в том, что если нельзя извлечь рекурсию из постановки задачи, то можно расширить задачу, обобщить ее (например, введя дополнительный параметр). Удачное обобщение дает возможность увидеть рекурсию. После этого возвращаемся к частному случаю и решаем исходную задачу. Данную задачу можно обобщить, например, так: определить, верно ли, что заданное натуральное число N не делится ни на одно число, большее или равное М, но меньшее N. При этом значения числа М находятся в промежутке от 2 до N. Истина может быть в двух случаях: - Если M=N; - N не делится на М и истина для чисел М+1 и N. N не делится на М — это значит, что остаток от деления N на М не равен 0.

Слайд 53





Программа определения, является ли заданное натуральное число простым.
						uses crt;
DEFINT M-N			 	var m,n,S:integer;
FUNCTION 				function prost 
Prost (M AS INTEGER, N AS INTEGER) 	(m,n:integer):boolean;  
						begin
IF N = M THEN prost = -1: EXIT		if n=m  then prost :=true 
FUNCTION
ELSE prost = (N MOD M <> 0) 		else prost:=(n mod m<>0) AND 				and 
prost(M + 1, N)				 prost(m+1,n); 
ЕND IF
END FUNCTION				 end; 
						begin
CLS 				          clrscr;
Описание слайда:
Программа определения, является ли заданное натуральное число простым. uses crt; DEFINT M-N var m,n,S:integer; FUNCTION function prost Prost (M AS INTEGER, N AS INTEGER) (m,n:integer):boolean; begin IF N = M THEN prost = -1: EXIT if n=m then prost :=true FUNCTION ELSE prost = (N MOD M <> 0) else prost:=(n mod m<>0) AND and prost(M + 1, N) prost(m+1,n); ЕND IF END FUNCTION end; begin CLS clrscr;

Слайд 54


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №54
Описание слайда:

Слайд 55


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №55
Описание слайда:

Слайд 56





Тема урока: Применение подпрограмм при решении задач

Ход урока.
I. Проверка домашнего задания.
Ответить на вопросы:
Чем отличаются друг от друга глобальные и локальные параметры?
Что такое рекурсия?
Как избавиться от бесконечного обращения подпрограммы к самой себе?
Все ли задачи можно  свести к рекурсивным? 
Проверка домашней задачи.
Найдите все простые числа от 2 до 50.
В предыдущей задаче заменить INPUT "n="; N на цикл FOR N=2 to 50
Описание слайда:
Тема урока: Применение подпрограмм при решении задач Ход урока. I. Проверка домашнего задания. Ответить на вопросы: Чем отличаются друг от друга глобальные и локальные параметры? Что такое рекурсия? Как избавиться от бесконечного обращения подпрограммы к самой себе? Все ли задачи можно свести к рекурсивным? Проверка домашней задачи. Найдите все простые числа от 2 до 50. В предыдущей задаче заменить INPUT "n="; N на цикл FOR N=2 to 50

Слайд 57





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

Слайд 58





В приведенной ниже программе процедура Init отвечает за заполнение массива случайными числами, процедура Print отвечает за вывод элементов массива.
					uses crt;
CONST c = 20			const c=20;
					type mas=array[1..c] of integer;
DIM A(C) AS INTEGER	var a: mas; 
DEFINT P			p:integer;
SUB init (M() AS INTEGER)	procedure init (var m: mas); 
DEFINT I			var i:integer; 
					begin
RANDOMIZE TIMER		randomize;
Описание слайда:
В приведенной ниже программе процедура Init отвечает за заполнение массива случайными числами, процедура Print отвечает за вывод элементов массива. uses crt; CONST c = 20 const c=20; type mas=array[1..c] of integer; DIM A(C) AS INTEGER var a: mas; DEFINT P p:integer; SUB init (M() AS INTEGER) procedure init (var m: mas); DEFINT I var i:integer; begin RANDOMIZE TIMER randomize;

Слайд 59


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №59
Описание слайда:

Слайд 60





 Функция Summa находит сумму элементов массива, процедура upor упорядочивает элементы массива.
 Для упорядочения элементов массива воспользуемся следующим алгоритмом: Берем первый элемент и сравниваем его со всеми последующими. Если они не равны, то меняем их местами и продолжаем сравнивать.
FUNCTION summa (M() AS INTEGER) 	function summa (var m: 					mas):integer;
DEFINT I, S 			  	var i,s:integer; 
				  	 	begin
 S = 0 				    	s:=0;
 FOR I = 1 TO C  			for i:=1 to c do 
 S = S + M(I) 			      	s:=s+m[i]; 
 NEXT  
Summa = S			      	summa:=s; 
END FUNCTION			   	end;
Описание слайда:
Функция Summa находит сумму элементов массива, процедура upor упорядочивает элементы массива. Для упорядочения элементов массива воспользуемся следующим алгоритмом: Берем первый элемент и сравниваем его со всеми последующими. Если они не равны, то меняем их местами и продолжаем сравнивать. FUNCTION summa (M() AS INTEGER) function summa (var m: mas):integer; DEFINT I, S var i,s:integer; begin S = 0 s:=0; FOR I = 1 TO C for i:=1 to c do S = S + M(I) s:=s+m[i]; NEXT Summa = S summa:=s; END FUNCTION end;

Слайд 61


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №61
Описание слайда:

Слайд 62





Вид основной программы
						begin
CLS   					clrscr; 
CALL init(A())  				init(a); 
CALL print(A()) 				print(a); 
PRINT    CALL upor(A()) 	 	upor(a); 
CALL print(A()) 				print(a); 
PRINT  					writeln; 
 p = summa(A()) 			p:=summa(a); 
PRINT "summa="; P 			writeln('s=',p);
						readln;
 END					end.
Описание слайда:
Вид основной программы begin CLS clrscr; CALL init(A()) init(a); CALL print(A()) print(a); PRINT CALL upor(A()) upor(a); CALL print(A()) print(a); PRINT writeln; p = summa(A()) p:=summa(a); PRINT "summa="; P writeln('s=',p); readln; END end.

Слайд 63





	Пример 2
Cоставить процедуру упорядочения массива.

Для упорядочения элементов массива воспользуемся следующим алгоритмом:
 Берем первый элемент и сравниваем его со всеми последующими. Если они не равны, то меняем их местами и продолжаем сравнивать.  В итоге на последнем месте окажется самый маленький (или самый большой) в зависимости от знака неравенства.
 Далее, берем второй элемент, третий и так до предпоследнего.
  SUB upor (M() AS INTEGER)
	  DEFINT I-J
	
 FOR I = 1 TO C – 1
 FOR J = I + 1 TO C
IF M(I) < M(J) THEN SWAP 
M(I), M(J)
NEXT J,I 
END SUB
Описание слайда:
Пример 2 Cоставить процедуру упорядочения массива. Для упорядочения элементов массива воспользуемся следующим алгоритмом: Берем первый элемент и сравниваем его со всеми последующими. Если они не равны, то меняем их местами и продолжаем сравнивать. В итоге на последнем месте окажется самый маленький (или самый большой) в зависимости от знака неравенства. Далее, берем второй элемент, третий и так до предпоследнего. SUB upor (M() AS INTEGER) DEFINT I-J FOR I = 1 TO C – 1 FOR J = I + 1 TO C IF M(I) < M(J) THEN SWAP M(I), M(J) NEXT J,I END SUB

Слайд 64





Составьте процедуру нахождения максимального элемента и его индекса в одномерном целочисленном массиве.
	Для решения задачи в процедуре задаем начальный максимум и его индекс. Например, первый элемент массива. Затем сравниваем максимум с каждым элементом массива и если найдем элемент, больший максимума, то перезапоминаем максимум и идем далее.

SUB MINMAX (M() AS INTEGER		Procedure minmax 	
MAX AS INTEGER, IND AS INTEGER) 	(m:mas; var
						max, ind:integer);
DEFINT I				var i:integer;
						begin 
MAX = M(1): IND = 1	 		max:=m[1];ind:=1;
FOR I = 1 TO C		 		for i:=1 to c do 
IF MAX <= M(I) THEN			if max<=m[i] then 
MAX = M(I): IND = I 			begin max:=m[i]; ind:=i; end;
NEXT
END SUB				 end;

В основной программе необходимо описать переменные MAX, IND.
Описание слайда:
Составьте процедуру нахождения максимального элемента и его индекса в одномерном целочисленном массиве. Для решения задачи в процедуре задаем начальный максимум и его индекс. Например, первый элемент массива. Затем сравниваем максимум с каждым элементом массива и если найдем элемент, больший максимума, то перезапоминаем максимум и идем далее. SUB MINMAX (M() AS INTEGER Procedure minmax MAX AS INTEGER, IND AS INTEGER) (m:mas; var max, ind:integer); DEFINT I var i:integer; begin MAX = M(1): IND = 1 max:=m[1];ind:=1; FOR I = 1 TO C for i:=1 to c do IF MAX <= M(I) THEN if max<=m[i] then MAX = M(I): IND = I begin max:=m[i]; ind:=i; end; NEXT END SUB end; В основной программе необходимо описать переменные MAX, IND.

Слайд 65





Составьте процедуры:
- заполнения целочисленного массива A(20) датчиком случайных чисел;
-печать массива;
- нахождение одинаковых элементов в массиве  с указанием их индексов.
 Первые две процедуры возьмем из предыдущих примеров.  Алгоритм нахождения одинаковых элементов состоит в следующем:
1. Каждый элемент массива, кроме последнего, (докажите почему) сравниваем со всеми идущими  после него. 
2. В случае нахождения одинаковых, печатаем их индексы.
SUB RAVN (M() AS INTEGER)	         procedure RAVN (var m: mas); 
DEFINT I-J 			 	var i,j:integer;
						 begin 
FOR I = 1 TO C - 1 		 	for i:=1 to c-1 do 
FOR J = I + 1 TO C 			 for j:=i+1 to c do 
IF M(I) = M(J) THEN PRINT I, J       if m[i]=m[j] then writeln (i,' ',j); 
NEXT NEXT
END SUB				end;
Описание слайда:
Составьте процедуры: - заполнения целочисленного массива A(20) датчиком случайных чисел; -печать массива; - нахождение одинаковых элементов в массиве с указанием их индексов. Первые две процедуры возьмем из предыдущих примеров. Алгоритм нахождения одинаковых элементов состоит в следующем: 1. Каждый элемент массива, кроме последнего, (докажите почему) сравниваем со всеми идущими после него. 2. В случае нахождения одинаковых, печатаем их индексы. SUB RAVN (M() AS INTEGER) procedure RAVN (var m: mas); DEFINT I-J var i,j:integer; begin FOR I = 1 TO C - 1 for i:=1 to c-1 do FOR J = I + 1 TO C for j:=i+1 to c do IF M(I) = M(J) THEN PRINT I, J if m[i]=m[j] then writeln (i,' ',j); NEXT NEXT END SUB end;

Слайд 66





 Домашнее задание.

Ответить на вопросы:
Чем отличаются друг от друга глобальные и локальные параметры?
Что такое рекурсия?
Как избавиться от бесконечного обращения подпрограммы к самой себе?
Все ли задачи можно  свести к рекурсивным? 
Как описывается функция?
Каковы отличия функции от процедуры?
Указывается ли тип результата в Quick Basic?
Чем отличаются друг от друга формальные и фактические параметры?
Что такое область действия переменной?
Описание слайда:
Домашнее задание. Ответить на вопросы: Чем отличаются друг от друга глобальные и локальные параметры? Что такое рекурсия? Как избавиться от бесконечного обращения подпрограммы к самой себе? Все ли задачи можно свести к рекурсивным? Как описывается функция? Каковы отличия функции от процедуры? Указывается ли тип результата в Quick Basic? Чем отличаются друг от друга формальные и фактические параметры? Что такое область действия переменной?

Слайд 67


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №67
Описание слайда:

Слайд 68





Тема урока: Применение подпрограмм при решении задач
Ход урока.
I. Проверка домашнего задания.
Ответить на вопросы:
Чем отличаются друг от друга глобальные и локальные параметры?
Что такое рекурсия?
Как избавиться от бесконечного обращения подпрограммы к самой себе?
Все ли задачи можно  свести к рекурсивным? 
 Как описывается функция?
  Каковы отличия функции от процедуры?
  Указывается ли тип результата в Quick Basic?
  Чем отличаются друг от друга формальные и фактические параметры?
 Что такое область действия переменной?
Описание слайда:
Тема урока: Применение подпрограмм при решении задач Ход урока. I. Проверка домашнего задания. Ответить на вопросы: Чем отличаются друг от друга глобальные и локальные параметры? Что такое рекурсия? Как избавиться от бесконечного обращения подпрограммы к самой себе? Все ли задачи можно свести к рекурсивным? Как описывается функция? Каковы отличия функции от процедуры? Указывается ли тип результата в Quick Basic? Чем отличаются друг от друга формальные и фактические параметры? Что такое область действия переменной?

Слайд 69






Дана строка, состоящая из слов разделенными одним пробелом.
Составить процедуру:
А) определяющую количество слов в строке;
Б) вывода на экран этих слов;
В) печатающие слова по возрастанию их длин;
Г) проверяющие  слова, являются ли они палиндромами.
Описание слайда:
Дана строка, состоящая из слов разделенными одним пробелом. Составить процедуру: А) определяющую количество слов в строке; Б) вывода на экран этих слов; В) печатающие слова по возрастанию их длин; Г) проверяющие слова, являются ли они палиндромами.

Слайд 70





Составляем процедуру определяющую количество слов в строке.
						Uses crt;
CONST N = 30				const n=30;
DIM B(N) AS STRING			type mas=array[1..n] of string;
						var  b:mas; 
DIM ST AS STRING			st:string;
DEFINT  K				k:integer;
	В процедуре разбиваем предложения на слова и считаем их количество.
SUB slowa (ST AS STRING, B() 		procedure slowa (st:string;var 
AS STRING,  K AS INTEGER) 		b:mas;var k:integer); 
DEFINT I				var i:integer; 
						begin;
K = 1					k:=1; 
FOR I = 1 TO LEN(ST) – 1  		for i:=1 to length(st)-1 do  begin
Описание слайда:
Составляем процедуру определяющую количество слов в строке. Uses crt; CONST N = 30 const n=30; DIM B(N) AS STRING type mas=array[1..n] of string; var b:mas; DIM ST AS STRING st:string; DEFINT K k:integer; В процедуре разбиваем предложения на слова и считаем их количество. SUB slowa (ST AS STRING, B() procedure slowa (st:string;var AS STRING, K AS INTEGER) b:mas;var k:integer); DEFINT I var i:integer; begin; K = 1 k:=1; FOR I = 1 TO LEN(ST) – 1 for i:=1 to length(st)-1 do begin

Слайд 71


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №71
Описание слайда:

Слайд 72


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №72
Описание слайда:

Слайд 73





Упорядочиваем массив слов по возрастанию их длин
Упорядочиваем массив слов по возрастанию их длин
SUB upor (B() AS STRING, 		Procedure upor (var b:mas); 
K AS INTEGER) 	 DEFINT I-J 		var i,j:integer;
						z:string;
						begin
FOR I = 1 TO K-1			for i:=1 to k-1 do 
FOR J = I + 1 TO K			for j:=i+1 to k do 
IF LEN(B(I))<=LEN(B(J))THEN SWAP B(I),B(J)
						if length(b[i])<=length(b[j]) 						then 
					 begin z:=b[i];b[i]:=b[j];b[j]:=z;end;
NEXT J, I
END SUB    				end;
Описание слайда:
Упорядочиваем массив слов по возрастанию их длин Упорядочиваем массив слов по возрастанию их длин SUB upor (B() AS STRING, Procedure upor (var b:mas); K AS INTEGER) DEFINT I-J var i,j:integer; z:string; begin FOR I = 1 TO K-1 for i:=1 to k-1 do FOR J = I + 1 TO K for j:=i+1 to k do IF LEN(B(I))<=LEN(B(J))THEN SWAP B(I),B(J) if length(b[i])<=length(b[j]) then begin z:=b[i];b[i]:=b[j];b[j]:=z;end; NEXT J, I END SUB end;

Слайд 74





 Проверяем слова, являются ли они палиндромами.
SUB palindrom (B() AS STRING, 	procedure palindrom 
K AS INTEGER)				(var b:mas;var k:integer);
DEFINT I-J				var i,j:integer; 
DEFSTR Z				z:string; 
						label 10;
						begin
FOR I = 1 TO K				for i:=1 to k do begin 
Z = B(I)				z:=b[i]; 
FOR J = 1 TO LEN(B(I))			for j:=1 to length (b[i])  do
IF MID$(Z, J, 1) <> MID$		if z[j]<>z[length(b[i])-j+1]
(Z, LEN(B()) - J + 1, 1) 			then 
THEN PRINT z; " не палиндром": 	begin writeln(z,
GOTO 10				‘не палиндром'); goto 10;end;
NEXT 
PRINT Z; " палиндром“			writeln(z,'  палиндром');
10 NEXT				10:   end; 
END SUB				end;
						begin
CLS					clrscr; 
INPUT "предложение"; st 		write('st=');readln(st);
Описание слайда:
Проверяем слова, являются ли они палиндромами. SUB palindrom (B() AS STRING, procedure palindrom K AS INTEGER) (var b:mas;var k:integer); DEFINT I-J var i,j:integer; DEFSTR Z z:string; label 10; begin FOR I = 1 TO K for i:=1 to k do begin Z = B(I) z:=b[i]; FOR J = 1 TO LEN(B(I)) for j:=1 to length (b[i]) do IF MID$(Z, J, 1) <> MID$ if z[j]<>z[length(b[i])-j+1] (Z, LEN(B()) - J + 1, 1) then THEN PRINT z; " не палиндром": begin writeln(z, GOTO 10 ‘не палиндром'); goto 10;end; NEXT PRINT Z; " палиндром“ writeln(z,' палиндром'); 10 NEXT 10: end; END SUB end; begin CLS clrscr; INPUT "предложение"; st write('st=');readln(st);

Слайд 75


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №75
Описание слайда:

Слайд 76





Составить процедуру для заполнения двумерного массива целыми случайными числами. 
Составить процедуру для заполнения двумерного массива целыми случайными числами. 
Найти: 
первый отрицательный элемент;
максимальный элемент массива;
одинаковые элементы массива;
поменять местами первый отрицательный и максимальный элемент.
Для решения этой задачи составим соответствующие процедуры.
Описание слайда:
Составить процедуру для заполнения двумерного массива целыми случайными числами. Составить процедуру для заполнения двумерного массива целыми случайными числами. Найти: первый отрицательный элемент; максимальный элемент массива; одинаковые элементы массива; поменять местами первый отрицательный и максимальный элемент. Для решения этой задачи составим соответствующие процедуры.

Слайд 77





Процедура заполнения массива целыми случайными числами
Начало основной программы
						uses crt;
CONST C = 3				const c=3;
DIM A(C, C) AS INTEGER		type mas=array[1..c,1..c] 					of integer;
						var a:mas;
DEFINT D, F, I-J, M			max,im,jm:integer;
						io,jo,f:integer;
Описание слайда:
Процедура заполнения массива целыми случайными числами Начало основной программы uses crt; CONST C = 3 const c=3; DIM A(C, C) AS INTEGER type mas=array[1..c,1..c] of integer; var a:mas; DEFINT D, F, I-J, M max,im,jm:integer; io,jo,f:integer;

Слайд 78


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №78
Описание слайда:

Слайд 79





Процедура вывода массива на экран
	SUB PRIN (M() AS INTEGER)	procedure PRINT(m:mas);
	DEFINT I-J				var I,J:integer;
						begin
	FOR I = 1 TO C			FOR i:= 1 TO c do begin
	FOR J = 1 TO C			FOR j:= 1 TO c   do
	PRINT M(I, J); " ";		 	write( m[i, j]:4);
	NEXT
	PRINT				writeln;
	NEXT				end;
	END SUB				end;
Описание слайда:
Процедура вывода массива на экран SUB PRIN (M() AS INTEGER) procedure PRINT(m:mas); DEFINT I-J var I,J:integer; begin FOR I = 1 TO C FOR i:= 1 TO c do begin FOR J = 1 TO C FOR j:= 1 TO c do PRINT M(I, J); " "; write( m[i, j]:4); NEXT PRINT writeln; NEXT end; END SUB end;

Слайд 80





Процедура нахождения одинаковых элементов  в массиве
	SUB odinak (M() AS INTEGER)	procedure odinak (m :mas);
	DEFINT I-L				var I,j,k,l:integer;
						begin
	FOR I = 1 TO C			 FOR i:= 1 TO c do
	FOR J = 1 TO c			 FOR j:= 1 TO c    do
	‘PRINT I; J; "=";			 {PRINT i; j; "=";}
	FOR K = 1 TO C			 FOR k:= 1 TO c   do
	FOR L = 1 TO C			 FOR l:= 1 TO c do
IF ((I <> K) OR (J <> L)) AND               IF ((i <> k) OR (j <> l)) AND
(M(I, J) = M(K, L)) 		             (m[i, j] = m[k, l]) 
THEN PRINT K; L; 		             THEN write (i,j,' ', k, l,'  ');
	NEXT L, K
	NEXT J, I
	END SUB					 END;
Описание слайда:
Процедура нахождения одинаковых элементов в массиве SUB odinak (M() AS INTEGER) procedure odinak (m :mas); DEFINT I-L var I,j,k,l:integer; begin FOR I = 1 TO C FOR i:= 1 TO c do FOR J = 1 TO c FOR j:= 1 TO c do ‘PRINT I; J; "="; {PRINT i; j; "=";} FOR K = 1 TO C FOR k:= 1 TO c do FOR L = 1 TO C FOR l:= 1 TO c do IF ((I <> K) OR (J <> L)) AND IF ((i <> k) OR (j <> l)) AND (M(I, J) = M(K, L)) (m[i, j] = m[k, l]) THEN PRINT K; L; THEN write (i,j,' ', k, l,' '); NEXT L, K NEXT J, I END SUB END;

Слайд 81





Процедура нахождения первого отрицательного элемента
SUB otr (M() AS INTEGER, IO, 		procedure otr (var m:mas; 
JO AS INTEGER) 			var io,jo:integer);
DEFINT I-J				var I,J:integer;
						begin
FOR I = 1 TO C				FOR i:= 1 TO c do begin
FOR J = 1 TO C			    	FOR j:= 1 TO c do
IF M(I, J) < 0 THEN IO = I:		IF m[i, j] < 0 THEN begin io:= i; 
JO = J: EXIT SUB			jo:= j; EXIT;end;
NEXT
NEXT					End;
END SUB				end;
Описание слайда:
Процедура нахождения первого отрицательного элемента SUB otr (M() AS INTEGER, IO, procedure otr (var m:mas; JO AS INTEGER) var io,jo:integer); DEFINT I-J var I,J:integer; begin FOR I = 1 TO C FOR i:= 1 TO c do begin FOR J = 1 TO C FOR j:= 1 TO c do IF M(I, J) < 0 THEN IO = I: IF m[i, j] < 0 THEN begin io:= i; JO = J: EXIT SUB jo:= j; EXIT;end; NEXT NEXT End; END SUB end;

Слайд 82





Процедура нахождения максимального  элемента  массива
SUB maxmin (M() AS INTEGER, 		procedure maxmin (var m:mas; 
MAX, IM, JM AS INTEGER) 		var max,im,jm:integer);
DEFINT I-J				var  I,J:integer;
						begin
Max = N(1, 1): IM = 1: JM = 1  		max:= m[1,1]; im:=1; jm:=1;
FOR I = 1 TO C		   		FOR i:= 1 TO c do begin
FOR J = 1 TO C			     	FOR j:= 1 TO c do
IF max <= M(I, J) THEN 		IF max <= m[i, j] THEN begin 
max = M(I, J): IM = I: JM = J: 		max:= m[i, j]; im:= i; jm:= j; 
'exit do					{exit;};end;
NEXT
NEXT				    	End;
END SUB				End;
Описание слайда:
Процедура нахождения максимального элемента массива SUB maxmin (M() AS INTEGER, procedure maxmin (var m:mas; MAX, IM, JM AS INTEGER) var max,im,jm:integer); DEFINT I-J var I,J:integer; begin Max = N(1, 1): IM = 1: JM = 1 max:= m[1,1]; im:=1; jm:=1; FOR I = 1 TO C FOR i:= 1 TO c do begin FOR J = 1 TO C FOR j:= 1 TO c do IF max <= M(I, J) THEN IF max <= m[i, j] THEN begin max = M(I, J): IM = I: JM = J: max:= m[i, j]; im:= i; jm:= j; 'exit do {exit;};end; NEXT NEXT End; END SUB End;

Слайд 83





Основная программа имеет вид.
Она становится компактной и легко читаемой
						begin
CLS					clrscr;
CALL init(A())				init(a);
CALL PRIN(A())				PRINT(a);
CALL odinak(A())			odinak(a);
PRINT				    	writeln;
CALL otr(A(), IO, JO)			otr(a, io, jo);
PRINT "1-ый отр = "; A(IO, JO),	writeln('1-ый отр = ', a[io, jo], 
IO; JO	  				‘ ‘, io, jo);
CALL maxmin(A(), max, IM, JM) 	maxmin(a, max, im, jm);
PRINT "max="; max, im; jm	           writeln('max=', max,'  ', im, jm);
Описание слайда:
Основная программа имеет вид. Она становится компактной и легко читаемой begin CLS clrscr; CALL init(A()) init(a); CALL PRIN(A()) PRINT(a); CALL odinak(A()) odinak(a); PRINT writeln; CALL otr(A(), IO, JO) otr(a, io, jo); PRINT "1-ый отр = "; A(IO, JO), writeln('1-ый отр = ', a[io, jo], IO; JO ‘ ‘, io, jo); CALL maxmin(A(), max, IM, JM) maxmin(a, max, im, jm); PRINT "max="; max, im; jm writeln('max=', max,' ', im, jm);

Слайд 84


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №84
Описание слайда:

Слайд 85





Контрольная работа
 Вариант 1    		
Найти сумму цифр числа.
Среди чисел из интервала от А до В найти все простые.
Каждый элемент одномерного массива A(K), заполненного натуральными числами, замените наибольшим простым делителем этого элемента.
Описание слайда:
Контрольная работа Вариант 1 Найти сумму цифр числа. Среди чисел из интервала от А до В найти все простые. Каждый элемент одномерного массива A(K), заполненного натуральными числами, замените наибольшим простым делителем этого элемента.

Слайд 86


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №86
Описание слайда:

Слайд 87





 Ответы к контрольной работе:
Вариант 1    		
Тест: 12           			Ответ 3 		
     Тест: 347  				Ответ 14
2. Тест: А=2  В=10     			Ответ 3,5,7
3. Тест: К=5        6, 7, 10, 32, 5    		Ответ:  3, 7,  5,  2,  5	 
        Вариант 2 
1. Тест: 12721        			Ответ:  палиндром 
      Тест: 127            			Ответ:  не палиндром
2. Тест: 6, 28, 496 			Ответ:  совершенное
    Тест: 7    				Ответ:  не совершенное
3. Тест: К=5    34, 64, 295, 24, 100    	Ответ:  19	 
   Тест: К=3    6, 7, 10       	 	Ответ:  7	 
      Вариант 3
1. Тест: N=3    25,  730, 1995		Ответ:  7
2. Тест: 6				Ответ:  1 2 3
     Тест: 36				Ответ:  2 2 3 3
3.  Тест: К=7   5, 6, 7, 10, 1, 3, 2   	Ответ:  3	 
      Вариант 4	
1. Тест: N=3 				Ответ:  105, 108, 110	 
2. Тест: (0, 0),  (0,4),  (3,0)		Ответ:  3, 4, 5	 
3. Тест: К=7   5, 6, 7, 10, 1, 3, 2 		Ответ:  1, 6, 3,10, 5, 3, 7
Описание слайда:
Ответы к контрольной работе: Вариант 1 Тест: 12 Ответ 3 Тест: 347 Ответ 14 2. Тест: А=2 В=10 Ответ 3,5,7 3. Тест: К=5 6, 7, 10, 32, 5 Ответ: 3, 7, 5, 2, 5 Вариант 2 1. Тест: 12721 Ответ: палиндром Тест: 127 Ответ: не палиндром 2. Тест: 6, 28, 496 Ответ: совершенное Тест: 7 Ответ: не совершенное 3. Тест: К=5 34, 64, 295, 24, 100 Ответ: 19 Тест: К=3 6, 7, 10 Ответ: 7 Вариант 3 1. Тест: N=3 25, 730, 1995 Ответ: 7 2. Тест: 6 Ответ: 1 2 3 Тест: 36 Ответ: 2 2 3 3 3. Тест: К=7 5, 6, 7, 10, 1, 3, 2 Ответ: 3 Вариант 4 1. Тест: N=3 Ответ: 105, 108, 110 2. Тест: (0, 0), (0,4), (3,0) Ответ: 3, 4, 5 3. Тест: К=7 5, 6, 7, 10, 1, 3, 2 Ответ: 1, 6, 3,10, 5, 3, 7

Слайд 88





Задачи для самостоятельного решения
Вариант 1    		
Используя процедуру, вычислить значение выражения:
y=a1x4+a2x3+a3x2+a4x+a5, где коэффициенты a1, а2, а3, а4, а5 и х — это числа, вводимые с клавиатуры.
Определить, является ли число простым.
Даны действительные числа S и T. Получить   F(t,  -2*s,  1.17) + F(2.2,  t,  t-s),   где   F(A,B,C) = (2*A – B - SIN(C))/ (5+ABS(C)).
Описание слайда:
Задачи для самостоятельного решения Вариант 1 Используя процедуру, вычислить значение выражения: y=a1x4+a2x3+a3x2+a4x+a5, где коэффициенты a1, а2, а3, а4, а5 и х — это числа, вводимые с клавиатуры. Определить, является ли число простым. Даны действительные числа S и T. Получить F(t, -2*s, 1.17) + F(2.2, t, t-s), где F(A,B,C) = (2*A – B - SIN(C))/ (5+ABS(C)).

Слайд 89


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №89
Описание слайда:

Слайд 90





  
Вариант 5	
Составить программу, вычисляющую наименьшее общее кратное четырех заданных с кла­виатуры чисел.
Определить, является ли число совершенным, то есть равно ли оно сумме своих делителей, кроме самого себя 
Даны действительные числа S,T.  Получить   H(s,t) +  max(H(s-t, s*t)2,  H(s-t, s+t)4) + H(1,1),     
             где H(A,B) = A/(1+A2) + B/(1+B2)-(A2-B2)

Вариант 6	
Составить программу нахождения наибольшего общего делителя нескольких чисел, используя функцию нахождения НОД двух чисел.
Сколько натуральных чисел от 20 до 120 не взаимно простых с 30?
Даны натуральное число N.  Среди чисел 1,2, ..., N найти все, которые можно представить в виде суммы квадратов двух натуральных чисел.  (Определить процедуру, позволяющую распознавать полные квадраты.)
Описание слайда:
Вариант 5 Составить программу, вычисляющую наименьшее общее кратное четырех заданных с кла­виатуры чисел. Определить, является ли число совершенным, то есть равно ли оно сумме своих делителей, кроме самого себя Даны действительные числа S,T. Получить H(s,t) + max(H(s-t, s*t)2, H(s-t, s+t)4) + H(1,1), где H(A,B) = A/(1+A2) + B/(1+B2)-(A2-B2) Вариант 6 Составить программу нахождения наибольшего общего делителя нескольких чисел, используя функцию нахождения НОД двух чисел. Сколько натуральных чисел от 20 до 120 не взаимно простых с 30? Даны натуральное число N. Среди чисел 1,2, ..., N найти все, которые можно представить в виде суммы квадратов двух натуральных чисел. (Определить процедуру, позволяющую распознавать полные квадраты.)

Слайд 91


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №91
Описание слайда:

Слайд 92





Вариант 9	
Вариант 9	
1. Даны три натуральных числа. Найдите НОД наибольшего и наименьшего из этих чисел.
2. Найти натуральные числа с 2 до 1000 такие, что числа М,М+10, М+14 все были простыми.
3. Дано четное число N.  Проверить для этого числа гипотезу Гольдбаха. Эта гипотеза (по сегодняшний день не опровергнутая и полностью недоказанная) заключается в том,  что каждое четное N>=2, представляется в виде суммы двух простых чисел.  (Определить процедуру распознавания простых чисел)
Вариант 10	
1. Имеется трехзначное число, цифры которого различны. После зачеркивания в нем средней цифры остается двузначное число, являющееся делителем данного. Найдите все такие трехзначные числа.
2. Найти все простые натуральные числа от 2 до 1000, чтобы числа 2*P2+1 также были простые. 
3. Дано натуральное число N. Выяснить имеются ли среди чисел N, N+1, ...2*N близнецы, т.е. простые числа, разность между которыми равна двум. (Определить процедуру распознавания простых чисел)
Описание слайда:
Вариант 9 Вариант 9 1. Даны три натуральных числа. Найдите НОД наибольшего и наименьшего из этих чисел. 2. Найти натуральные числа с 2 до 1000 такие, что числа М,М+10, М+14 все были простыми. 3. Дано четное число N. Проверить для этого числа гипотезу Гольдбаха. Эта гипотеза (по сегодняшний день не опровергнутая и полностью недоказанная) заключается в том, что каждое четное N>=2, представляется в виде суммы двух простых чисел. (Определить процедуру распознавания простых чисел) Вариант 10 1. Имеется трехзначное число, цифры которого различны. После зачеркивания в нем средней цифры остается двузначное число, являющееся делителем данного. Найдите все такие трехзначные числа. 2. Найти все простые натуральные числа от 2 до 1000, чтобы числа 2*P2+1 также были простые. 3. Дано натуральное число N. Выяснить имеются ли среди чисел N, N+1, ...2*N близнецы, т.е. простые числа, разность между которыми равна двум. (Определить процедуру распознавания простых чисел)

Слайд 93





Вариант 11	
Вариант 11	
Найдите все трехзначные числа, кратные семи, у которых сумма цифр тоже кратна семи, Если найденное число оканчивается нечетной цифрой, то определите, будет ли оно простым числом.
Проверьте утверждение: если числа Р и 8*Р2+1 простые, то число 8*P2+2*P+1 также простое. (2 <= Р<=100).
Для данного простого числа Р найдите следующее простое число.
Описание слайда:
Вариант 11 Вариант 11 Найдите все трехзначные числа, кратные семи, у которых сумма цифр тоже кратна семи, Если найденное число оканчивается нечетной цифрой, то определите, будет ли оно простым числом. Проверьте утверждение: если числа Р и 8*Р2+1 простые, то число 8*P2+2*P+1 также простое. (2 <= Р<=100). Для данного простого числа Р найдите следующее простое число.

Слайд 94


понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур и функций, слайд №94
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию