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 :

Calculatrice sur des tableaux [Component Pascal]


Sujet :

Autres IDE Pascal

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Calculatrice sur des tableaux
    Bonjour à toutes et à tous,

    J'avais une question à propos de mon code. L'exercice étant de lire un symbole (donc +, -, *, ou /), selon ce symbole je dois éffectuer l'opperation suivante :
    mon tableau 1 sera additionné, soustrait.... par le tableau2 et donnera le résultat dans le tableau 3.

    Un de mes camarades à fait l'exercice de la manière suivant (donc son exercice fonctionne)

    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
    PROCEDURE Exercice2*;
    VAR
    tab1:TabEntier;
    tab2:TabEntier;
    tab3:TabEntier;
    symb:CHAR;
    indice,a:INTEGER;
     
    PROCEDURE LectureTableau ();(* Mes Lectures de mes tableaux *) 
    BEGIN (*LectureTableau*)
    FOR indice := 0 TO tailleTableau-1 DO
    In.Int(tab1[indice]); 	
    END;  
    FOR indice := 0 TO tailleTableau-1  DO
    In.Int(tab2[indice]); 
    END;
    END LectureTableau;
     
    PROCEDURE Affichage ();(* mes affichages de mes tableaux *) 
    BEGIN (*Affichage*)
    Out.String("a1= ");
    FOR indice := 0 TO tailleTableau-1 DO
    Out.Int(tab1[indice], 5); 
    END; Out.Ln; 
    Out.String("a2=");
    FOR indice := 0 TO tailleTableau-1  DO
    Out.Int(tab2[indice], 5); 
    END; Out.Ln; 
    Out.String("a3= ");
    END Affichage;
     
    PROCEDURE AddTab;	(* a3:=a1 + a2 *)
    BEGIN (*AddTab*)
    LectureTableau;
    Affichage;
    FOR indice := 0 TO tailleTableau-1  DO
    tab3[indice]:=tab1[indice]+tab2[indice];
    Out.Int(tab3[indice], 5); 
    END;
    END AddTab;
     
    PROCEDURE SubTab;	(* a3:=a1 - a2 *)
    BEGIN (*SubTab*)
    LectureTableau;
    Affichage;
    FOR indice := 0 TO tailleTableau-1  DO
    tab3[indice]:=tab1[indice]-tab2[indice];
    Out.Int(tab3[indice], 5); 
    END;
    END SubTab;
     
    PROCEDURE MulTab;	(* a3:=a1 * a2 *)
    BEGIN (*MulTab*)
    LectureTableau;
    Affichage;
    FOR indice := 0 TO tailleTableau-1  DO
    tab3[indice]:=tab1[indice]* tab2[indice];
    Out.Int(tab3[indice], 5); 
    END;
    END MulTab;
     
    PROCEDURE DivTab;	(* a3:=a1 DIV a2 *)
    BEGIN (*DivTab*)
    LectureTableau;
    Affichage;
    FOR indice := 0 TO tailleTableau-1  DO
    IF tab2[indice]=0 THEN Out.Ln; 
    Out.String("divison par zéro"); 
    ELSE
    tab3[indice]:=tab1[indice]DIV tab2[indice];
    Out.Int(tab3[indice], 5); 
     END;
    END;
    END DivTab;
     
    PROCEDURE Trap ();
    VAR
    verif:BOOLEAN ;	
    BEGIN (*Trap*)
    In.Char(symb);  
    CASE symb OF
    "+": AddTab; verif:=TRUE|
    "-": SubTab;verif:=TRUE|
    "*": MulTab;verif:=TRUE|
    "/": DivTab;verif:=TRUE|
    ELSE
    Out.String("cette opération n'est pas définie"); verif:=FALSE;
    END;
    END Trap;
     
    BEGIN (* Exercice2 *)
    In.Open; Out.Open; 
    StdLog.Clear;
    Trap();
    END Exercice2;
    Donc comme je vous l'ai dis son code fonctionne parfaitement. J'ai moi même essayé de faire l'exercice, mais malheureusement je n'arrive pas à comprendre pourquoi le mien est faux... Voilà mon code :

    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
    PROCEDURE Exercice2*;
    VAR
    tab1, tab2, tab3:TabEntier;
    symb:CHAR;
    indice:INTEGER;
     
    PROCEDURE LectureTab ();
    BEGIN (*LectureTab*)
    FOR indice := 0 TO LEN (tab1)-1 DO
    In.Int(tab1[indice]); 	
    END;  
    FOR indice := 0 TO LEN (tab2)-1  DO
    In.Int(tab2[indice]); 
    END;
    END LectureTab;
     
    PROCEDURE Affichage ();
    BEGIN (*Affichage*)
    Out.String("a1= ");
    FOR indice := 0 TO LEN (tab1)-1 DO
    Out.Int(tab1[indice], 5); 
    END;
    Out.Ln; 
    Out.String("a2=");
    FOR indice := 0 TO LEN (tab2)-1  DO
    Out.Int(tab2[indice], 5); 
    END;
    Out.Ln; 
    Out.String("a3= ");
    END Affichage;
     
    PROCEDURE AddTab;	(* a3:=a1 + a2 *)
    BEGIN (*AddTab*)
    FOR indice := 0 TO LEN (tab1)-1  DO
    tab3[indice]:=tab1[indice]+tab2[indice];
    Out.Int(tab3[indice], 5); 
    END;
    END AddTab;
     
    PROCEDURE SubTab;	(* a3:=a1 - a2 *)
    BEGIN (*SubTab*)
    FOR indice := 0 TO LEN (tab1)-1  DO
    tab3[indice]:=tab1[indice]-tab2[indice];
    Out.Int(tab3[indice], 5); 
    END;
    END SubTab;
     
    PROCEDURE MulTab;	(* a3:=a1 * a2 *)
    BEGIN (*MulTab*)
    FOR indice := 0 TO LEN (tab1)-1  DO
    tab3[indice]:=tab1[indice]* tab2[indice];
    Out.Int(tab3[indice], 5); 
    END;
    END MulTab;
     
    PROCEDURE DivTab;	(* a3:=a1 DIV a2 *)
    BEGIN (*DivTab*)
    FOR indice := 0 TO LEN (tab1)-1  DO
    IF tab2[indice]=0 THEN
    Out.Ln; 
    Out.String("divison par zéro"); 
    ELSE
    tab3[indice]:=tab1[indice]DIV tab2[indice];
    Out.Int(tab3[indice], 5); 
    END;
    END;
    END DivTab;
     
    PROCEDURE Trap ();
    BEGIN (*Trap*)
    In.Char(symb);  
    CASE symb OF
    "+": AddTab; |
    "-": SubTab; |
    "*": MulTab; |
    "/": DivTab; |
    ELSE
    Out.String("cette opération n'est pas définie");
    END;
    END Trap;
     
     
    BEGIN (* Exercice2 *)
    In.Open; Out.Open; StdLog.Clear;
    LectureTab();
    Affichage();
    Trap();
    END Exercice2;
    Donc si vous pouviez m'expliquer ou est ma faute sa serait bien gentil ^^ et désolé pour tout ce code ^^

    Merci d'avance

    [EDIT] Désolé pour l'indentation, j'ai essayé de la faire mais sa fonctionne pas

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    C'est bon j'ai trouvé mon erreur, il me suffisait de lire mon symbole au tout début, et non à la fin.

    Par contre si je pouvais vous demander de bien vouloir regarder mon code (donc le deuxième) et de me critiquer un peu dessus, histoire de savoir si je peux faire plus simplement sa serait sympa. Merci d'avance ^^

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

Discussions similaires

  1. [POO] Erreur sur des tableaux en POO
    Par Xavier44214 dans le forum Langage
    Réponses: 4
    Dernier message: 06/06/2007, 16h26
  2. permutations/combinaisons sur des tableaux dynamiques
    Par pEAk230 dans le forum Langage
    Réponses: 5
    Dernier message: 19/04/2006, 13h18
  3. [Eval] Problème de boucle for sur des tableaux
    Par battle_benny dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/01/2006, 23h55
  4. Réponses: 2
    Dernier message: 19/08/2003, 18h04
  5. free sur des tableaux "a moitié dynamiques"
    Par barthelv dans le forum C
    Réponses: 4
    Dernier message: 31/07/2003, 15h30

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