bonjour,
j'ai un pb avec ce code, qui calcule le nombre d'occurence d'un caractère dans une chaîne de manière récursive.
pb n1 :
quand je donne la chaine "azza" et le caractère "a" il affiche 1 par contre quand je donne "z" il affiche2.
pb n2 :
quand je donne une longue chaine il génère un 202 runtime error
merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 uses wincrt; var Phrase : string; Car : char; NbreOcc : byte; procedure Occurence(Ph:string;C:char;var Nbre:byte) ; var SPh : string; begin if (length(Ph) = 0) then Nbre:=0; SPh:=copy(Ph,1,1); delete(Ph,1,1); if(length(Ph) >0) then begin if (C = SPh[1]) then Nbre := Nbre + 1; Occurence(Ph,C,Nbre); end; end; begin NbreOcc:=0; writeln('Saisir une phrase :'); readln(Phrase); writeln('Saisir un caractère :'); readln(Car); Occurence(Phrase,Car,NbreOcc); writeln('l''occurence de la lettre <<',Car,'>> = ',NbreOcc); end.
Partager