🗊Презентация Модульное программирование

Нажмите для полного просмотра!
Модульное программирование, слайд №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

Содержание

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

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


Слайд 1





Лекция 2. Модульное программирование
Процедуры и функции: описание и использование. Виды параметров подпрограмм: значения, переменные, константы, открытые, процедурные. Рекурсия. Модули: описание и использование. Стандартные модули Паскаля.
Описание слайда:
Лекция 2. Модульное программирование Процедуры и функции: описание и использование. Виды параметров подпрограмм: значения, переменные, константы, открытые, процедурные. Рекурсия. Модули: описание и использование. Стандартные модули Паскаля.

Слайд 2






Подпрограммы
Описание слайда:
Подпрограммы

Слайд 3





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

Слайд 4





Структура программы
Описание слайда:
Структура программы

Слайд 5





Структура программы в оперативной памяти 
В IBM PC-совместимых компьютерах память условно разделена на сегменты. 
Адрес каждого байта составляется из номера сегмента и смещения. 
Компилятор формирует сегмент кода, в котором хранится программа в виде машинных команд, и сегмент данных, в котором выделена память под глобальные переменные программы.
Описание слайда:
Структура программы в оперативной памяти В IBM PC-совместимых компьютерах память условно разделена на сегменты. Адрес каждого байта составляется из номера сегмента и смещения. Компилятор формирует сегмент кода, в котором хранится программа в виде машинных команд, и сегмент данных, в котором выделена память под глобальные переменные программы.

Слайд 6





Виды переменных
Глобальными называются переменные, которые описаны в главной программе. Время жизни глобальных переменных — с начала программы и до ее завершения. Располагаются в сегменте данных.
В подпрограммах описываются локальные переменные. Они располагаются в сегменте стека, причем распределение памяти происходит в момент вызова подпрограммы, а ее освобождение — по завершении подпрограммы.
Локальные переменные автоматически не обнуляются.
Описание слайда:
Виды переменных Глобальными называются переменные, которые описаны в главной программе. Время жизни глобальных переменных — с начала программы и до ее завершения. Располагаются в сегменте данных. В подпрограммах описываются локальные переменные. Они располагаются в сегменте стека, причем распределение памяти происходит в момент вызова подпрограммы, а ее освобождение — по завершении подпрограммы. Локальные переменные автоматически не обнуляются.

Слайд 7





Вызов
Описание слайда:
Вызов

Слайд 8





Процедуры
Описание слайда:
Процедуры

Слайд 9





Пример процедуры
Описание слайда:
Пример процедуры

Слайд 10





{Главная программа}
Описание слайда:
{Главная программа}

Слайд 11





Функции
Описание слайда:
Функции

Слайд 12


Модульное программирование, слайд №12
Описание слайда:

Слайд 13







Виды параметров подпрограмм
Описание слайда:
Виды параметров подпрограмм

Слайд 14





Обмен данными
Через глобальные переменные
Через параметры
Описание слайда:
Обмен данными Через глобальные переменные Через параметры

Слайд 15





Параметры и аргументы
При вызове подпрограммы после ее имени в скобках указываются аргументы, то есть те конкретные величины, которые передаются в подпрограмму 
Список аргументов как бы накладывается на список параметров и замещает их, поэтому аргументы должны соответствовать параметрам по количеству, типу и порядку следования.
Для каждого параметра обычно задается его имя, тип и способ передачи. 
Либо тип, либо способ передачи могут не указываться. 
В заголовке подпрограммы нельзя вводить описание нового типа.
Описание слайда:
Параметры и аргументы При вызове подпрограммы после ее имени в скобках указываются аргументы, то есть те конкретные величины, которые передаются в подпрограмму Список аргументов как бы накладывается на список параметров и замещает их, поэтому аргументы должны соответствовать параметрам по количеству, типу и порядку следования. Для каждого параметра обычно задается его имя, тип и способ передачи. Либо тип, либо способ передачи могут не указываться. В заголовке подпрограммы нельзя вводить описание нового типа.

Слайд 16





Параметр-значение 
имя : тип;
Например:
procedure P(x : integer);
При вызове подпрограммы на месте параметра, передаваемого по значению, может находиться выражение:
P(x);    P(3);    P(1.2);    P(a + b/2);   P(a + b div 2); 

{ var x, a, b : integer; }

Тип выражения должен быть совместим по присваиванию с типом параметра.
Описание слайда:
Параметр-значение имя : тип; Например: procedure P(x : integer); При вызове подпрограммы на месте параметра, передаваемого по значению, может находиться выражение: P(x); P(3); P(1.2); P(a + b/2); P(a + b div 2); { var x, a, b : integer; } Тип выражения должен быть совместим по присваиванию с типом параметра.

Слайд 17





Параметр-переменная 
var имя : тип;
Например:
procedure P(var x : integer);
При вызове подпрограммы на месте параметра-переменной может находиться только ссылка на переменную точно того же типа:
P(a); P(x);
Описание слайда:
Параметр-переменная var имя : тип; Например: procedure P(var x : integer); При вызове подпрограммы на месте параметра-переменной может находиться только ссылка на переменную точно того же типа: P(a); P(x);

Слайд 18





Параметр-константа 
const имя : тип;
Например:
procedure P(const x : integer);
При вызове подпрограммы на месте параметра может быть записано выражение, тип которого совместим по присваиванию с типом параметра.
Описание слайда:
Параметр-константа const имя : тип; Например: procedure P(const x : integer); При вызове подпрограммы на месте параметра может быть записано выражение, тип которого совместим по присваиванию с типом параметра.

Слайд 19





Пример
Описание слайда:
Пример

Слайд 20





Пример
Var a:integer; b,c:char; d,x:real;
---------------------------
P(a,     b,   c);           В какой строке ошибка?
P(d+a, c,    x);
P(x,     ’c’,   d);
P(a,     b,    a+1);
Описание слайда:
Пример Var a:integer; b,c:char; d,x:real; --------------------------- P(a, b, c); В какой строке ошибка? P(d+a, c, x); P(x, ’c’, d); P(a, b, a+1);

Слайд 21





Итоги 
Для передачи в подпрограмму исходных данных испольуются параметры-значения и параметры-константы. Параметры составных типов (массивы, записи, строки) предпочтительнее передавать как константы. 

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

Слайд 22





Открытый массив 
Может быть только одномерным и состоять из элементов любого типа, кроме файлового. 
На место открытого массива можно передавать одномерный массив любой размерности, состоящий из элементов такого же типа
Элементы массива нумеруются с нуля. Номер максимального элемента в массиве можно определить с помощью функции High.
Описание слайда:
Открытый массив Может быть только одномерным и состоять из элементов любого типа, кроме файлового. На место открытого массива можно передавать одномерный массив любой размерности, состоящий из элементов такого же типа Элементы массива нумеруются с нуля. Номер максимального элемента в массиве можно определить с помощью функции High.

Слайд 23





Открытые строки 
Строки произвольной длины можно передавать:
по значению;
на место параметра-константы.
Для передачи в подпрограмму строк любой длины по адресу используются:
специальный тип OpenString, называемый открытой строкой;
тип string при включенном режиме {$P+}.
Описание слайда:
Открытые строки Строки произвольной длины можно передавать: по значению; на место параметра-константы. Для передачи в подпрограмму строк любой длины по адресу используются: специальный тип OpenString, называемый открытой строкой; тип string при включенном режиме {$P+}.

Слайд 24





Бестиповые параметры
Описание слайда:
Бестиповые параметры

Слайд 25





Пусть, например, в программе описаны переменные:
Пусть, например, в программе описаны переменные:
var a, b : array [1 .. 10] of byte; 
	  x     : real;
      c     : string;
Следующие обращения к функции EQ будут корректны:
EQ(a, b, sizeof(a))	{ сравнение двух массивов }
EQ(a[2], b[5], 4)	{ сравнение 2–5 элементов массива "a" с 5–8 элементами массива "b", соответственно }
EQ(c, x, sizeof(real))	{ сравнение первых 6 байт строки с с переменной x }
Описание слайда:
Пусть, например, в программе описаны переменные: Пусть, например, в программе описаны переменные: var a, b : array [1 .. 10] of byte; x : real; c : string; Следующие обращения к функции EQ будут корректны: EQ(a, b, sizeof(a)) { сравнение двух массивов } EQ(a[2], b[5], 4) { сравнение 2–5 элементов массива "a" с 5–8 элементами массива "b", соответственно } EQ(c, x, sizeof(real)) { сравнение первых 6 байт строки с с переменной x }

Слайд 26





Параметры процедурного типа 
procedure tabl_fun(x, Xk, dX : real; f : fun);
begin
	writeln(' --------------------------- ');
	writeln('|      X        |        Y        |');
	writeln(' --------------------------- ');
	while x <= Xk do begin
		writeln('|', x:9:2,'    |', f(x):9:2,'    |');
		x := x + dX;
	end;
	writeln(' --------------------------- ');
end.
Описание слайда:
Параметры процедурного типа procedure tabl_fun(x, Xk, dX : real; f : fun); begin writeln(' --------------------------- '); writeln('| X | Y |'); writeln(' --------------------------- '); while x <= Xk do begin writeln('|', x:9:2,' |', f(x):9:2,' |'); x := x + dX; end; writeln(' --------------------------- '); end.

Слайд 27





Работа с параметром
Определить процедурный тип
					type fun = function(x : real) : real;
Задать для подпрограмм, предназначенных для передачи в качестве параметра, ключ компилятора {$F+}, определяющий дальнюю адресацию
				{$F+}
				function Q(x : real) : real;
				begin		
					Q := 2 * x / sqrt(1 – sin(2 * x));	
				end;
				{$F–}
Задать в заголовке подпрограммы параметр процедурного типа:
				procedure tabl_fun(x, Xk, dX : real; f : fun);
Передать в подпрограмму имя конкретной функции/процедуры:
			 tabl_fun(0, 10, d, Q);
Описание слайда:
Работа с параметром Определить процедурный тип type fun = function(x : real) : real; Задать для подпрограмм, предназначенных для передачи в качестве параметра, ключ компилятора {$F+}, определяющий дальнюю адресацию {$F+} function Q(x : real) : real; begin Q := 2 * x / sqrt(1 – sin(2 * x)); end; {$F–} Задать в заголовке подпрограммы параметр процедурного типа: procedure tabl_fun(x, Xk, dX : real; f : fun); Передать в подпрограмму имя конкретной функции/процедуры: tabl_fun(0, 10, d, Q);

Слайд 28





Рекурсивные подпрограммы
Описание слайда:
Рекурсивные подпрограммы

Слайд 29







Модули
Описание слайда:
Модули

Слайд 30





Структура модуля 
unit имя;	 		 { заголовок модуля }
interface						 
	{ интерфейсная секция модуля }
	{ описание глобальных элементов модуля 
 	  (видимых извне) }
implementation						
		{ секция реализации модуля }
		{ описание локальных (внутренних) элементов 
		 модуля }
begin								
          { секция инициализации }
		{ может отсутствовать }
End;
End.
Описание слайда:
Структура модуля unit имя; { заголовок модуля } interface { интерфейсная секция модуля } { описание глобальных элементов модуля (видимых извне) } implementation { секция реализации модуля } { описание локальных (внутренних) элементов модуля } begin { секция инициализации } { может отсутствовать } End; End.

Слайд 31





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

Слайд 32





Пример интерфейсного раздела:
Interface
{подключаемые модули}
Uses  AnotherUnit;
{константы}
Const
  PI=3.14159265;
  E=2.71828182; 
{пользовательские типы данных}
Type
  TMyType=array[-3..7] of real; 
{переменные}
Var
  temp:TMyType; 
{процедуры и функции}
Procedure Fill(var x:TMyType);
Function Find(const x:TMyType; const Value:real):Boolean;
 
Implementation
Описание слайда:
Пример интерфейсного раздела: Interface {подключаемые модули} Uses  AnotherUnit; {константы} Const   PI=3.14159265; E=2.71828182;  {пользовательские типы данных} Type   TMyType=array[-3..7] of real;  {переменные} Var   temp:TMyType;  {процедуры и функции} Procedure Fill(var x:TMyType); Function Find(const x:TMyType; const Value:real):Boolean;   Implementation

Слайд 33





Пример модуля
unit Average;
interface
   const n = 10;
   type mas = array[1 .. n] of real;
   procedure aver_mas(x : mas; 
			var av : real);
implementation
   procedure aver_mas(x : mas; 
			var av : real);
     var i : integer;
   begin
           av := 0;
           for i := 1 to n do 
		     av := av + x[i];
           av := av / n;
   end;
end.
Описание слайда:
Пример модуля unit Average; interface const n = 10; type mas = array[1 .. n] of real; procedure aver_mas(x : mas; var av : real); implementation procedure aver_mas(x : mas; var av : real); var i : integer; begin av := 0; for i := 1 to n do av := av + x[i]; av := av / n; end; end.

Слайд 34





Пример модуля 2
Unit primer1;
Interface
Const n=50;
Type
Massiv=array[1..n]of integer;
Procedure Vvod(Var m:byte; Var X:massiv);
Procedure Vyvod(m:byte;X:massiv);
Procedure SumKol(m:byte;X:massiv;Var Sum,Kol:integer);
Implementation
Procedure Vvod(Var m:byte; Var X:massiv);
var i:integer;
begin
For i:=1 to m do
x[i]:=random(20)-10;
end;
Procedure Vyvod(m:byte; X:massiv);
var i:integer;
begin
For i:=1 to m do
write(X[i]:5);
writeln
end;
Procedure SumKol(m:byte;X:massiv;Var Sum,Kol:integer);
var i:integer;
begin
Sum:=0;
Kol:=0;
For i:=1 to m do
If X[i]>0 then 
 begin
  Sum:=Sum+X[i];
  Inc(Kol);
 end;
end;
end.
Описание слайда:
Пример модуля 2 Unit primer1; Interface Const n=50; Type Massiv=array[1..n]of integer; Procedure Vvod(Var m:byte; Var X:massiv); Procedure Vyvod(m:byte;X:massiv); Procedure SumKol(m:byte;X:massiv;Var Sum,Kol:integer); Implementation Procedure Vvod(Var m:byte; Var X:massiv); var i:integer; begin For i:=1 to m do x[i]:=random(20)-10; end; Procedure Vyvod(m:byte; X:massiv); var i:integer; begin For i:=1 to m do write(X[i]:5); writeln end; Procedure SumKol(m:byte;X:massiv;Var Sum,Kol:integer); var i:integer; begin Sum:=0; Kol:=0; For i:=1 to m do If X[i]>0 then begin Sum:=Sum+X[i]; Inc(Kol); end; end; end.

Слайд 35







Стандартные модули Паскаля
Описание слайда:
Стандартные модули Паскаля

Слайд 36





Стандартные модули Pascalabc.net
Crt
GraphABC

ABCObjects
ABC Sprites
Описание слайда:
Стандартные модули Pascalabc.net Crt GraphABC ABCObjects ABC Sprites



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