Vous êtes sur la page 1sur 34

Module : Atelier de programmation

Chapitre1: Introduction à la programmation C


Filière : 1LA-RI
Responsable de Cours : Amani BEL HADJ KHALIFA

2010/2011

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Informatique : Traitement automatique de l’information

 Elle domine la vie courante. Pourquoi ?


◦ Gain:
 Temps
 Qualité
 Argent
◦ Disponibilité du :
 matériel
 Logiciel

21/10/2010 2

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Domaines d’exploitation:

◦ Logiciels généraux disponibles au marché


◦ Logiciels spécifiques adressés aux industries
◦ Programmes spécifiques pour des applications moins
importantes

21/10/2010 3

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
Unité centrale
Ecran
• Mémoire vive
• Microprocesseur
•Disque dur
• Autres

Souris
Clavier

21/10/2010 4

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
21/10/2010 5

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Tout processeur (cœur des différents systèmes informatiques)
exécute des programmes
 Un progr amme est composé d’une succession d’instructions qui
peuvent se décomposer en opérations élémentaires par compilation
 Les instr uctions sont les ordres inclues pas l’utilisateur par
accomplir la tâche automatisée
 La compilation transforme le programme écrit dans un langage
riche (lisible par vous) en un langage simple composé d’opérations
élémentaires (lisible par l’ordinateur)
 Les opér ations élémentaires sont réalisées par des fonctions
logiques qui sont codées sous forme de 0 et de 1 en mémoire puis
 Les fonctions logiques sont réalisées par des circuits
électroniques. (addition, test d’égalité) concrètement c’est un
courant discontinu au travers de fil/couche de siliciu

21/10/2010 6

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
Tous les Languages
de Programmation

Languages Languages
Imperatifs Declaratifs

Programmation Programmation Programmation Programmation Programmation


Procedurale Orientee Objets Concurrente Fonctionelle Logique
Ada, Pascal, C C++, Java Ada 95 LISP, SCHEME PROLOG

Languages Imperatifs: Langages incluant des moyens pour le programmeur d ’attribuer des
valeurs a des locations en mémoire.
Languages Declaratifs: Langages pour lesquels le programmeur réfléchit en terme de valeurs
des fonctions et de relations entre entités diverses. Il n ’y a pas d ’attribution de valeurs aux
variables.

21/10/2010 7

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Structuré
 Modulaire: peut être découpé en modules qui peuvent être compilés
séparément
 Universel: n'est pas orienté vers un domaine d'application particulier
 Typé: tout objet C doit être déclaré avant d’être utilisé
 Portable: sur n'importe quel système en possession d'un compilateur C

21/10/2010 8

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Définition des instructions nécessaires et devant être
exécutées pas l’ordinateur
 Ces instructions sont enregistrés sous forme d’un
fichier texte ASCII (fichier source)
◦ Exemple : programme C est enregistré sous la forme de :
nom.C

21/10/2010 9

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
Exécuter
Saisir nomfich.C
nomfich.C

OUI

Compiler OUI Chaînage


Succès? Succès?
nomfich.C nomfich.OBJ

NON
NON
Édition

21/10/2010 10

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
Début du programme

Inclusion de la bibliothèque
#include <stdio.h> contenant la fonction printf

void main() Point d'entré du programme


{
printf(" Bonjour!\n" ); première
} instruction

Fin du programme

21/10/2010 11

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Écrits dans n’importe quelle ligne du programme

 Ne sont ni compilés ni exécutés

 Compris entre /* et */

21/10/2010 12

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 La mémoire : c'est l'espace où les données sont rangées
pour fin d'utilisation par l'algorithme
 La mémoire est comme un ensemble de casiers postaux
◦ Une case contient une donnée
◦ Pour accéder à une donnée, on indique le numéro du
casier (ou adresse mémoire)
◦ Pour stocker une donnée, on indique le numéro du
casier et la valeur à stocker

21/10/2010 13

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Pour simplifier l'accès aux données en mémoire, on
utilise des étiquettes (ou symboles) qui identifient de
façon abstraite un emplacement précis.
 Ces étiquettes s'appellent des variables
 Lorsque le contenu d'une variable (i.e., un
emplacement) ne doit pas être modifié par l'algorithme,
on dit alors que cette variable est une constante

21/10/2010 14

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Lorsqu'on accède à une donnée en mémoire pour la
manipuler, cette donnée n'est pas modifiée

 Il faut explicitement changer le contenu de


l'emplacement en mémoire pour que la donnée soit
modifiée

21/10/2010 15

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
◦ nom
nom::
 Unique pour chaque variable
 Commence toujours par une lettre
 Différenciation minuscule-majuscule
◦ type
type::
 Conditionne le format de la variable en mémoire
 Peut être soit un type standard ou un type utilisateur
◦ valeur
valeur::
 Peut évoluer pendant l'exécution
 initialisation grâce à l'opérateur d'affectation

21/10/2010 16

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
◦ char
charcaractères
◦ int entiers
◦ [int]] entiers courts
short [int
◦ [int]] entiers longs
long [int
◦ float nombres décimaux
◦ double nombres décimaux de précision
supérieure
◦ long double nombres décimaux encore plus
précis
◦ unsigned int entier non signé
◦ Boolean  bouléen: vrai/faux

21/10/2010 17

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
TYPE DESCRIPT TAILLE MEMOIRE
ION
int Entier 4 octets: -2 31≤n ≤ 2 31 -1

float réel 4 octets


char caractère 1 octet : -2 7≤n ≤ 2 7 -1

21/10/2010 18

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 But :obtenir des variables de même type
 Conver sion implicite : du type le plus au type le
plus grand.
int a;float b;
b=2+(float)a;

21/10/2010 19

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
Type nom_de_la_variable [= valeur];

 Exemples:
◦ int nb;
◦ float pi = 3.14;
◦ char c = 'a';
◦ long i,j,k;
◦ double r = 6.2879821365;

21/10/2010 20

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
char c;

char c=‘A’

c=‘A’;

21/10/2010 21

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Déclaration d’une variable dont la valeur est constante
dans tout le programme

const float PI=3.14159;

 Définition d’un symbole par la directive:

#define PI=3.14159;

21/10/2010 22

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 C’est une fonction de la bibliothèque <stdio.h>

 Fonction d’affichage de:


◦ Texte/message
◦ Variable(s)
◦ Texte(s)+variable(s)

21/10/2010 23

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Affichage d’un texte:
◦ Compris entre 2 guillemets
◦ Peut être interprété par des séquences
d’échappements( \t, \n, \r, …)

Exemple : printf("Bonjour \n ");

21/10/2010 24

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Affichage de(s) variable (s):
◦ printf exige l’utilisation des formats de sortie associés aux
types prédéfinis par C

printf(" format de l' affichage" , variables);


Exemple
int i =8;int j = 10;
printf("i vaut: %d et j vaut: %d \n",i,j);

float r = 6.28;
printf("le rayon = %f \n",r);
◦ formats:
%c caractère %s chaîne de caractères
%f double %d entier

21/10/2010 25

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
21/10/2010 26

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 char c; putchar(c);

 puts(« texte »);

21/10/2010 27

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Affectation: Donner une valeur à la variable

Exemple:
Void main()
{ int i,j, x=8;
j=2;
i=4+j;
x=(i*j)-x;}

21/10/2010 28

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Opér ateur s ar ithmétiques
◦ +,-,*, /  opérateurs arithmétiques de base
◦ %  reste d'une division entière
◦ Incrémentation: i=i+1; ou i++;
◦ Décrémentation: i=i-1; ou i--;

21/10/2010 29

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Opér ateur s logiques
◦ Bit à bit (appliqués pour les entiers et les réels)
 ==  test d'égalité
 != test de différence
 <, >, <=, >= test de comparaison
◦ Booléens (appliqués pour les expressions)
 !  négation
 ||  ou logique pour évaluer une expression
 &&  et logique pour évaluer une expression

21/10/2010 30

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Opérateurs combines
Si on a :
expression1=expression1 op expression 2

expression1op= expression 2
Exemple:
a=a+b; a+=b

21/10/2010 31

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
 Exemples :
◦ a = 2+3
◦ r = 3%2
◦ a = (3==3)
◦ a = (6==5)
◦ a = (2!=3)
◦ a = (6<=3)
◦ a = !1
◦ a =((3==3) && (6<=3))

21/10/2010 32

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
21/10/2010 33

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.
◦ Déclaration des variables et des constantes
◦ Lecture des données
◦ Écriture de l'algorithme
◦ Affichage des résultats

21/10/2010 34

Evaluation notes were added to the output document. To get rid of these notes, please order your copy of ePrint 5.0 now.