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

Autres IDE Pascal Discussion :

Menu et Sous-programmes


Sujet :

Autres IDE Pascal

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 69
    Points : 35
    Points
    35
    Par défaut Menu et Sous-programmes
    Salut à tous,

    Je me suis fixé l'objectif de concevoir une application qui mettra en oeuvre un menu principal et des sous-programmes (procédures et fonctions).

    Je souhaite que le menu/programme principal appelle un sous-programme qui va se présenter comme un écran, dans lequel l'utilisateur "va travailler".
    Quand il a fini, il revient au menu principal.

    Quelles sont donc la (les) routines/instructions/astuces permettant de générer un écran de sous-programme ?

  2. #2
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 69
    Points : 35
    Points
    35
    Par défaut Auto-eurêka !
    J'ai moi-même trouvé la réponse.

    Juste quelques souvenirs des cours d'algorithmique et quelques coups d'oeil dans dans le livre Cours de Turbo Pascal 7.0 de Hugo Etievant et le tour est joué.

  3. #3
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour

    Voilà le lien de la version corrigée de ce cours
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  4. #4
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 69
    Points : 35
    Points
    35
    Par défaut Comment revenir au programme principal ?
    Comment rendre le contrôle au menu principal lorsqu'un sous-programme a terminé son "travail" ?

    Voici ci-dessous l'exemple d'une procédure qui, dès qu'appelée par le menu/programme principal, demande un nombre (à l'utilisateur), calcule son carré et affiche simultanément le nombre et son carré.

    Ce que je souhaite que cette procédure fasse ensuite :
    revenir au menu principal lorsque l'utilisateur répond 'N' à la question posée.
    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
    PROCEDURE Carre;
             begin
               clrscr;
               repeat
                    writeln('                  ----------------------------------');
                    writeln('                    CALCULER LE CARRE D''UN NOMBRE  ');
                    writeln('                  ----------------------------------');
                    writeln;
                    write('Entrez un nombre : ');
                    readln(nombre);
                    writeln;
                    writeln('Resultat du calcul  : ');
                    writeln('         - Nombre   : ', nombre:2:5);
                    writeln('         - Carre    : ', sqr(nombre):2:5);
                    writeln;
                    write('Voulez-vous recommencer(O/N)? : ');
                    readln(rep);
                    writeln;
                    clrscr;
               until (rep = 'n')or(rep = 'N');
     
             end;

  5. #5
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Il faut utiliser une boucle while et enserrer le menu dans la boucle. Je te laisse découvrir la boucle dans le tutoriel
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 69
    Points : 35
    Points
    35
    Par défaut Un exemple concret
    Merci wormful_sickfoot.
    Je vais être plus concret en présentant le programme que je suis en train de concevoir.
    Je n'ai pas encore ajouté toutes les procédures ou fonctions. Je sais les écrire. Ici, je m'intéresse particulièrement à la manière de revenir au programme/menu principal après avoir activé une procédure ou une fonction.
    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
    PROGRAM Multifonction_Z(input, output);
    USES crt;
    VAR nom : string;
        rep : char;
        choix : integer;
        nombre : real;
     
    PROCEDURE Carre;
             begin
               clrscr;
               repeat
                    writeln('                  ----------------------------------');
                    writeln('                    CALCULER LE CARRE D''UN NOMBRE  ');
                    writeln('                  ----------------------------------');
                    writeln;
                    write('Entrez un nombre : ');
                    readln(nombre);
                    writeln;
                    writeln('Resultat du calcul  : ');
                    writeln('         - Nombre   : ', nombre:2:5);
                    writeln('         - Carre    : ', sqr(nombre):2:5);
                    writeln;
                    write('Voulez-vous recommencer(O/N)? : ');
                    readln(rep);
                    writeln;
                    clrscr;
               until (rep = 'n')or(rep = 'N');
          {     if ((rep = 'n')or(rep = 'N'))then Multifonction_Z;  }
             end;
     
    BEGIN
    clrscr;
    writeln('                              ----------------------');
    writeln('                              I  SUPER INTELLIGENT I ');
    writeln('                              ----------------------');
    writeln;
    writeln('                         Je sais faire beaucoup de choses : ');
    writeln;
    writeln('1. Calculer le carre d''un nombre ');
    writeln('2. Resoudre une equation du premier degre ');
    writeln('3. Resoudre une equation du second degre ');
    writeln('4. Determiner la longueur d''un mot ');
    writeln('5. Calculer le miroir d''un mot');
    writeln('6. Quitter');
    writeln;
    write('Entrez votre nom : ');
    readln(nom);
    writeln('Bonjour, ', nom);
    writeln;
    write('Entrez votre choix : ');
    readln(choix);
    case choix of
         1: Carre;
      {   2: Degre1(coef1, coef2);
         3: Degre2(coef1, coef2, coef3);
         4: LongMot(mot);
         5: Renv(mot); }
         6: exit;
      {   else writeln('Vous n''avez pas rentrer un bon nombre !');    }
    end;
    readln;
    END.

  7. #7
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Salut

    Il n'existe pas de facon "magique" de reprendre tout depuis le début. Déja, quand une procedure se termine, la procedure principale continue la ou elle en était. C'est donc dans la procedure principale que tu dois faire en sorte de revenir au début, et non pas dans la procedure "Carré". Et pour revenir au début, tu dois utiliser une boucle ... On en reviens donc a ce qu'a écrit wormful_sickfoot ...

    N'oublies pas non plus d'utiliser la balise CODE pour mettre en forme ton code et pour le rendre plus lisible ...

    Bonne chance

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 69
    Points : 35
    Points
    35
    Par défaut Quoi et où ?
    S'il te plaît, sors-moi de là en me disant de quelle boucle il s'agit et où la placer dans le menu principal.

    Merci.

  9. #9
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Gia,
    Citation Envoyé par iks37 Voir le message
    S'il te plaît, sors-moi de là en me disant de quelle boucle il s'agit et où la placer dans le menu principal.

    Merci.
    Tu devrais t'en sortir avec ce qui t'a déjà été dit.
    Si les cons volaient, il ferait nuit à midi.

Discussions similaires

  1. Réponses: 31
    Dernier message: 30/08/2005, 13h10
  2. Réponses: 2
    Dernier message: 04/06/2004, 10h36
  3. [LG]Menu déroulant sous Pascal
    Par Apprenti Sorcier dans le forum Langage
    Réponses: 8
    Dernier message: 26/03/2004, 13h29
  4. Menu dynamique sous Flash MX
    Par dens63 dans le forum Flash
    Réponses: 7
    Dernier message: 29/10/2003, 15h46
  5. [langage] les sous programmes
    Par giverny dans le forum Langage
    Réponses: 6
    Dernier message: 21/07/2003, 19h24

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