PlanPrésentation générale du cours d'algorithmiquePrincipes de programmation impérative Syntaxe du langage C |
Les cours du lundiÀ partir du 6 octobre, sauf le 1er décembre (partiel)
Prérequis d'algorithmiquePour rattraper l'option informatique des classes préparatoires. Facultatif, mais son contenu doit être su.
|
Les TD et TP en demi-groupeTP : programmation en langage C (salle T)TD : exercices d'algorithmique (salles R ou "U ou V") début : TP le 7 octobre. deux groupes de taille équilibrée (11 stations en salle T) |
Séquence d'instructionsL'exécution d'un programme dans un ordinateur estl'exécution d'une séquence d'instructions, agissant sur la mémoire de la machine, interagissant avec l'extérieur par des entrées/sorties. La répétition d'une sous-séquence d'instruction se fait par une boucle, Le choix entre plusieurs sous-séquences possibles se fait par un aiguillage. Les briques de la programmation impérative sont les séquences d'instructions, les boucles et les aiguillages. |
Variables et typesL'action du programme sur la mémoire se fait par l'intermédiaire de variables, chacune ayant un type qui décrit ce qu'elle peut contenir.Une variable correspond à un espace mémoire d'une taille adaptée au type. Un type pointeur référence un espace mémoire, valide ou non, correspondant à une variable ou non. |
Types élaborésTableaux : une variable qui contient plusieurs copies numérotées et du même type.Structures/Enregistrements : une variable qui contient plusieurs champs successifs de types variés. Unions : une variable qui contient plusieurs champs superposés. Objets : la structure contient aussi les méthodes pour la manipuler. |
Procédures, argumentsUne procédure (routine) est une séquence d'instructions ayant des paramètres, appelés arguments.Ces arguments peuvent être transmis de plusieurs façons : par nom, par valeur, par référence. Une procédure peut manipuler des variables locales, invisibles de l'extérieur. Une fonction est une procédure ayant une valeur résultat. |
Gestion de la mémoireDe la mémoire est réservée pour
La mémoire est libérée
|
Langage compilé, interprétéUn interpréteur est un programme qui lit et exécuteau fur et à mesure les instructions du langage (ex.: maple). Un compilateur traduit le fichier des instructions de haut niveau en des instructions du microprocesseur. Il faut exécuter le programme résultat de la compilation (ex.: langage C). |
Types, opérationsentiers signés : short, int, longentiers non signés : unsigned ... flottants : float, double caractères : char vide : void constantes : -3, 2.7, 'c' déclaration de variable : int i résultat de fonction : return(expr) séquence : { inst; inst; } affectation : i = 3 comparaison : i == 3, <, <=, != arithmétique : +, -, *, /, % in(dé)crémentation : i++, i-- |
Contrôletestsif (expr) inst; if (expr) inst; else inst; expr ? inst : inst
while (expr) inst; for (start; end; cont) inst; exemple : for (i=0; i<10; i++) ...; |
Tableaux et pointeursint *U définit un pointeur vers un/des entiers.U = (int*) malloc(sizeof(int)) alloue un espace mémoire pour un entier. On accède à cet entier par *U. On libère la mémoire par free(U). int T[10] définit un tableau de 10 entiers, numérotés de 0 à 9. On accède à l'élément 4 par T[4]. int m[10][10] définit un tableau à deux coordonnées. Il y a définition implicite de pointeurs. |
Fonctions, macrosfonction
Remplacement syntaxique |
PréprocesseurHeaders dans toto.h :prototypes
commentaire
|
Allocation mémoire et portée
la portée est le bloc (la fonction) ou sinon le fichier |
Utiliser gcctoto.c et toto.h → toto.iPréprocesseur : expansion des macros (cpp ou gcc -E) toto.i → toto.s Compilateur : création du fichier assembleur (gcc -S) toto.s → toto.o Assemblage : création du fichier objet (as ou gcc -c) toto.o → toto Éditeur de liens : création de l'exécutable (ld ou gcc) Debug : -g Optimisation : -O Messages : -Wall Tout en une instruction : gcc -Wall -g -O toto.c -o toto |
This document was translated from LATEX by HEVEA.