Vous êtes sur la page 1sur 4

Université Paul Sabatier – Licence 3 SDI – Outils Informatiques– Examen –2008/2009 – page 1/4

Examen
Outils Informatiques
CORRECTION
16 décembre 2008

Durée : 2h00 — Documents interdits


La qualité de la rédaction des programmes et sa présentation seront pris en compte lors de la correction.

1 QCM (3 pts)
1.1. Le mot algorithme a été défini par Ada Lovelace en référence à
A Al Khuwarizmi, mathématicien arabe, précurseur de l’algèbre
B l’étymologie grecque de la locution « processus logique » introduite par le philosophe Aristote
C son père, le poète Lord Byron, comte de Gorith

1.2. Le mot « bit » signifie


A borne informatique terminale
B binary international transfer
C binary digit

1.3. Soit l’algorithme suivant


I = entier

Début
I <- 0 ;
Tant que (I <10)
I <- i+1 ;
Afficher (I) ;
Fin Tant que
Fin.

Cet algorithme :
A affiche la somme des entiers de 1 à 10 inclus
B affiche 10
C affiche tous les entiers de 1 à 10 inclus

1.4. En langage C, le type de données pour les nombres réels est :


A real
B float
C true

1.5. Sous Excel, le tracé d’une fonction f(x) s’effectue en utilisant l’option
A nuage de points
B courbe
C surface

1.6. Soit une feuille de calcul sous Excel. La formule =A2-2 est contenue dans la cellule C1. Si
le contenu de cette cellule est copié dans la cellule D3, quel est le contenu de la cellule
D3 après l’opération ?
A =A2-2
B =B4-2
C =B4+A2

../..
Université Paul Sabatier – Licence 3 SDI – Outils Informatiques– Examen –2008/2009 – page 2/4

2. Questions de Cours (6 pts)


2.1. Donner les principales étapes de conception d’un programme
Dans le modèle itératif (un des modèles de conception de programme), la 1ère étape consiste à spécifier
clairement le problème en dégageant les grandes fonctionnalités. Puis on conçoit l’algorithme en précisant les
données en entrée et celles attendues en sortie. Enfin, on traduit l’algorithme dans un langage de
programmation (phase de codage).

Problème  Enoncé  algorithme  Programme

2.2. Exprimer les 3 structures de contrôle fondamentales de l’algorithmique et expliquer leur


signification
3 structures de contrôle pour l’algorithmique : la séquence, la sélection et la répétition
• La séquence exprime l’enchaînement inconditionnel d’un ensemble d’actions, c’est à dire que toutes les
actions seront exécutées dans un ordre déterminé.
• La sélection exprime le choix entre deux actions en fonction de la valeur d’une condition.
• La répétition exprime qu’une action sera répétée tant qu’une condition est vraie.

2.3 Citer les types de base du langage C. Donnez les avantages et inconvénients de définir un
nouveau type de données ?
Le langage C comporte quatre types de bases : int (entiers), float (nombres flottants), double (nombres
flottants double précision) et char (caractère assimilables à des entiers courts)

Définir un nouveau type de données permet de manipuler plus facilement un ensemble de données cohérentes
pour le problème traité : il est en effet plus facile, par exemple, de manipuler des données de type « vecteur »
qu’un ensemble de coordonnées x,y,z que le programmeur fait correspondre avec la notion de vecteur.
L’inconvénient (si cela en est vraiment un) est que la définition de ce nouveau type n’est pas « standard » et
doit donc être faite pour chaque nouveau problème à traiter

3. Algorithmique (5 pts)
Ecrire un algorithme qui utilise les structures de contrôle de l’algorithmique qui permet de calculer et d’afficher
la somme de N nombres positifs minorée du plus grand et du plus petit nombre entrés par l’utilisateur (l’entrée
du nombre -1 clôt l’entrée des données).
Vous utiliserez la méthode de raffinage des algorithmes pour exprimer le résultat.

Plus grand nombre Clôture de la saisie


Exemple :
Nombres entrés : 2 5 8 1 6 -1
Nombre affiché : 2 + 5 + 6 = 13

Plus petit nombre


int main()
{
int somme = 0;
int min = 999999; // infini
int max = -999999; // -infini

int nombre=0; // nombre entré

scanf("%d",&nombre);
while (nombre >= 0)
{
// vérifier si le nombre est max ou min
if (nombre < min)
{
min = nombre;
}
if (nombre > max)
{
Université Paul Sabatier – Licence 3 SDI – Outils Informatiques– Examen –2008/2009 – page 3/4

max = nombre;
}

somme = somme + nombre;


scanf("%d",&nombre); // un nouveau nombre
}

somme = somme - max - min;


printf("Somme minorée du max et du min = %d", somme);

return(1);
}

4. Programmation en C (6 pts)
4.1. factorielle
Ecrire la fonction factorielle qui renvoie la factorielle d’un nombre positif ou nul

int factorielle(unsigned int x)


{
int facto = 1;
int i = 2;

while (i <= x)
{
facto = facto * i;
i++;
}
return(facto);
}

4.2. 4.2 exposant


Ecrire la fonction moins_un_exposant_n qui renvoie la valeur 1 ou -1 suivant la valeur de l’exposant n donné.

Exemple : -11= -1, -12 = 1, -13 = -1, etc.

int moins_un_exposant_n(int exposant)


{
if ((exposant % 2)==0)
return(1);
else
return(-1);
}

4.3. développement limité


Ecrire la fonction sinus qui, à partir d’un nombre x, permet de calculer le sinus de ce nombre en utilisant le
développement limité suivant :

Nota1 : on écrit : à l’ordre n+2


Nota2 : pour des raisons pratiques, vous négligerez le terme o(x2n+2) et fixerez la valeur de n à 5
Nota3 : vous pouvez réutiliser les fonctions précédemment écrites

float sinus(float x)
{
int i=0;
float sin=0.0;

while (i<=5)
{
sin = sin + (((float) moins_un_exposant_n(i)/factorielle(2*i+1))*pow(x,2*i+1));
i++;
Université Paul Sabatier – Licence 3 SDI – Outils Informatiques– Examen –2008/2009 – page 4/4

}
return(sin);
}

4.4. un programme
Ecrire maintenant un programme principal qui utilise les fonctions précédentes affiche successivement les
valeurs sinus(0), sinus(π/2), sinus(π) et sinus (3π/2)

#include <math.h>

#define PI 3.14

int factorielle(unsigned int x);


int moins_un_exposant_n(int exposant);
float sinus(float x);

int main()
{
int i=0;

for (i=0;i<4;i++)
printf("Valeur de sinus(%d*PI/2) = %f\n",i,sinus(i*PI/2));

return(1);
}

Vous aimerez peut-être aussi