0% ont trouvé ce document utile (0 vote)
27 vues63 pages

Cours Tmiri Fin

Ce document est une introduction à la programmation en C++, visant à enseigner les bases de la programmation et à développer des compétences d'analyse de problèmes. Il couvre des sujets tels que les types de données, les opérateurs, les structures de contrôle, les tableaux, les pointeurs et les fonctions. Des exemples de code et des explications sur les langages de programmation et les systèmes d'exploitation sont également fournis.

Transféré par

salsabil20062013
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
27 vues63 pages

Cours Tmiri Fin

Ce document est une introduction à la programmation en C++, visant à enseigner les bases de la programmation et à développer des compétences d'analyse de problèmes. Il couvre des sujets tels que les types de données, les opérateurs, les structures de contrôle, les tableaux, les pointeurs et les fonctions. Des exemples de code et des explications sur les langages de programmation et les systèmes d'exploitation sont également fournis.

Transféré par

salsabil20062013
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd

Introduction à la

programmation C++
SMC4 – SMP4
2015 - 2016

A. TMIRI
[email protected]
1
Objectif:

 Apprendre à programmer
 Être capable d’analyser des problèmes simples et
écrire les programmes correspondants
 Maîtriser et Avoir plus de facilité à programmer

 Un maximum d’exercices d’application


Plan:
 RAPPELS
L’informatique ?

Matériel

Système d’exploitation

Langage Informatique

Historique

INTRODUCTION ET NOTIONS DE BASES


 VARIABLES ET INSTRUCTIONS


Types De Base

Opérateurs et expressions

Les entrees et soties de c++

Les instructions de controle
 LES TABLEAUX ET LES CHAÎNES DE CARACTÈRES

 LES POINTEURS

 LES FONCTIONS:
Parametres par valeurs, par adresse et par reference

Surcharge de fonctions

3
Rappels:

4
Informatique?

 Techniques du traitement automatique de l’information


au moyen des ordinateurs
 Eléments d’un système informatique

Applications
).Word, Excel, Jeux, oracle,etc(
Langages
).Java,C/C++, Fortran,etc(
Système d’exploitation
).DOS,Windows, Unix, etc(
Matériel
).PC, Macintosh, station SUN, etc(
Matériel: Principaux éléments d’un PC

 Unité centrale (le boîtier)


 Processeur ou CPU (Central Processing Unit)
 Mémoire centrale
 Lecteur disquettes, lecteur CD-ROM
 Cartes spécialisées (cartes réseau, son, ...)
 Interfaces d'entrée-sortie (Ports série/parallèle, …)
 Périphériques
 Moniteur (l'écran), clavier, souris
 Modem, imprimante, scanner, …
Qu’est ce qu’un système d’exploitation?

Ensemble de programmes qui gèrent le matériel


et contrôlent les applications

 Gestion des périphériques (affichage à l'écran,


lecture du clavier, pilotage d’une imprimante, …)

 Gestion des utilisateurs et de leurs données


(comptes, partage des ressources, gestion des fichiers et
répertoires, …)

 Interface avec l’utilisateur (textuelle ou graphique):


Interprétation des commandes

 Contrôle des programmes (découpage en taches,


partage du temps processeur, …)
Langages informatiques

 Un langage informatique est un outil permettant de donner des


ordres (instructions) à la machine

 A chaque instruction correspond une action du processeur

 Intérêt : écrire des programmes (suite consécutive


d’instructions) déstinés à effectuer une tache donnée

 Exemple: un programme de calcul de la moyenne d’un


bulletin
 Exemple: un programme de gestion de comptes bancaires

 Contrainte: être compréhensible par la machine


Langage Machine

 Langage binaire: l’information est exprimée et manipulée sous


forme d’une suite de bits

 Un bit (binary digit) = 0 ou 1 (2 états électriques)

 Une combinaison de 8 bits= 1 Octet 28 256 possibilités qui


permettent de coder tous les caractères alphabétiques,
numériques, et symboles tels que ?,*,&, …


Le code ASCII (American Standard Code for Information
Interchange) donne les correspondances entre les caractères
alphanumériques et leurs représentation binaire, Ex. A= 01000001,
?=00111111

 Les opérations logiques et arithmétiques de base (addition,


multiplication, … ) sont effectuées en binaire
Langages haut niveau

 Intérêts multiples pour le haut niveau:


 proche du langage humain «anglais» (compréhensible)
 permet une plus grande portabilité (indépendant du
matériel)
 Manipulation de données et d’expressions complexes
(réels, objets, a*b/c, …)
 Nécessité d’un traducteur
(compilateur/interpréteur),
exécution plus ouCompilateur
moins lente selon le
Code source
traducteur ou Langage
en langage Interpréteur machine
évolué
Compilateur/interpréteur

 Compilateur: traduire le programme entier une fois pour


toutes
Compilateur exécution
exemple. exempl
fichierc source fichier e
exécutable
 + plus rapide à l’exécution
 + sécurité du code source
 - il faut recompiler à chaque modification

 Interpréteur: traduire au fur et à mesure les instructions


du programme à chaque exécution
Interprétation+exécuti
exemple.ba
on
t
fichier
 source
+ exécution instantanée appréciable pour les débutants
 - exécution lente par rapport à la compilation
Langages de programmation

 Deux types de langages:


 Langages procéduraux
 Langages orientés objets

 Exemples de langages:
 Fortran, Cobol, Pascal, C, …
 C++, Java, …

 Choix d’un langage?


Algorithmique

 Le terme algorithme vient du nom du mathématicien arabe


Al-Khawarizmi (230 de l’Hejire, 820 après J.C.)
 Un algorithme est une description complète et détaillée des
actions à effectuer et de leur séquencement pour arriver à un
résultat donné

 Intérêt: séparation analyse/codage (pas de préoccupation de syntaxe)


 Qualités: exact (fournit le résultat souhaité), efficace (temps
d’exécution, mémoire occupée), clair (compréhensible), général
(traite le plus grand nombre de cas possibles), …

 L’algorithmique désigne aussi la discipline qui étudie les


algorithmes et leurs applications en Informatique
 Une bonne connaissance de l’algorithmique permet d’écrire
des algorithmes exacts et efficaces
NOTIONS DE BASE :

14
Introduction au
Langage C et C++
 Mon Premier Programme en C++

Début du programme

#include <cstdlib> Inclusion des bibliothèques


#include <iostream> contenant les fonctions
using namespace std;
main() Point d'entré du programme
{
première
cout <<"Bonjour!\n";
instruction
}
Fin du programme 15
Introduction au
Langage C C++

16
Introduction au
Langage C C++

17
Introduction au
Langage C,C++
 Définition d'une variable
 nom:

Unique pour chaque variable

Commence toujours par une lettre

Différenciation minuscule-majuscule
 type:

Conditionne le format de la variable en mémoire

Peut être soit un type standard ou un type
utilisateur
 valeur:

Peut évoluer pendant l'exécution

initialisation grâce à l'opérateur d'affectation
18
Introduction au
Langage C,C++
 Types de variable
 charcaractères
char [..] signifie
facultatif
 int entiers
 short [int] entiers courts
 long [int] entiers longs
 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é
19
Introduction au
Langage C,C++
 Déclaration d'une variable
 Type nom_de_la_variable [= valeur]
 Exemple:
 int nb;
 float pi = 3.14;
 char c = 'a';
 long i,j,k;
 double r = 6.2879821365;

20
Introduction au
Langage C,C++
 Affichage de la valeur d'une variable
 en C++

cout <<chaîne 1 <<variable 1<<chaîne 2
<<variable 2;

Exemple
 int i =8;int j = 10;
 cout <<"i vaut:" << i <<"j vaut:"<<j <<'\n';

 float r = 6.28;
 cout<<"le rayon = "<< r <<'\n';

21
Introduction au
Langage C,C++
 Saisie clavier: l’opérateur cin:
 Exemples: int n;
 cout<<"Saisir un entier: ";
 cin >> n;
 int a, b;
 cin >> a >> b;
 L’opérateur cin permet de saisir des nombres
entiers ou réels, des caractères, des chaînes
de caractères.

22
Introduction au
Langage C,C++
 Instructions de base
 opérateurs de base

+,-,*, /  opérateurs arithmétique de base

%  reste d'une division entière

==  test d'égalité

!= test de différence

<, >, <=, >= test de comparaison

!  négation

||  ou logique pour évaluer une expression

&&  et logique pour évaluer une expression

23
Introduction au
Langage C,C++
 Instructions de base
 opérateurs de base

a = 2+3 valeur de a: 5

r = 3%2 valeur de a: 1

a = (3==3) valeur de a: 1

a = (6==5) valeur de a: 0

a = (2!=3) valeur de a: 1

a = (6<=3) valeur de a: 0

a = !1 valeur de a: 0

a =((3==3) || (6<=3)) valeur de a: 1

a =((3==3) && (6<=3)) valeur de a: 0

24
Introduction au
Langage C,C++
 Instructions de base
 boucle pour
for(expr1;expr2;expr3)
{
instructions
}
expr1: évaluée 1 seule fois en début de boucle
expr2: évaluée avant chaque itération. Si vrai
alors les instructions de la boucle sont
exécutées sinon la boucle est terminée
expr3: évaluée à la fin de chaque itération

25
Introduction au
Langage C,C++
 Instructions de base
 boucle pour

exemple
// somme des 100 premiers entiers
int i,s;
s= 0;
for(i=0;i<100;i = i+1)
{
s = s+i; / / ou
s+=i;
}
cout <<"s = "<<s<<'\n';
26
Introduction au
Langage C,C++
 Instructions de base
 boucle tant que
while (expression)
{
instructions;
}
expression est évaluée avant chaque itération. Si le
résultat est vrai alors les instructions sont
exécutées sinon on sort de la boucle
 Exemple
s=0;
i =0;
n = 100;
while (i<n)
{
s=s+i; i++;
27
}
Introduction au
Langage C,C++
 Instructions de base
 boucle répéter
do
{
instructions;
} while (expression);
expression est évaluée après chaque itération. Si le
résultat est vrai alors les instructions sont
exécutées sinon on sort de la boucle
 exemple
i =0;
n = 20;
do
{
i++;
} while(i<n); 28
Introduction au
Langage C,C++
 Instructions de base
 instruction conditionnelle simple si alors
if (expression)
{
instructions;
}
expression est évaluée après chaque itération. Si le
résultat est vrai alors les instructions sont
exécutées sinon on sort de la boucle.
 exemple
int i =5;
int n;
if (i<=20)
{
n =0;
29
}
Introduction au
Langage C,C++
 Instructions de base
 instruction conditionnelle simple si alors sinon
if (expression)
{
instructions1;
} else
{
instrutions2;
}
expression est évaluée après chaque itération. Si le
résultat est vrai alors les instructions1 sont
exécutées sinon on exécute l'ensemble
instructions2
 Exemple int i =5;int n;
if (i<=20)
n =0;
30
else n=5;
Introduction au
Langage C,C++
 Instructions de base
 instruction conditionnelle multiple
switch (expression)
{
case valeur1: instructions1;break;
case valeur2: instructions2;break;
.
.
.
case valeur3: instruction3;break;
default: instruction4;break;
}

expression est évaluée. Si le résultat vaut valeur1,


valeur1
alors instruction1 est exécutée et on quitte le
switch, sinon si expression vaut valeur2,
valeur2 ……,
sinon on va dans default pour exécuter
31
instruction4.
instruction4
Introduction au
Langage C,C++
 Instructions de base
 instruction conditionnelle multiple

exemple

int c='a';
switch (c)
{
case 'a':
file();break;
case 'b':
save();break;
case 'q':
quitter();break;
default:
beep();break;
} 32
Introduction au
Langage C,C++
 Instructions de base
 l'instruction break

permet d'interrompre prématurément une
boucle et de se brancher vers la première
instruction n'appartenant pas à la boucle

exemple:
int i;int n=20; Quand n vaut
31 alors la
for (i=0;i<10;i++) boucle est
{ interrompue

if (n==31) break;
n=n+2;
}
cout <<n<<'\n';
33
Tableaux et pointeurs:

34
Introduction au
Langage C,C++
 Les tableaux statiques à 1
dimension
 définition

Ensemble de variables de même type, de
même nom caractérisées par un index.
 déclaration

type nom_tableau[dimension]
 exemples: doit être une
constante

char buffer[80];

int mat[10];
35
Introduction au
Langage C,C++
 Les tableaux statiques à 1
dimension
 accès aux éléments du tableau

Nom_tableau[indice]
 exemples:
buffer[5] = 'c';

le premier mat[6]
élément = 10;
commence à l'indice 0 !!

 Les valeurs ne sont pas initialisées !!


 Les débordements ne sont pas vérifiés 36
Initialisation de chaînes de caractères

En général, les tableaux sont initialisés par l'indication de la liste des éléments du
tableau entre accolades:

char CHAINE[] = {'H','e','l','l','o','\0'};

Pour le cas spécial des tableaux de caractères, nous pouvons utiliser une initialisation
plus confortable en indiquant simplement une chaîne de caractère constante:

char CHAINE[] = "Hello";

Lors de l'initialisation par [], l'ordinateur réserve automatiquement le nombre d'octets


nécessaires pour la chaîne, c.-à-d.: le nombre de caractères + 1 (ici: 6 octets).

37
Les fonctions de <string>
La bibliothèque <string> fournit une multitude de fonctions pratiques pour le traitement de
chaînes de caractères
strlen(s) fournit la longueur de la chaîne sans compter le '\0' final

strcpy(s, t) copie t vers s

strcat(s, t) ajoute t à la fin de s

strcmp(s, t) compare s et t lexicographiquement et fournit un résultat:


Négatif : si s précède t
zéro : si s est égal à t
Positif : si s suit t

strncpy(s, t, n) copie au plus n caractères de t vers s

strncat(s, t, n) ajoute au plus n caractères de t à la fin de s 38


Introduction au
Langage C,C++
 Les tableaux statiques à 2 dimensions
et plus
 définition

Il s'agit d'un tableau de tableaux
 déclaration

type nom_tableau[dim1][dim2]…[dimn]
 exemples:

char buffer[20][80];

int mat[6][10];

char livres[100][60][80];

39
Introduction au
Langage C,C++
 Les tableaux statiques à 2
dimensions et plus
 accès aux éléments

nom_tableau[ind1][ind2]…[indn]
 exemples:

livre[30][15][20] = 'c';

mat[5][6] =13;

cout << mat[5][6]<<'\n';

40
Introduction au
Langage C

41
Introduction au
Langage C et C++
IleMaurice.pgm

exemple:
int i,j; (800x529)
char ima[800][529];
for (i=0;i<800;i++)
for (j=0;j<529;j++)
{
ima[i][j]=255-ima[i][j];
if(ima[i][j]>100)
ima[i][j]=0;
else
ima[i][j]=255;
}
42
Introduction au
Langage C,C++
 Les Pointeurs
 Deux manières d'utiliser une variable

Par son nom adressage direct
 compilateur réserve de la mémoire pour la
variable
 exemple:
int x =17;

43
Introduction au
Langage C,C++
 Les Pointeurs

Par son adresse adressage indirect
 une variable de type pointeur contient
l'adresse d'une autre variable
 Le lien entre pointeur et la variable pointée
est géré par le programmeur
 Exemple: int x =17;
int * px; px pointe
vers x
px = &x;

44
Introduction au
Langage C,C++
 Les Pointeurs
 déclaration d'un pointeur

type * nom_du_pointeur
 exemples

char *buffer;

int *pf;

float *ppi;

 C'est au programmeur d'initialiser le


pointeur 45
Introduction au
Langage C,C++
 Les Pointeurs
 initialisation d'un pointeur

Il faut lui fournir l'adresse d'une variable existant en mémoire

Il doit pointer vers une zone mémoire réservée par le
compilateur comme étant une variable
 utilisation de l'opérateur d'adressage &
int f;
int *pf,*pg;
pf = &f;
création du
lien entre le
pg =new int; et la
pointeur allocation
. variable dynamique
d'une variable
création du delete gf; de type int
lien entre pg
et l'espace
mémoire
réservé libération de
l'espace
réservé 46
Introduction au
Langage C,C++
 Les Pointeurs
 utilisation de l'opérateur d'indirection *

travaille la valeur de la variable pointée

exemples

int i =8;
int *pi;
pi = &i;
cout <<*pi<<'\n';

*pi = 19; 8
cout <<i<<'\n';

19

47
Introduction au
Langage C,C++
 Lien entre le nom d'un tableau à 1
dimension et les pointeurs
 Nom du tableau = adresse du premier
élément du tableau

nom_tableau[i] peut s'écrire *(nom_tableau+i)
 exemples:
char buffer[80];
*buffer = 'C'; accès au premier caractère
*(buffer + 5) = 'V'; accès au 6 ème caractère

48
Introduction au
Langage C,C++
 Lien entre le nom d'un tableau à 2
dimension et les pointeurs
 un tableau 2d est un tableau de tableau de
dimension 1

On peut donc dire que le nom d'un tableau 2d est
l'adresse d'un tableau d'adresse de tableaux de
dimension 1

On dit aussi qu'il s'agit d'un pointeur de pointeur
 exemple:
int TAB[6][7];
int **p; déclaration d'un pointeur de
pointeur
p = TAB; initialisation du pointeur de pointeur
49
Introduction au
Langage C,C++
 Lien entre le nom d'un tableau à 2
dimension et les pointeurs
TAB

tableaux d'entiers
0 1 2 3 4 5 6

1
tableaux de pointeurs
vers des tableaux 2
d'entiers
3

50
Introduction au
Langage C,C++
 Initialisation dynamique d'un tableau

Tableau une dimension
nombre
int * t; d'éléments dans
le tableau
t = new int[20]; d’entiers

fonction d'allocation
nom du
dynamique de la
tableau
mémoire

Libération de
la mémoire
delete t;
51
Introduction au
Langage C,C++
 Initialisation dynamique d'un
tableau
 Tableau à deux dimensions n*m

déclaration dynamique du tableau de n
pointeurs et des n tableaux à une
dimension de m éléments

quelques lignes de code sont nécessaires
(voir transparent suivant)

52
Introduction au
Langage C,C++
 Initialisation dynamique d'un tableau
 Tableau à deux dimensions n*m

int **TAB,l;
TAB = new int*[n];
for (l=0;l<n;l++)
{
TAB[l] = new int[m];
}

désallocation:

for (l=0;l<n;l++)
delete TAB[l];
delete TAB; 53
Fonctions:

54
Introduction au
Langage C,C++
 Les fonctions
 définition

Ensemble d'instructions pouvant être
appelés de manière répétitive par un
nom
 déclaration
type arg_ret nom_f( type arg1,type arg2, …type argn=Vn)
{
ensemble instructions
}
- arg_ret est l'argument renvoyé par la fonction (instruction
return
- nom_f est le nom de la fonction
- arg1 …argn sont les arguments envoyés à la fonction
55
- Vn est la valeur par défaut de l’argument argn.
Introduction au
Langage C,C++
 Les fonctions
 règles d'utilisation

L'ordre, le type et le nombre des
arguments doivent être respectés lors de
l'appel de la fonction

L'appel d'une fonction doit être située
après sa déclaration ou celle de son
prototype
(voir exemple transp suivant)

Si la fonction ne renvoie rien alors
préciser le type void
56
Introduction au
Langage C,C++
Prototype de
 Les fonctions la fonction
min
 exemple:
int min(int a, int b);
Programme
void main() principal
{
cout <<min(a,b)<<'\';
}
int min(int a, int b) Fonction min
{ et son bloc
d'instructions
if (a <b) return a;
else return b;
} 57
Introduction au
Langage C,C++
 Les fonctions
 Les paramètres se passent par
valeur

Recopie en mémoire des paramètres
dans des paramètres temporaires.
 Toute modification des paramètres dans la
fonction est sans effet sur les paramètres
originelles
 Quand on quitte la fonction, les paramètres
temporaires sont effacés de la mémoire
 Recopie dans le sous programme appelant de
la valeur du paramètre retourné par la
58
fonction return.
return
Introduction au
Langage C,C++
 Les fonctions
 exemple:

void permutter(int a, int b)


{ Aucune
int temp; action sur
temp = a; les paramètres
a = b; x et y
b= temp;
}
void main()
{
int x=3;int y =5;
permutter(x,y); x=3 y=5
cout << "x="<<x<<" y="<<y<<'\n';
} 59
Introduction au
Langage C,C++
 Les fonctions
 Passage d'arguments par adresse

On passe non pas la valeur de la
variable mais son adresse

Il est donc possible par les pointeurs
de modifier le contenu de l'adresse,
donc la variable originelle

Permet de modifier plusieurs
arguments à la fois dans une
fonction

Permet de passer des tableaux en 60
argument
Introduction au
Langage C,C++
 Les fonctions
 exemple:

void permutter(int *pa, int *pb)


{ Action sur
int temp; les paramètres
temp = *pa;
x et y
*pa = *pb;
*pb= temp;
}
void main()
{
int x=3;int y =5;
permutter(&x,&y); x=5 y=3
cout << "x="<<x<<" y="<<y<<'\n';
} 61
Introduction au
Langage C,C++
 Les fonctions
 Passage d'arguments par
référence

On passe non pas la valeur de la
variable mais sa référence

Il est donc possible de modifier la
variable originelle en modifiant sa
référence

62
Introduction au
Langage C,C++
 Les fonctions
 exemple:

void permutter(int &ra, int &rb)


{ Action sur
int temp; les paramètres
temp = ra;
x et y
ra = rb;
rb= temp;
}
void main()
{
int x=3;int y =5;
permutter(x,y); x=5 y=3
cout << "x="<<x<<" y="<<y<<'\n';
} 63

Vous aimerez peut-être aussi