Vous êtes sur la page 1sur 28

Langage C

Ecole polytechnique privée

Ecole polytechnique privée 1


Progression :

1.  Notion d'algorithme et de programme


3.  Premiers pas en C
4.  Type entier, réel, constantes et variables
5.  Les entrées-sorties simplifiées
6.  Expressions arithmétiques et logiques
7.  Syntaxe des instructions
8.  Les entrées-sorties
9.  Quelques compléments commodes
10.  Variables indexées (tableaux)
11.  Adresse et pointeur
12.  Les Fonctions
13.  Les objets structurés
14.  Les fichiers
15.  Piles, files, listes chaînées

Ecole polytechnique privée 2


I.
Notion d’algorithme

Ecole polytechnique privée 3


Une recette de cuisine Algorithme

Ingrédients Données (entrées)

Recette Algorithme

Plat Résultat (sorties)

Résoudre un problème :
•  Données ?
•  Résultat souhaité ?
 Algorithme (suite d'instructions séquentielles avec éventuellement des ruptures)

Ecole polytechnique privée 4


Conception d’un algorithme : analyse hiérarchisée

1) Un premier algorithme très général :


•  suite d’actions de haut niveau
•  à réaliser de manière séquentielle

Recette de la tarte aux pommes :


I.  Faire une pâte
II.  Étaler la pâte dans le moule
III. Peler et couper les pommes
IV.  Mettre les pommes sur la pâte
V.  Mettre au four 30mn thermostat 7

Ecole polytechnique privée 5


2) Raffinement des tâches

Recette de la tarte aux pommes :


I.  Faire une pâte :
1.  Mettre 200g de farine et 100g de beurre dans un bol
2.  Pétrir la pâte
3.  Laisser reposer la pâte 1h
II.  Étaler la pâte dans le moule
III. Peler et couper les pommes
IV.  Mettre les pommes sur la pâte
V.  Mettre au four 30mn thermostat 7

Raffinements successifs :
  Conception structurée

Ecole polytechnique privée 6


Recette de la tarte aux pommes :
I.  Faire une pâte :
1.  Mettre 200g de farine et 100g de beurre dans un bol
2.  Pétrir la pâte :
Tant que (pâte non homogène)
Mélanger pendant 1mn
Fin tant que
3.  Laisser reposer la pâte 1h
II.  Étaler la pâte dans le moule
III. Peler et couper les pommes
IV.  Mettre les pommes sur la pâte
V.  Mettre au four 30mn thermostat 7

Ecole polytechnique privée 7


Eléments de base pour écrire un algorithme

Une recette de cuisine Algorithme


•  ingrédients (farine, beurre, …) données
•  récipients (plat, bol, …) variables
•  outils (couteaux, …) opérateurs
•  instructions simples (verser, …) affectation, …
•  instructions conditionnelles si-alors-sinon
•  instructions répétitives tant-que

Ecole polytechnique privée 8


Instructions de base pour écrire un algorithme
a)  définir une variable
b)  lecture/écriture
c)  affectation
d)  instruction conditionnelle
e)  répétition d’une action

Ecole polytechnique privée 9


a) Définir une variable
  annoncer au début les variables utilisées
  en précisant la nature du contenu (entier, réel, caractère…)
ex : soient a, b, c trois réels

b) Lecture/écriture
  pour représenter les échanges homme-machine
•  lire (variable) homme -> machine
•  écrire(variable) homme <- machine

Ecole polytechnique privée 10


c) L’affectation :
•  Une variable ne peut contenir qu’une seule information
variable <- expression
•  l’affectation qui initialise
x <- 1
s <- x+1
•  l’affectation qui modifie
s <- s+x

Remarques :
•  lire est une forme d’affectation
•  variable à droite de <- : contenu
•  variable à gauche de <- : contenant
s <- s+x

Ecole polytechnique privée 11


d) Instruction alternative
•  action liée à une condition
si (condition)
action1 oui
condition
sinon
action2 non
fin-si action1 action2
suite de l’algorithme

Remarques :
•  les actions sont des suites d’instructions élémentaires
•  délimitées par si, sinon et fin-si
•  sinon action2 est facultatif
•  présentation : l’écriture de l’action est décalée à droite

Ecole polytechnique privée 12


e) Instruction répétitive
•  action répétée sous condition

tant-que (condition)
action action
fin tant-que condition
oui
suite de l’algorithme
non

Ecole polytechnique privée 13


Quelques exemples :
•  l’algorithme pour la résolution de l’équation du 2ème degré
•  l’algorithme mystérieux
soient a, b, r réels ;
lire(a) ;
lire(b) ;
r <- 0 ;
tant-que (b ≠ 0)
si (b est pair)
b <- b/2 ;
a <- 2*a ;
sinon
b <- b-1 ;
r <- r+a ;
fin-si
fin tant-que
ecrire(r) ;
Ecole polytechnique privée 14
II.
Premiers pas en C

Ecole polytechnique privée 15


Le C a été mis au point par D.Ritchie et B.W.Kernighan
•  Au début 70
•  Pour écrire un système d'exploitation portable : UNIX
•  Le succès d'UNIX a entraîné celui de C :
•  un des langages le plus utilisé (gestion des réseaux, …).

La première définition de ce langage a été donnée dans leur livre


« The C programming language ».

Ce langage a été normalisé en 1989 : C-ANSI


(American National Standards Institute)

Ecole polytechnique privée 16


Quelques caractéristiques du langage :
•  adapté aux programmes de taille moyenne
•  programmation de bas niveau (proche assembleur)
•  comme de haut niveau (programmation structurée)
•  indépendant de la machine (portabilité)
•  C original et C-ANSI (1989) plus fiable au niveau syntaxique

Ce cours : un sous-ensemble du C-ANSI

Quelques remarques sur la syntaxe du C :


•  Programme C : fichier texte
•  Commentaires : /* coucou */

Ecole polytechnique privée 17


•  Identificateur : 31 caractères max, majuscule ≠ minuscule
identificateur
-> lettre lettresOuChiffres ;
lettresOuChiffres
-> ;
-> lettre lettresOuChiffres ;
-> chiffre lettresOuChiffres ;
-> ‘_’ lettresOuChiffres ;
exemple : x x1 delta Delta agent_007

•  Mots réservés du langage :


o  une trentaine
o  tous en minuscule
o  consultez la fiche résumé de C

Ecole polytechnique privée 18


Développement d’un programme :

1 : L’algorithme : « recette » décrite en pseudo-français


2 : Code source : transcription de l’algorithme dans le langage
fichier construit sous un éditeur de texte
3 : Compilation : traduction du code source en code machine exécutable
4 : Edition de lien : (link) compléter le code exécutable
avec des fonctions prédéfinies déjà compilées (sin , cos, …)

  Fichier exécutable : résultat de cette séquence d’opérations

Ecole polytechnique privée 19


un fichier source est une succession d'un nbre quelconque
d'éléments indépendants :

•  directives pour le préprocesseur


#----

•  construction de types

•  déclaration de variables et de fcts externes

•  définition de variables (réservation d'espace mémoire)

•  définition de fcts dont main()

Ecole polytechnique privée 20


Mon premier programme C : le fichier salut.c

#include <stdio.h>!

void main(void)!
{!/* ce programme affiche coucou */!
printf("coucou !\n");!
}!

Sous UNIX :
Compiler avec la commande
gcc salut.c –o salut
lancer l’exécution du code en tapant
./salut

Ecole polytechnique privée 21


III.
Types, constantes et variables

Ecole polytechnique privée 22


Une variable :
•  nom d’un emplacement mémoire (1, 2, 4 octets ou plus)
•  on en crée (presque) autant qu’on veut
•  le contenu peut changer dans le temps.
•  contient toujours quelque chose !!!

Un type :
•  définit une convention de codage de l'information
•  dans un emplacement de taille préfixée
ex : compter en binaire sur 3 bits :

Une variable sera toujours définie au moins une fois par un type avant
utilisation!

Ecole polytechnique privée 23


7 types de base en C :
•  char : petit entier codé sur 1 octet (entre –128 et 127)
•  short : entier de taille moyenne sur 2 octets (de –32768 à 32767)
•  int : entier dont la taille est liée au processeur (mot machine)
•  long : grand entier sur 4 octets (jusqu’à 10 chiffres)
•  float : réel avec 7 chiffres significatifs
•  double : réel de grande précision
•  long double : réel de très grande précision

Le qualificatif unsigned : redéfinit l’intervalle de validité à partir de 0


Un unsigned short est dans [0, 65535]
Un unsigned char est dans [0, 255]

Ecole polytechnique privée 24


Remarque :

Le C ne fait pas de différence entre les petits entiers et les caractères


qui sont aussi déclarés comme des char (code ASCII)

binaire
01000000

64 ‘@‘
petit entier caractère

Ecole polytechnique privée 25


Les constantes :

les caractères alphanumérique-étendus (visible sur le clavier)


‘a‘ ‘A‘ ‘1‘ ‘ ‘ ‘@‘ ‘\n‘
les entiers
0 1 32767
les flottants
0. 3.14 0.314e1 0.314E1

ATTENTION : 1 est différent de ‘1‘

Ecole polytechnique privée 26


Définition d'une variable :

Objectif :
•  réserver un emplacement mémoire
•  qui soit adapté au codage de l’information
•  et associer un nom (identificateur) à cet emplacement

Syntaxe :
•  type var-init [, var-init] ;
•  var-init
-> variable
-> variable = expression constante
•  variable
-> identificateur

Ecole polytechnique privée 27


Exemple :

!float x;!
!int i, j=1, k ;!
!char c1='1', c2 = 2 , c3='a'+1;!

Exemples d’erreur :!
!int i=0, j=i+1, k ;!
!char a=300 ;!

Ecole polytechnique privée 28

Vous aimerez peut-être aussi