Nos exercícios seguintes, sempre que o algoritmo especificado não for da sua autoria, indique o autor original e a refêrencia para o local onde o encontrou. Muitos dos exercícios apresentados são retirados de [2] e têm como objectivo esclarecer a diferença de abordagem entre esta disciplina e Métodos de Programação IV.
out y : int where y = 0 local x : bool where x = true P1:: [ l0: while x do l1: y := y + 1; l2: ] || P2:: [ m0: x := false; m1: ] |
local aprox_carro, aprox_comboio : bool where (aprox_carro, aprox_comboio ) = (false, false); local cancela_aberta, sinal_verde : bool where (cancela_aberta, sinal_verde) = (false, false); % Outras declaracoes Estrada :: [ e0: loop forever do [ e1: noncritical; e2: aprox_carro := true; e3: await cancela_aberta; e4: critical; e5: aprox_carro := false ] ] || Carril :: [ c0: loop forever do [ c1: noncritical; c2: aprox_comboio := true; c3: await sinal_verde; c4: critical; c5: aprox_comboio := false ] ] || Controlador :: [ % Completar ] |