Académique Documents
Professionnel Documents
Culture Documents
Algo1 - Complet MR THIAM
Algo1 - Complet MR THIAM
7. POINTEURS
Pr.
Mouhamadou
THIAM
Maître
de
2
conférences
en
informa1que
PRÉSENTATION
DU
COURS
7. POINTEURS
Pr.
Mouhamadou
THIAM
Maître
de
7
conférences
en
informa1que
Chapitre
1
INTRODUCTION
GENERALE
Décrire
le
cheminement
? Décrire
le
cheminement
à
permehant
d’arriver
à
la
emprunter
pour
arriver
à
votre
solu1on
d’un
problème
décrit
habita1on
telle
que
décrit
par
par
un
énoncé
votre
adresse
•
Soit
le
problème
classique
de
la
tour
de
Hanoi,
afficher
la
liste
des
mouvements
nécessaires
pour
le
résoudre.
•
Un
voyageur
de
commerce
désire
faire
sa
tournée,
existe-‐t-‐il
une
tournée
de
moins
de
50
km
?
«
pour
tout
système
formel
S
contenant
le
langage
de
l'arithmé9que,
il
existe
une
proposi9on
G
indémontrable
dans
S
»
Exemple
de
problème
de
NP
Le
voyageur
de
commerce
•
Un
voyageur
de
commerce
désire
faire
sa
tournée,
existe-‐t-‐il
une
tournée
de
moins
de
50
km
?
10
b
a-‐b-‐e-‐c-‐d-‐a
50km
a
10
20
40
10
10
d
10
10
c
12
10
e
Pr.
Mouhamadou
THIAM
Maître
de
16
conférences
en
informa1que
NP
et
co-‐NP
?
Problème
du
circuit
hamiltonien
?
P
=
NP
Overview
1. PRÉSENTATION
DU
COURS
7. POINTEURS
Pr.
Mouhamadou
THIAM
Maître
de
19
conférences
en
informa1que
Chapitre
2
NOTIONS
D’ALGORITHMIQUE
1. Intui1on
2. Historique
3. Variables
4. Expressions
5. Instruc1ons
6. Écriture
d’algorithme
• Exemple:
– 7
div
2
donne
3
– 7
mod
2
donne
1
Pr.
Mouhamadou
THIAM
Maître
de
39
conférences
en
informa1que
Remarques
(2)
• Exemples
– (a
<
0)
ET
(b
<
0)
– (
(a
+3
==
b)
ET
(c
<
0)
)
OU
(
(a
==
c
*2)
ET
(b≠c)
)
• N o m
p o u r
c h a q u e
a l g o r i t h m e
(réu1lisa1on)
• Variables
d’entrée
(données
s’il
y
en)
• Variables
de
sor1e
(résultats)
• Variables
locales
• Préciser
leurs
types
7. POINTEURS
Pr.
Mouhamadou
THIAM
Maître
de
63
conférences
en
informa1que
Chapitre
3
• Langage
typé
• Langage
compilé
– Texte
écrit
en
langage
C
• Compila1on
– Edi1on
de
liens
– Programme
exécutable
• Compilateur
– lit
un
fichier
source
– produit
un
fichier
objet
type_de_retour
nom_prog(arguments)
{
/*
déclara1on
des
variables
u1lisées
dans
la
fonc1on
main
*/
/*
instruc1ons
du
programme*/
}
#include
<stdio.h>
int
main(
)
{
prin•("Bonjour");
return
0;
}
Pr.
Mouhamadou
THIAM
Maître
de
74
conférences
en
informa1que
Remarques
Opérateur SignificaAon
&& Et logique
|| Ou logique
! Néga1on logique
• Exemples
:
• (a
>
10)&&(a
<=
20)
=
vrai
– si
a
>
10
et
si
a
<=
20
• (a
>
10)||(b
<=
20)
=
vrai
– si
a
>
10
ou
si
b
<=
20
• !(a
>
10)
=
vrai
– si
a
>
10
est
faux
,
c-‐a-‐d
si
a
<=
10
• Format
d’affichage
– %d
ou
%ld
ou
%u
ou
%lu
pour
les
en1ers
(int,
short,
long,
unsigned)
– %f
ou
%lf
pour
les
réels
(float,
double)
– %s
pour
les
chaînes
de
caractères
– %c
pour
les
caractères
• prinm
("la
valeur
de
x
est
%d
et
celle
de
y
e
st
%d",
x,
y
);
//Affiche
???
La
valeur
de
x
est
5
et
celle
de
y
est
10
• %d
ou
%ld
ou
%u
ou
%lu
pour
les
en1ers
(int,
short,
long,
unsigned)
• %f
ou
%lf
pour
les
réels
(float,
double)
• %s
pour
les
chaînes
de
caractères
• %c
pour
les
caractères
• Exemple
:
– scanf
("%d%d",
&a
,
&b)
;
– Taper
2
puis
3,
la
variable
a
prend
la
valeur
2
et
b
prend
la
valeur
3.
7. POINTEURS
Pr.
Mouhamadou
THIAM
Maître
de
109
conférences
en
informa1que
CHAPITRE
4
debut
{
instruc1on(s)
instruc1on(s);
fin
}
Si
(condi1on)
Alors
traitement
FinSi
if
(condi1on)
{
si
condi1on
alors
instruc1on(s)_1;
instruc1on(s)_1
}
sinon
else
{
instruc1on(s)_2
instruc1on(s)_2;
finsi
}
Pseudo-‐code
Langage
C
si
condi1on_1
alors
if
(condi1on_1)
{
instruc1on(s)_1
instruc1on(s)_1;
sinon
}
else
{
si
condi1on_2
alors
if
(condi1on_2)
{
instruc1on(s)_2
instruc1on(s)_2;
sinon
}
else
{
instruc1on(s)_3
instruc1on(s)_3;
finsi
}
finsi
}
• Syntaxe
Tant
que
(condi1on)
Faire
traitement
FinTQ
• Syntaxe
int
i
;
for
(i=
d
;
i<=
f
;
i
++)
{
instruc1on(s);
pour
i
de
d
à
f
faire
}
instruc1on(s)
OU
BIEN
finpour
for
(int
i
=
d
;
i<=
f
;
i
++)
{
instruc1on(s);
}
int
i
;
for
(i=
d
;
i<=
f
;
i
-‐-‐)
{
instruc1on(s);
pour
i
de
d
à
f
faire
}
instruc1on(s)
OU
BIEN
finpour
for
(int
i
=
d
;
i<=
f
;
i
-‐-‐)
{
instruc1on(s);
}
int
i
;
for
(i=
d
;
i<=
f
;
i
+=p)
{
instruc1on(s);
pour
i
de
d
à
f
pas
p
faire
}
instruc1on(s)
OU
BIEN
finpour
for
(int
i
=
d
;
i<=
f
;
i
+=p)
{
instruc1on(s);
}
Faire
traitement
Tant
que
(condi9on)
faire
do
{
instruc1on(s)
instruc1on(s)
;
Tant
que
condi1on
}
while
(condi1on)
;
• i
=
0
• i
=
1
• i
=
2
• i
=
3
• valeur
de
i
a
la
sor1e
de
la
boucle
=
3
• i
=
0
• i
=
1
• i
=
2
• i
=
4
• valeur
de
i
a
la
sor1e
de
la
boucle
=
5
?
4. LANGAGE C
7. POINTEURS
Pr.
Mouhamadou
THIAM
Maître
de
158
conférences
en
informa1que
Chapitre
5
TYPES
DE
DONNEES
COMPOSÉS
1. Énuméra1ons
2. Tableaux
à
une
dimension
3. Tableaux
à
plusieurs
dimensions
4. Chaînes
de
caractères
5. Structures
• type
nom_type
=
{constante1,
constante2,
…,
constanteN
}
• Syntaxe
enum
nom_type
{constante1,
constante2,
…,
constanteN};
• Exemples:
– enum
couleur
{bleu,
blanc,
rouge,
vert,
jaune,
noir}
;
– enum
jour
{Lundi,
Mardi,
Mercredi,
Jeudi,
Vendredi,
Samedi,
Dimanche}
;
Pr.
Mouhamadou
THIAM
Maître
de
169
conférences
en
informa1que
Remarques
• Chaque
constante
est
associée
à
un
en1er
– son
numéro
d’ordre
(partant
de
0
pour
le
1er
)
– on
peut
aussi
spécifier
la
valeur
associée.
• Exemple:
– enum
jour
{Lundi=1,
Mardi,
Mercredi=5,
Jeudi,
Vendredi,
Samedi,
Dimanche};
– Mardi
prend
la
valeur
2,
Jeudi
la
valeur
6,
…
• Remarque
:
Les
valeurs
associées
aux
constantes
ne
sont
pas
modifiables
dans
le
programme.
Pr.
Mouhamadou
THIAM
Maître
de
170
conférences
en
informa1que
Déclara1on
de
variables
• Exemples:
– Nom
:
salaire
– Taille
(nombre
d’éléments)
:
6
• Remarques
– «
case
contenant
une
valeur
»
doit
faire
penser
à
celle
de
variable
– éléments
d'un
tableau
correspondent
à
des
emplacements
con1guës
en
mémoire
Variable
nom_tableau
:
tableau
[N]
de
type
Où
– nom_tableau
est
l’iden1ficateur
du
tableau
– N
est
la
taille
du
tableau
et
doit
être
une
constante
en1ère
et
posi1ve.
– type
est
le
type
des
éléments
du
tableau
• variable
– salaire
:
tableau[6]
de
réel
– nom_clients:
tableau
[20]
de
caractere
– notes
:
tableau[8]
d’en1er
• Tableaux
à
2
dimensions
àValeurs
repérées
par
deux
coordonnées
• Déclara1on
à Damier
:
tableau[8][8]
d’enAer
– Réserva1on
de
64
en1ers
(8x8)
– Damier
(i,
j)àDamier
(i-‐1,
j-‐1),
Damier
(i-‐1,
j+1),
Damier
(i+1,
j-‐1)
et
Damier
(i+1,
j+1)
• Déclaration
– Plusieurs indices pour désigner un élément
– Paire de crochets et taille pour chaque dimension
• Exemple
variable
nom_tableau:
tableau[N1][N2]
de
type
• Exemple
• ch="hello
"
• strcat
à
concaténa1on
de
deux
chaînes
– strcat
(ch,
''world'');
//ch
=
''hello
world’’
• strncat
à
concaténa1on
de
deux
chaînes
– ch="hello
"
– strncat
(ch,
''world'’,
lgmax);
//ch
=
''hello
wo’’
si
lgmax
=
2
mois : chaîne
année : enAer
FinStructure
complexe
=
Structure
re
:
réel
im : réel
FinStructure
• Exemple
:
typedef
int
tab[10];
//
tab
est
un
"type"
tableau
de
10
en1ers
tab
T;
//
T
est
une
variable
tableau
de
10
en1ers
Pr.
Mouhamadou
THIAM
Maître
de
231
conférences
en
informa1que
Opérateur
sizeof
• Argument
– type
ou
– nom
de
variable
• Retour
– taille
(en
octets)
de
l’espace
mémoire
nécessaire
pour
stocker
une
valeur
de
ce
type.
– int
i
=
sizeof(int);
/*
i
vaut
4
*/
• z
=x=y?a:b
– Est
évaluée
comme
• z
=
x
=
(
y
?
a
:
b)
?