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

Documents pareils