Vous êtes sur la page 1sur 2

Introduction à l’informatique et à la programmation - Université de la Méditerranée, 2009-2010

Introduction à l’informatique et à la programmation


Partiel du 20 novembre 2009

Durée de l’épreuve : 2 heures. Il y a 4 exercices à traiter.


Les notes de cours, TD et TP sont autorisées. Les calculettes sont interdites.
Soignez l’écriture de vos programmes, en particulier l’indentation, il en sera tenu compte dans la
notation.

Exercice 1 (2 points)
Supposons que vous soyez en train de travailler dans une salle de TP des ”Ateliers Informatiques” à
Luminy. Ecrivez la suite de commandes Unix qui vous permettent d’effectuer les actions suivantes :
1. Afficher à l’écran le nom du répertoire courant ;
2. Afficher à l’écran le contenu du répertoire courant ;
3. Créer dans le répertoire courant un nouveau sous-répertoire nommé ”Annales” ;
4. Créer dans ”Annales” l’arborescence suivante de répertoires :

Annales
 HHH
 H
 H
IntroInf o M athsDiscretes
H
 H
 HH
2006 2007 2008

Exercice 2 (4 points)
On veut écrire un programme qui permet à l’utilisateur d’entrer au clavier une suite de nombres réels
positifs ou nuls, et qui calcule et affiche la moyenne de ces nombres.
Il y a deux cas : soit l’utilisateur sait à l’avance combien de nombres il va entrer, soit il ne le sait pas.
1. Ecrivez une première version du programme, qui correspond au premier cas (ici, le programme
commencera par demander à l’utilisateur combien de nombres il va entrer).
2. Ecrivez une deuxième version du programme, qui correspond au deuxième cas (ici, le programme
indiquera à l’utilisateur que la suite de nombres entrés devra se terminer par la valeur -1).

Exercice 3 (3 points)
Soit t un tableau de 8 nombres entiers, initialisé avec votre date de naissance (jjmmaaaa). Par
exemple, si vous êtes né(e) le 16 avril 1995, le tableau t contient : 1 6 0 4 1 9 9 5.
Soit u un autre tableau de 8 nombres entiers, initialisé à 0.
On suppose que :
- la fonction afficher(tab,n) affiche sur une ligne les n éléments du tableau tab séparés par un espace ;
- les variables c, i, j sont des variables de type int.
Décrire les affichages produits lors de l’exécution des instructions suivantes :
afficher (t,8) ;
afficher (u,8) ;
c = 0 ;
j = 0 ;
for (i=0 ; i<8 ; i++)
{
if ((t[i]%2) == 0)
c = c + t[i] ;
else
{
u[j] = t[i] ;
j++ ;
}
printf ("i = %d c = %d j = %d \n", i , c , j) ;
}
afficher (u,j) ;

Exercice 4 (11 points)


Notre but est d’écrire un programme qui :
- définit une constante N = 25,
- remplit un tableau T de N entiers tirés aléatoirement dans [0, 20],
- affiche le contenu de T ,
- pour chaque entier k de [0, 20], compte et affiche le nombre d’occurrences de k dans T .

Répondez aux questions ci-dessous, de telle façon que l’exécution du programme donne un affichage
semblable à l’exemple suivant :
Voici le contenu du tableau :
17 3 9 11 6 2 4 6 7 6 19 0 5 14 4 11 12 1 9 15 0 11 20 5 8
Nombre d’occurrences de chaque entier entre 0 et 20 :
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2 1 1 1 2 2 3 1 1 2 0 3 1 0 1 1 0 1 0 1 1
Question 1
Ecrivez les fonctions suivantes :
1. la fonction void remplir tab(int t[ ],int n) remplit le tableau t, de taille n, avec n entiers tirés
aléatoirement dans [0,20]
2. la fonction void aff tab(int t[ ],int n) affiche à l’écran, sur une ligne, le contenu du tableau t de
taille n
3. la fonction int compter occ(int x, int t[ ], int n) qui renvoie le nombre d’occurrences de la valeur
x dans le tableau t de taille n
4. la fonction main qui orchestre l’ensemble du programme, de telle façon que l’affichage à l’écran
soit semblable à l’exemple donné ci-dessus.
Question 2
On désire modifier le programme, en utilisant un tableau N b Occ de 21 entiers tel que, pour chaque
entier k de [0, 20], N b Occ[k] est le nombre d’occurrences de k dans T .
Ce deuxième tableau permet de faire les calculs demandés en ne parcourant T qu’une fois, et sans
utiliser la fonction compter occ.
Ecrivez une nouvelle version de la fonction main, qui utilise le tableau N b Occ[k] et qui n’utilise pas
la fonction compter occ. Ici encore, l’affichage à l’écran doit être semblable à l’exemple donné.