Подпрограммы 1 Определение подпрограммы. 2 Процедуры 3 Функции 4 Практическая работа.

Презентация:



Advertisements
Похожие презентации
Подпрограммы: процедуры и функции Информатика. 1. Подпрограммы При решении различных задач часто возникает необходимость проводить вычисления по одним.
Advertisements

ЗАПИСЬ ВСПОМОГАТЕЛЬНЫХ АЛГОРИТМОВ НА ЯЗЫКЕ Паскаль НАЧАЛА ПРОГРАММИРОВАНИЯ.
© М.Е.Макарова
Процедуры и функции Вербицкая Ольга Владимировна, Заозерная школа 16.
Шутилина Л.А. Процедуры в Turbo Pascal ( часть 1: процедуры с параметрами)
Все процедуры и функции делятся на стандартные встроенные определенные пользователем. Встроенные и стандартные вызываются без предварительного описания.
Что такое структурный подход в программировании? Как он реализуется в ЯП Паскаль? Что такое процедура? Кто дает название процедуре? Где записывается процедура?
Подпрограммы в Паскале.
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 5.
Подпрограммы -это повторяющаяся группа операторов, оформленная в виде самостоятельной программной единицы. Она записывается однократно, а в соответствующих.
1 ПОДПРОГРАММЫ. МАССИВЫ КАК ФОРМАЛЬНЫЕ ПАРАМЕТРЫ ПОДПРОГРАММ Лекция 3 План 1.Процедуры и функции с использованием массивов в заголовке 2.Описание подпрограмм.
Понятие подпрограмм. Подпрограммы в языке Паскаль.
Процедуры и функции в Паскале. Рекурсия. Подпрограммы Часто в задаче требуется повторить определенную последовательность операторов в разных частях программы.
Подпрограммы 1.Принцип модульности 2.Область действия переменных 3.Параметры подпрограмм 4.Модули.
Подпрограммы - процедуры. Очень часто в процессе выполнения программы требуется многократное выполнение какой-либо ее части. Лучше всего повторяющуюся.
1 ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ. ПОДПРОГРАММЫ И МОДУЛИ ПРИ РЕШЕНИИ ЗАДАЧ ХИМИЧЕСКОЙ ТЕХНОЛОГИИ. Лекция 2. Подпрограммы План 1.Процедуры и функции. 2.Описание.
ЗАПИСЬ ВСПОМОГАТЕЛЬНЫХ АЛГОРИТМОВ НА ЯЗЫКЕ Паскаль НАЧАЛА ПРОГРАММИРОВАНИЯ.
Подпрограммы Лекция 7. Ломаско Павел Сергеевич16 декабря 2013 г.
Язык программирования Pascal Процедуры и функции А. Жидков.
Программирование «сверху вниз» Процедуры и функции пользователя в Pascal.
Транксрипт:

Подпрограммы 1 Определение подпрограммы. 2 Процедуры 3 Функции 4 Практическая работа

ПОВТОРЕНИЕ: Структура программы. В стандартном Паскале программы имеют строгий формат : program Имя - программы; Label метки ; Const описание констант ; type определения типов данных ; var описание переменных ; procedure и functions ; begin основное тело программы end.

Подпрограммы В программировании часто встречаются случаи, когда по ходу выполнения программы приходится производить одни и те же вычисления, но при различных исходных данных. Чтобы исключить повторение одинаковых записей и сделать тем самым программу проще и понятнее, можно выделить эти повторяющиеся вычисления в самостоятельную часть программы, которая может быть использована многократно по мере необходимости. Использование подпрограмм позволяет применять один из самых прогрессивных принципов программирования – структурное программирование. Автономная часть программы, реализующая определённый алгоритм, и допускающая обращение к ней из различных частей программы, называется подпрограммой.

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

Процедуры Любая процедура оформляется в аналогично программе, т.е. содержит заголовок, разделы описаний и операторов. PROCEDURE имя ( формальные параметры); раздел описаний BEGIN раздел операторов END; Допускается использование процедур без параметров. Раздел описания процедуры состоит из тех же разделов, что и раздел описаний обычной программы.

Порядок выполнения процедуры: Выполнение программы начинается с выполнения операторов основной части программы. Как только происходит вызов подпрограммы данные из основной программы передаются в процедуру (входные параметры). После выполнения процедуры её выходные параметры передаются в то место программы, откуда был сделан вызов процедуры. Затем продолжается выполнение основной программы.

Пример взаимодействия программы и процедуры: Begin … Readln(a,b); Sum(a,b,c); Writeln(c); … End. Procedure Sum(a,b:integer; Var c:integer); Begin C:=a+b; End;

Область действия имён Имена, объявленные в разделе описания основной программы, действуют в разделе операторов основной программы и в любой подпрограмме. Эти имена называются глобальными. Имена, объявленные в подпрограмме, действуют только в этой подпрограмме и называются локальными. Формальные параметры представляют собой список переменных с указанием их типов. Для выделения выходных параметров перед ними ставится служебное слово VAR.

Пример оформления процедуры: Procedure Sum(a,b:integer; Var c:integer); Begin C:=a+b; End; Имя процедуры Входные параметры, передаются из основной программы в процедуру Выходные параметры, передаются из процедуры в основную программу Формальные параметры

Вызов процедуры: Вызов процедуры имеет следующую форму записи: имя процедуры ­ (фактические параметры). Параметры, которые передаются в процедуру могут быть: переменными; константами; выражениями; Параметры, которые получают значения из процедуры, могут быть переменными.

Пример вызова процедуры: Рассмотрим процедуру sum, которую можно вызвать из основной программы следующим образом: sum (6, 8, Z); Это означает, что А:=6, В:=8, Z:=С. Procedure Sum(a,b:integer; Var c:integer); Begin C:=a+b; End;

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

Пример: написать программу для перестановки значений переменных a, b, c в порядке возрастания, т.е. так, чтобы a<b<c program pr_1; var a,b,c:integer; procedure Swap(var x,y:integer); var t:integer; begin t:=x; x:=y; y:=t; end; begin writeln('vvedite 3 chisla'); readln(a,b,c); if a>b then swap(a,b); if b>c then swap(b,c); if a>c then swap(a,c); if a>b then swap(a,b); Writeln(a,' ',b,' ',c); readln; end.

Практическая работа: Используя процедуру для вычисления степени числа найти значение выражения: y=a 4 ×x 4 +a 3 × x 3 +a 2 ×x 2 +a 1 ×x 1 +a 0. Найти периметр треугольника, заданного координатами своих вершин (Процедура для определения длины отрезка) Даны вещественные числа a,b,c,d,e,f,g. Найти площадь пятиугольника. Определить функцию для расчёта площади треугольника по трём сторонам. a ed g cf b

Применение процедур при работе с массивами Процедура заполнения и вывода линейного массива program zap; const n=100; t=20; var a:array[1..t] of integer; procedure init(t,n:integer;var a:array of integer); var i:integer; begin randomize; for i:=1 to t do begin a[i]:=random(n); write (a[i],' '); end;writeln; end; begin init(t,n,a); end.

Практическая работа Используя процедуру заполнения линейного массива решить задачи: 1. Даны два одномерных массива целых чисел разной размерности. Найти среднее арифметическое элементов каждого массива и их сумму. Решить задачу для 3 массивов. 2. Даны два одномерных массива целых чисел одинаковой размерности. Подсчитать количество и сумму отрицательных элементов. Решить задачу для 3 массивов. 3. Даны три одномерных массива целых чисел одинаковой размерности. Сформировать 4-ый массив, каждый элемент которого равен максимальному элементу из трёх массивов.

Функции Функция – это другой вид подпрограммы. Она оформляется аналогично процедуре. Функция оформляется в следующем виде: FUNCTION имя (формальные параметры): тип; раздел описания BEGIN раздел операторов END; Вызывается функция по её имени с указанием фактических параметров. При этом вызов функции можно делать непосредственно внутри выражения.

ПРИМЕР : найти разность факториалов F=m!-k!. факториал числа n вычисляется как произведение n чисел натурального ряда: 1*2*3*...n. FUNCTION FACT (N : integer): longint; var i: integer; p: longint; BEGIN P:=1; For I:=1 To n Do P:=P*I; FACT:=P END; Вызывается функция по своему имени FACT c указанием фактических параметров М и К: F:=FACT(M)-FACT(K); Имя функции Формальный параметр

Различия между процедурой и функцией: 1. Функция, как и процедура, может иметь список параметров, следующих за именем функции в круглых скобках, но при описании функции указывается тип результата функции. 2. Имя процедуры используется только для её вызова, а с именем функции связывается её значение. 3. Процедура и функция отличаются и по способу вызова. Процедура вызывается своим именем с указанием фактических параметров, а функция вызывается в виде оператора присваивания, и может быть в списках оператора Write bk Writeln.(Разность факториалов, FACT(m)-FACT(k)); 4. Функция должна иметь в теле команду присваивания с именем переменной, имя которой совпадает с именем функции.