calcul.csp 744 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. CALCULATEUR ==
  2. nb, coef : integer;
  3. gestionnaire?calcul(nb, coef);
  4. nb := nb * coef;
  5. gestionnaire!resultat(nb)
  6. PROCESSUS ==
  7. taille, init : integer;
  8. actif : boolean := true;
  9. *[
  10. actif; lanceur?calcul(taille, init) ->
  11. tab : [1..taille] integer := [1..taille] init;
  12. [
  13. calculateur [i:1..taille] :: CALCULATEUR
  14. ||
  15. gestionnaire ::
  16. *[
  17. (i:1..taille) calculateur[i]!calcul (tab[i], i) -> skip
  18. []
  19. (i:1..taille) calculateur[i]?resultat (tab[i]) -> skip
  20. ]
  21. ];
  22. print (tab + "\n")
  23. []
  24. actif; lanceur?fin() -> actif := false
  25. ]
  26. MAIN ==
  27. [
  28. processus :: PROCESSUS
  29. ||
  30. lanceur ::
  31. processus!calcul(10,1);
  32. processus!calcul(10,2);
  33. processus!fin()
  34. ]