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

Algorithmes et structures de données Discussion :

Correction


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Par défaut Correction
    Procedure Contact(pA:chaine, pB:chaine, pC: chaine)
    debut
    pA<---pA+'NON'
    pB<---pB+'ON'
    pC<---'RA'+pA
    Fin
    1.Quels sont les affichage réalisés par les morceaux de programme suivant :
    A<---'ST' ...............................A<---'T'
    B<---'M' .............................. B<---'ST'
    C<---'DA' ..............................C<---'CA'
    Appeler Contact (A,B,C)........... Appeler contact(A,B,C)
    Afficher (A,B,C)...................... Afficher (A+B+C)
    Reponse
    afiiche(A,B,C) : STNON MON RASTNON
    affiche (A+B+C): TNONSTONRATNONCA

    Exercice 2
    décrire l'exécution de ce programme, instruction par instruction. on donnera simultanément l'évolution du contenu des variables utilisées. on précisera aussi la déclaration de la fonction et de la procédure:
    Code :
    Programme Test
    Var
    x,y : entier
    debut
    x<---MaFonction(6,5)
    /* MaFonction renvoie le résultat du produit du premier paramètre par le 2eme */

    y<---7
    Appeler MaProcédure(x,y,10)
    /* MaProcedure multiplie les deux premiers paramètres par le 3eme */

    Ecrire (x+y)
    Fin

    Reponse
    rogramme Test */* exécuter "Programme Test" --> on ne fait rien
    Var */ exécuter "Var" --> on ne fait rien
    x,y : entier */ exécuter "x,y : entier" --> on crée 2 variables en mémoire, initialisé à zero
    debut */ exécuter "début" --> on ne fait rien
    x<---MaFonction(6,5)
    /* MaFonction renvoie le résultat du produit du premier paramètre par le 2eme */

    y<---7 */ on affecte la variable 'y' par la valeur 7
    Appeler MaProcédure(x,y,10)*/ on appele la procedure 'MaProcedure'
    /* MaProcedure multiplie les deux premiers paramètres par le 3eme */

    Ecrire (x+y) */ on affiche la somme de (y+x)

    que pensez vous ?

  2. #2
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Bonsoir,

    Utilises les balises codes aussi bien pour l'algo (que tu indenteras) que pour justifier un paragraphe : c'est pas compliqué à faire et ça donne envie de répondre.

    Donc,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Procedure Contact(pA:chaine, pB:chaine, pC: chaine)
    debut
      pA<---pA+'NON'
      pB<---pB+'ON'
      pC<---'RA'+pA
    Fin
    1.Quels sont les affichage réalisés par les morceaux de programme suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    1. A<---'ST'                    A<---'T' 
    2. B<---'M'                     B<---'ST' 
    3. C<---'DA'                    C<---'CA' 
    4. Appeler Contact (A,B,C)      Appeler contact(A,B,C)
    5. Afficher (A,B,C)             Afficher (A+B+C)
    Pour résoudre ce genre de problèmes tu fais un tableau en avançant pas à pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    A          B          C          étape
    ST                               A<--'ST'
    ST         M                     B<--'M'
    ST         M          DA         C<--'DA'
                                     Appeler Contact(A,B,C) en paramètre ça donne pA=A pB=B pC=c
    STNON      M          DA         pA<--pA+'NON'
    STNON      MON        DA         pB<--pB+'ON'
    STNON      MON        RASTNON    pC='RA'+pA
    Afficher(A,B,C) donnera donc : STNON MON RASTNON -> bonne réponse. Essaye de faire la même chose sur la deuxième partie pour repérer ton erreur.

    Quant à la fin je ne vois pas ce que tu as fait à part recopier l'énoncé. Essaye de refaire un tableau similaire en donnant les valeurs de x et y au fur et à mesure.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Par défaut
    pA<---pA+'NON'
    pB<---pB+'ON'
    pC<---'RA'+pA
    A B C
    'T' 'ST' 'CA'

    Appeler Contact (C,A,B)
    Afficher (A+B+C)
    voila j'ai fait le tableau mais je vois pas vraiment ce qu'il faut faire la je suis perdu

  4. #4
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    En fait il faut juste faire ce qui est demandé :

    Dans ton tableau tu as 3 colonnes A,B et C
    Quand tu rencontres la lignes A<--'T' tu écris T dans la colonne A, la ligne suivante tu dois faire B<--'ST' = tu écris ST dans la colonne B, ainsi de suite.
    Quand tu te trouves face à un appel de fonction, tu dois juste faire attention à quoi correspondent les paramètres, un peu comme dans f(x)=x+1, x=3 donc f(x)=f(3)=3+1=4.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Par défaut
    Justement j'arrive pas à savoir à quoi correspondent les paramètres,

  6. #6
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    OK on va prendre un exemple simplifié.
    Prenons l'algo suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Procédure Ajouter(x:entier, y:entier)
    Début
      x <-- x + y
    Fin.
    Une procédure hypersimple, tu lui donnes deux paramètres nommés x et y et dans x tu mets la somme de x et y.
    Par exemple si tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    a=10
    b=20
    c=30
    d=40
    alors après Ajouter(a,b) a vaudra l'ancienne valeur de a plus b et b restera inchangé, i.e. a=30 et b=20.

    Dans un tableau ça donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a     b     x     y     étape
    10    20    -     -     a<--10;b<--20
    10    20    10    20    Ajouter(a,b) {on commence par "copier a dans x et b dans y}
    10    20    30    20    on exécute x<--x+y {on calcule x+y valeur de la ligne précédente, on change la valeur de x sur cette ligne}
    30    20    -     -     on "recopie x dans a et y dans b" à la fin de l'appel
    Essaye de faire un TABLEAU avec l'appel à ta procédure Contact, dans ma première réponse tu trouveras dans mon tableau des couleurs qui t'indiquent ce qui change et pourquoi ...

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Par défaut
    Voila le résultat :
    TONRASTCANON

Discussions similaires

  1. Faites des messages corrects !!!
    Par Alacazam dans le forum C++
    Réponses: 6
    Dernier message: 23/03/2006, 15h56
  2. savoir si outlook s'est fermé correctement
    Par iubito dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 07/11/2003, 08h41
  3. [IB71] mon Blob ne marche pas correctement
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 2
    Dernier message: 17/09/2003, 14h03

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