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 :

exercice en algorithme


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut exercice en algorithme
    salut,je suis etudiante en informatique en 1 er annee donc je suis debutante et j'ai recontré quelque difficultés à mes etudes c'est pour cela je vous demande l'aide et merci

    -soit un matrice de N lignes et M colonnes de type caracteres
    --ecrire l'algorithme qui met des etoiles (*) dans le contour de cette matrice

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    oui et ?

    montre nous ce que tu as fait..

    Ici on ne fait pas les exercices à ta place...

    (sinon c'est plus des exercices )
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  3. #3
    Membre éprouvé Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Points : 961
    Points
    961
    Par défaut
    Comme le disait toujours mon prof de physique:
    Comprendre la question c'est avoir la moitié de la réponse
    Bon alors en entrée qu'est ce qu'on a?
    Une matrice N lignes M colonnes de caractères.

    Et en sortie?
    La même matrice,mais en mettant le caractère '*' sur les bords de cette matrice.

    Donc en gros si la matrice en entrée et la suivante :

    1 1 0 1
    1 0 1 1
    0 0 1 1


    Vous devriez avoir en sortie :

    * * * *
    * 0 1 *
    * * * *

    Sauf biensur si les '*' doivent envelopper la matrice afin de ne perdre aucune valeur (Dans ce cas les dimensions de la matrice vont changer)


    Maintenant je pense que vous avez la moitié de la réponse
    Bon courage
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste!!»

  4. #4
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    voici mon essai
    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
     algorithme_contour
      debut
          const_n=10;
                   m=10;
     
         type_T:tableau[1..n,1..m]de caractere;
     
         var_T:tab;
               I,J:entier;
     
         I=1;
          tantque_I<=n_faire
             debut
                 J=1;
                   tantque_J<=m_faire
                     debut
                        lire(T[I,J]);
                        J=J+1;
                      fin
                   fin
                I=I+1;
           fin
        fin
     
     
             I=1;
             si_I=1 et I=n_ alors
              debut
                J=1;
                  tantque_J<=m_faire
                     debut
                        T[I,J]=*;
                        J=J+1;
                      fin
                   fin
                        I=I+1;
                   fin
                     J=1; 
                sinon
                 debut
                     si_J=1 et J=m_alors
                      debut
                         I=1;
                           tantque_I<=n_faire
                             debut
                                T[I,J]=*;
                                 I=I+1;
                              fin
                            fin
     
                            J=J+1;
                        fin
                        finsi
                      fin
                    finsi
     
     
     
              pour_I_depuis_1_jusqu'a_n_faire
                debut
                   pour_J_depuis_1_jusqu'a_m_faire
                     debut
                         ecrire(T[I,J]);
                     fin
                   fin
                 fin
               fin
             fin
    quesque vous proposez?

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    je propose que tu places ton code entre les balises [QUOTE] ou [CODE] et que tu l'indente correctement, parce que là c'est illisible .



    Sinon :
    • Utilise plutôt des boucles for dans ce cas là, c'est plus lisible.
    • Les condition ne sont pas (I=1 et I=n), c'est un ou qu'il faut utiliser. En effet, l'indice I ne peut valoir 1 et N simultanément, à moins d'avoir une matrice avec une seule ligne.
    • De même pour J.
    • Sinon ça a l'air correcte.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #6
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    sincerement j'ai pas compris ou se trouve mes erreurs

    Citation Envoyé par ToTo13 Voir le message
    Bonjour,

    je propose que tu places ton code entre les balises [ QUOTE ] ou [ CODE ] et que tu l'indente correctement, parce que là c'est illisible .



    Sinon :
    • Utilise plutôt des boucles for dans ce cas là, c'est plus lisible.
    • Les condition ne sont pas (I=1 et I=n), c'est un ou qu'il faut utiliser. En effet, l'indice I ne peut valoir 1 et N simultanément, à moins d'avoir une matrice avec une seule ligne.
    • De même pour J.
    • Sinon ça a l'air correcte.
    donc quand je corrige l'indice mon algorithme sera correcte?

  7. #7
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    tu marques : si I=1 et I=N.
    Comment cela est il possible ?
    Comment une même variable peut elle avoir deux valeurs différentes simultanément ?

    Si tu ne saisis pas ce que je viens d'expliquer, fais donc tourner manuellement ton algorithme sur une matrice 3x3 et tu comprendras le problème.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  8. #8
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Bonjour,

    tu marques : si I=1 et I=N.
    Comment cela est il possible ?
    Comment une même variable peut elle avoir deux valeurs différentes simultanément ?

    Si tu ne saisis pas ce que je viens d'expliquer, fais donc tourner manuellement ton algorithme sur une matrice 3x3 et tu comprendras le problème.

    donc je remplacerais (et) par (ou) alors maitenant mon algorithme sera correcte
    merci pour l'aide

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    ça devrais marcher ...
    mais comme l'a deja dit toto13 : tu devrais plutot utiliser des boucles 'pour' et non pas des boucles 'tantque' ...

    ça serait beaucoup plus simple ^^'

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par robi987 Voir le message
    donc je remplacerais (et) par (ou) alors maitenant mon algorithme sera correcte
    merci pour l'aide
    Ouais... enfin il faudrait être plus précise.

    Si N et M sont le nombre de lignes et de colonnes de la matrice "utile" (contenant les valeurs), cf. le post de b_reda31, alors tu dois gérer un tableau de taille (N+2, M+2). Ainsi, tu pourra mettre des étoiles dans les lignes 1 et N+2, et les colonnes 1 et M+2. Et comme ça, tu n'aura plus à coder ce "ou"...

    La partie "lecture" devrait alimenter les lignes 2 à N+1 et 2 à M+1.

    Dans ton algo, tu écrases la 1ère et la dernière ligne / colonne : pourquoi lire une valeur pour l'écraser ensuite par une étoile ?

    Bon courage

Discussions similaires

  1. Exercice d'algorithme en VB
    Par m.lor dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 15/02/2010, 13h22
  2. [TP] Demande de résolution d'un exercice en algorithme
    Par zogrom dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 14/03/2006, 23h25

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