bases de programmation c
TRANSCRIPT
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 1/33
Lycée Diderot – BTS I.R.I.S
Courriel : [email protected] , URL : http://www.diderot.org
G.VALETSept 2010
Vers ion 1 .4
LES BASES DE LA
PROGRAMMATION
1
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 2/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
A quoi sert un programme ? Résoudre un problème donné par calcul et traitement de l’information
Exemple de la Navigation GPS : Problème : Guider l’utilisateur pour trouver son chemin
Informations traitées : Données cartographiques et Position GPS (Latitude,Longitude)
Comment s’exécute t -il ? Sur un calculateur (système informatisé) par un ou plusieurs
microprocesseurs
Séquentiellement : Les instructions sont exécutées les unes après les autrespar un processeur ou un processus (Cas du multitâche)
Comment écrire un programme ? Avec un langage de programmation
« Evolué » et indépendant du processeur
« Machine » et donc dépendant du processeur
UN PROGRAMME, QU’EST -CE QUE C’EST ?
2
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 3/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Définition Série d’opérations sur des données brutes dans le but de produire,
transformer, transmettre, analyser ou classifier des informations Exemple : Le traitement des signaux bruts émis par des satellites permettent
de déterminer la distance entre le récepteur et les émetteurs et d’en déduire
la position du récepteur
3
TRAITEMENT DES DONNÉES
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 4/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Les entrées de données permettent à un programme de traiterl ’information
4
ENTRÉE DE DONNÉES
Saisie de l’utilisateur • Clavier, souris, tablette
• Clavier virtuel• Joystick
Données provenant d’un capteur • Caméra• Cellule photoélectrique, température ,ultra son
• Capteur de pression, de vitesse
Données de communication• Réseau Ethernet, liaison série• Bluetooth, Zigbee, 3G• Base de données
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 5/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
La sortie d’un programme donne le résu ltat de son traitement
5
SORTIE DE DONNÉES
Affichage•Ecran LCD•Voyants
•Message
Commande•Moteur•Ouverture de vanne•Vérin
Données de communication•Réseau Ethernet, liaison série•Bluetooth, Zigbee, 3G•Base de données
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 6/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Chaîne de traitement de l’information
6
ORGANISATION DU TRAITEMENT
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 7/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
7
EXEMPLE DE SYSTÈME
CapteursMesure des grandeurs
physiques
CommandeEnergie
mécanique
CommunicationEchanges avec l’extérieur
Système uP
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 8/33
Introduction
Notion de programme
Structures de donnéesStructures de contrôle Chapit re 2
8
BASES DELA
PROGRAMMATION
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 9/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Représentation fonctionnelle
Il est important de savoir repérer les entrées/sorties d’unprogramme/système
Exemple de tri de nombres Suite { 5 47 25 10 1 23 12 }
Pour résoudre ce problème, il faut décomposer le problème ensous problèmes plus simples Comment faire ?
9
REPRÉSENTATION
L
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 10/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
L’algorithme est la résolution d’un problème sous la formed’une série d’opérations à effectuer
Exemple du tri de la sui te : { 5 47 25 10 1 23 12 } 1ère étape : Rechercher le minimum sur une partie du tableau
2ème étape : Permuter les éléments si un minimum a été trouvé Puis répéter les 2 étapes sur une plus petite portion jusqu’à la fin de la série
Avant d’écrire l’algorithme, il faut décomposer :
10
NOTION D’ALGORITHME
L é
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 11/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Tri de la suite : { 5 47 25 10 1 23 12 }
Il reste à déterminer l’algorithme de la « Recherche duminimum »
11
ECRITURE DE L’ALGORITHME
k ← 0 , n ← 7 Tant que k<n, Faire
Rechercher minimum (min) entre k et n
Permuter le min trouvé avec kk ← k + 1Fin du Faire
min ← k, m ← kTant que m<nSi nombre à l’indice m < nombre à l’indice min Alors
min ← m Fin du Sim ← m + 1
Fin
L é IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 12/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
L’écriture d’un programme passe par l ’utilisation d’un langagede programmation Le langage permet de définir
Une syntaxe (Comme la grammaire en français)
Un jeu d’instructions (Comme les mots en français)
Exemples : Java, C/C++, Objective C (iPhone), php, Ada, Ruby, Javascript, …
Les langages machine ou assembleur : Ils sont spécifiques à un processeur ou à une famille de processeurs Il faut réécrire le programme si on change de processeur
Les langages dits « évolués » Il ne sont pas spécifiques et il n’est pas nécessaire de réécrire tout le
programme en cas de changement de processeur Leur syntaxe est plus facile à comprendre Ces langages facilitent le travail du développeur grâce aux bibliothèques de
programmes12
PROGRAMME ET LANGAGES
L é IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 13/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Le code source du programme est un fichier texte contenantune suite d’instructions L’ensemble des instructions autorisées dépend du langage utilisé La syntaxe aussi
Comment écrire un programme source ? A l’aide d’un simple éditeur de texte Ou avec un IDE : « Integrated Development Environment »
Beaucoup de fonctionnalités
Permet aux développeurs d’être plus efficaces dans les grands projets
Peut-on choisir un langage de programmation ? Cela dépend du processeur qui exécutera le programme Les langage C, Java, Ada permettent de développer pour la plupart des
processeurs Comment le savoir ?
Documentation de l’environnement de développement
13
ECRITURE DU PROGRAMME SOURCE
L cée IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 14/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Cas d’un langage « compilé »
14
CHAÎNE DE DÉVELOPPEMENT D’UN PROGRAMME
Système microprogrammé cible
Environnement de Développement du programme
CompilateurVérification de la syntaxe
Edition de lienUtilisation éventuelle de
bibliothèques
Source du
programmeLangage évolué (C,
ADA,… )
ProgrammeLangage Machine ou
Assembleur
Processeur MémoireMémoire ROM, FLASH ou RAM
Chargement du
programme
Adresse instruction
à exécuter
Instruction à
exécuter
BibliothèquesRéseau, Maths,
graphique, ...
PériphériquesEntrées/Sorties
Lycée IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 15/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
15
CODE SOURCE : EXEMPLE EN « C »
Directives de compilation
Début du programme
L’utilisateur doit saisir des données
Création, ouverture
d’un fichier
Ecriture des données dansLe fichier et fermeture
Variable
Lycée IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 16/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Qu’est -ce qu’une variable ? C’est un symbole associé à une valeur ou à un objet Sa valeur peut changer pendant l’exécution du programme
Caractéristiques d’une variable Un nom ou identificateur
Un type Entier, flottant, caractère, chaîne de caractère, …
Une valeur A quoi sert une variable ?
A stocker temporairement une donnée qui va être utilisée dans la suite duprogramme Exemple : Longitude et Latitude pour la position d’un GPS. Ces variables vont
permettre la localisation sur une carte
Où est stockée une variable ? En général, dans la mémoire vive du système Mais aussi dans une base de données, dans un fichier, …
Si on souhaite qu’elle soit « persistante » après la fin de l’exécution d’unprogramme
16
LES VARIABLES
Lycée IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 17/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
En langage C
En PHP
En Ada
En Java
17
EXEMPLES DE VARIABLES
int a;a=12;
a = a +2 ;
Type et nomde la variable
Affectation
Réaffectation
a : integer;a := 12;
a := a +2 ;
$a = 12;
$a = $a +2 ;
int a;
a=12;a = a +2 ;
Typage etaffectation
Identique auC
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 18/33
Introduction
Notion de programme
Structures de donnéesStructures de contrôle Chapit re 3
18
BASES DELA
PROGRAMMATION
Lycée IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 19/33
DiderotLycée Section technicien supérieur
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Définition C’est une structure logique destinée à contenir des données permettant de
simplifier leur traitement et donc l’écriture du programme
Exemple d’une structure de données
Problématique : Traiter et stocker les valeurs venant d’un accéléromètre, soitl’accélération mesurée sur les 3 axes x, y et z
Création d’une structure de données contenant les 3 valeurs
19
LES STRUCTURES DE DONNÉES
Accéléromètre Captage
logiqueTraitement Stockage
x
y
z
Structure dedonnées
x, y, z
Lycée Section technicien supérieur IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 20/33
DiderotLycée
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Structures finies Constantes
Valeur qui ne varie pas
Variables
Valeur qui peut varier en cours d’exécution du programme Structures composées finies
Comme x,y et z de l’acceléromère
Structure indexées Les tableaux [1…n]
On accède à un élément en utilisant son index ou indice
Les tableaux multidimensionnels [1..n][1..m]…
Structures récursives Liste, arbres, graphes
20
CATÉGORIES DE STRUCTURES DE DONNÉES
Lycée Section technicien supérieur IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 21/33
DiderotLycée
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Structure indexée C’est un ensemble d’éléments (des variables, par exemple), auquel on accède
à l’aide d’un index ou indice
Exemple : Un tableau de « n » entiers
Pour accéder au : 1er élément : tableau[0]
4èm e élément : tableau[3]
dernier élément : tableau[n-1]
Exemple en Langage C
21
LES TABLEAUX A UNE DIMENSION
0 1 2 3 4 5 6 … n-1
52 14 13 2 8 21 487 … 254Index
Valeur
int t[5] = { 1, 45, 12, 4, 0 } ;t[4]=7;
t[0] = t[0] + t[2] + 10;
0 1 2 3 4
1 45 12 4 0
0 1 2 3 4
23 45 12 4 7
Avant
Après
Lycée Section technicien supérieur IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 22/33
DiderotLycée
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Structure avec plusieurs index L’ensemble est assimilable à un tableau de tableaux
Cas du tableau à 2 dimensions aussi appelé « matrice » Il s’agit d’un tableau où chaque élément est un pointeur sur un autre tableau
22
LES TABLEAUX MULTIDIMENSIONNELS
0 1 2 3 4
2 58 14 12 57
16 12 21 71 1
5 41 85 10 3
4 9 76 42 7
0 p0
1 p1
2 p2
3 p3
Tableau de
pointeurs
Tab[0][0]
Tab[1][3]
Tab[3][2]
Tab[2][2]
Tab[3][1]
Lycée Section technicien supérieur IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 23/33
DiderotLycée
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Exemple d’utilisation d’un tableau à 2 dimensions
Déclaration du tableau
Opérations sur le tableau
23
EXEMPLE TABLEAU MULTI EN C
int tab[3][4] = { {1,2,3,4} , {5,6,7,8}, {9,10,11,12} };
0 1 2 3
0 1 2 3 4
1 5 6 7 82 9 10 11 12
tab[0][1] = tab[2][1] * 2;tab[1][3] = tab[1][3] + tab[2][3];
0 1 2 30 1 20 3 4
1 5 6 7 20
2 9 10 11 12
0 1 2 3
0 40 20 3 4
1 5 6 7 20
2 9 10 11 12
0 1 2 3
0 4 20 3 4
1 5 6 7 20
2 9 10 11 12
tab[0][0] = tab[0][1] + tab[1][3];tab[0][0] = tab[0][0] % 9;
Lycée Section technicien supérieur IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 24/33
DiderotLy
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Possibilité de construire des structures de donnéespersonnalisées
En langage C, une structure est un ensemble logique dedonnées.
Les données sont accessibles par l’intermédiaire d’un seul ensemble
Cette notion sera abordée plus tard dans le cours
24
LES STRUCTURES PERSONNALISÉES
struct accel {int x;int y;
int z;};
x
y
z S t r u c t u r e
« a c c e l »
Définition de la structure
struct accel monAccelero;
Déclaration d’une variable de type accel
monAccelero.x = 2;monAccelero.y = 3;monAccelero.z = 0;
Initialisation de la structure
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 25/33
Introduction
Notion de programme
Structures de donnéesStructures de contrôle Chapit re 4
25
BASES DELA
PROGRAMMATION
dLycée Section technicien supérieur
IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 26/33
DiderotLy
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Un bloc est un ensemble d’instruction contigües Délimité par un début et une fin de bloc
Les délimiteurs peuvent être : Des signes de ponctuation
Des mots clés Exemple en C
Attention : Une variable déclarée au sein d’un bloc n’existepas en dehors de ce bloc
26
LE BLOC D’INSTRUCTIONS
int a=0; b=1;{a=a+1;b=b+3*a;
}
Début de bloc
Fin de bloc
int fonction( int a ) {
int resultat = 0;resultat = a * a;
return resultat;}
Début de bloc
Fin de bloc
DidLycée Section technicien supérieur
IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 27/33
DiderotLy
en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
C’est une commande qui définit l’ordre dans lequel lesinstructions d’un programme sont exécutées Le passage d’une instruction à l’autre peut être conditionnelle
La structure définit un « bloc d’instructions »
Les différents types de structures de contrôle Les fonctions
Un bloc d’instruction peut -être appelé et renvoyer un résultat
Le « if, then, else » Un bloc d’instruction s’exécute si une condition est vraie
Le « switch, case » Une variable est testée chaque cas dispose d’un bloc d’instruction qui lui est
propre
Les boucles « for » , « while » Répétition d’un bloc d’instruction tant qu’une condition est vraie
27
DÉFINITION D’UNE STRUCTURE DE CONTRÔLE
Did tLycée Section technicien supérieur
IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 28/33
DiderotL en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Exécution conditionnelle Le résultat de l’évaluation d’une expression conditionne l’exécution du bloc
d’instruction
Langage algorithmique
Langage C
28
LA STRUCTURE « IF »
Condition
Bloc 1Bloc 2
Fausse
Vraie
Fin
Si condition vraie AlorsBloc1
SinonBloc 2
Fin du Si
if ( condition ) {bloc1
} else {bloc2
}
Did tLycée Section technicien supérieur
IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 29/33
DiderotL en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Exécution conditionnelle itérative d’un bloc d’instruction L’exécution d’un bloc d’instruction est répétée tant qu’une condition est vraie
Langage algorithmique
Langage C
29
LA STRUCTURE « WHILE »
Tant que condition vraie FaireBloc d’instructions
Fin tant que
while ( condition ) {
bloc d’instructions }
Condition
Bloc 1
Fausse
Vraie
Fin
DiderotLycée Section technicien supérieur
IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 30/33
Diderot en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Exécution conditionnelle itérative d’un bloc d’instruction L’exécution d’un bloc d’instruction est répétée tant qu’une condition est vraie
L’évaluation de la condition se fait après l’exécution du bloc
Langage algorithmique
Langage C
30
LA STRUCTURE « DO WHILE »
FaireBloc d’instructions
Tant que condition vraie
do {bloc d’instructions
} while ( condition )
Condition
Bloc 1
Fausse
Vraie
Fin
DiderotLycée Section technicien supérieur
IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 31/33
Diderot en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Exécution conditionnelle successive
31
LA STRUCTURE « SWITCH CASE »
Selon variable FaireCas où variable=valeur1 Faire
instructionsFin du FaireCas où variable=valeur2 Faire
instructionsFin du Faire… Pour tous les autres cas Faire
instructionsFin du Faire
Fin du Selon
switch (var) {0 : instruction;
break;1 : instruction;
break;… default : instruction;
}
L an g a g e
al g or i t h mi q u e
L an g a g e C
DiderotLycée Section technicien supérieur
IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 32/33
Diderot en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Une fonction est un sous-programme réutilisable Elle utilise un ou plusieurs paramètres
Elle retourne un résultat
Représentation
Les fonctions peuvent être incluses dans des bibliothèques Inclure la bibliothèque permet d’utiliser la fonction
Les fonctions simplifient le codage d’un programme Le développeur peut s’appuyer sur un ensemble de bibliothèques déjà écrites
Exemples en C : « printf(), scanf(), …
32
FONCTIONS
Fonction RésultatParamètre 1
… Paramètre n
DiderotLycée Section technicien supérieur
IRIS
8/3/2019 Bases de Programmation c
http://slidepdf.com/reader/full/bases-de-programmation-c 33/33
Diderot en Informatique et réseaux
Introduction Notion de Programme
IRISLes bases de la programmation
Structures de données Structures de contrôle
Prototype et définition
Pour utiliser une fonction venant d’une bibliothèque
33
MISE EN PLACE D’UNE FONCTION EN C
int fonction( int param1, int param2 );
int fonction(int param1, int param2 ) {int r = param1 * param2;return r;
}
Utilisation de la fonction
int resultat;
resultat = fonction(50, 14);
Nom de la fonction Paramètres
Appel de la fonctionStockage durésultat
#include <stdlib.h>
int main(void) {
char *chaine = "123 " ; int entier = atoi(chaine);
}
Inclure la bibliothèque stdlib.hcontenant la fonction atoi
Appel de la fonction « atoi »
Type de la valeur de retour
Définition de la fonctionRenvoi de r