Vous êtes sur la page 1sur 6

LA TÂCHE À ACCOMPLIR EST TOUJOURS LA MÊME À

CHAQUE QUESTION, SOIT INDIQUER CE QUI SERA AFFICHÉ À


LA CONSOLE

CES EXERCICES NE SONT PAS FACILES. IL Y A SEPT


PROBLÈMES, JE VOUS CONSEILLE DE VOUS LIMITER À UN
MAXIMUM DE DEUX PAR JOUR!

Vous pourriez évidemment copier-coller directement le code dans votre


environnement de programmation VSC… mais ceci ne vous prépare
pas du tout à l’examen final. Par contre, APRÈS avoir raisonné le
problème et trouvé une solution, vous pouvez certainement vérifier votre
réponse dans VSC!

QUESTION 1)

Soit le code suivant :

string s = ″Programmer me rend fou!″;


int tailleDeLaChaine = s.Length;
int a = 3;
int b, c, indiceDansLaChaine;
for(int i = 0; i < a; i++){
b = 4 + i;
c = b + 1 + i;
do{
indiceDansLaChaine = 0 + i;
while (indiceDansLaChaine < tailleDeLaChaine)
{
Console.Write(s[indiceDansLaChaine]);
indiceDansLaChaine++;
}
b++;
Console.WriteLine(b);
} while (b<c);
}

CE À QUOI VOUS POUVEZ VOUS ATTENDRE :


L’affichage aura un total de six lignes.
La phrase spécifiée dans le code sera toujours présente, par contre parfois avec un ou des
caractères manquants. Il y aura toujours un nombre à la fin de chacune des lignes, et il y a
une certaine séquence qui s’applique à ces nombres.
QUESTION 2)
int nombre = 0;

for (int i = 0; i < 3; i++){


for (int j = 0; j < i + 1; j++){
do {
nombre++;
while (nombre % 3 != 0) {
nombre++;
}
} while (nombre % 5 != 0)
if (nombre % 2 = = 0)
Console.Write(j + 1);
else
Console.Write((char)(97 + j));
}
Console.WriteLine();
}

CE À QUOI VOUS POUVEZ VOUS ATTENDRE :


Une réponse qui tient sur trois lignes d’affichage.
Les deux dernières lignes ont le même début.
Le nombre total de caractères est le double du nombre de lignes.

QUESTION 3)

Soit le code suivant :

int nombre, a, borne, ajustementBorne;


nombre = 0;
bool nombreEstNul;

do{
nombreEstNul = nombre = = 0;
a = 1;
borne = nombreEstNul ? 3 : 0;
ajustementBorne = nombreEstNul ? -1 : 1;
while (a < 3) {
borne += ajustementBorne;
for (int i = 0; i < borne ; i++){
nombre += a;
Console.Write(nombre);
}
Console.WriteLine();
a++;
}
} while (nombre != 9);
CE À QUOI VOUS POUVEZ VOUS ATTENDRE :
L’affichage aura un total de quatre lignes.
Il n’y aura que des chiffres, et ils seront tous en ordre croissant.
Le nombre de chiffres aux lignes « d’extrémité » est deux fois plus grand que le nombre
de chiffres aux lignes « du milieu ».

QUESTION 4)

Soit le code suivant :

int nombre, a, borne, ajustementBorne;


nombre = -1;
bool nombreEstNegatifUnitaire;

while (nombre != 8){


nombreEstNegatifUnitaire = nombre = = -1;
borne = nombreEstNegatifUnitaire ? 3 : 0;//0
ajustementBorne = nombreEstNegatifUnitaire ? -1 : 1;//1

for(int i = 0; i < 2; i++){


borne += ajustementBorne;//1,2
a = 0;
do{
a++;//1
nombre += i + 1;//0,1,3,4,6,8
Console.Write(nombre);
} while (a < borne);
Console.WriteLine();
}
}

CE À QUOI VOUS POUVEZ VOUS ATTENDRE :


Exactement la même disposition que le problème précédent!
QUESTION 5)

Comme ceci est la question #5…

Un des plus grands défenseurs de l’histoire du Canadien de Montréal portait le chandail


numéro #5 : Guy Lapointe (surnommé « Pointu »!) Il détient toujours le record d’équipe
du plus grand nombre de buts marqués en une saison par un défenseur, soit 28.

const int numeroDePointu = 28 % 5 + 2;


string s = "Programmer m’empêche de dormir!";
int a = 1;
int b = 9;
int nombreTemporaire, somme;
do {
for (int i = 0; i < b; i++){
Console.Write(s[i]);
somme = 0;
nombreTemporaire = a;
while (nombreTemporaire < numeroDePointu)
{
somme += nombreTemporaire;
nombreTemporaire++;
}
Console.Write(somme = = 0 ? "" : somme.ToString());
}
a++;
a++;
b++;
Console.WriteLine();
} while (a < b);

CE À QUOI VOUS POUVEZ VOUS ATTENDRE :

Un affichage sur un total de huit lignes. Il y a un certain mot qui sera important dans
l’affichage, qui apparaîtra en tout ou en partie à chaque ligne. Dans les deux premières
lignes, il sera « ventilé », en ce sens qu’entre chacune des lettres, un nombre sera inséré.
C’est toujours le même nombre sur une même ligne, mais ce n’est pas le même nombre
entre les lignes 1 et 2.

Dans les six dernières lignes, il n’y a plus de nombre, et il y a une certaine phrase qui
« s’allonge » de ligne en ligne.
QUESTION 6)

Le même thème a guidé la rédaction de cette question.

Si GUY LApointe (« Pointu ») portait le chandail #5, un autre grand « GUY LA… »
jouait pour le Canadien à cette époque, soit GUY LAfleur, qui portait le chandail #10.
Lafleur avait hérité des surnoms de « Flower » et du « Démon blond ».

En fait, cette syllabe de « LA » était vraiment à l’honneur dans les éditions du Canadien
des années ’70 :
Michel LArocque : gardien de but, #1 (surnom : « Bunny »)
Yvon LAmbert : ailier gauche, #11
Rod LAngway : défenseur, #17
LArry Robinson : défenseur, #19 (surnom : « Big Bird »)
Pierre LArouche : centre, #28 (surnom : « Lucky Pete »)

const int numeroDePointu = 5;


const int numeroDuDemonBlond = 10;
string s = ″Programmer est dangereux pour ma santé!″;
int tailleChaine = s.Length;
const int numBunny = 1;
const int numLambert = 11;
const int numLangway = 17;
const int numBigBird = 19;
const int numLuckyPete = 28;
int[] lesAutresLa = {numBunny,numLambert,numLangway,numBigBird,numLuckyPete};

int indTablo_BorneInf = 0;
int nmbrDIter, compteurIterations;
int nombre = numeroDePointu;

while (nombre < numeroDuDemonBlond - 1){


nmbrDIter = lesAutresLa[indTablo_BorneInf+1] - lesAutresLa[indTablo_BorneInf];
compteurIterations = 0;
do{
for (int i = 0; i < tailleChaine - nombre;i++){
Console.Write(s[i]);
}
Console.WriteLine();
compteurIterations++;
} while (compteurIterations < nmbrDIter);
nombre++;
indTablo_BorneInf++;
}
CE À QUOI VOUS POUVEZ VOUS ATTENRE : un assez long affichage de 27 lignes!
Il n’y a strictement aucun chiffre dans cet affichage. La phrase présentée dans l’énoncé
du code est toujours présente dans chacune des lignes d’affichage, mais encore une fois,
avec un certain nombre de caractères qui ont été enlevés… mais cette fois-ci, pas du
même côté qu’à la toute première question!

Les 10 premières des 27 lignes sont identiques entre elles. Les 8 prochaines SEMBLENT
identiques entre elles, à l’affichage, mais en réalité, il y un détail qui diffère entre les six
premières et les deux dernières (de ces huit). Finalement, les neuf dernières lignes sont
identiques entre elles.

QUESTION 7)

Supposez que vous ayez accès à la méthode « EstConsonne(…) » qui prend en paramètre
un caractère et retourne vrai ou faux selon que ce caractère est un lettre et une consonne
(peu importe que la lettre soit minuscule ou majuscule). Indiquez alors ce que la console
affichera suite à l’exécution des structures de contrôle itératives suvantes.
string alphabet = "abcdefghijklmnopqrstuvwxyz";
int indiceDansAlphabet = -1;
char carac;
for (int i = 1; i <= 4; i++){
Console.Write(alphabet[i]);
do {
Console.Write("toto");
indiceDansAlphabet++;
carac = alphabet[indiceDansAlphabet];
while(EstConsonne(carac)){
Console.Write(carac);
indiceDansAlphabet++;
carac = alphabet[indiceDansAlphabet];
}
} while (EstConsonne(carac));
Console.WriteLine();
}

CE À QUOI VOUS POUVEZ VOUS ATTENDRE :


Quatre lignes d’affichage. Il y aura un certain mot (le même) apparaissant à chacune des
lignes, et il est toujours précédé d’un caractère. Il y a une certaine « progression » que
l’on peut observer pour ce caractère (entre les différentes lignes). Après le mot, ou bien il
n’y a rien du tout, ou bien il y a une série de lettres, et là encore on peut observer une
certaine progression entre toutes ces lettres.

Vous aimerez peut-être aussi