Le travail de ce TP se déroule seul.
Temps alloué : 3h
Référentiel
C4.4 Développer un module logiciel
IDE utilisé
Visual Studio 2015
But
Mettre en oeuvre les boucles, les conditions et les tableaux en langage C
1er exercice : Et les shadocks pompaient
Ecrire un programme qui affiche toutes les phrases Shadok d'un nombre de mots donné. Pour simplifier, nous ne ferons que les phrases de deux mots ou de trois mots.
Pour ceux (rares) qui ne la sauraient pas, le Shadok ne connaît que 4 mots : Ga, Bu, Zo et Meu. Exemple : si l'on rentre 2 comme nombre, il y aura 16 phrases possibles (BuBu, BuGa, BuMeu, BuZo, GaBu, GaGa...)
Remarques :
pour automatiser, vous allez utiliser un tableau de chaînes de caractères :
char * tab[] = {"Ga", "Bu", "Zo", "Meu"};
Pour afficher une chaîne de caractères :
printf("%s", tab[0]);
Comparaison de programme
On veut comparer l'efficacité de deux algorithme calculant la puissance d'un nombre (sans utiliser math.h)
Nombre au carré
Calculer le carré d'un nombre saisi au clavier
Puissance
Calculer la puissance d'un nombre x exposant y, x et y saisis au clavier.
Autre algorithme puissance
Même question que précédemment mais en utilisant les remarques suivantes :
En prenant par exemple 3 à la puissance 5.
5 en base deux s'écrit : 101 ==> on aura donc :
Pour obtenir les puissances multiples de 2, il faut remarquer que :
Il faut faire une boucle et vérifier s'il y a un 1 au nombre binaire de l'exposant.
Remarque :
Pour savoir si le dernier chiffre d'un nombre est un 1, il suffit de faire un et bit à bit (&) avec un masque de 1
Utiliser le symbole supérieur (deux fois) pour faire un décalage du nombre.
Calcul du temps des deux algorithmes
En utilisant la fonction clock() de la bibliothèque time.h, faire la comparaison des deux temps d'exécution.