|
|
| IMPLEMENTATION CarnetAnniversairesRII |
| REFINES CarnetAnniversairesRI |
| IMPORTS noms_Arr(NOM,max), dates_Arr(DATE,max), index_Nvar(max) |
| SEES Bool_TYPE |
| INVARIANT |
| index = index_nvar |
| Ù
noms = 1..index <| noms_arr |
| Ù
dates = 1..index <| dates_arr |
| OPERATIONS |
| r¬¾ ajoutI(n,a) = VAR b,i,j IN |
| j¬¾ index_val_nvar; |
| IF j¹0
THEN b,i¬¾noms_ch_eql_arr(1,j,n) END; |
| IF j=0Ú b=FALSE
THEN |
| b¬¾index_neq_nvar(maxn); |
| IF b=TRUE |
| THEN noms_sto_arr(j+1,n);
dates_sto_arr(j+1,a); |
| index_inc_nvar; r:=ok |
| ELSE r:=plein END |
| ELSE r:=deja_connu END |
| END; |
| r,a¬¾trouveI(n) = |
| VAR b,i,j |
| IN j¬¾ index_val_nvar; |
| IF j¹0
THEN b,i¬¾noms_ch_eql_arr(1,j,n) |
| ELSE b:=FALSE; i:=maxn END; |
| IF b=TRUE THEN r:=ok |
| ELSE r:=inconnu END |
| a¬¾ dates_val_arr(i) |
| END; |
|