Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Процедура впорядкування




Приклад 15.1.

Приклад

Приклади виклику процедури

Контроль правил виклику

Заголовок процедури

Заголовок процедури має вигляд

Procedure Імя (формальні параметри);

Наприклад,

Procedure Power (х,y: real);

Параметр-значення та параметр-змінна

Будь-який з формальних параметрів може бути або параметром-значенням, або параметром-змінною. Якщо будь-які параметри визначаються як параметри-змінні, перед ними необхідно ставити зарезервоване слово VAR, наприклад:
Procedure Power (var х: real; y: real);

тут параметр x - параметр-змінна, a y - параметр-значення.

Відмінності використання параметра-змінної від параметра-значення

Якщо формальний параметр оголо-шений як параметр-змінна, то при виклику підпрограми йому повинен відповідати фактичний параметр у вигляді змінної потрібного типу.

Відмінності використання параметра-змінної від параметра-значення

Якщо формальний параметр оголошений як параметр-значення, то при виклику підпрограми йому може відповідати вираз типу однакового з типом формального параметра.

Контроль за неухильним дотри-манням правил виклику параметра-змінної та параметра-значення, здійснюється компілятором Турбо-Паскаля.

Procedure Power (var х: real; y: real);

Power (d,5.6); вірно

Power (d,z); вірно

Power (187,5.6); невірно

при третьому зверненні до процедури компілятор вказав би на невідповідність типу фактичних і формальних параметрів (параметр- х є вираз, в той час як відповідний йому формальний параметр описаний як параметр-змінна).

У програмі задаються два цілих числа 5 та 7 і ці числа передаються у процедуру DOD2, в якій вони подвоюються. Один з параметрів передається як параметр-змінна, інший – як параметр-значення. Значення параметрів до і після виклику процедури,а також результат їх подвоєння виводяться на екран.

PROGRAM Test_Of_Parameters;

Const a: integer = 5;

b: integer =7;

PROCEDURE DOD2 (var a: integer;b: integer);

begin {IDOD2}

a:= a + a; b:= b + b;

writeln('Double:', a:5, b:5);

end { DOD2};

BEGIN {main}

writeln('Digit:', a:5, b:5);

DOD2 (a,b);

write1n('Result:', a:5, b:5);

END {main}.

На екран буде виведений такий результат

Digit: 5 7

Double: 10 14

Result: 10 7

Задано одновимірний масив, що складається з 10 елементів. Впорядкувати елементи масиву по зростанню значень його елементів.


 

 
r = 1,n
Введення аі
par2(a,n)
r = 1,n
Виведення ar
КІНЕЦЬ
ПОЧАТОК
 
par2(b,n)
t1 = bi
t1> bj
t1= bj  
P = j  
bp = bi bi = t1  
Виведення b1
i = 1,n
j = i,n
RETURN
T
F

 

 


Розділ об’яв програми

program vporjadkuvannja_massivu;

const n=10;

type vect=array [1..10] of integer;

var: a,c:vect; d,r:integer; S,T:text;

procedure par2(var b:vect;n:integer);

var t1, i, j, p: integer;

begin writeln(t);

writeln (t,'print parameter procedure');

for i:=1 to n do begin

t1:=b[i];

for j:=i to n do

if t1>=b[j] then begin t1:=b[j]; p:=j; end;

b[p]:=b[i]; b[i]:=t1;

Write (t,' b[',i,']=',b[i]);end;

writeln(t); end;{end of procedure}

Розділ інструкцій

begin assign(S,'upordat.pas');reset(S);

assign(T,'uporrez.pas');rewrite(T);

writeln(t,'main program mas_a');

for r:=1 to n do begin

read (s,a[r]);write(t,' a[',r,']=',a[r]:2);end;

par2(a,n); writeln(t);

writeln(t,'Print in program1');

for r:=1 to n do

write(t,' a[',r,']=',a[r]:3);writeln(t);

writeln(t,'main program mas_c');

for r:=1 to n do begin

read (s,c[r]); write(t,' c[',r,']=',c[r]:3); end;

par2(c,n); writeln(t);

writeln(t,'Print in program2');

for r:=1 to n do

write(t,' c[',r,']=',c[r]:3);

close(t); end.

Результат:

main program mas_a

a[1]= 1 a[2]= 4 a[3]= 7 a[4]= 5 a[5]= 9 a[6]= 8 a[7]=10 a[8]=11 a[9]= 3 a[10]= 2

print parameter procedure

b[1]=1 b[2]=2 b[3]=3 b[4]=4 b[5]=5 b[6]=7 b[7]=8

b[8]=9 b[9]=10 b[10]=11

Print in program1

а[1]= 1 a[2]= 2 a[3]= 3 a[4]= 4 a[5]= 5 a[6]= 7 a[7]= 8

a[8]= 9 a[9]= 10 a[10]= 11

main program mas_c

c[1]= 12 c[2]= 17 c[3]= 19 c[4]= 13 c[5]= 15 c[6]= 14

c[7]= 18 c[8]= 20 c[9]= 21 c[10]= 22

print parameter procedure

b[1]=12 b[2]=13 b[3]=14 b[4]=15 b[5]=17 b[6]=18 b[7]=19

b[8]=20 b[9]=21 b[10]=22

Print in program2

c[1]=12 c[2]=13 c[3]=14 c[4]=15 c[5]=17 c[6]=18

c[7]=19 c[8]=20 c[9]=21 c[10]=22




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 256; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.022 сек.