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

Turbo Pascal Discussion :

[TPW][Débutant] Case avec instructions multiples


Sujet :

Turbo Pascal

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Par défaut [TPW][Débutant] Case avec instructions multiples
    Bonsoir,
    comment faire suivre plusieurs instructions par ligne dans un CASE... OF :
    Cela ne marche pas, de même que la virgule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    case k  of
     
    1 : resultat1 := chr(tablon[11]) ; resultat2 := chr(tablon[12]);
    2 : resultat2 := chr(tablon[21]) ; resultat2 := chr(tablon[22]);
    etc.
    merci beaucoup

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Gio,

    Comme de partout en Pascal quand on veut exécuter plusieurs instructions simples : on crée un bloc d'instructions multiples.

    Tu ne sais pas de quoi il s'agit ?

    Mais si, c'est un bloc begin ... end;

    C'est là du Pascal basique.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Par défaut
    J'apprends sur le tas et je rencontre de multiples petits problèmes qui doivent paraître idiots à un pro. J'ai bien des bouquins mais ils ne traitent pas tous les cas de figure au même endroit. Et quand on ne sait pas, difficile de trouver la bonne page.
    Votre aide m'est très précieuse, j'apprends petit à petit.
    Je vous remercie beaucoup pour votre patience et votre amabilité à répondre à mes questions.

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Hoe,

    Normalement, un bouquin bien fait devrait te permettre de ne pas avoir besoin d'un concept avant de l'avoir appris.

    Accessoirement, ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Case k < 9 OF
    
    1 : resultat1 := chr(tablon[11]) ; resultat2 := chr(tablon[12]);
    2 : resultat1 := chr(tablon[21]) ; resultat2 := chr(tablon[22]);
    etc.
    que j'ai pris la liberté de corriger ?

    est faux : k < 9 est une expression booléenne, et ne peut donc prendre que les valeurs false et true (et pas 1, 2...).

    il faudrait faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if k < 9 then
    begin
      case k of
        1 : ....
        2 : ....
      end; { le case k of }
    end;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      case k of
        1 : ....
        2 : ....
        else .... { traiter ici les cas avec k >= 9 }
      end; { le case k of }
    Avec k <9, et si la suite est comme je l'imagine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    3 : resultat1 := chr(tablon[31]) ; resultat2 := chr(tablon[32]);
    ...
    alors on peut simplifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if k < 9 then
    begin
      resultat1 := Chr(tablon[k*10 +1]);
      resultat2 := Chr(tablon[k*10 +2]);
    end;
    et plus besoin du case.

    Et je pense qu'un tableau d'enregistrements (Record), ou un tableau à 2 dimensions seraient mieux adaptés.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Par défaut
    Effectivement mon code était bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    case k of
    
    1 : resultat1 := chr(tablon[11]) ; resultat2 := chr(tablon[12]);
    2 : resultat1 := chr(tablon[21]) ; resultat2 := chr(tablon[22]);
    etc.
    Il s'agissait d'une erreur d'attention.
    Merci pour la proposition de boucle.

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Wie,
    Citation Envoyé par dimi2 Voir le message
    Effectivement mon code était bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    case k of
    
    1 : resultat1 := chr(tablon[11]) ; resultat2 := chr(tablon[12]);
    2 : resultat1 := chr(tablon[21]) ; resultat2 := chr(tablon[22]);
    etc.
    Il s'agissait d'une erreur d'attention.
    Merci pour la proposition de boucle.
    Ce n'est pas une boucle, on remplace un case of par un calcul d'indice : moins de code, et donc moins d'erreurs potentielles.

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

Discussions similaires

  1. case a cocher avec choix multiple
    Par ikramta dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/03/2009, 17h45
  2. [Débutant] Problème avec select case
    Par feynman dans le forum Fortran
    Réponses: 2
    Dernier message: 11/09/2007, 15h35
  3. instruction CASE avec SQL Server
    Par Andry dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/03/2007, 13h56
  4. Débutante - Code VBA pour MsgBox avec actions multiples
    Par kisscool35 dans le forum Access
    Réponses: 5
    Dernier message: 22/08/2006, 17h43
  5. [C#][débutant] Probleme avec un case
    Par Le Basque dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/01/2005, 12h45

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