Fiche de révision : Spécification et programmation en C/C++

Plan du Cours

  1. Informatique et algorithmes
  2. Chaîne de traitement informatique
  3. Codage de l’information
  4. Premiers programmes C et C++
  5. Compilation et organisation des fichiers
  6. Types et structures de données
  7. Blocs et opérateurs
  8. Contrôles et fonctions
  9. Paramètres et références
  10. Mémoire et pointeurs

1. Informatique et algorithmes

Notions clés & Définitions

  • Algorithme : Séquence d’instructions qui décrit, pour un environnement donné, les étapes à suivre pour obtenir un résultat de façon reproductible.

★ À maîtriser

📌 Un programme est une traduction compréhensible par un ordinateur d’un algorithme dans un langage de programmation, tandis qu’un algorithme est plus général et indépendant du langage.

Compléments

  • L’informatique est la science du traitement rationnel de l’information, la plupart du temps avec des machines automatiques.

Astuce mémo

Algorithme indépendant du langage, programme traduit pour la machine

2. Chaîne de traitement informatique

★ À maîtriser

  • 🔄 Le traitement d’un problème suit les étapes suivantes:
    1. Analyse du problème
    2. Conception de l’algorithme
    3. Programmation
    4. Compilation
    5. Exécution
    6. Analyse des résultats

📌 La compilation traduit tout le programme en code binaire avant l’exécution, l’interprétation simule chaque instruction à l’exécution, et une machine virtuelle exécute un langage compilé pour une machine générique.

Compléments

  • Le compilateur traduit le programme, l’ordinateur exécute le programme et l’expertise permet d’analyser les résultats.

Astuce mémo

Analyser → programmer → compiler → exécuter → analyser

3. Codage de l’information

★ À maîtriser

  • Un bit représente un 0 ou un 1, et 8 bits forment un octet.

  • Un entier non signé stocké sur n bits est compris entre 00 et 2n−12^n-1.

  • La représentation IEEE-754 sur 32 bits utilise 1 bit de signe, 8 bits d’exposant et 23 bits de mantisse.

Compléments

  • Pour représenter -25 en complément à deux sur un octet, on écrit 25 en binaire, on inverse les bits, puis on ajoute 1, ce qui donne 11100111.
  • Le code ASCII associe notamment A à 65 et B à 66, tandis qu’Unicode et ses dérivés comme UTF-8 permettent de représenter davantage de caractères.

4. Premiers programmes C et C++

★ À maîtriser

  • Dans un programme C, #include inclut des déclarations, les commentaires /* ... */ ne sont pas interprétés par le compilateur, main est la fonction principale et return 0 indique un retour entier de succès.

📌 En C++, cout est plus sûr et plus puissant que printf pour les sorties, tandis que cin joue le rôle de scanf pour les entrées.

Compléments

📌 La fonction main peut recevoir argc et argv, où argc indique le nombre d’arguments de la ligne de commande et argv contient ces arguments.

Astuce mémo

printf/scanf en C, cout/cin en C++

5. Compilation et organisation des fichiers

★ À maîtriser

  • La construction d’un exécutable compilé consiste à transformer les fichiers sources en fichiers objets, puis à assembler les fichiers objets et les bibliothèques par édition des liens.

📌 Le fichier d’en-tête .h ou .hpp contient les prototypes, tandis que le fichier .c ou .cpp contient les définitions et l’implémentation des fonctions.

Compléments

  • La commande gcc -c helloworld.c compile le fichier source, puis gcc -o helloworld.out helloworld.o réalise l’édition des liens.

📌 Un include-guard utilisant #ifndef, #define et #endif empêche les inclusions multiples d’un même fichier d’en-tête.

Astuce mémo

Sources → objets → édition des liens → exécutable

6. Types et structures de données

Notions clés & Définitions

  • Vector : Tableau dynamique C++ dont la taille peut changer pendant l’exécution.
  • Array : Tableau statique C++ dont la taille est fixe et connue à la compilation.
  • Structure : Regroupe plusieurs champs éventuellement de types différents sous un même type composé.

Points essentiels

  • Les principaux types de base sont:
    • char
    • int
    • short
    • long
    • long long
    • float
    • double

Astuce mémo

vector dynamique sur le tas, array fixe sur la pile

7. Blocs et opérateurs

★ À maîtriser

📌 La portée d’une variable locale est le bloc d’instructions dans lequel elle est déclarée, et une variable déclarée dans un bloc interne peut masquer une variable de même nom du bloc externe.

  • Les opérateurs arithmétiques comprennent +, -, *, / et %, tandis que +=, -=, *= et /= sont des formes raccourcies d’affectation.

Compléments

📌 La forme préfixe ++b modifie b avant son utilisation, tandis que la forme suffixe b++ utilise d’abord l’ancienne valeur puis incrémente b.

📌 Une conversion explicite s’écrit var2 = (newtype)var1, mais une conversion vers un type moins précis peut entraîner une perte d’information.

8. Contrôles et fonctions

Notions clés & Définitions

  • Fonction : Une fonction est définie par un type de retour, un nom, une liste de paramètres et un bloc d’instructions, et elle renvoie une valeur avec return sauf si son type est void.

★ À maîtriser

📌 Dans une condition C, 0 signifie faux et toute autre valeur signifie vrai, avec les opérateurs &&, ||, !, ==, !=, <, <=, >= et >.

  • Une boucle while teste sa condition avant chaque itération, une boucle do while l’évalue après chaque exécution, et une boucle for organise initialisation, condition et incrément.

Compléments

📌 L’instruction break sort de la structure de répétition correspondante, tandis que continue passe immédiatement à l’itération suivante.

Astuce mémo

Conditionner → répéter → factoriser en fonctions

9. Paramètres et références

★ À maîtriser

📌 Le passage par valeur transmet une copie de l’argument, le passage par référence utilise un même objet sous deux noms, et le passage par adresse transmet un pointeur contenant l’adresse de l’argument.

Compléments

  • La fonction echanger(int &x, int &y) peut échanger deux entiers en modifiant directement les variables reçues par référence.

  • La fonction sommediff(int a, int b, int *somme, int *diff) peut retourner plusieurs résultats en écrivant la somme et la différence dans les adresses fournies.

Astuce mémo

Valeur copiée, référence aliasée, pointeur adressé

10. Mémoire et pointeurs

Notions clés & Définitions

  • Pointeur : Variable contenant l’adresse d’une donnée d’un type donné.

★ À maîtriser

📌 L’opérateur & récupère l’adresse d’une variable, tandis que l’opérateur * déréférence un pointeur pour accéder au contenu de l’adresse.

  • Le mot-clé nullptr représente un lien vide ou inexistant, new alloue de la mémoire et renvoie un pointeur, et delete libère la mémoire associée au pointeur.

Compléments

  • Après int a = 123, int *x = &a et *x = 342, les expressions a et *x valent toutes deux 342.

  • Les pointeurs sont notamment utiles pour:

    • Les listes chaînées et les arbres
    • Le passage de paramètres
    • L’allocation dynamique de mémoire

Astuce mémo

Adresse → pointeur → déréférencement → modification de la donnée

Tableaux de synthèse

Compilation et exécution

ModePrincipeCaractéristique
CompilationTraduction complète en code binaireRapide après compilation
InterprétationSimulation des instructions à l’exécutionPlus flexible mais moins rapide
Machine virtuelleCompilation vers une machine génériqueNécessite une machine virtuelle

Teste tes connaissances

Teste tes connaissances sur Spécification et programmation en C/C++ avec 24 questions à choix multiples et corrections détaillées.

1. Quelle définition décrit le mieux un algorithme ?

2. Quelle distinction entre un algorithme et un programme est correcte ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Spécification et programmation en C/C++ avec 66 flashcards interactives.

Qu'est-ce qu'un algorithme en informatique ?

Une séquence d'instructions décrivant des étapes reproductibles.

Quelle différence principale existe entre un programme et un algorithme ?

Le programme est une traduction d'un algorithme dans un langage compréhensible par un ordinateur.

Quelles sont les étapes du traitement d'un problème informatique ?

Analyse, conception d'algorithme, programmation, compilation, exécution, analyse des résultats.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches