Travaux pratiques - dept
Transcription
Travaux pratiques - dept
Licence Mathématiques Université Bordeaux 1 INF163-Programmation Impérative Feuille 2.1 Travaux pratiques Dans votre répertoire INF163 créer un sous-répertoire sources et y télécharger le fichier 1.pi.tgz. Ce fichier compressé contient un répertoire 1.pi lui même organisé en sousrépertoires contenant les exemples de programmes traités en cours. Extraire l’ensemble de ces fichiers à l’aide de la commande : tar xvfz 1.pi.tgz Cette commande va créer une arborescence de racine 1.pi dans votre répertoire sources. Dans votre répertoire INF163 créer aussi un sous-répertoire semaine_2 qui sera le répertoire de travail de cette séance de TP. Caractères Exercice 1. En s’inspirant des programmes vus en cours : 1. Écrire un programme qui reçoit successivement tous les octets arrivant de l’entrée standard et les réaffiche en transformant les lettres majuscules en minuscules. 2. Écrire un programme qui calcule la fréquence de chaque lettre de l’alphabet (majuscules et minuscules confondues) contenue dans un texte saisi depuis l’entrée standard. Exemple : si le texte est bla bla bla ! ! ! le programme affichera : a - A : 0.33 b - B : 0.33 l - L : 0.33 Récursivité Exercice 2. Écrire une fonction récursive pour calculer n! en utilisant la définition : 0! = 1 ∀n > 1, n! = n ∗ (n − 1)! Exercice 3. 0 ≤ p ≤ n. Le nombre de combinaisons de p éléments pris parmi n, Cnp , est défini pour p−1 p On montre que Cn0 = Cnn = 1 et Cnp = Cn−1 + Cn−1 . Utiliser cette propriété pour écrire une fonction combinaison_recursive(n,p). Exercice 4. Écrire une fonction récursive float puiss(float a, int n) pour calculer n a en utilisant la définition : 0 a =1 ∀n > 0 : an = an/2 ∗ an/2 si n pair an = an/2 ∗ an/2 ∗ a si n impair