Svp exercice pour lundi 5/10/09

Résolu
firas mili Messages postés 96 Statut Membre -  
napsterockoeur Messages postés 236 Statut Membre -
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
Configuration: Windows XP
Opera 9.80

22 réponses

  • 1
  • 2
  1. Autumn`Tears Messages postés 1247 Statut Membre 145
     
    Bonjour,

    C'est en algorithme ?
    0
  2. firas mili Messages postés 96 Statut Membre 9
     
    oui pascal
    0
  3. Autumn`Tears Messages postés 1247 Statut Membre 145
     
    du Turbo Pascal ? oO
    0
  4. firas mili Messages postés 96 Statut Membre 9
     
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Autumn`Tears Messages postés 1247 Statut Membre 145
     
    Je suppose qu'en Turbo Pascal, la condition OU se traduit par ||, ou je me trompe ?
    0
  7. firas mili Messages postés 96 Statut Membre 9
     
    ou en turbo pascal c or
    0
  8. Autumn`Tears Messages postés 1247 Statut Membre 145
     
    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;
    0
  9. firas mili Messages postés 96 Statut Membre 9
     
    ok mais c un peut long :est ce qu'on peut tester sur les lettres par exemple
    je compte sur vous. :)
    0
  10. Autumn`Tears Messages postés 1247 Statut Membre 145
     
    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]).
    0
  11. firas mili Messages postés 96 Statut Membre 9
     
    ok t'en fait pas .merci
    0
  12. Autumn`Tears Messages postés 1247 Statut Membre 145
     
    Ok, si tu trouves, dis-moi, ça peut toujours être bénéfique :D
    0
  13. firas mili Messages postés 96 Statut Membre 9
     
    up
    0
  14. Autumn`Tears Messages postés 1247 Statut Membre 145
     
    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
    0
  15. firas mili Messages postés 96 Statut Membre 9
     
    up
    0
  16. firas mili Messages postés 96 Statut Membre 9
     
    JE CHERCHE LA SOLUTION OPTIMALE
    0
  17. firas mili Messages postés 96 Statut Membre 9
     
    aloors
    0
  18. loupius
     
    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.
    0
  19. firas mili Messages postés 96 Statut Membre 9
     
    GRAND MERCI
    0
  20. firas mili Messages postés 96 Statut Membre 9
     
    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.
    0
  21. napsterockoeur Messages postés 236 Statut Membre 10
     
    chapo:;)
    0
  • 1
  • 2