Разделы презентаций


Структурное программирование. Подпрограммы

Содержание

Составить программу вычисления выражения 1k + 2k + … + nk для натуральных n и k.Пример 1

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

Слайд 1Структурное программирование. Подпрограммы

Структурное программирование. Подпрограммы

Слайд 2Составить программу вычисления выражения
1k + 2k + … +

nk
для натуральных n и k.

Пример 1

Составить программу вычисления выражения 1k + 2k + … + nk для натуральных n и k.Пример 1

Слайд 3var s, s1:longint; i,j, n,k:byte;
begin
readln(n,k); s:=0;
for i:=1 to n do
begin
s1:=1;
for

j:=1 to k do
s1:=s1*i;
s:=s+s1;
end;
writeln(s);
end.

Решение

var s, s1:longint; i,j, n,k:byte;begin	readln(n,k); s:=0;	for i:=1 to n do		begin		s1:=1;		for j:=1 to k do 			s1:=s1*i;		s:=s+s1;		end;	writeln(s);end.Решение

Слайд 4var s, s1:longint; i, n,k:byte;
Function step(x,y:byte):longint;
Var P:longint; z:byte;
Begin
P:=1;
For z:=1 to

y do
P:=P*x;
Step:=P;
End;
begin
readln(n, k);
s:=0;
for i:=1 to n do
s:=s+step(i,k);
writeln(s);

end.

Другое решение

Фактические параметры

Формальные параметры

Глобальные переменные

Локальные переменные

var s, s1:longint; i, n,k:byte;Function step(x,y:byte):longint;Var P:longint; z:byte;BeginP:=1;For z:=1 to y do	P:=P*x;Step:=P;End;begin	readln(n, k); 	s:=0;	for i:=1 to n

Слайд 5Найти цифровой корень произвольного натурального числа.
Пример 2

Найти цифровой корень произвольного натурального числа.Пример 2

Слайд 6Var a,x: integer;
Begin
Readln(a);
While a>9 do
Begin
s:=0;
While a>0 do
begin

s:=s+a mod

10; a:=a div 10;
end;
a:=s;
end;
Writeln(a);
End.

Решение

Var a,x: integer;BeginReadln(a);While a>9 do	Begin	 s:=0;	 While a>0 do 		begin

Слайд 7Var a : integer;
Function sc(x : integer) : integer;
Var s

: integer;
Begin
s:=0;
While x>0 do
begin

s:=s+x mod 10; x:=x div 10;
end;
Sc:=s;
End;
Begin
Readln(a);
While a>9 do
a:=sc(a);
Writeln(a);
End.

Другое решение

Фактический параметр

Формальный параметр

Глобальная переменная

Локальная переменная

Var a : integer;Function sc(x : integer) : integer;Var s : integer;Begin s:=0; While x>0 do 	begin

Слайд 8Упорядочить три различных целых числа a, b, c по возрастанию.
Пример

Упорядочить три различных целых числа a, b, c по возрастанию.Пример 3

Слайд 9Var a, b, c, d : integer;
Begin
Readln(a, b, c);

If a>b then begin d := a; a := b;

b :=d; end;
If b>c then begin d := b; b := c; c :=d; end;
If a>b then begin d := a; a := b; b :=d; end;
End.

Решение

Var a, b, c, d : integer;Begin Readln(a, b, c); If a>b then begin d := a;

Слайд 10Var a, b, c : integer;
Procedure sw(

x, y : integer);
Var d : integer;
Begin
d

:= x; x := y; y := d;
End;
Begin
Readln(a, b, c);
If a>b then sw(a,b);
If b>c then sw(b,c);
If a>b then sw(a,b);
Writeln(a, ‘ ‘, b, ‘ ‘, c);
End.

Другое решение

Var a, b, c : integer;Procedure sw(    x, y : integer);Var d : integer;Begin

Слайд 11Структурирование программы - разбиение программы на ряд подзадач, каждая из

которых может быть оформлена в виде отдельного блока со своим

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

Основные понятия

Структурирование программы - разбиение программы на ряд подзадач, каждая из которых может быть оформлена в виде отдельного

Слайд 12Структура процедуры
Procedure [:];
Const ;
Label ;
Type

;
Var ;
Procedure

процедур>;
Function < имя, описание и тело вложенных функций>;
Begin
<тело процедуры>;
End;

Структура процедурыProcedure [:];Const ;Label ;Type ;Var ;Procedure;Function < имя, описание и тело вложенных функций>;Begin;End;

Слайд 13Структура функции
Function [:]: ;
Const ;
Label

;
Type ;
Var ;
Procedure

тело вложенных процедур>;
Function < имя, описание и тело вложенных функций>;
Begin
<тело функции>;
End;

Структура функцииFunction [:]: ;Const ;Label ;Type ;Var ;Procedure;Function < имя, описание и тело вложенных функций>;Begin;End;

Слайд 14Readln(x);
Writeln(x);
Clrscr;
Dec(x,n);
Delay(1000)
Встроенные (стандартные) процедуры

Readln(x); Writeln(x); Clrscr; Dec(x,n); Delay(1000)Встроенные (стандартные) процедуры

Слайд 15Abs(x);
Sqr(x);
Chr(x);
Ord(x);
Odd(x);
Встроенные (стандартные) функции

Abs(x); Sqr(x); Chr(x); Ord(x);Odd(x);Встроенные (стандартные) функции

Слайд 16Создаются в случаях, когда среди стандартных подпрограмм нет необходимой, или

когда определенная группа действий должна выполняться неоднократно.
Подпрограммы:
избавляют от

необходимости многократного повторения одних и тех же блоков, экономя тем самым память;
улучшают структуру программы, облегчая ее понимание при разборе (основная программа становится похожей на оглавление);
Нестандартные подпрограммы необходимо описать, чтобы компилятор мог установить связь между оператором вызова и теми действиями, которые предусмотрены в подпрограмме.


Пользовательские подпрограммы

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

Слайд 17Если в подпрограмму передаются данные, то говорят, что она имеет

параметры.
Параметры, указанные в основной программе, называются фактическими.
Параметры,

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

Параметры подпрограммы

Если в подпрограмму передаются данные, то говорят, что она имеет параметры.Параметры,   указанные в основной программе,

Слайд 18По значению (параметры-значения).
Если формальный параметр является параметром по значению, то

при вызове подпрограммы это значение вычисляется, результат копируется в особую

область памяти (стек) и передается в подпрограмму.
Подпрограмма работает не с переменной, а с ее копией, следовательно, доступа к ячейке, где хранится сама переменная, не имеет.
Параметром-значением может быть переменная, выражение (к примеру, а+b), константа.

Механизм передачи параметров

По значению (параметры-значения).Если формальный параметр является параметром по значению, то при вызове подпрограммы это значение вычисляется, результат

Слайд 19По адресу (параметры-переменные).
Если перед списком формальных параметров указано служебное слово

var, то в подпрограмму передается сама переменная, точнее, адрес ячейки,

в которую записана эта переменная:
Procedure sw ( var x , y : integer);
Таким образом, любые изменения формальных параметров отражаются на фактических параметрах.
Параметром переменной может быть только переменная.

Механизм передачи параметров

По адресу (параметры-переменные).Если перед списком формальных параметров указано служебное слово var, то в подпрограмму передается сама переменная,

Слайд 20параметры-константы (перед списком стоит служебное слово const, после списка указывается

тип. Параметром-константой может быть переменная, константа, выражение (как при параметре

по значению), но в подпрограмму фактически передается адрес величины, хотя доступ к ней существует только для чтения, т.е. запрещены любые изменения такого параметра;
нетипизированные параметры (перед списком стоит служебное слово «var» или «const» и нет указания типа. Передаются они всегда по адресу – либо как константы, либо как переменные. Но выполнять с такими параметрами какие либо действия нельзя, пока они не приведены к какому-либо типу.
параметры-процедуры;
параметры-функции.

Механизм передачи параметров

параметры-константы (перед списком стоит служебное слово const, после списка указывается тип. Параметром-константой может быть переменная, константа, выражение

Слайд 21Исходные данные в подпрограмму могут передаваться как значения
(примеры 1

и 2)
или как переменные (пример 3).
Результаты в основную

программу могут возвращаться через параметры-переменные (пример 3)
или через подпрограммы-функции
(примеры 1 и 2).
В списке параметров указываются имя, тип и способ передачи данных.

Вывод

Исходные данные в подпрограмму могут передаваться как значения (примеры 1 и 2) или как переменные (пример 3).

Слайд 22Переменные, описанные в основной программе, называются глобальными и «действуют» как

в основной программе, так и в подпрограмме. Время их жизни

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

Локальные и глобальные переменные

Переменные, описанные в основной программе, называются глобальными и «действуют» как в основной программе, так и в подпрограмме.

Слайд 23var x, y : real; procedure kv(a, b : real); begin
a := a*a; b := b*b; 
writeln(‘сумма квадратов‘, a+b); end;
begin x := 1.5; y := 2.5; kv(x, y); 
writeln(‘x = ‘, x : 7 : 2, ‘y = ‘ ,y : 7 : 2);
end.

Задача 1

var x, y : real; procedure kv(a, b : real); begin  		a := a*a; b := b*b;      writeln(‘сумма квадратов‘, a+b); end;begin x := 1.5; y := 2.5; kv(x, y); writeln(‘x = ‘, x : 7 : 2, ‘y = ‘ ,y : 7 : 2);end.Задача 1

Слайд 24 var a, b : integer; procedure sw(x, y : integer);
var c : integer;

begin
c := x; x := y; y := c;

writeln(x : 4, y : 4);
end;
begin
a := 4; b := 3; sw(a, b); sw(a, b); sw(a, b); writeln(‘a = ‘, a, ‘b = ‘, b);
end.

Задача 2

 var a, b : integer; procedure sw(x, y : integer);  var c : integer; begin	c := x;  x :=

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика