Exam 1 (module 1) Flashcards
Avantage d’un langage compilé?
Vitesse d’exécution plus rapide
Définition de portabilité d’un programme
Sa capacité à pouvoir être adapté en vue de fonctionner dans différents environnements d’exécution.
Action de modifier un programme pour qu’il puisse s’exécuter sur un autre environnement.
Le portage
(Vrai ou faux) Un compilateur donné est toujours spécifique au système d’exploitation pour lequel il a été conçu.
Vrai
Code source -> (1)? -> code source étendu -> (2)? -> il y a des erreurs -> (3)?
1-pre-processeur
2-compilateur
3-code source (repart au début)
compilateur -> pas d’erreurs -> (1)? -> (2)? -> il y a des erreurs -> (3)?
1-code objet
2-éditeur de liens
3-code source (retourne au début)
éditeur de liens -> pas d’erreurs -> ?
code exécutable
include <iostream></iostream>
Comment cette partie du code s’appelle-t-elle?
#include <math.h>
using namespace std;</math.h>
Directives pour la pré-compilation (gérées par le pré-processeur)
Nom de la partie du code qui se trouve où les *?
int main() {***}
Bloc principal
À quoi sert return 0 à la fin du programme?
À indiquer qu’il a bien fonctionné
Pourquoi déclarer les variables?
▪ taille de l’espace mémoire requis
▪ opérations associées
▪ codage, décodage
▪ lisibilité (choix des identificateurs)
▪ détection d’erreurs
Normes des noms de variables
◼ Suite de caractères (alphanumériques).
◼ Premier caractère : une lettre (ou _ ).
◼ Majuscules et minuscules
◼ Seulement les 32 premiers caractères sont « significatifs ».
Est-ce que la variable suivante est initialisée?
int unEntier;
Non, elle est juste déclarée
Façons d’initialiser une variable (mettons qu’on veut que la valeur de unEntier soit de 5)
int unEntier = 5;
int unEntier (5);
int unEntier {5};
(Vrai ou faux) Dans un if, le else est nécessaire
Faux, else est toujours facultatif
Autre façon d’écrire:
if ( n > 1 )
{
i = i + 1;
}
else
{
i = i – 1;
}
( n > 1 ) ? i = i + 1 : i = i – 1;
<condition>?<valeur>:<valeur>;
</valeur></valeur></condition>
Comment ça marche les switch / case?
switch( variable )
{
case 1 : cout «_space;“un” «_space;endl; break;
case 2 : cout «_space;“deux” «_space;endl; break;
default: cout «_space;“erreur!” «_space;endl;
}
La valeur de l’expression (ici c’est variable) est comparée avec la valeur de chaque cas. Si il y a un match, le bloc associé est exécuté. Si aucun match, le bloc par défaut est exécuté. (break et default son optionels)
Structure d’une boucle while
while (condition)
{
… ;
}
exemple de condition : i<20
Structure d’une boucle do while et différence avec la boucle while
do
{
…;
} while (condition);
différence : ça rentre dans la boucle au moins une fois
Structure d’une boucle for
for (initialisation; condition d’arrêt; instruction de fin de boucle)
{…}
exemple:
for (int i = 2; i <= 10; i++)
{
…;
}
Ça sert à quoi de mettre unsigned devant un type de variable?
De forcer à avoir juste des valeurs positives.
char (nombre de bits et intervalle)
8 bits, [-127, 127] (code ASCII)
Différence entre float et double?
float : 32 bits (7 chiffres signif.)
double : 64 bits (15 chiffres signif. -> plus de précisoin)
Comment transformer une lettre majuscule en minuscule?
+ ‘a’ - ‘A’
Chiffre qui représente true (en C++)? Et false?
true : 1
false : 0
Constantes symboliques vs constantes typées
symboliques:
-Avant la compilation, le pré-processeur parcourt
l’ensemble du programme et remplace chaque
occurrence du symbole par la valeur définie.
-ex : #define TAUX_TPS 0.05f
typées:
-ex : const float TAUX_TPS = 0.05;
Analyse lexicale
Le compilateur identifie les différents symboles qui composent le programme
Crible
Le compilateur fait le tri parmi les symboles identifiés lors de
l’analyse lexicale entre les symboles utiles, les symboles inutiles
et les symboles qui s’adressent directement au compilateur.
Analyse syntaxique
Le compilateur cherche à retrouver la structure du programme.
Cette tâche est accomplie en analysant les symboles lexicaux.
C’est également durant cette étape que les erreurs de syntaxe
du programmeur sont détectées.
Analyse sémantique
Sert à détecter les autres erreurs que l’on peut commettre en
écrivant un programme, comme entre autres, les erreurs de
typage.