|
Université
de la Polynésie Française |
Partiel
Algo et programmation C Deug MIAS 2 Année
2002-03 Jeudi 13
Novembre 2002 |
1.Vous disposez de une heure,
2.vos documents personnels sont autorisés,
3.le barème est donné à titre indicatif et est susceptible d'être modifié.
A partir d'une liste d'entiers quelconque, on souhaite calculer la plus grande suite de nombres pairs contenue dans cette liste. Il s’agit simplement de rendre la taille de la plus grande suite d’entiers pairs trouvée. Les exemples ci-dessous sont probablement plus explicites qu’un long discours.
Exemples :
1. liste = 3, 4, 6, 8, 7, 18, 20, 21, 30 le résultat est 3 car la plus longue suite de pairs est : 4, 6, 8
2. liste = 12, 3, 67, 21, 44, 66, 8, 12 le résultat est 4 car la plus longue suite de pairs est : 44, 66, 8, 12
3. liste = 5, 7, 6, 3, 9, 10 le résultat est 1 car la plus longue suite de pairs est : 6 ou 10
4. liste = 5, 7, 11, 3, 9 le résultat est 0 car il n'y a aucun nombre pair
Soit chaine une chaîne de caractères (un tableau de caractères) de taille longueur_chaine. On souhaite insérer une autre chaîne de caractères insert de taille longueur_insert à l’intérieur de chaine de tel sorte que le début de insert se trouve en position pos de chaine.
Exemples :
|
chaine |
Insert |
pos |
Résultat |
|
« bonjour » |
« abcd » |
3 |
« bonabcdjour » |
|
« bonjour » |
« abcd » |
0 |
« abcdbonjour » |
|
« bonjour » |
« abcd » |
7 |
« bonjourabcd » |
|
« world » |
« Heworldllo » |
||
|
« world » |
« Helloworld » |
Soit l’algorithme suivant :
|
mystere[0] <== tab[0] |
|
lmystere <== 1 |
|
Répéter pour i allant de 1 à longueur -1 |
|
/* ?????????? */ |
|
j <== 0 |
|
tant que (tab[i] > mystere[j]) ET (j < lmystere) |
|
j <== j + 1 |
|
fin_tant_que |
|
/* ?????????? */ |
|
Répéter pour k allant de lmystere -1 à j par pas de -1 |
|
mystere[k+1] <== mystere[k] |
|
fin_de_répéter |
|
mystere[j] <== tab[i] |
|
lmystere <== lmystere + 1 |
|
fin_de_répéter |
Si tab vaut : 8 12 6 7 14 9 23 et longueur = 7
Donner étape par étape la liste mystere.
Ecrire en C une procédure codant l’algorithme de la question précédente et utilisant pour la représentation d’une liste la structure suivante :
#define MAX
15
typedef
struct liste {
int taille;
int elts[MAX];
}liste;