Génie informatique initiation UE GEP2004L CC du 01/04/2016
Nom Prénom N° étudiant
A) Implémentation
Exercice A1
Programmez en langage C le code correspondant au pseudocode cidessous. Vous devez le
faire sous forme d’une fonction. A quoi sert cet algorithme ?
Algorithme
Entrée vec[n]
FAIRE
echange ← faux
Pour j de 0 à n2
Si
vec[j]>vec[j+1]
Echanger vec[j] et vec[j+1]
echange ← vrai
Fin Si
Fin Pour
TANT QUE echange est vrai
Fin Algorithme
B) Debug
Exercice B1
Soulignez les erreurs dans le programme ciaprès, puis corrigez les directement sur la feuille.
Qu’affiche ce programme si l’utilisateur saisi le mot “bonjour” au clavier ? Ecrivez votre réponse
cidessous.
Génie informatique initiation UE GEP2004L CC du 01/04/2016
#include <stdio.h>
#define TAILLE 100
#define N 26
int main()
{
int t[N], i, rg;
char s[TAILLE];
printf("Saisir un mot (en lettres minuscules): ");
scanf("%s", &s);
for(i=0; i<=N; i++) t[i] == 0;
i=0;
while(s[i] != '\0');
{
rg = s[i] 'a';
t[rg]++;
i++;
}
for(i=0; i<N; i++)
{
if(t[i]!=0) printf("%c > %f\n", 'a'+i,t[i],i);
}
printf("\n");
return EXIT_SUCCESS;
}
Génie informatique initiation UE GEP2004L CC du 01/04/2016
C) Théorie
Exercice C1
Décrire l’algorithme de recherche séquentielle.
Exercice C2
Triez le vecteur suivant en utilisant l’algorithme de tri par insertion. Vous devez écrire le vecteur
à chaque itération et mettre en évidence les échanges réalisés comme vu en cours.
Tri par insertion
2 7 3 120 18 37 25 60
D) Programmation
Exercice D1
Ecrire un programme qui demande à l’utilisateur de saisir un entier N et un réel x, puis calcule
et affiche le résultat de la formule suivante:
N
i
x 2i+1
y = ∑ (− 1) 2i+1
i=0
Exercice D2
Ecrire un programme qui permet à l’utilisateur de saisir un mot puis affiche:
1. le même mot à l’envers (exemple: si l’utilisateur saisit “TRACE”, le programme doit
afficher “ECART”),
2. le même mot mais sans les voyelles.
Exercice D3
Ecrire un programme qui permet à l’utilisateur de saisir trois nombres réels, puis les affiche
dans l’ordre croissant.