Скачать 0.64 Mb.
|
ТЕМА №6: ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ TURBO-PASCAL. ПРОЦЕДУРЫ. ФУНКЦИИ. СОСТАВЛЕНИЕ ПРОГРАММ С ИСПОЛЬЗОВАНИЕ ПРОЦЕДУР И ФУНКЦИЙ. РЕКУРСИЯ.ПРОГРАММНО - ДИДАКТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ: ЭВМ типа IBM. Turbo-Pascal 5. ЦЕЛИ И ЗАДАЧИ: Дать основные понятия подпрограмм (процедур и функций). Познакомить с видами формальных параметров: параметры-значения, параметры-переменные. Научить различать фактические и формальные параметры. Знакомство с понятием рекурсии. Выработка навыков составления программ с использованием процедур и функций. ТРЕБОВАНИЯ К ЗНАНИЯМ И УМЕНИЯМ: Учащиеся должны знать:
Учащиеся должны уметь:
ПЛАН-СОДЕРЖАНИЕ УРОКА Подпрограммы. Автономная часть программы, с помощью которой можно производить одни и те же вычисления, с разными исходными данными и в различных местах программы, многократно, называется подпрограммой. Виды подпрограмм: процедуры и функции. Процедуры. Процедура (подпрограмма) – многократно повторяющаяся часть программы, оформленная отдельно от основной программы. Место расположения процедур в программах - Раздел описаний, за описание переменных. Преимущества использования процедур - уменьшение объем программы, сокращение времени на отладку. Принцип работы процедуры: Выполнение программы начинается с выполнения основной части программы. Как только появляется необходимость в выполнении процедуры, она вызывается по имени с передачей входных данных. После выполнения процедура передает в основную часть программы выходных данных (результатов), в то место, откуда была вызвана процедура. Затем продолжается выполнение основной части программы. Процедура оформляется подобно основной программе:
Procedure имя (формальные параметры); Раздел описаний Begin Раздел операторов End; Все переменные, представленные в разделе описаний основной программы называются глобальными. Они действуют как в разделе операторов основной программы, так и в любой подпрограмме. Параметры (переменные), определяемые при описании процедуры называются формальными. Параметры (переменные), задаваемые при вызове процедуры называются фактическими. Формальные параметры (переменные, описываемые в процедуре) делятся на параметры - значения и параметры - переменные Параметры-значения – передают информацию только в процедуру (входные), описываются как переменные с указанием типа (без зарезервированного слова Var). Параметры-переменные – передают информацию, как в процедуру, так и обратно (выходные), их описание начинается со слова Var, затем следует список переменных с указанием типа. Пример: Procedure sterline (len: integer); - параметры-значения. Procedure stl (l: integer, Var n integer); - параметры-значения и параметры – переменные. Формальные параметра описываются только в заголовке процедуры. Формальные параметры никогда не описываются в разделе описаний процедуры. Если в процедуре используются переменные, отличные от формальных параметров, их необходимо обязательно описать в разделе описания процедуры. Вызов процедуры подобно специальным операторам происходит по имени с указанием фактических параметров, например: stl (а, n); Имена фактических параметров могут не совпадать с именами формальных параметров, но они должны соответствовать друг другу по типу. Формальные параметры описываются в разделе описания основной программы и до вызова процедуры должны получить значения. Пример использования процедур: Написать программу, которая выводит на экран строку, состоящую из заданного числа звездочек. Использовать процедуру. Uses crt; Var n: integer; Procedure sterline (var len: integer); Var i:integer; Begin For i:=1 to len do Write (‘*’); End; Begin Write(‘Введите количество звездочек’); Readln(n); Sterline (n); Readln; End. Функции. Функция, как и процедура, может содержать несколько операторов, несколько входных (и только) параметров, но результат получается только один. Этот единственный результат обозначается именем функции и передается в основную программу. В общем виде функция записывается в разделе описания основной программы следующим образом: Function имя (формальные параметры):тип; Раздел описаний Begin Операторы Имя:= … End; Поскольку результат обозначается именем функции, то после формальных параметров указывается тип функции, который должен совпадать с типом результата вычислений. В конце описания функции имени функции обязательно присваивается какое-то значение. Вызывается функция по ее имени с указанием фактических параметров. Функция может использоваться в операторах присваивания, условных операторах и т.п. Например, Res:=Compare(x1,x2); Пример использования функций: Написать программу, которая с помощью функции сравнивает два целых числа и выводит результат сравнения в виде одного из знаков: >,<,= Uses crt; Var x1,x2:real; res:char; Function Compare (a,b: real):char; Begin If a>b then Compare:=’>’ else if a End; Begin Writeln (‘Введите числа’); Readln(x1,x2); Res:=Compare(x1,x2); Writeln(x1:6:2, res,x2:6:2); Readln; end. Рекурсия. Рекурсия – это вывоз подпрограммой (процедурой или функцией) самой себя. Рассмотрим построение рекурсивной функции на примере вычисления N!. При правильно организованной рекурсивной подпрограммы осуществляется многократный переход от некоторого текущего уровня организации алгоритма к низшему уровню последовательно до тех пор, пока не будет получено тривиальное решение поставленной задачи. PROGRAM DEMO1; USES CRT; VAR M:BYTE; FUNCTION FAKT(N:BYTE):LONGINT; BEGIN IF N=1 THEN FAKT:=1 ELSE FAKT:=FAKT(N-1)*N; END; BEGIN CLRSCR; WRITE('N-');READLN(M); WRITELN('N!=',FAKT(M)); READKEY; END. В нашем примере происходит так: в операторе печати вызывается функция FAKT с параметрам N, которая в свою очередь вызывает функцию FAKT с параметрам N-1, и так далее, пока не вызывается FAKT(1). Тогда это процесс останавливается, затем происходить извлечение результата в обратном порядке. Это хорошо видно на следующем примере программы:
Рекурсивная форма организации алгоритма обычно выглядит изящнее итерационной и дает более компактный текст программы, но при выполнении, как правили, медленнее и может вызвать переполнение стека. Стек – это специальная область памяти (конечное число ячеек), где сохраняется адреса возврата (адрес вызывающей программы, используется для передачи управления вызывающей программе). Стеки используются так же для передачи параметров в процедуры (для обычных параметров в стек заносятся их значения, для параметров-переменных – их адреса), размер стек ограничен. Стек можно представить в виде стопки книг. Если стопка достигла максимального размера, то при добавлении новой книги сверху – нижняя книга должна быть убрана. Нужно обязательно отслеживать в программе наполнение стека, то есть не допускать зацикливания рекурсии. Рекурсивный вызов может быть косвенным. В этом случае программа обращается к себе опосредованно, путем вызова другой программы, в которой содержится обращение к первой. При использовании такого подхода нужно использовать опережающее описание. Опережающее описание заключается в том, что объявляется лишь заголовок процедуры, а ее тело заменяется директивой FORWARD. После этого можно в другой процедуре использовать обращение к ней – ведь компилятор уже может правильным образом организовать ее вызов. Обратите внимание: тело второй процедуры описывается после первой и начинается заголовком, в котором уже не указываются описанные ранее формальные параметры. Пример: PROCEDURE B( J:BYTE);FORWARD; {тело процедуры заменено директивой FORWARD } PROCUDURE A( I:BYTE); BEGIN … B(I); … END; PROCEDURE B; BEGIN … A(J); … END; Примеры программ с процедурами и функциями: При составлении программ обязательно использовать процедуры или функцию.
Примеры программ с использованием рекурсий:
Написать рекурсивную функцию вычисления суммы 1+2+3+4+5+…+N: PROGRAM DEMO5; USES CRT; VAR M:WORD; FUNNCTION SUM(N:WORD):LONGINT; BEGIN IF N=1 THEN SUM:=1 ELSE SUM:=SUM(N-1)+N; END; BEGIN WRITE(‘N-‘);READLN(M); WRITELN(‘СУММА -’,SUM(M)); READKEY;END.
5>4> |
Анкета диагностика эффективности применения проектной деятельности,... «Работа с графикой», «Программирование на языке «Turbo Pascal», «Графика языка Turbo Pascal», «Логические функции ms excel» | Усвоить понятие программы, структуры программы на языке Turbo Pascal,... На прошлых уроках мы познакомились с понятием алгоритма и основами алгоритмизации. Давайте вспомним, что такое алгоритм, какими свойствами... | ||
«Разработка алгоритмов и программирование на языке Pascal» Лабораторный практикум содержит методические указания к выполнению лабораторных работ по алгоритмизации и программированию на языке... | Реферат по теме Понятие алгоритма, его свойства. Описание алгоритмов... Понятие алгоритма, его свойства. Описание алгоритмов с помощью блок схем на языке Turbo Pascal | ||
Пояснительная записка Элективный курс «Основы программирования на языке Turbo Pascal» Изучение курса позволяет учащимся более полно выявить свои способности в изучаемой области знаний, создать предпосылки по применению... | Аннотация в настоящем докладе обсуждаются возможные способы преобразования... Динамическая эквивалентность как способ преодоления различий в национальных картинах мира | ||
Рабочая программа учебной дисциплины «Русский язык» Спо 230401 Информационные системы (по отраслям) предусматривает изучение следующих учебных циклов: общеобразовательного; общего гуманитарного... | Краткие рекомендации для педагога Полное название разработки Сборник... Фундаментальные основы здоровья и профилактика заболеваний учащихся и преподавателей | ||
Программа по формированию навыков безопасного поведения на дорогах... Если учебная дисциплина сформирована за счет вариативной части циклов опоп, ее индекс и наименование не должны совпадать с индексом... | Урока по информатике в 9 классе. Тема урока: Команды цикла, языка Паскаль Задачи урока: ввести понятие циклических повторений в программе, установить связь между тремя видами циклов, создание алгоритмов... | ||
Тема: разветвляющийся вычислительный процесс. Оператор выбора Цель: Познакомить со структурой оператора выбора case и научить использовать его при составлении программ на языке Pascal | Тема урока: «Составление линейных программ для решения задач на применение... Повторить и обобщить знания о свойствах, типах, способах построения алгоритмов, этапах решения задач, о работе операторов input,... | ||
Угринович Н. Д. Информатика и икт. Профильный уровень: учебник для 10 класса Егэ» увеличено количество часов за счет уменьшения количества часов на темы «Моделирование и формализация» и «Информационное общество».... | «Динамическое Web-Программирование» Целью курса "Динамическое Web-Программирование" является изучение принципов разработки приложений, работающих в среде Интернет и... | ||
Рабочие учебные программы циклов тематического усовершенствования... Рабочая программа составлена на основе образовательного стандарта послевузовской профессиональной подготовки специалистов | Программа по формированию навыков безопасного поведения на дорогах... Планирование составлено на основе авторской программы курса 8-го класса Информатика и икт «Алгоритмизация и программирование на языке... |