You are on page 1of 3

Correction du problème

1. Algorithme du programme principal :


Debut
Saisie (n)
Remplir (ip, n)
Redondant (ip, n)
Fin
T.D.N.T
TYPE
TAB = tableau de 15 chaines

T.D.O.G
Objet Type/Nature
n Entier
ip TAB
Saisie, Remplir, Redondant Procédures

2-a) Algorithme de la procédure saisie :


Procédure saisie (@n : entier)
Début
Répéter
Lire (n)
Jusqu’à (n>=4) et (n<=15)
Fin
2-b) Algorithme de la procedure remplir :
Procédure remplir (@ip :TAB, n :entier)
Début
Pour i de 0 à n-1 faire
Répéter
Lire (ip[i])
Jusqu’à (long (ip[i]) ϵ[7..15]) ET (nbpoints (ip[i])=3) ET (ip[0]≠’’.’’ Et ip[long (ip[i])-1]≠’’.’’) ET
(pos (‘’..’’,ip[i])=-1) ET (verif (ip[i]))
Fin pour
Fin
T.D.O.L
Objet Type/Nature
i Entier
nbpoints, verif fonctions
2-c) Algorithme de la fonction nbpoints :
Fonction nbpoints (ch : chaine) : entier
Debut
nb  0 objet T/N
Pour i de 0 a long (ch)-1 faire nb , i Entier
Si ch[i] = ‘’.’’ alors

nb  nb +1
Fin si
Fin pour
Retourner nb
Fin
2-d) Algorithme de la fonction verif :
Fonction verif (ch : chaine) : booléen
Debut
Ok  Vrai
i0
Tant que (ok ET i<long (ch)) faire objet T/N
Si ch[i] ϵ [‘’0’’..’’9’’,’’.’’] alors Ok Booléen
i  i+1 i Entier
Sinon
ok  Faux
Fin si
Fin Tant que
Retourner ok
Fin
2-e) Algorithme de la procedure redondant :
Procédure redondant (ip :TAB, n : entier)
Début
Ecrire ("les adresses IP redondantes sont")
Pour i de 0 à n-1 faire
Si (Existe (ip[i] , i , ip) = Faux ET Counte (ip[i] , ip , n) > 1) alors
Ecrire (ip[i] ," : cette adresse est attribuée à :")
Ecrire ("ordinateur N° ",i+1)
Pour j de i+1 à n-1 faire
Si ip[i] = ip[j] alors
Ecrire ("ordinateur N° ",j+1)

Fin si
objet T/N
Fin Pour
i,j Entier
Fin si
Existe Fonction
Fin Pour Counte Fonction
Fin
2-f) Algorithme de la fonction Existe :
Fonction Existe (ch : chaine , p : entier , ip : TAB) : booléen
Début
ok  Faux
Tant que (p>0 ET ok = Faux) faire
Si ch ≠ ip[p-1] alors
p  p-1 objet T/N
Sinon ok Booléen
ok  Vrai

Fin si
Fin Tant que
Retourner ok
Fin
2-g) Algorithme de la fonction Counte :
Fonction Counte (ch : chaine , ip : TAB , n : entier) : entier
Début
nb  0
Pour i de 0 à n-1 faire objet T/N
Si ip[i] = ch alors nb , i Entier
nb  nb +1
Fin si
Fin Pour
Retourner nb
Fin

You might also like