взяти означення мавка/машина;
простір мавка {
дія знайти_задіяне(
М: адреса<Машина>,
задіяні: Задіяні,
позиція: природне,
назва: адреса<ПредметТексту>,
вихід_значення: адреса<Значення>
) -> логічне {
змінна розмір_позиційних = задіяні.розмір - задіяні.розмір_імен;
змінна знайдено = ні;
якщо розмір_позиційних > позиція {
вихід_значення::вміст = задіяні.дані[позиція];
знайдено = так;
}
якщо задіяні.розмір_імен > 0 {
змінна п: природне = 0;
поки п < задіяні.розмір_імен {
змінна елемент = задіяні.дані_імен[п];
якщо елемент == назва або перевірити_чи_предмети_тексту_рівні(М, елемент, назва) {
вихід_значення::вміст = задіяні.дані[розмір_позиційних + п];
вернути так;
}
п += 1;
}
}
вернути знайдено;
}
дія перебрати_позиційні_задіяні(
М: адреса<Машина>,
задіяні: Задіяні,
дія_перебору: ДіяПереборуПозиційнихЗадіяних,
аргумент: невідома_адреса
) {
// ..
}
дія перебрати_іменовані_задіяні(
М: адреса<Машина>,
задіяні: Задіяні,
дія_перебору: ДіяПереборуІменованихЗадіяних,
аргумент: невідома_адреса
) {
// ..
}
дія звільнити_задіяні(
М: адреса<Машина>,
задіяні: Задіяні
) {
якщо задіяні.дані != пусто {
звільнити_памʼять(М, задіяні.дані);
}
якщо задіяні.дані_імен != пусто {
звільнити_памʼять(М, задіяні.дані_імен);
}
}
}