Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемГерман Неприн
1 Подпрограммы в Паскале Подпрограммы в Паскале (Технология нисходящего программирования)
2 Технология нисходящего программирования Базируется на методе программирования «сверху – вниз» (иное название – метод пошаговой детализации). Основа метода – разбиение исходной задачи на ряд подзадач. Решение отдельного фрагмента сложной задачи может представлять собой самостоятельный программный блок, называемый подпрограммой. ПОДПРОГРАММА – это обособленная, оформленная в виде отдельной синтаксической конструкции и снабжённая именем часть программы. В основной программе указываются только имена подпрограмм. Вызовы подпрограмм возможны неоднократно из разных участков программы.
3 Виды подпрограмм ПРОЦЕДУРЫ СЛУЖАТ ДЛЯ ЗАДАНИЯ СОВОКУПНОСТИ ДЕЙСТВИЙ, НАПРАВЛЕННЫХ НА ИЗМЕНЕНИЯ ВНЕШНЕЙ ПО ОТНОШЕНИЮ К НИМ ПРОГАММНОЙ ОБСТАНОВКИ. ФУНКЦИИ ЯВЛЯЮТСЯ ЧАСТНЫМ СЛУЧАЕМ ПРОЦЕДУР. ОБЯЗАТЕЛЬНО ВОЗВРАЩАЮТ В ТОЧКУ ВЫЗОВА ОСНОВНОЙ ПРОГРАММЫ ЕДИНСТВЕННЫЙ РЕЗУЛЬТАТ КАК ЗНАЧЕНИЕ ИМЕНИ ЭТОЙ ФУНКЦИИ. определение write, writeln, Read, readln… Sqr, sqrt, sin, cos … Встроенные(стандартные ) Kvur (ax 2 + c) Определённыепользователем flaw
4 ПРОЦЕДУРЫ Описание: PROCEDURE ( ); ; BEGIN END;
5 Имя процедуры – правильный идентификатор 1. Состоит из латинских букв и цифр. 2. Начинается с латинской буквы.
6 Пример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.
7 Задания 1. Используя оператор выбора и процедуры, написать программу, вызывающую одну из трех страниц: 1 – справка; 2 – тест; 3 – выход. 2. Используя цикл и процедуры, «построить» забор.
8 Оператор выбора Позволяет выбрать одно из нескольких продолжений программы. CASE OF Else end; Ключ выбора – выражение, значение которого представлено порядковым типом. Список выбора : ;
9 Работа оператора выбора Вычисляется значение ; В последовательности операторов отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает работу.
10 Используя оператор выбора и процедуры, написать программу, вызывающую одну из трех страниц: 1 – справка; 2 – тест; 3 – выход. program menu1; uses crt; var m:integer; procedure sprav; begin textbackground(4); clrscr; gotoxy(38,12); write('spravka') end; procedure test; begin textbackground(2); clrscr; gotoxy(38,12); write('test') end; procedure vixod; begin textbackground(5); clrscr; gotoxy(38,12); write('vixod') end; BEGIN textbackground(0); clrscr; write('vibor1\2\3='); readln(m); case m of 1:sprav; 2:test; 3:vixod; end; readln; END.
11 procedure ekran(c:byte;st:string); begin textbackground(c);textcolor(15); clrscr; gotoxy(38,12); write(st) end; begin textbackground(0); clrscr; write('vibor1\2\3='); readln(m); case m of 1:ekran(4,'cprav'); 2:ekran(2,'test'); 3:ekran(5,'vixod'); end; readln; end.
12 Что включает в себя служебная информация PROCEDURE ( : ); ; BEGIN END;
13 Вызов процедуры Необходимо указать имя и список фактических параметров. Количество и тип формальных и фактических параметров должны совпадать.
14 Формальные и фактические параметры При вызове процедуры её формальные параметры заменяются на фактические в порядке их следования. Фактические параметры – это параметры, которые передаются процедуре при обращении к ней (т.е. записываются при вызове процедуры в основной программе) Формальные параметры – это переменные, фиктивно присутствующие в процедуре и определяющие тип и место подстановки фактических параметров, над которыми производятся действия.
15 Между формальными и фактическими параметрами должно быть полное соответствие: формальных и фактических параметров должно быть одинаковое количество; Порядок следования фактических и формальных параметров должен быть один и тот же; Тип каждого фактического параметра должен совпадать с типом соответствующего формального параметра. Формальные параметры Параметры -значения Параметры- переменные Параметры- процедуры Параметры- функции Параметры-переменные – это формальные параметры, перед которыми стоит служебное слово VAR. Они передаются по ссылке (передаётся адрес фактического параметра) тогда, когда необходимо передать некоторые новые значения в точку вызова процедуры из программы. Параметры-значения – перед ними слово VAR не ставится и идёт передача по значению, т.е. передаётся только копия значения этих параметров. Их любые изменения никак не отражаются на значениях соответствующих фактических параметров.
16 Глобальныелокальные переменные Глобальные и локальные переменные Глобальные переменные – это те переменные, которые объявлены в описании основной части. Локальные переменные – это те, которые объявлены в процедурах и функциях. Локальные переменные существуют только тогда, когда работает подпрограмма, появляются при вызове и исчезают при завершении работы.
17 Примеры обращения к процедуре (вызова процедуры). 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); Фактическим параметром, соответствующим формальному параметру- значению, может быть любое выражение соответствующего типа; константа соответствующего типа; переменная соответствующего типа. Фактический параметр, соответствующим формальному параметру- переменной, может быть только переменной.
18 МЕХАНИЗМ ПЕРЕДАЧИ ПАРАМЕТРОВ А) ПАРАМЕТРЫ-ЗНАЧЕНИЯ (п-з) 1.В памяти выделяется место для каждого формального параметра. 2.Вычисляется значение фактического параметра и засылается в ячейку, соответствующую формальному параметру. 3.Если фактический параметр есть имя переменной, то значение этой переменной пересылается в соответствующий формальный параметр. На этом всякая связь между фактической переменной и формальным параметром обрывается. Б) ПАРАМЕТРЫ-ПЕРЕМЕННЫЕ (п-п) Для формального параметра используется именно та ячейка, которая содержит соответствующий фактический параметр.
19 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.Какие формальные параметры использованы?
20 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
21 Упражнения на механизм передачи параметров в процедурах. А) 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); ?
22 Задания: 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.
23 Задания: 2. Даны 4 действительных числа a, b, c, d ( 0). Решить линейные yравнения: ax+c=0; bx+c=0; ax+d=0; dx+b=0.
24 Задачи. 1. Вводятся два числа a и b. Определить a b и b a, используя процедуру вычисления степени числа. PROGRAM z1; VAR a, b: byte; ab: Longint; PROCEDURE stepen (x, y : byte, Var z : Longint); Var i: byte; Begin z:=1; For i:=1 To y Do z:=z*x; End; BEGIN WriteLn(Введите два целых числа); ReadLn(a,b); stepen(a, b, ab ); WriteLn(a:3, в степени b:3, равно,ab:10); stepen(b, a, ab ); WriteLn(); END.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.