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

C Discussion :

Traduction en langage algorithmique


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    programmation
    Inscrit en
    Mai 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2016
    Messages : 13
    Points : 3
    Points
    3
    Par défaut Traduction en langage algorithmique
    bonsoir! j'ai besoin d'aide svp! je voudrai traduire un programme en langage algorithme afin de le retranscrire dans un autre langage. ce dernier etant ecrit en c et je debute à peine avec
    donc voici le programme:

    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
    128
    129
    130
    131
    132
    #include <stdio.h>
    #define NB_LIG 3
    #define NB_COL 3
     
    typedef enum {VIDE, ROND, CROIX} ValeurGrille;
    typedef enum {FALSE, TRUE} Boolean;
    static ValeurGrille grille[NB_LIG][NB_COL]; 
     
    static int prochainJoueur = ROND;
     
    void initialiseGrille() {
      int i, j;
      for (i=0; i<NB_LIG; i++) {
        for (j=0; j<NB_COL; j++) {
          grille[i][j] = VIDE;
        }
      }
    }
     
    /*
      Affiche la grille du morpion
      _ indique case vide, O pion joueur 1 et X pion jour 2
     */
    void afficheGrille() {
      int i, j;
      for (i=0; i<NB_LIG; i++) {
        for (j=0; j<NB_COL; j++) {
          switch (grille[i][j]) {
          case VIDE:
        printf("_ ");
        break;
          case ROND:
        printf("O ");
        break;
          case CROIX:
        printf("X ");
        break;
          }
        }
        printf("\n"); /* fin de la ligne */
      }
    }
     
    void metUnPionSurLaGrille() {
      int ligne, col;
      Boolean saisieCorrecte = FALSE;
     
      printf("Numeros de ligne et de colonne: ");
     
      do {
        scanf("%d %d", &ligne, &col);
        printf("\n");
     
        if ((ligne > 0) && (ligne <= NB_LIG) && (col > 0) && (col <= NB_COL)) {
          ligne--; /* enleve 1 pour etre compatible avec le tableau ayant des
              indices de 0 a NB_LIG-1 */
          col--;
          if (grille[ligne][col] != VIDE)
        printf("Cette case a deja ete remplie. Veuillez recommencer: \n");
          else {
        saisieCorrecte = TRUE;
        grille[ligne][col] = (ValeurGrille)prochainJoueur;
        if (prochainJoueur == ROND)
          prochainJoueur = CROIX;
        else
          prochainJoueur = ROND;
          }
        } else
          printf("Indice de ligne ou de colonne incorrect. Veuillez recommencer:\n");
      } while (!saisieCorrecte);
    }
     
    Boolean testeFinJeu() {
      int i,j;
      int joueurGagnant; /* pour connaitre quel est le gagnant ie soit CROIX soit ROND */
      Boolean estFini = FALSE;
      if (grille[1][1] != VIDE) {
        if (/* colonne 1 */ ((grille[0][1] == grille[1][1]) && (grille[1][1] == grille[2][1])) ||
        /* ligne 1 */ ((grille[1][0] == grille[1][1]) && (grille[1][1] == grille[1][2])) ||
        /* diagonale */ ((grille[0][0] == grille[1][1]) && (grille[1][1] == grille[2][2])) ||
        /* autre diag */ ((grille[0][2] == grille[1][1]) && (grille[1][1] == grille[2][0]))) {
          joueurGagnant = grille[1][1]; /* ie ROND ou CROIX */
          estFini = TRUE;
        }
      }
     
         si la case 0,0 est vide, cela signifie que la ligne 0 et le colonne 0 ne sont pas gagnantes */
      if ((!estFini) && (grille[0][0] != VIDE)) {
        if ( /* ligne 0 */ ((grille[0][0] == grille[0][1]) && (grille[0][1] == grille[0][2])) ||
         /* colonne 0*/ ((grille[0][0] == grille[1][0]) && (grille[1][0] == grille[2][0]))) {
          joueurGagnant = grille[0][0];
          estFini = TRUE;
        }
      }
     
      if ((!estFini) && (grille[2][2] != VIDE)) {
        if ( /* ligne 2 */ ((grille[2][0] == grille[2][1]) && (grille[2][1] == grille[2][2])) ||
         /* colonne 2 */ ((grille[0][2] == grille[1][2]) && (grille[1][2] == grille[2][2]))) {
          joueurGagnant = grille[2][2];
          estFini = TRUE;
        }
      }
     
      if (estFini) {
        printf("Felicitations au joueur ayant les ");
        if (joueurGagnant == ROND)
          printf("ronds ");
        else
          printf("croix ");
        printf("qui a gagne.\n");
        return TRUE;
      }
     
      /* teste si la grille n'est pas pleine */
      for (i=0; i<NB_LIG; i++) {
        for (j=0; j<NB_COL; j++) {
          if (grille[i][j] == VIDE) /* Au moins une case est vide donc le jeu n'est pas fini */
        return FALSE;
        }
      }
      return TRUE;
     
    }
     
    int main() {
      initialiseGrille();
      do {
        metUnPionSurLaGrille();
        afficheGrille();
      }while(!testeFinJeu());
      return 1;
    }

  2. #2
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Peux-tu :
    • insérer ton code entre des balises [code] ;
    • nous montrer ce que tu as essayé jusqu'à présent ?

  3. #3
    Candidat au Club
    Homme Profil pro
    programmation
    Inscrit en
    Mai 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2016
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    ce que je voudrai c'est que de ce programme on puisse réecrire l'algorithme en pseudo code
    Fichiers attachés Fichiers attachés

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 149
    Points : 28 116
    Points
    28 116
    Par défaut
    Bonjour,

    Il n'existe pas de définition du pseudo-code, c'est juste un moyen d'écrire tout en s'abstrayant de contraintes liées à un langage.

    Je peux écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Pour i allant de 1 à 42
      faire tab[i] = i
    fin du Pour
    i = 0
    ...
    C'est pas mieux ni pire que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Pour i=1 jusqu'à i=42
      assigner i à tableau[i]
     
    remettre i à 0
    ...
    Dans le cas où tu as du code, tu as plus d'informations qu'en pseudo-code, donc je ne vois pas ce qui t'empêche de le traduire dans un autre langage -- néanmoins, dans le cas d'un langage très différent, une ré-écriture de l'algo est à envisager.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Candidat au Club
    Homme Profil pro
    programmation
    Inscrit en
    Mai 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2016
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    bonjour! merci pour la precision! en effet il me semble que c'est facile de faire cela (passer d'un langage à un autre!) mais le pb c'est que je ne maitrise pas trop le c du coup je suis obligé de reeécrire dab le code c en pseudo code afin de le traduire dans un autre langage

  6. #6
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    On va faire plus simple : quel est le langage cible ? Quels sont précisément les constructions du langage que tu ne parviens pas à traduire dans ce programme ?

    Le mieux reste de prendre un peu de temps pour apprendre la syntaxe, le C n'est vraiment pas bien compliqué. Et connaître ce langage me semble un pré-requis pour toute carrière professionnelle de programmeur, même si on n'est pas amené à en faire par la suite.

  7. #7
    Candidat au Club
    Homme Profil pro
    programmation
    Inscrit en
    Mai 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2016
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    bonjour! le langage cible est le pascal

  8. #8
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Cela fait un petit moment (a.k.a. presque une quinzaine d'années) que je n'ai pas écrit de Pascal mais il me semble que les syntaxes des deux langages sont très proches, nonobstant la différence d'indexation des tableaux. Qu'est-ce qui te bloque ?

  9. #9
    Candidat au Club
    Homme Profil pro
    programmation
    Inscrit en
    Mai 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2016
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    c'est l'instruction switch je ne sais pas comment le reecrire en langage algorithmique! en fait je m'embrouille

  10. #10
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    switch est une manière concise de spécifier la même logique qu'un bloc de if-else imbriqués.

  11. #11
    Candidat au Club
    Homme Profil pro
    programmation
    Inscrit en
    Mai 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2016
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    bonjour! pouvez vous m'ilustrer cela avec un exemple

  12. #12
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Moi non, mais n'importe quel moteur de recherche digne de ce nom s'y obligera.

    Fais preuve d'un peu d'autonomie !

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

Discussions similaires

  1. l'opérateur This(langage algorithmique)
    Par miltone dans le forum Débuter
    Réponses: 6
    Dernier message: 23/07/2009, 14h25
  2. Outils de traduction des langages
    Par legide dans le forum Langages de programmation
    Réponses: 21
    Dernier message: 17/04/2009, 19h17
  3. langage algorithmique et base de données
    Par harf18 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 31/03/2009, 15h37
  4. Dictionnaire de traduction entre langages
    Par mtaveau dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 01/05/2007, 00h17
  5. [VB6]traduire vb6 en langage algorithmique
    Par chagala dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 04/06/2006, 15h20

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