Подпрограммы в Паскале Подпрограммы в Паскале (Технология нисходящего программирования)

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



Advertisements
Похожие презентации
Подпрограммы в Паскале Подпрограммы в Паскале (Технология нисходящего программирования)
Advertisements

Задача. Даны действительные числа A, B, C, D. Найти max(a,b,c), max(a,b,d), max(b,c,d). Написать программу решения задачи PROGRAM ex1; PROCEDURЕ Max (x,
МЕТОД ПОСЛЕДОВАТЕЛЬНОЙ ДЕТАЛИЗАЦИИ. ПРОЦЕДУРЫ И ФУНКЦИИ Урок 1.
Что такое структурный подход в программировании? Как он реализуется в ЯП Паскаль? Что такое процедура? Кто дает название процедуре? Где записывается процедура?
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 5.
Все процедуры и функции делятся на стандартные встроенные определенные пользователем. Встроенные и стандартные вызываются без предварительного описания.
ПРОЦЕДУРЫ И ФУНКЦИИ CPascal Подпрограмма – группа операторов реализующая законченный алгоритм и оформленная как самостоятельная синтаксическая единица.
Программирование на языке Паскаль Тема 13. Процедуры Тема 14. Функции.
Подпрограммы в Паскале.
Шутилина Л.А. Процедуры в Turbo Pascal ( часть 1: процедуры с параметрами)
Учитель НСШ Кумакшев А.Н, учитель БСШ2 Вахмистров Г.Г. Элективный курс по информатике «Процедуры и функции на языке Pascal».
Язык программирования Pascal Процедуры и функции А. Жидков.
Технология нисходящего программирования. Подготовила: Камалова Нафиса Ахатовна, учитель информатики высшей квалификационной категории МАОУ «СОШ 5» МО «ЛМР»
Процедуры и функции в Паскале. Рекурсия. Подпрограммы Часто в задаче требуется повторить определенную последовательность операторов в разных частях программы.
© М.Е.Макарова
Подпрограммы Лекция 7. Ломаско Павел Сергеевич16 декабря 2013 г.
Подпрограммы. Субкомпетенции: 1. Обработка данных с помощью стандартных подпрограмм и подпрограмм, определённых пользователем. 2. Организация передачи.
Программа имеет заголовок следующего вида Program имя ; Имя - это имя программы. Идентификатор имени имеет не более семи символов. Имя начинается с буквы.
ЗАПИСЬ ВСПОМОГАТЕЛЬНЫХ АЛГОРИТМОВ НА ЯЗЫКЕ Паскаль НАЧАЛА ПРОГРАММИРОВАНИЯ.
Транксрипт:

Подпрограммы в Паскале Подпрограммы в Паскале (Технология нисходящего программирования)

Технология нисходящего программирования Базируется на методе программирования «сверху – вниз» (иное название – метод пошаговой детализации). Основа метода – разбиение исходной задачи на ряд подзадач. Решение отдельного фрагмента сложной задачи может представлять собой самостоятельный программный блок, называемый подпрограммой. ПОДПРОГРАММА – это обособленная, оформленная в виде отдельной синтаксической конструкции и снабжённая именем часть программы. В основной программе указываются только имена подпрограмм. Вызовы подпрограмм возможны неоднократно из разных участков программы.

Виды подпрограмм ПРОЦЕДУРЫ СЛУЖАТ ДЛЯ ЗАДАНИЯ СОВОКУПНОСТИ ДЕЙСТВИЙ, НАПРАВЛЕННЫХ НА ИЗМЕНЕНИЯ ВНЕШНЕЙ ПО ОТНОШЕНИЮ К НИМ ПРОГАММНОЙ ОБСТАНОВКИ. ФУНКЦИИ ЯВЛЯЮТСЯ ЧАСТНЫМ СЛУЧАЕМ ПРОЦЕДУР. ОБЯЗАТЕЛЬНО ВОЗВРАЩАЮТ В ТОЧКУ ВЫЗОВА ОСНОВНОЙ ПРОГРАММЫ ЕДИНСТВЕННЫЙ РЕЗУЛЬТАТ КАК ЗНАЧЕНИЕ ИМЕНИ ЭТОЙ ФУНКЦИИ. определение write, writeln, Read, readln… Sqr, sqrt, sin, cos … Встроенные(стандартные ) Kvur (ax 2 + c) Определённыепользователем flaw

ПРОЦЕДУРЫ Описание: PROCEDURE ( ); ; BEGIN END;

Имя процедуры – правильный идентификатор 1. Состоит из латинских букв и цифр. 2. Начинается с латинской буквы.

Пример1. Program prim; Uses crt; Procedure a; Begin write(I am procedure); end; BEGIN clrscr; writeln( Where is a procedure?); a; Writeln; write(good); Readln end.

Что включает в себя служебная информация PROCEDURE ( : ); ; BEGIN END;

Вызов процедуры Необходимо указать имя и список фактических параметров. Количество и тип формальных и фактических параметров должны совпадать.

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

Между формальными и фактическими параметрами должно быть полное соответствие: формальных и фактических параметров должно быть одинаковое количество; Порядок следования фактических и формальных параметров должен быть один и тот же; Тип каждого фактического параметра должен совпадать с типом соответствующего формального параметра. Формальные параметры Параметры -значения Параметры- переменные Параметры- процедуры Параметры- функции Параметры-переменные – это формальные параметры, перед которыми стоит служебное слово VAR. Они передаются по ссылке (передаётся адрес фактического параметра) тогда, когда необходимо передать некоторые новые значения в точку вызова процедуры из программы. Параметры-значения – перед ними слово VAR не ставится и идёт передача по значению, т.е. передаётся только копия значения этих параметров. Их любые изменения никак не отражаются на значениях соответствующих фактических параметров.

Глобальныелокальные переменные Глобальные и локальные переменные Глобальные переменные – это те переменные, которые объявлены в описании основной части. Локальные переменные – это те, которые объявлены в процедурах и функциях. Локальные переменные существуют только тогда, когда работает подпрограмма, появляются при вызове и исчезают при завершении работы.

Примеры обращения к процедуре (вызова процедуры). PROCEDURE SQ (a,b,c: real;VAR x1,x2:real) Примеры обращения к процедуре: SQ((25/3+2)*2, -1.5, ( )/3, a1, a2); SQ(P,Q,R,Y,Z); Фактическим параметром, соответствующим формальному параметру- значению, может быть любое выражение соответствующего типа; константа соответствующего типа; переменная соответствующего типа. Фактический параметр, соответствующим формальному параметру- переменной, может быть только переменной.

МЕХАНИЗМ ПЕРЕДАЧИ ПАРАМЕТРОВ А) ПАРАМЕТРЫ-ЗНАЧЕНИЯ (п-з) 1.В памяти выделяется место для каждого формального параметра. 2.Вычисляется значение фактического параметра и засылается в ячейку, соответствующую формальному параметру. 3.Если фактический параметр есть имя переменной, то значение этой переменной пересылается в соответствующий формальный параметр. На этом всякая связь между фактической переменной и формальным параметром обрывается. Б) ПАРАМЕТРЫ-ПЕРЕМЕННЫЕ (п-п) Для формального параметра используется именно та ячейка, которая содержит соответствующий фактический параметр.

1. Пример процедуры с параметрами-значениями PROGRAM PZ; VAR i : integer; Procedure P1 (i: integer); Begin i:=i*2; End; BEGIN i:=2; P1(i); WriteLn(i=, i); END. Механизм передачи параметров: i2 i 2 4 ЭКРАН i=2 PROGRAM PZ; Procedure P1 1.Назовите глобальные и локальные переменные. 2. назовите формальные и фактические параметры. 3.Какие формальные параметры использованы?

2. Пример процедуры с параметрами-переменными PROGRAM PP; VAR a,b: integer; PROCEDURE P2 (x: integer; VAR y: integer); Begin x:=x+1; y:=y+1; WriteLn(x,,y); End; BEGIN a:=0; b:=0; P2(a,b); WRITELN(a,,b); END PROGRAM PP; Механизм передачи параметров: 1.Назовите глобальные и локальные переменные. 2. назовите формальные и фактические параметры. 3.Какие формальные параметры использованы? PROCEDURE P2 a b 0 0 x y 0 адрес яч.b ЭКРАН 11 01

Упражнения на механизм передачи параметров в процедурах. А) var c,d:integer; Procedure P(x,y:integer;); Begin y:=x + 1; end; Б) var c,d:integer; Procedure Q(x:integer; var y:integer); Begin y:=x + 1; end; B) var c,d:integer; Procedure R(var x,y:integer); Begin y:=x + 1; end; 1) для каждой процедуры указать параметры- значения и параметры- переменные; 2) определить, что будет выведено на экран в следующих случаях: с:=2;d:=0;P(sqr( c ) + c, d); Writeln(d); с:=2;d:=0;Q(sqr( c ) + c, d); Writeln(d); 3) допустимы ли обращения R(sqr( c ) + c, d); и R(c, d); ?

Задача. Даны действительные числа A, B, C, D. Найти max(a,b,c), max(a,b,d), max(b,c,d). Написать программу решения задачи PROGRAM ex1; PROCEDURЕ Max (x, y,z: INTEGER); Var max:integer; BEGIN IF x>y THEN max:x ELSE max:=y IF z>max THEN Max:=z WRITELN (максимальное число,max); END; VAR a,b,c,d: INTEGER; BEGIN WRITELN (Введите числа a, b,c,d ); READLN (a,b,c,d); Max(a,b,c); Max(a,b,d,);Max(b,c,d); END.

Задания: 1. Даны 4 действительных числа a, b, c, d (0). Решить квадратные yравнения: ax 2 +bx+c=0; bx 2 +cx+d=0; ax 2 +dx+c=0; dx 2 +bx+c=0.

PROGRAM task4 ; Var a, b, с : REAL; a1, b1, c1 : REAL ; PROCEDURE sq ( a, b, c: real); VAR x1, x2, d : REAL; BEGIN d :=sqr(b)-4*a*c ; lF d < 0 THEN WR1TELN( 'Действительных корней нет' ) ELSE BEGIN x1 := (-b+sqrt(d))/2/a ; x2 := (-b-sqrt(d))/(2*a) ; WRITELN( 'x1 = ', x1, ' x2 = ', x2 ) ; END; END; BEGIN WRITELN( 'Введите значения a, b, с,d для уравнений); READLN( a, b,с,d ) ; sq (a, b, c ) ; sq (a, d, c); sq (d, b, c); ; END.

Даны положительные действительные числа A, B, C, D. Определить, могут ли числа a,b,c; a,b,d; b,c,d быть сторонами треугольника. Написать программу решения задачи. PROGRAM ex1; PROCEDURЕ stor (x, y,z: INTEGER); Var max:integer; BEGIN IF (x>y+z)and (y>x+z) and (z>x+y) THEN WRITELN (могут быть сторонами треугольника) ELSE WRITELN (не могут быть сторонами треугольника); END; VAR a,b,c,d: INTEGER; BEGIN WRITELN (Введите числа a, b,c,d ); READLN (a,b,c,d); stor(a,b,c); stor(a,b,d,); stor(b,c,d); END.

Задания: 2. Даны 4 действительных числа a, b, c, d. Решить линейные yравнения: ax+c=0; bx+c=0; ax+d=0; dx+b=0.