Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

L4(function)по ПДС_2015

.pdf
Скачиваний:
11
Добавлен:
24.02.2016
Размер:
4.09 Mб
Скачать

процедуре при вызове могут быть переданы некоторые данные (параметры)

плитка(кухня, синий);

краска(коридор, красный, кисть);

обои(комната, зеленый);

необходимо

boss = бригадир,

dye = красная краска, side = правая стена, tank = ведро 15л, dauber = валик;

если (tank === неопределено) boss получить tank;

иначе

если (tank содержимое === остатки_покрытия) tank подготовить растворитель;

иначе

tank подготовить вода;

tank подготовить;

если (dye === неопределено) boss получить dye;

иначе

daub = tank содержимое dye;

пока (side область вся !== окрашено) side область не_окрашено_вниз; side область 70см_х_ширина_стены; side нанести daub;

side нанести dauber;

boss получить фронт_работ;

подготовка_емкости(tank, boss);

подготовка_материалов(dye, tank, boss, daub);

малярные_работы(side, dauber, boss);

...выполняет их вызов

...переданы некоторые данные (параметры)

комментарий к псевдокоду

передаваемые данные

подготовка_емкости(tank, boss);

подготовка_материалов(dye, tank, boss, daub);

малярные_работы(side, dauber, boss);

необходимо

boss = бригадир,

 

dye = красная краска,

 

side = правая стена,

 

tank = ведро 15л,

 

dauber = валик;

... выполняет их вызов...

 

подготовка_емкости(tank, boss);

 

 

подготовка_материалов(dye, tank, boss);

 

малярные_работы(side, dauber, boss);

 

...фрагменты программы обозначенные именами, упоминание которых в тексте программы (в разных точках программы) выполняет их вызов...

процедура подготовка_емкости(t, b)

...

уникальные

фрагменты

{

 

 

 

программы обозначенные

если (t === неопределено)

b получить t;

именами...

иначе

 

 

 

 

 

 

если (t содержимое === остатки_покрытия) t подготовить растворитель;

иначе

t подготовить вода;

t подготовить;

}

...при вызове процедуры выполняется последовательность

инструкций описанных

внутри этой

процедуры...

процедура подготовка_материалов(d, t, b)

{

если (d === неопределено) b получить d;

иначе

daub = t содержимое d;

}

процедура малярные_работы(s, d, b)

{

пока (s область вся !== окрашено) s область не_окрашено_вниз;

s область 70см_х_ширина_стены; s нанести daub;

s нанести d;

b получить фронт_работ;

}

необходимо

boss = бригадир,

dye = красная краска, side = правая стена, tank = ведро 15л, dauber = валик;

подготовка_емкости(tank, boss);

подготовка_материалов(dye, tank, boss);

малярные_работы(side, dauber, boss);

н еоб ход имо

 

bo ss

=

б риг ади р,

dy e

=

кр асн ая

кра ска ,

si de

=

п рав ая

сте на,

ta nk

=

в едр о

1 5л,

da ube r

= ва лик ;

подг ото вка _ем кос ти( tan k, bos s);

подг ото вка _ма тер иал ов( dye , t ank , b oss );

маля рны е_р або ты( sid e, dau ber , b oss );

п роц еду ра

подгот овк а_е мко сти (t, b)

{

 

 

 

 

е сли

(t

== =

н еоп ред еле но)

b

п о л учи ть

t;

и нач

е

 

 

 

е с

ли

(t

с од ерж имо е === ост атк и_п окр ыти я)

tп о дг ото вит ь раствор ите ль;

ин аче

t п о дг ото вит ь вода;

t п о дго тов ить ;

}

п роц еду ра

подгот овк а_м ате риа лов (d, t, b)

{

 

 

 

е сли

(d == =

н еоп ред еле но)

b

п о л учи ть d;

и нач е

 

 

da ub =

t

с о дер жим ое d;

}

 

 

 

п роц еду ра

малярн ые_ раб оты (s, d, b)

{

 

 

 

п ока

(s о б лас ть вся != = о кра шен о)

s о б л аст ь

не_окра шен о_в низ ;

s о б л аст ь

70см_х_ шир ина _ст ены ;

s н а н ест и

daub;

s н а н ест и

d;

b п о луч ить

фронт _ра бот ;

}

 

 

 

отделка
параметры:
boss, tank, dye, side, dauber

подготовка емкости

параметры: boss, tank

подготовка материалов

параметры:

dye, tank, boss

малярные работы

параметры:

side, dauber, boss

необходимо

boss = бригадир,

dye = красная краска, side = правая стена, tank = ведро 15л, dauber = валик;

отделка(boss, tank, dye, side, dauber);

процедура отделка(b, t, d, s, dbr)

{

подготовка_емкости(t, b); подготовка_материалов(d, t, b); малярные_работы(s, dbr, b);

}

любой алгоритм можно представить в виде одной процедуры ...

принципы процедурного программирования:

1.повторяющиеся фрагменты программы (группы инструкций) можно оформить в виде подпрограмм (процедур, функций);

2.каждую логически законченную (выполняющую ограниченную задачу) группу инструкций следует оформить как блок;

3.разработка программы ведётся пошагово, методом «сверху вниз»

процедура = функция = подпрограмма = блок

... одна и та же процедура для разных параметров

отделка( boss, tank, dye, отделка( boss, tank3, wallpaper, отделка( boss, tank1, dye_green, отделка( boss, tank1, ceramic_tile, отделка( boss, tank2, dye,

отделка( boss, tank1, dye_yellow, отделка( boss, tank2, wallpaper_yellow, отделка( boss, tank, dye,

отделка( boss, tank2, dye, отделка( boss, tank, ceramic_tile, отделка( boss, tank1, dye_green, отделка( boss, tank, dye_gray,

отделка( boss, tank, wallpaper_blue, отделка( boss, tank2, wallpaper_green, отделка( boss, tank2, dye_blue, отделка( boss, tank, dye_gray,

...

...повторяющиеся фрагменты программы (группы инструкций) можно оформить в виде подпрограмм (процедур и функций)

 

 

 

процедура подготовка_

side,

dauber

); {

side_room1,

dauber

);

если (t === неопределе

b получить t;

side_room2,

dauber2 );

иначе

side_kitchen1, dauber

);

если (t содержимое

t подготовить рас

side_room3,

dauber1 );

иначе

t подготовить вод

side_hall1,

dauber2 );

 

side_hall2,

dauber

); }t подготовить;

side2,

dauber

); процедура подготовка_

side3,

dauber

); {

side_kitchen2, dauber

);

если (d === неопределе

b получить d;

side_hall3,

dauber1 ); иначе

side,

dauber

); } daub = t содержимое

side,

dauber3

); процедура малярные_ра

side,

dauber2

); {

side_hall4,

dauber

);

пока (s область вся !

s область не_окраше

side_room4,

dauber3

);

s область 70см_х_ши

 

 

 

s нанести daub;

процедура отделка(b, t, d, s, dbr)

{

подготовка_емкости(t, b); подготовка_материалов(d, t, b); малярные_работы(s, dbr, b);

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]