• Aucun résultat trouvé

Examen Intra (20 %)Veuillez fermer, s’il y a lieu, votre cellulaire.Directives pédagogiques:

N/A
N/A
Protected

Academic year: 2022

Partager "Examen Intra (20 %)Veuillez fermer, s’il y a lieu, votre cellulaire.Directives pédagogiques:"

Copied!
11
0
0

Texte intégral

(1)

Nom de famille:____________________ Prénom : _______________________________

Signature: ________________________________________________________________

IFT 1969 – Hiver xxxx

Examen Intra (20 %)

Veuillez fermer, s’il y a lieu, votre cellulaire.

Directives pédagogiques:

Date: xxxx Durée: 2 heures Local : xxxx

Toute documentation sur papier permise.

Ordinateurs personnels prohibés.

Calculatrice permise.

Notes :

- Répondre directement sur ce questionnaire.

- L’examen compte 10 pages incluant celle-ci.

- Utilisez le verso comme brouillon (si nécessaire)

1. Vrai/Faux avec justification (5 x 3 points) : /15 points

2. if vs switch : /15 points

3. Boucles : / 20 points

4. Fichiers + Tableaux à un seul indice et statistiques de base : / 30 points

5. Fonctions avec return et de type void : / 20 points

Total: _________/ 100

Section 1 : Vrai ou Faux (5 questions pour 15 points)

(2)

Répondez par Vrai (ou V) si l'énoncé est correct ou par Faux (ou F) si l'énoncé est incorrect. Si votre réponse est Faux et seulement dans ce cas, vous êtes tenu de justifier brièvement en français votre réponse.

1.1) L'exécution des instructions suivantes : int n = 5 ;

switch ( n % 4 ) { case 0 :

case 1 : printf(“Zero, Un”);

case 2 : printf(“Deux”);

default: printf(“Autre”);

}

fait afficher à l’écran : Zero, Un Réponse :

1.2) Les bons paramètres d’une fonction permettent, très souvent, d’appliquer le

même traitement (la même logique) avec des données différentes.

Réponse :

1.3) Avec les déclarations suivantes:

float reel = 12.5;

int entier = 125;

char carac = ‘A’;

l’instruction suivante permet d'afficher correctement les valeurs de ces trois variables:

printf(%c%4d%6.2f\n,reel,entier,carac);

Réponse :

(3)

1.4) Après l'exécution des instructions suivantes : int n = 5 ;

if ( n > 10)

n++ ; n += 3 ;

la valeur de n est 8

Réponse :

1.5) On ne peut pas écrire plus courte avec une autre boucle que while, les instructions

suivantes où n est une variable déclarée de type int : n = 0 ;

while ( n <= 10 )

{ printf(“Bonne chance!\n”);

n = n + 2;

} Réponse :

(4)

Section 2 : if vs switch (15 points)

Voici une partie d’un programme qui lit un code tapé au clavier par l’usager et initialise les valeurs entières a et b selon ce code.

int code, a, b;

printf("Entrez le code : ");

scanf("%d", &code);

if(code > 0 && code <= 3) { a=1;

b=0;

}

else if(code > 3 && code <= 6) { a=0;

b=1;

}

else if(code ==7 || code == 8) { a=1;

b=1;

} else

{ a=0;

b=0;

}

Ré-écrivez ces instructions en utilisant le switch plutôt que le

if imbriqué

. Réponse :

(5)

Section 3 : Les boucles (total de 20 points)

3.1 ( 8 points )

Ré-écrivez l’instruction suivante en remplaçant la boucle for par la boucle do … while . . . :

for( i = 0; i< 20; i = i+2) printf("%2d\n", i);

Réponse :

3.2 ( 12 points )

On aimerait déterminer et afficher les diviseurs de 15 selon le modèle suivant :

Les diviseurs de 15 : 1) 1

2) 3 3) 5 4) 15

Écrivez une suite d’instructions (pas un programme complet) y compris les déclarations

pour déterminer et afficher les diviseurs de 15 selon le modèle donné ci- dessus.

(6)

Réponse :

Section 4 : Fonctions (total de 20 points )

4.1 ( 10 points )

Soit la fonction suivante :

void afficher( int nombre ) { int s = 0, e = 0 ;

printf("%3d", nombre);

do {

s = s + (nombre % 10);

e = (e * 10) + (nombre % 10);

nombre = nombre / 10;

} while ( nombre > 0 );

printf("%4d%4d\nFin", s, e);

}

Que fait afficher l’appel suivant ? : afficher(27);

(7)

Réponse :

4.2 ( 10 points )

Entre 1 et 10 on trouve 6 diviseurs de 30, ce sont 1, 2, 3, 5, 6 et 10.

Entre 1 et 12 on trouve 3 diviseurs de 15, ce sont 1, 3, 5.

a) Complétez la fonction suivante qui permet de compter et de retourner le nombre

de diviseurs du nombre2 entre 1 et le nombre1 : _ _ _ _ _ _ leNombre (int nombre1, int nombre2) {

}

b) Complétez les appels suivants :

printf("Entre 1 et 10 on a %d diviseurs de 30\n",

);

printf("Entre 1 et 49 on a %d diviseurs de 100\n", );

Section 5 : Fichier, Tableaux à un seul indice et statistique de base (total de 30 points )

(vous avez le droit d’utiliser des fonctions mais ce n’est pas du tout une obligation

pour cette section 5).

5.1) Déclarez les tableaux suivants pour un maximum de 300 familles différentes.

un tableau, nommé salaire, capable de mémoriser les salaires familiaux (des réels)

(8)

un tableau, nommé nbEnfant, capable de mémoriser le nombre d’enfants (des entiers) un tableau, nommé nbVoiture, capable de mémoriser le nombre de voitures utilisées (des entiers)

Écrivez aussi la déclaration du nombre effectif de familles à traiter : nbFamilles.

Réponse :

5.2) Vous disposez d’un fichier texte appelé "infos_familles.txt". Sur chaque ligne du fichier, on trouve les informations d’une famille :

- Un nombre réel représentant son salaire.

- Un nombre entier représentant le nombre d’enfants.

- Un autre nombre entier représentant le nombre de voitures.

Voici un exemple d’un tel fichier : 35000.0 3 2

58000.5 5 3 22500.5 1 1 16000.0 1 0

a) Écrivez les instructions pour lire le fichier "infos_familles.txt", remplir les tableaux Salaire, nbEnfant et nbVoiture.

Lors de la lecture, vous devez compter le nombre de familles effectives que contient le fichier (La variable nbFamilles décrite plus haut).

(9)

b) Écrivez les déclarations et les instructions permettant :

- de calculer et d’afficher le nombre moyen de voitures chez des familles ayant 5 enfants;

- de calculer et d’afficher le nombre moyen de voitures chez des familles ayant 3 enfants.

Réponse :

b) Écrivez les déclarations et les instructions permettant :

- d’afficher les salaires des familles ayant 2 voitures ou plus;

- d’afficher les salaires des familles ayant 4 voitures ou plus.

(10)

Réponse :

c) Écrivez les déclarations et les instructions permettant :

- de déterminer et d’afficher le nombre maximum d’enfants dans une famille;

- de déterminer et d’afficher le nombre maximum de voitures dans une famille.

Réponse :

(11)

Bonne chance et bon succès!

Équipe du IFT 1969, hiver xxxx

Références

Documents relatifs

Veuillez consulter lea avis (sur site Web du cours) avant l’examen au cas où l’Université de Montréal décide des mesures qui pourront modifier cette date et les lieux du

Vous pouvez poser des questions sur cette solution vers samedis les 21 ou 28 février ou durant mes périodes de consultation.. Directives de l’intra du IFT 1170,

déterminer et afficher les informations du joueur ayant la taille la plus grande entre joueur2 et

Q.. 2) Supposons que vous disposiez de deux tableaux des réels : taille et poids et que nbPers est le nombre effectif de personnes dans ces deux tableaux. Écrivez une

Date: jeudi 14 avril 2004 (à confirmer vers jeudi le 07 avril) Consultez le site Web du cours avant l’examen au cas où l’Université de Montréal décide des

Je suis capable de montrer rapidement un nombre de doigts donnés, jusqu’à…. 3 6 10

Je suis capable de mémoriser la suite des nombres connus et d’associer le nom des nombres avec leur écriture chiffrée. De 1 à 5 De 1 à 10 De 10

Phase individuelle Quand le mot disparaît, chacun l’épelle encore dans sa tête.. Puis