Vous êtes sur la page 1sur 7

Cor

rect
iondesexer
ciceschai
nesdecar
act
ères

Ex6

Al
gor
it
hmeTaut
ogr
amme

Var
 :ch 
:
chai
ne[
255]


:
car
act
ere

L,
i
 :
ent
ier

Ok 
:
bool
een

Debut

Repet
er

Ecr
ir
e(“
donnerl
achai
neàt
est
er”
)

Li
re(
ch)

L=l
ongueur
(ch)

Jusqu'
à(l
>0etl
<=255)

X<-
ch[
0]

Ok<-
vrai

i
<-1

Tant
que(
i<l
etok)f
air
e

Tant
que(
ch[
i]
≠’‘
eti
<l
)fai
re

i
<-i
+1

f
int
ant
que
si
(ch[
i]
=’‘
)al
ors

si
(ch[
i+1]
=x)al
ors

i
<-i
+1

si
non

ok<-
faux

f
insi

f
insi

f
int
ant
que

si
(ok)al
ors

Ecr
ir
e(«
 taut
ogr
amme 
»

Si
non

Ecr
ir
e(«
 l
achai
nen’
estpast
aut
ogr
amme 
»)

Fi
nsi

f
in
exer
cice7

#i
ncl
ude<st
dio.
h>

#i
ncl
ude<st
ri
ng.
h>

#def
inebool
eeni
nt

i
ntmai
n()

charch[
100]
;

i
nti
,
j,
l;

bool
eendi
st;

pr
int
f("
Donnezunechai
nedecar
act
eres:
\n"
);

get
s(ch)
;

l
=st
rl
en(
ch)
;

pr
int
f("
%d\
n",
l
);

di
st=1;

f
or(
i=0;
i
<l-
1&&di
st;
i
++)

f
or(
j=i
+1;
j
<l&&di
st;
j
++)
di
st=!
(ch[
i]
==ch[
j]
);

i
f(
dist
)

put
s("
dist
inct
");
}

el
se

put
s("
nondi
sti
nct
");

Exer
cice8

#i
ncl
ude<st
dio.
h>
#i
ncl
ude<ct
ype.
h>
mai
n()
{
/
*Décl
arat
ions*
/
charCH[
101]
;/*chaî
nedonnée*
/
char*
P; /
*poi
nteurd'
ai
de*
/
i
ntN; /
*nombr
edesmot
s*/
i
ntDANS_
MOT;
/*i
ndi
cat
eurl
ogi
que:
*/
/
*vr
aisi
Ppoi
nteàl
'
int
éri
eurunmot*
/

/
*Sai
siedesdonnées*
/
pr
int
f("
Ent
rezunel
i
gnedet
ext
e(max.
100car
act
ères):
\n"
);
get
s(CH)
;
/
*Compt
erl
esmot
s*/
N=0;
DANS_
MOT=0;
f
or(
P=CH;
*P;
P++)
i
f(i
sspace(
*P)
)
DANS_
MOT=0;
el
sei
f(!
DANS_
MOT)
{
DANS_
MOT=1;
N++;
}
/
*Af
fi
chagedur
ésul
tat(
pourper
fect
ionni
stes)*
/
pr
int
f("
Lachaî
ne\
"%s\
"\nestf
orméede%dmot
%c.
\n"
,
CH,
N,(
N==1)
?''
:
's'
);
r
etur
n0;

exer
cice9

#i
ncl
ude<st
dio.
h>
#i
ncl
ude<st
ri
ng.
h>
mai
n()
{
/
*Décl
arat
ions*
/
charCH1[
101]
,CH2[
101]
;/*chaî
nesdonnées*
/
char*
P1,
*P2;
/*poi
nteur
sd'
ai
dedansCH1etCH2*
/
i
ntTROUVE;
/*i
ndi
cat
eurl
ogi
que:
vrai
,si
lecar
act
ère*
/
/
*act
uel
dansCH1aét
étr
ouv
édansCH2. *
/

/
*Sai
siedesdonnées*
/
pr
int
f("
Ent
rezl
apr
emi
èrechaî
nedecar
act
ères"
"(
max
.100car
act
ères):
\n"
);
get
s(CH1)
;
pr
int
f("
Ent
rezl
adeuxi
èmechaî
nedecar
act
ères"
"(
max
.100car
act
ères):
\n"
);
get
s(CH2)
;
/
*El
i
minerl
esl
ett
rescommunes*
/
/
*Idée:
Par
cour
irCH2degaucheàdr
oit
eetcont
rôl
er*
/
/
*pourchaquecar
act
ères'
i
lset
rouv
eaussi
dansCH1.*
/
/
*Si
tel
estl
ecas,
éli
minerl
ecar
act
èredeCH1à *
/
/
*l'
ai
dedest
rcpy
.*/
f
or(
P2=CH2;
*P2;
P2++)
{
TROUVE=0;
f
or(
P1=CH1;
*P1&&!
TROUVE;
P1++)
i
f(*
P2==*
P1)
{
TROUVE=1;
st
rcpy
(P1,
P1+1)
;
}
}
/
*Af
fi
chagedur
ésul
tat*
/
pr
int
f("
Chaî
ner
ésul
tat:
\"%s\
"\n"
,CH1)
;
r
etur
n0;
}