IMPLEMENTATION TP3WinnieImp REFINES TP3WinnieMachine IMPORTS C_TableParkings.BASIC_ARRAY_VAR ( 0 .. 10 , 0 .. 600 ) INVARIANT C_TableParkings.arr_vrb = TableParkings INITIALISATION C_TableParkings.STR_ARRAY ( 0 , 600 ) ; C_TableParkings.STR_ARRAY ( 1 , 600 ) ; C_TableParkings.STR_ARRAY ( 2 , 600 ) ; C_TableParkings.STR_ARRAY ( 3 , 600 ) ; C_TableParkings.STR_ARRAY ( 4 , 600 ) ; C_TableParkings.STR_ARRAY ( 5 , 600 ) ; C_TableParkings.STR_ARRAY ( 6 , 600 ) ; C_TableParkings.STR_ARRAY ( 7 , 600 ) ; C_TableParkings.STR_ARRAY ( 8 , 600 ) ; C_TableParkings.STR_ARRAY ( 9 , 600 ) ; C_TableParkings.STR_ARRAY ( 10 , 600 ) OPERATIONS /*------------------------------------------------------*/ Ajout_Voiture ( IdParking ) = VAR xx IN xx <-- C_TableParkings.VAL_ARRAY ( IdParking ) ; xx := xx - 1 ; C_TableParkings.STR_ARRAY ( IdParking , xx ) END ; /*------------------------------------------------------*/ Retire_Voiture ( IdParking ) = VAR xx IN xx <-- C_TableParkings.VAL_ARRAY ( IdParking ) ; xx := xx + 1 ; C_TableParkings.STR_ARRAY ( IdParking , xx ) END ; /*------------------------------------------------------*/ NbLibre <-- Get_NbLibre ( IdParking ) = BEGIN NbLibre <-- C_TableParkings.VAL_ARRAY ( IdParking ) END ; /*------------------------------------------------------*/ NbVoitures <-- Get_NbVoitures ( IdParking ) = VAR xx IN xx <-- C_TableParkings.VAL_ARRAY ( IdParking ) ; NbVoitures := 600 - xx END /*------------------------------------------------------*/ END