Partie b
Exercice 2. Écrire un programme permettant de saisir un entier positif (exemple
5426). Il calcule l'envers du nombre lu (ici 6245) et affiche ces deux valeurs.
Part of the document
[pic]
ITI 1120 / 1520 Automne 2011
Introduction à l'informatique I : Examen partiel Durée de l'examen: 1.5 heures 30 octobre 2011, 14h00
Professeurs: Nathalie Japkowicz, Diana Inkpen Page 1 de 11 Instructions: À lire attentivement! 1. Complétez votre identification avec un stylo, à l'encre. 2. Cet examen est à livres fermés. Aucun livre ou appareil électronique
(incluant les calculatrices) n'est permis. 3. Il y a quatre questions à l'examen. Répondez à ces quatre questions (et
à leurs sous-questions) directement sur le questionnaire, dans l'espace
prévu. Les réponses écrites au crayon de plomb ne pourront pas être
recorrigées en cas d'erreurs. 4. Les points alloués à chaque question sont indiqués. Les questions n'ont
pas toutes le même poids, alors planifiez votre temps en conséquence. Cet
examen est noté sur 40 points et représente 20% de votre note finale. 5. Les algorithmes doivent être décrits à l'aide du format vu en classe et
dans les notes de cours. 6. Vous pouvez utiliser le verso des pages ou encore la page 10 pour vos
calculs et brouillons. Les pages 10 et 11 peuvent être détachées car
elles ne seront pas corrigées. 7. Answers in English will also be accepted. 8. Regarder le questionnaire de l'un de vos voisins mènera à l'expulsion de
l'examen. Identification: Nom: ______________________ # étudiant: __________________ Bonne chance! À l'usage du correcteur: |Question |Sur |Points |
|1 |8 | |
|2 |8 | |
|3 |12 | |
|4 |12 | |
|Total |40 | |
Question 1 (8 points au total - 4 points par partie)
Partie a) L'entier X vaut 5 et le tableau d'entiers A contient initialement {1, 3, 5,
7}. Pour chacune des expressions algorithmiques Booléennes suivantes,
indiquez si elle est vraie (en encerclant V) ou fausse (en encerclant F)
dans ce contexte.
a) V / F (NON (A[3] MOD 2 = 0)) OU (X MOD 3 = 3)
b) V / F (A[2] MOD 2 = 0) OU
( (X = A[A[0] +1]) ET (NON (A[1] MOD 2 = 0)) )
c) V / F (A[1] < A[X-3] ) ET (A[A[1]] + X < 5)
d) V / F ((A[3] MOD 4) + 6) = (A[A[1] - 1] ( 2) Partie b) Quelles seront les valeurs de X, Y et Z suite à l'exécution de
l'algorithme suivant, si A a comme valeur initiale { 1, 2, 3, 7, 6} et N la
valeur 5? DONNÉES: A, N INTERMÉDIAIRE: Index RÉSULTATS: X, Y, Z EN-TÊTE: (X, Y, Z) ( UnAlgorithme(A, N) MODULE: Réponse : X = ____2______ Y = ____1_______ Z = ____6_______ Question 2 (8 points) Java Traduisez fidèlement l'algorithme fourni à l'annexe A (page 11, détachable)
vers un programme Java en complétant la méthode de résolution de problème
sur la page suivante. public class Q3
{ public static void main( String[] args )
{
// DÉCLARATIONS DES VARIABLES ET DICTIONNAIRE DE DONNÉES
int n; // DONNÉE: Un nombre à tester
boolean premier; // RESULTAT: vrai si n est un nombre
// premier, faux sinon // LIRE LES DONNÉES
System.out.println("Veuillez entrer un nombre à vérifier: " ); // LIRE LE NOMBRE
n = ITI1120.readInt( ); // APPEL DE L'ALGORITHME premier = estPremier(n); // IMPRIME LES RÉSULTATS ET LES MODIFIÉS
if (premier)
{
System.out.println("Le nombre est premier.");
}
else
{
System.out.println("Le nombre n'est pas premier.");
}
}
public static boolean estPremier ( int n ) { boolean premier = true;
int diviseur = 3; if (n % 2 == 0) {
premier = false;
} while ((diviseur < n) && (premier == true))
if ( n % diviseur == 0) {
premier = false;}
else {
diviseur = diviseur + 2;
}
} return premier; }
Question 3 (12 points au total - 6 points par partie) Java Partie a)
Le programme suivant prend un tableau d'entiers en entrée et produit un
long tableau où chaque élément du tableau initial a été dupliqué. Par
exemple, si le tableau original vaut
a = {1, 2, 3, 4} alors le nouveau tableau résultant vaudra
b = {1, 1, 2, 2, 3, 3, 4, 4}. Cependant, deux erreurs logiques ont été faites lors de la production de ce
programme. Corrigez ces erreurs en suggérant des corrections pour deux
lignes de code (près des lignes de codes erronées). public static int [] construitNouveauTableau( int [] a)
{
int [] b;
int i;
int j; b = new int [2 * a.length - 1];