IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Pascal Discussion :

Fonction menu


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Par défaut Fonction menu
    bonjour chers programmeurs, me voilà maintenant confrontée à un tp concernant les fonction et procédures. jusqu'ici tt va bien... le hic est que la derniere question est de creer une fonction menu permettant de choisir parmi les actions(fonctions/procédures )déclarees auparavant. j'ai tenté une fonction utilisant un case of qui determinerait l'action à faire en fonction d'une entree utilisateur mais ça ne marche pas... si qqn a une idee...
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    program chaine_caracteres;
     
    var
    s1,s1SousChaine,s2souschaine:string;
     
    procedure saisirChaine(var s:string);
    begin
     repeat
      writeln('entrez une chaine de caracteres inférieure à 255');
      readln(s);
     until (length(s)<=255)and (length(s)<>0);
    end;
     
    procedure ecrireChaine (var s:string);
    begin
     writeln(s);
    end;
     
    function SousChaine (var s,sSousChaine:string):boolean;
    begin
     repeat
      writeln('entrez une sous chaine de ',s);
      readln(sSousChaine);
     until length(sSousChaine)<>0;
     if pos(sSouschaine, s)<>0 then
      SousChaine:=true
     else Souschaine:=false;
     writeln(souschaine);
    end;
     
    function nbOccurences (s,sSousChaine:string):integer;
    var
     temp:integer;
    begin
    nbOccurences:=0;
    repeat
     writeln('entrez une sous chaine de ',s,'pour en connaitre le nbr d''occurences');
     readln(sSousChaine);
    until length(sSousChaine)<>0;
    if pos(sSouschaine, s)<>0 then
      begin
      nbOccurences:=nbOccurences+1;
      repeat
       temp:= pos(sSouschaine, s);
       delete (s,1,temp + length (ssouschaine) );
       if pos(sSouschaine, s)<>0 then
        nbOccurences:=nbOccurences+1;
       until pos(sSouschaine, s)=0;
      end;
      writeln (nbOccurences);
      readln;
    end;
     
    function suppressionSousChaine(var s,sSousChaine:string):string;
    var
      nbrSuppression:integer;
        begin
        repeat
         writeln('entrez la sous chaine de ',s,' que vous souhaitez supprimer');
         readln(ssouschaine);
        until length(ssouschaine)<>0;
        nbrsuppression:=0;
        repeat
         delete(s,pos(sSousChaine,s),length(ssousChaine));
         nbrSuppression:=nbrSuppression+1;
        until
           pos(sSousChaine,s)=0;
        writeln('la nouvelle chaine de caracteres est: ',s,' et ',ssousChaine,' a ete supprimé ',nbrsuppression,' fois ');
           readln;
        end;
     
     function remplaceSousChaine(var s,sSousChaine1,sSousChaine2:string):string;
      var
      i,temp,long:integer;
      prefixe,suffixe:string;
        begin
        repeat
         writeln('entrez la sous chaine de ',s,' que vous souhaitez remplacer');
         readln(ssouschaine1);
        until length(ssouschaine1)<>0;
        i:=0;
        repeat
          i:=i+1;
          temp:=pos(sSousChaine1,s);
          long:= length(ssousChaine1);
          prefixe:=copy(s,1,temp-1);
          suffixe:=copy(s,temp+long,length(s)-temp-long+1);
          delete(s,temp,long);
          repeat
            writeln('entrez la ',i,'  souschaine de remplacement');
            readln(ssouschaine2);
          until length(ssouschaine2)<>0;
          s:=prefixe+ssouschaine2+Suffixe;
        until pos(sSousChaine1,s)=0;
        remplacesouschaine:=s;
        writeln('la nouvelle chaine de caracteres est: ',remplacesouschaine);
        readln;
        end;
     
    function menu:integer;
     begin
     repeat
      writeln('entrez l''action désirée:1 pour saisie d''une chaine, 2 pour écriture d''une chaine, 3 pour recherche d''une sous chaine,4 pour nombre d''occurences,5 pour suppression d''une sous chaine,et 6 pour remplacement d''une souschaine');
      readln(menu);
      until (menu=1) or (menu=2) or  (menu=3) or (menu=4) or  (menu=5) or (menu=6);
      case menu of
      1: saisirChaine(s1);
      2: ecrireChaine(s1);
      3: writeln (souschaine);
      4: writeln(nbOccurences);
      5: writeln(suppressionSousChaine);
      6: writeln (remplaceSousChaine);
      end;
     end;
     
    begin
    menu;
     
      readln;
    end.

    ps: soyez indulgents svp, je sais que je ne suis pas une lumiere en programmation, je n'ai nul besoin qu'on me le rappelle...

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Par défaut héhé finalemnt...j'en suis venue à bout
    l'inspiration m'est venue... j'ai corrigé mon programme si qqn a envie de s'amuser en le lisant (avouez que vous ne pouvez pas vous empecher de dénigrer les novices comme moi!) je le met. à une prochaine peut etre!
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    program chaine_caracteres;
     
    var
    s1,s1SousChaine,s2souschaine:string;
     
    procedure saisirChaine(var s:string);
    begin
     repeat
      writeln('entrez une chaine de caracteres inférieure à 255');
      readln(s);
     until (length(s)<=255)and (length(s)<>0);
    end;
     
    procedure ecrireChaine (var s:string);
    begin
     saisirchaine(s);
     writeln('la chaine de caracteres est: ',s);
    end;
     
    function SousChaine (var s,sSousChaine:string):boolean;
    begin
     repeat
      ecrireChaine (s);
      writeln('entrez une sous chaine de ',s);
      readln(sSousChaine);
     until length(sSousChaine)<>0;
     if pos(sSouschaine, s)<>0 then
      SousChaine:=true
     else Souschaine:=false;
     end;
     
    function nbOccurences (s,sSousChaine:string):integer;
    var
     temp:integer;
    begin
    nbOccurences:=0;
    saisirChaine(s);
    repeat
     writeln('entrez une sous chaine de ',s,'pour en connaitre le nbr d''occurences');
     readln(sSousChaine);
    until length(sSousChaine)<>0;
    if pos(sSouschaine, s)<>0 then
      begin
      nbOccurences:=nbOccurences+1;
      repeat
       temp:= pos(sSouschaine, s);
       delete (s,1,temp + length (ssouschaine) );
       if pos(sSouschaine, s)<>0 then
        nbOccurences:=nbOccurences+1;
       until pos(sSouschaine, s)=0;
      end;
      writeln (nbOccurences);
      readln;
    end;
     
    function suppressionSousChaine(var s,sSousChaine:string):string;
    var
      nbrSuppression:integer;
        begin
        saisirchaine(s);
        repeat
         writeln('entrez la sous chaine de ',s,' que vous souhaitez supprimer');
         readln(ssouschaine);
        until (length(ssouschaine)<>0) and (pos(ssouschaine,s)<>0);
        nbrsuppression:=0;
        repeat
         delete(s,pos(sSousChaine,s),length(ssousChaine));
         nbrSuppression:=nbrSuppression+1;
        until
           pos(sSousChaine,s)=0;
        suppressionSousChaine:=s;
        writeln(ssousChaine,' a ete supprimé ',nbrsuppression,' fois ');
           readln;
        end;
     
     function remplaceSousChaine(var s,sSousChaine1,sSousChaine2:string):string;
      var
      i,temp,long:integer;
      prefixe,suffixe:string;
        begin
        saisirchaine(s);
        repeat
         writeln('entrez la sous chaine de ',s,' que vous souhaitez remplacer');
         readln(ssouschaine1);
        until (length(ssouschaine1)<>0) and (pos(sSousChaine1,s)<>0);
        i:=0;
        repeat
          i:=i+1;
          temp:=pos(sSousChaine1,s);
          long:= length(ssousChaine1);
          prefixe:=copy(s,1,temp-1);
          suffixe:=copy(s,temp+long,length(s)-temp-long+1);
          delete(s,temp,long);
          repeat
            writeln('entrez la ',i,'  souschaine de remplacement');
            readln(ssouschaine2);
          until length(ssouschaine2)<>0;
          s:=prefixe+ssouschaine2+Suffixe;
        until pos(sSousChaine1,s)=0;
        remplacesouschaine:=s;
        readln;
        end;
     
    function menu:integer;
     begin
     repeat
      writeln('entrez l''action désirée:1 pour saisie d''une chaine, 2 pour écriture d''une chaine, 3 pour recherche d''une sous chaine,4 pour nombre d''occurences,5 pour suppression d''une sous chaine,et 6 pour remplacement d''une souschaine,0 pour sortir');
      readln(menu);
      until (menu=0)or(menu=1) or (menu=2) or  (menu=3) or (menu=4) or  (menu=5) or (menu=6);
      case menu of
      0: exit;
      1: saisirChaine(s1);
      2: ecrireChaine(s1);
      3: writeln (souschaine(S1,s1souschaine));
      4: writeln(nbOccurences(s1,s1SousChaine));
      5: writeln(suppressionSousChaine(s1,s1SousChaine),' est la nouvelle chaine de caracteres');
      6: writeln(remplaceSousChaine(s1,s1SousChaine,s2SousChaine),' est la nouvelle chaine de caracteres');
      end;
     end;
     
    begin
    repeat
    menu;
    until (menu=0) ;
     
      readln;
    end.

  3. #3
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    bonjour et bienvenue
    Citation Envoyé par débutantepascal
    avouez que vous ne pouvez pas vous empecher de dénigrer les novices comme moi!
    qui à parler de denigrer une novice?(c'est toi )
    ensuite pour ton code je trouve super pour une novice de bien indenté ton code c'est cool
    juste des petits trus à ameliorer comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    repeat
          ..................................
    until (menu=1) or (menu=2) or  (menu=3) or (menu=4) or  (menu=5) or (menu=6);
      case menu of
    qui pourrait etre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      repeat
               .........................
      until menu in[1..6];
      case menu of
    bravo et bonne continuation
    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel fonction menu
    Par Ctesias dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 19/01/2012, 10h54
  2. Problème avec la fonction menu
    Par About dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 03/08/2007, 10h30
  3. [Oracle 8i] extraction de fonction menu
    Par Titouf dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/01/2007, 17h10
  4. [débutant] modifier une page en fonction d'un menu
    Par Hastur dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/07/2005, 13h29
  5. Fonctions via menu excel
    Par djid72 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/03/2005, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo