ECOLE PRÉPARATOIRE DES SCIENCES ET TECHNIQUES – ANNABA Année Universitaire 2012

ECOLE PRÉPARATOIRE DES SCIENCES ET TECHNIQUES – ANNABA Année Universitaire 2012-2013 Informatique 2eme année Travaux Dirigés No 1 Solutions 1.1 Donner les deux manières d’inclure des commentaires dans un programme en C++. La première est d'employer le commentaire standard de modèle de C++ /* Comme ça */ Et l'autre manière est // Comme ça // La première commence par un slash et une étoile et se termine par une étoile et un slash. La seconde commence et se termine par une double-barre oblique. 1.2 Quel est le problème avec ce programme? #include <iostream> int main() { // prints "Bonjour!": cout << "Bonjour!\n" } Le point-virgule est absent de la dernière ligne de code. 1.3 Quel est le problème avec ce programme? cout << "Salut,/* change? */ et bonjour.\n"; Tout ce qui est entre les guillemets sera imprimé, y compris le commentaire prévu. 1.4 Quel est le problème avec ce programme? #include <iostream>; int main { // prints "n = 22": n = 22; cout << "n = << n << endl; } Il y a quatre erreurs : la directive du précompilateur concernant la première ligne ne devrait pas finir avec un point-virgule, les parenthèses sont absentes du main(), n n'est pas déclarées, et la double cotation de la dernière ligne est absente. 1.5 Que fait une déclaration? Une déclaration indique au compilateur le nom et le type de la variable déclarée. Elle peut également être initialisée dans la déclaration. 1.6 Quel est le but de la directive de prétraitement : #include <iostream> Elle comprend le contenu du fichier d'en-tête iostream dans le code source. Ceci comprend des déclarations requises pour l'entrée et la sortie ; par exemple, l'opérateur de sortie <<. 1.7 Quel est le programme en C++ le plus court possible ? int main() { } 1.8 Que-ce qui est erroné avec ces déclarations : int first = 22,last = 99,new = 44,old = 66; La seule erreur avec ces déclarations est que new est un mot-clé. Les mots-clés sont réservés et ne peuvent pas être employés pour des noms des variables. 1.9 Dans ce qui suit, supposer que m a la valeur 5 et n a la valeur 2 avant exécution. Que seront les valeurs de m et de n après que chacune des instructions suivantes s'exécute : a. m *= n++; b. m += --n; a. m sera 10 et n sera 3. b. m sera 6 et n sera 1. 1.10 Évaluer chacune des expressions suivantes, en supposant dans chaque cas que m=25 et n=7 : a. m - 8 - n b. m = n = 3 c. m%n d. m%n++ e. m%++n f. ++m - n-- a. m - 8 - n est évaluée à (25 - 8) - 7 = 17 - 7 = 10 b. m = n = 3 est évaluée à 3 c. m%n est évaluée à 25%7 = 4 d. m%n++ est évaluée à 25%(7++) = 25%7 = 4 e. m%++n est évaluée à 25%(++7) = 25%8 = 1 f. ++m - n-- est évaluée à (++25) - (7--) = 26 - 7 = 19 1.11 Analyser le programme suivant, en identifiant tous les mots-clés, identificateurs, opérateurs, littéraux, ponctuation, et commentaires : int main() { int n; cin >> n; n *= 3; // multiply n by 3 cout << "n=" << n << endl; } Le mot-clé est int. Les identificateurs sont main, n, cin, cout, et endl. Les opérateurs sont (), >>, *=, et <<. Les littéraux sont 3 et « n= ». Les symboles de ponctuation sont { ; , et}. Le commentaire est « /multiplie n par 3 ». 1.12 Identifier et corriger l'erreur dans ce qui suit : a. cout >> count; b. int double=44; a. L'objet de sortie cout exige l'opérateur <<. Cela devrait être cout << compte ; b. Le mot double est un mot-clé en C++ ; il ne peut pas être employé comme nom variable. Utiliser : int d=44 ; 1.13 En quoi les deux instructions suivantes diffèrent : char ch = 'A'; char ch = 65; Les deux instructions ont le même effet : elles déclarent ch comme char et pour l'initialise avec la valeur 65. Ceci (65) est le code ASCII pour « A », cette constante caractère peut également être employée pour initialiser ch à 65. 1.14 Quel code pourriez-vous exécuter pour trouver le caractère dont le code d'ASCII est 100 ? char c = 100 ; cout << c ; Problèmes 1.1 Écrire, en C++, quatre instructions différentes où chacune soustrait 1 de la variable entière n. a. n = n - 1; b. n -= 1; c. --n; d. n--; 1.2 Écrire un bloc de code en C++ qui a le même effet que l’instruction n = 100 + m++ ; sans employer l'opérateur de post-incrémentation. n = 100 + m; ++m; 1.3 Écrire un bloc de code en C++ qui a le même effet que l’instruction n = 100 + ++m; sans employer l'opérateur de post-incrémentation. ++m; n = 100 + m; 1.4 Écrire une instruction simple en C++ qui soustrait la somme de x et de y de z et puis incrémente y. z -= (x + y++); 1.5 Écrire une instruction simple en C++ qui décrémente la variable n et puis l'ajoute au total. total += --n; 1.6 Écrire un programme qui imprime le caractère gras « B » en 7× 6 d'étoiles comme ceci : int main() { // prints "B" as a block letter cout << "*****" << endl; cout << "* *" << endl; cout << "* *" << endl; cout << "*****" << endl; cout << "* *" << endl; cout << "* *" << endl; cout << "*****" << endl; } 1.7 Écrire et exécuter un programme qui imprime la somme, la différence, le produit, le quotient, et le reste de deux nombres entiers. Initialiser les nombres entiers avec les valeurs 60 et 7. int main() { // prints the results of arithmetic operators int m = 60, n = 7; cout << "The integers are " << m << " and " << n << endl; cout << "Their sum is " << (m + n) << endl; cout << "Their difference is " << (m - n) << endl; cout << "Their product is " << (m * n) << endl; cout << "Their quotient is " << (m / n) << endl; cout << "Their remainder is " << (m % n) << endl; } 1.8 Écrire et exécuter un programme qui imprime la somme, la différence, le produit, le quotient, et le reste de deux nombres entiers qui sont entrés interactivement (par clavier par exemple). int main() { // prints the results of arithmetic operators int m,n; cout << "Enter two integers: "; cin >> m >> n; cout << "The integers are " << m << " and " << n << endl; cout << "Their sum is " << (m + n) << endl; cout << "Their difference is " << (m - n) << endl; cout << "Their product is " << (m * n) << endl; cout << "Their quotient is " << (m / n) << endl; cout << "Their remainder is " << (m % n) << endl; } 1.9 Écrire et exécuter un programme qui démontre l'erreur approximative en exécutant les étapes suivantes : (1) initialise une variable a type float avec la valeur 666666 ; (2) initialise une variable b de type float avec la valeur 1-1/a ; (3) initialise une variable c de type float avec la valeur 1/b - 1 ; (4) initialise une variable d de type float avec valeur 1/c + 1 ; (5) imprime chacune des quatre variables. int main() { float a = 666666; // = a = 666666 float b = 1 - 1/a; // = (a-1)/a = 666665/666666 float c = 1/b - 1; // = 1/(a-1) = 1/666665 float d = 1/c + 1; // = a = 666666 != 671089 cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl; cout << "d = " << d << endl; } uploads/S4/ td1-corrige.pdf

  • 23
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mar 29, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.0766MB