Svp exercice pour lundi 5/10/09
Résolu
firas mili
Messages postés
76
Date d'inscription
Statut
Membre
Dernière intervention
-
napsterockoeur Messages postés 198 Date d'inscription Statut Membre Dernière intervention -
napsterockoeur Messages postés 198 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
g un travail a faire pour lundi , svp aidez moi.
(ce programme permet de calculer le nombre des prof celibataire ,suivant les chaines stocker dans un tableau T
!!les chaine sont ''celibataire'' et ''marié"") !!T est un tableau des chaines !!faut pas faire un test en remplisant le
tableau)
for i:= 1 to 20 do
begin
if t[i] ='celibataire' then
s:=s+1; {s est le nombre des profs celibataires}
end;
{le problem est si l'utilisateur n'a pas correctement ecri la chaine,par exemple la chaine ''Celebatere" doit etre
compris par le programme comme "celibataire"}
alors il faut faire une procedure test qui permet de verifier chauque chaine}
merci de m'ecrire cette procedure....
Configuration: Windows XP
Opera 9.80
g un travail a faire pour lundi , svp aidez moi.
(ce programme permet de calculer le nombre des prof celibataire ,suivant les chaines stocker dans un tableau T
!!les chaine sont ''celibataire'' et ''marié"") !!T est un tableau des chaines !!faut pas faire un test en remplisant le
tableau)
for i:= 1 to 20 do
begin
if t[i] ='celibataire' then
s:=s+1; {s est le nombre des profs celibataires}
end;
{le problem est si l'utilisateur n'a pas correctement ecri la chaine,par exemple la chaine ''Celebatere" doit etre
compris par le programme comme "celibataire"}
alors il faut faire une procedure test qui permet de verifier chauque chaine}
merci de m'ecrire cette procedure....
Configuration: Windows XP
Opera 9.80
A voir également:
- Svp exercice pour lundi 5/10/09
- Clé d'activation windows 10 - Guide
- Restauration systeme windows 10 - Guide
- Windows 10 ne démarre plus - Guide
- Windows 10 gratuit - Accueil - Mise à jour
- Winrar 64 bits windows 10 - Télécharger - Compression & Décompression
22 réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
d'accord, merci. C'est un vieux langage plus vraiment pratiqué alors... :S
Donc, il te suffit de faire :
if t[i] ='celibataire' or t[i]='celebatere' or t[i].... then
s:=s+1;
Donc, il te suffit de faire :
if t[i] ='celibataire' or t[i]='celebatere' or t[i].... then
s:=s+1;
lettre par lettre, je ne pense pas que ce soit le plus simple, mais avec des parties du mot (Je ne sais pas si c'est comme ça : if 'celib' isin t[i] then, ou bien if 'celib' in t[i]).
Il suffit d'avoir les compétences en Turbo Pascal... M'enfin ta prof pourrait vous faire faire du langage objet ce serait mieux :D
Il y a quelques années est paru dans Linux Magazine un excellent article de Jérôme Delamarche qui s'intitulait: "Ecriture d'une fonction de reconnaissance phonétique pour MySQL".
Tu as beaucoup de chance car cet article est accessible sur le site UnixGarden.
Qu'importe le langage dont tu te sers, car la démarche est décrite et peut, par conséquent, être très facilement réécrite pour un autre langage que le 'C' utilisé dans l'exemple.
Bonne continuation.
Tu as beaucoup de chance car cet article est accessible sur le site UnixGarden.
Qu'importe le langage dont tu te sers, car la démarche est décrite et peut, par conséquent, être très facilement réécrite pour un autre langage que le 'C' utilisé dans l'exemple.
Bonne continuation.
Program ex2;
Uses wincrt;
Type prof=record
Sp,Np,EC:string;
Sa:real;
M:integer;
End;
Type Tab=array[1..5]of prof;
Var
T:tab;
P,N:integer;
{fonction qui convertie une chaine en majuscule}
function majus(s:string):string;
var i:integer;
begin
for i:= 1 to length(s) do
begin
s[i]:=upcase(s[i]);
end;
majus:=s;
end;
function marie(s:string):boolean;
var j,i,l:integer;
begin
l:=length(s);
for i:= 1 to l do
begin
if pos(s[i],'MARIE')<>0 then
j:=j+1;
end;
if (j in [l-2..l+2]) or( s='M') or (s='MA') then
marie:=true;
end;
{fonction qui soit vraie si s est 'celibataire'}
function test(s:string):boolean;
var n,i,l:integer;
begin
l:=length(s);
for i:=1 to l do
begin
if pos(s[i],'CELIBATAIRE')<>0 then
n:=n+1;
end;
if (n in[l-6..l+5]) or (s='C') or (s='CE') or (s='CEL') or (s='CELB')then
test:=true;
end;
Procedure Lecture(Var T:Tab;N:integer);
var x,i:integer;
z:string;
Begin
i:=1;
z:='';
While (z<>'.') do
begin
With T[i] Do
Begin
Writeln('Entrer le nom et prenom, si vous avez terminez entrer "."');
Readln(z);
if(z<>'.')then
Begin
Np:=Z;
Writeln('Entrer la specialité');
Readln(Sp);
Writeln('Entrer le n° de matricule');
Readln(m);
{Repeat
X:=1; }
Writeln('Entrer l''etat civil');
Readln(EC);
{ EC:=majus(EC);
if marie(EC) then
begin
EC:='marie' ;
writeln(ec);
end
else if test(EC) then
begin
EC:='celibataire';
writeln(EC) ;
end
else
x:=0;
Until(x=1);}
Writeln('Entrer la salaire');
Readln(Sa);
End;
End;
i:=i+1;
N:=i-1;
End;
End;
Procedure Calcul(var p:integer;t:tab;n:integer);
var
i:integer;
Begin
For i:=1 to N do
begin
If marie(t[i].ec)=false then
begin
if test(t[i].ec) then
p:=p+1;
end;
End;
End;
Begin
Lecture(T,N);
Calcul(p,t,n);
Writeln('Le nombre des profs celibataires est ',p);
End.
Uses wincrt;
Type prof=record
Sp,Np,EC:string;
Sa:real;
M:integer;
End;
Type Tab=array[1..5]of prof;
Var
T:tab;
P,N:integer;
{fonction qui convertie une chaine en majuscule}
function majus(s:string):string;
var i:integer;
begin
for i:= 1 to length(s) do
begin
s[i]:=upcase(s[i]);
end;
majus:=s;
end;
function marie(s:string):boolean;
var j,i,l:integer;
begin
l:=length(s);
for i:= 1 to l do
begin
if pos(s[i],'MARIE')<>0 then
j:=j+1;
end;
if (j in [l-2..l+2]) or( s='M') or (s='MA') then
marie:=true;
end;
{fonction qui soit vraie si s est 'celibataire'}
function test(s:string):boolean;
var n,i,l:integer;
begin
l:=length(s);
for i:=1 to l do
begin
if pos(s[i],'CELIBATAIRE')<>0 then
n:=n+1;
end;
if (n in[l-6..l+5]) or (s='C') or (s='CE') or (s='CEL') or (s='CELB')then
test:=true;
end;
Procedure Lecture(Var T:Tab;N:integer);
var x,i:integer;
z:string;
Begin
i:=1;
z:='';
While (z<>'.') do
begin
With T[i] Do
Begin
Writeln('Entrer le nom et prenom, si vous avez terminez entrer "."');
Readln(z);
if(z<>'.')then
Begin
Np:=Z;
Writeln('Entrer la specialité');
Readln(Sp);
Writeln('Entrer le n° de matricule');
Readln(m);
{Repeat
X:=1; }
Writeln('Entrer l''etat civil');
Readln(EC);
{ EC:=majus(EC);
if marie(EC) then
begin
EC:='marie' ;
writeln(ec);
end
else if test(EC) then
begin
EC:='celibataire';
writeln(EC) ;
end
else
x:=0;
Until(x=1);}
Writeln('Entrer la salaire');
Readln(Sa);
End;
End;
i:=i+1;
N:=i-1;
End;
End;
Procedure Calcul(var p:integer;t:tab;n:integer);
var
i:integer;
Begin
For i:=1 to N do
begin
If marie(t[i].ec)=false then
begin
if test(t[i].ec) then
p:=p+1;
end;
End;
End;
Begin
Lecture(T,N);
Calcul(p,t,n);
Writeln('Le nombre des profs celibataires est ',p);
End.