Au sujet des séances de travaux pratiques
1. Présentation du langage C
1.1. Historique
1.2. Un premier programme
1.3. Mise en oeuvre
1.4. Remarques
2. Variables et types fondamentaux
2.1. Déclarer une variable pour pouvoir l’utiliser
2.2. Types fondamentaux
2.2.1. Les variables de type caractère uniquement
2.2.1.1. Déclaration et initialisation de variables caractères
2.2.1.2. Utilisation de l’équivalence entre les caractères et leur représentation ASCII
2.2.1.3. Séquences dites d’échappement.
2.2.2. Les trois types de variables entières
2.2.2.1. Les entiers représentés avec 16 bits (2 octets)
a) Le type short ou signed short
b) Le type unsigned short
2.2.2.2. Les entiers représentés avec 32 bits et plus (4 octets).
a) Le type int ou signed int
b) Le type unsigned int
c) Le type long ou signed long
d) Le type unsigned long
2.2.2.3. Quelques erreurs à éviter avec les entiers
2.2.2.4. Les notations hexadécimales et octales
2.2.3. Les variables réelles
2.2.3.1. Pourquoi les machines calculent-elles toujours faux ?
2.2.3.2. Les deux types de variables réelles : float, double
a) Conditions aux limites des domaines de définition
b) Le type float
c) Le type double
2.2.4. Mélange de variables entières et réelles dans une même expression
3. Opérateurs
3.1. L’opérateur d’affectation =.
3.2. Les opérateurs arithmétiques
3.2.1. Les opérateurs dits « unaires »
3.2.2. Les opérateurs « binaires »
3.2.3. Les opérateurs de manipulation de bits
3.2.3.1. L’opérateur unaire d’inversion bit à bit : ~ [Alt] 126
3.2.3.2. Opérateurs logiques binaires bit à bit : & , | , ^
3.2.3.3. Les opérateurs de décalage binaire vers la droite et vers la gauche
3.2.4. Les opérateurs logiques
3.2.4.1. Les opérateurs de comparaison (<, >, <=, >=, !=, ==)
3.2.4.2. Les opérateurs logiques (&& , || , !)
3.2.5. Les opérateurs spéciaux
3.2.5.1. L’opérateur ternaire conditionnel ?
3.2.5.2. L’opérateur séquentiel ,
3.2.5.3. L’opérateur de transtypage ()
3.2.5.4. L’opérateur sizeof()
3.2.5.5. Les opérateurs unaires d’adresse et d’indirection & et *
3.2.6. Ordre de priorité des opérateurs en C
4. Saisir et afficher des données
4.1. Lecture et écriture de caractères isolés avec getchar et putchar
4.2. E/S de chaînes de caractères avec gets, fgets et puts
4.3. Afficher avec la fonction printf().
4.4. Lire avec la fonction scanf()
4.4.1. Saisie de valeurs numériques
4.4.2. Saisie de caractères ou de chaînes
4.4.3. Qu’est-ce que ce « tampon » ?
4.4.4. Quelques règles de sécurité
4.5. Quelques compléments utiles
4.5.1. Vider le tampon après un appel à scanf()
4.5.2. Saisie de chaînes où figurent des espaces
4.5.3. Limitation du nombre de caractères saisis par scanf().
5. Structures de contrôle
5.1. Branchements conditionnels
5.1.1. La structure de contrôle if
5.1.2. La structure de contrôle if…else
5.1.3. La structure de contrôle switch
5.2. Les répétitions
5.2.1. La boucle while
5.2.2. La boucle for
5.2.3. La boucle do…while
5.2.4. Les instructions break et continue
5.2.5. Comment faire n fois quelque chose
5.2.6. Les pièges infernaux des boucles
6. Les fonctions
6.1. Qu’est-ce qu’une fonction ?
6.2. Prototype d’une fonction
6.3. Définition d’une fonction
6.4. Visibilité des variables dans un programme
6.5. Quelques exemples de fonctions
6.6. Déclaration d’une fonction
6.7. Comprendre le passage par valeur
6.8. Comprendre la notion de valeur retournée
6.9. Erreurs courantes
6.10. Récursivité
7. Les tableaux
7.1. Déclaration et initialisation
7.2. Affectation
7.3. Les débordements
7.4. Passage en argument de fonctions
7.5. Les tableaux à plusieurs dimensions
8. Chaînes de caractères
AU SUJET DES SÉANCES DE TRAVAUX PRATIQUES
L’objectif de ces séances de travaux pratiques d’une durée totale de 48 heures en salle est d’introduire les différents aspects du langage C avant d’attaquer la programmation système.
Certaines parties ne sont d’ailleurs valables que sous le système Linux.
Sachez que votre maîtrise de ce langage ne sera proportionnelle qu’au temps que vous y aurez consacré en toute autonomie.
Vous effectuerez un compte-rendu électronique au format « ODT » (Open Document Text) à l’aide de la suite OpenOffice. Vous y inclurez vos codes sources correctement commentés ainsi que la réponse aux questions. Des captures d’écran pourront être incluses à l’aide d’outils tels que gnome-panel-screenshot (capture d’écran) et gimp (retouche d’images).
La note du TP sera constituée par :
● la vérification hebdomadaire de l’état d’avancement du rapport pour les différentes parties ;
● un entretien individuel de 10mn.
et tiendra compte du comportement et du degré d’autonomie à chaque séance.
Typographie :
répertoire, fichier, commande, code, concept/vocabulaire, mot réservé.
Pour vos recherches documentaires, je vous conseille :
• KERNIGHAN, Brian, RITCHIE, Dennis. Le langage C : norme ANSI. 2ème édition.
Éditions Dunod, 2004, 280 p., ISBN 2100487345 ;
• RIFFLET, Jean-Marie, YUNES, Jean-Baptiste. UNIX : Programmation et communication.
Éditions Dunod, 2003, 800 p., ISBN 2100079662.
PRÉSENTATION DU LANGAGE C
Notions : langage interprété vs. langage compilé, gcc, -Wall, a.out, shell.
Historique
Le langage C a été créé par Brian Kernighan et Dennis Ritchie au début des années 70 afin d’éviter autant que possible l’utilisation de l’assembleur dans l’écriture du système UNIX. L’avantage du C sur l’assembleur est qu’il permet aux programmes d’être plus concis, plus simples à écrire et plus facilement portables sur d’autres architectures. En effet, en C, tout ce qui pose problème de portabilité est répertorié sous forme de fonction.
C est un langage :
• qui permet de tout faire ou presque ;
• qui permet de créer des exécutables très rapides (compilés) ;
• qui possède peu d’instructions.
……..
Présentation du programmation C (3.3 MO) (Cours PDF)