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 :

Algorithmique autour les tableaux


Sujet :

Algorithmes et structures de données

  1. #21
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par sidahmed Voir le message
    Ou bien une colonne à n cases
    oui, si on veut

  2. #22
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    merci a vous tous;
    pardon sidahmed;l'indice i est initialisé a 1 d'apres ton algo.moi j'ai lu dans un cours quelque part que l'indice doit toujours commencer à 0?si oui pourquoi? sinon si on commence notre indice à 1 ça changera quoi au just?
    2eme chose ce nbelement c'est quoi?est ce que c'est le nombre d'élement de tableau?
    2 eme chose que j'ai pas compris c'est pourquoi dans le premier algo on a fait une inegalité et dans le 2EME une inegalité strict

  3. #23
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Bonsoir,
    Citation Envoyé par s-ehtp Voir le message
    merci a vous tous;
    pardon sidahmed;l'indice i est initialisé a 1 d'apres ton algo.moi j'ai lu dans un cours quelque part que l'indice doit toujours commencer à 0?si oui pourquoi? sinon si on commence notre indice à 1 ça changera quoi au just?
    Ce sont des conventions selon le langage :
    • C / C++ ==> indice de début est 0,
    • Pascal ==> indice de début est 1.

    En C / C++, un tableau à n éléments ==> t[0], t[1], ..., t[n - 1].
    Et en Pascal, un tableau à n éléments ==> t[1], t[2], ...,t[n], si je me rappelle bien : t[0] = n
    2eme chose ce nbelement c'est quoi?est ce que c'est le nombre d'élement de tableau?
    Exact

    Cordialement,
    Sidahmed.

  4. #24
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Août 2007
    Messages : 112
    Points : 88
    Points
    88
    Par défaut
    Envoyé par s-ehtp sinon si on commence notre indice à 1 ça changera quoi au just?
    tu commences par 1 ou 0 ya aucun probléme ( faut suivre ta declaration de tableau)
    la différence est :
    si tu parcours un tableau de 10 elements et que tu commence avec i:=0 le parcours s'arréte quand i:=9
    si tu commences avec i:=1 le parcours s'arréte quand i:=10

  5. #25
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Rebonsoir,
    Citation Envoyé par onlytime Voir le message
    tu commences par 1 ou 0 ya aucun probléme ( faut suivre ta declaration de tableau)
    la différence est :
    si tu parcours un tableau de 10 elements et que tu commence avec i:=0 le parcours s'arréte quand i:=9
    si tu commences avec i:=1 le parcours s'arréte quand i:=10
    tu répètes la même chose
    Citation Envoyé par sidahmed Voir le message
    En C / C++, un tableau à n éléments ==> t[0], t[1], ..., t[n - 1].
    Et en Pascal, un tableau à n éléments ==> t[1], t[2], ...,t[n], si je me rappelle bien : t[0] = n
    Cordialement,
    Sidahmed.

  6. #26
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par sidahmed Voir le message
    Bonsoir,

    Ce sont des conventions selon le langage :
    • C / C++ ==> indice de début est 0,
    • Pascal ==> indice de début est 1.



    Cordialement,
    Sidahmed.
    en pascal par exemple, on ne peut pas initialiser un compteur à 0?

    si!

  7. #27
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    et à propos des inegalités;ya dans le premier une inegalité et dans le 2eme une inegalité strict(je parle de l'lgo de sidahmed)tu peux m'expliquer pourquoi?

  8. #28
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Salut!

    Citation Envoyé par s-ehtp Voir le message
    et à propos des inegalités;ya dans le premier une inegalité et dans le 2eme une inegalité strict(je parle de l'lgo de sidahmed)tu peux m'expliquer pourquoi?
    tu peux souligner la partie du code ou tu as remarqué une inégalité?

  9. #29
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par sidahmed Voir le message
    Bonsoir,

    Insérer un élément à la ième place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    lire(nombre);
    lire(position);
    
    i := position;
    Tant que (i <= nbElement) faire
      t[i + 1] := t[i];
      i := i + 1;
    Fin Tant que
    t[position] := nombre;
    nbElement := nbElement + 1;
    Supprimer un élément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    lire(nombre);
    
    position := rechercheElement(nombre, t); 
    {position = 0 si nombre n'existe pas}
    Si (position > 0) alors
      i := position;
      Tant que (i < nbElement) faire
        t[i] := t[i + 1];
        i := i + 1;
      Fin Tant que
      nbElement := nbElement - 1;
    Finsi
    Je n'ai pas testé ces deux codes !

    Nota bene :
    1. L'indice de la première case est 1.
    2. Insertion ==> décalage à droite.
    3. Suppression ==> décalage à gauche.
    4. Insertion à la fin du tableau ne nécessite pas un décalage à droite.
    5. Suppression à la fin du tableau ne nécessite pas un décalage à gauche.
    6. Tu peux remplacer Tant que par la boucle Pour, c'est plus simple.
    7. Pour l'insertion, j'ai supposé que la taille du tableau est illimitée, dans le cas contraire il faut faire un test !

    Cordialement,
    Sidahmed.
    je veux en fait savoir la difference

  10. #30
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Bonsoir,
    Citation Envoyé par acacia Voir le message
    en pascal par exemple, on ne peut pas initialiser un compteur à 0?

    si!
    J'ai pas dit ça ! J'ai bien dit que c'est une convention et t[0] contient la taille du tableau, mais tu peux sans problème commencer à partir de l'indice 0

  11. #31
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    je veux savoir l'interpretation de ces 2 algo surtout celle que j'ai souligné en rouge

  12. #32
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Citation Envoyé par s-ehtp Voir le message
    je veux en fait savoir la difference
    C'est un bon signe ! Tu prouves que tu cherches vraiment à comprendre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tant que (i <= nbElement) faire
    C'est le cas de l'insertion, donc on va décaler à droite : on décale même le dernier élément t[nbElement] vers t[nbElement + 1], tu vois maintenant pourquoi <= et non pas <
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tant que (i < nbElement) faire
    C'est la suppression, donc un décalage à gauche, et par conséquent le dernier élément déplacé est bien t[nbElement] (t[i + 1]) vers t[nbElement - 1] (t[i]).

    J'espère que tu as compris maintenant !

  13. #33
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    t(nbelement+1) dans ce cas on depasse le nombre données des elements du tableau?
    et si ona un tableau rempli par 3 4 5 6 et on veut inserer 1 entre 4 et 5 decaler a droite ;on fait j'ai pas bien vu comment la faire?

  14. #34
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Citation Envoyé par s-ehtp Voir le message
    t(nbelement+1) dans ce cas on depasse le nombre données des elements du tableau?
    et si ona un tableau rempli par 3 4 5 6 et on veut inserer 1 entre 4 et 5 decaler a droite ;on fait j'ai pas bien vu comment la faire?
    Non, il faut déclarer un tableau suffisamment grand.

    Dans ton exemple, tu décales 5 et 6 à droite, ensuite tu insères à la place de 5

  15. #35
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    et si on veut supprimer le 4

  16. #36
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par s-ehtp Voir le message
    vous dites decaler ;decaler quoi au just?
    décaler les valeurs, on fait un décalage si on ne veut pas écraser la valeur déjà existante.

  17. #37
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par sidahmed Voir le message
    Non, il faut déclarer un tableau suffisamment grand.

    Dans ton exemple, tu décales 5 et 6 à droite, ensuite tu insères à la place de 5
    mais attendez t(nb Element)à t(nbelement+1) tu peux m'expliquer cela sur mon algo

  18. #38
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par s-ehtp Voir le message
    mais attendez t(nb Element)à t(nbelement+1) tu peux m'expliquer cela sur mon algo
    attention à la notation, c'est t[i] et non t(i).

    je rappelle, qu'on se déplace dans le vecteur avec un indice i, et c'est le cas dans l'algorithme donné par Sidahmed.

    on test l'indice "i" avec le nb element.

    il n'y a pas de t(nb Element) ni t(nbelement+1)

  19. #39
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Citation Envoyé par s-ehtp Voir le message
    et si on veut supprimer le 4
    Décaler à gauche les valeurs 5 et 6 !

  20. #40
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par sidahmed Voir le message
    Bonsoir,

    Insérer un élément à la ième place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    lire(nombre);
    lire(position);
    
    i := position;
    Tant que (i <= nbElement) faire
      t[i + 1] := t[i];
      i := i + 1;
    Fin Tant que
    t[position] := nombre;
    nbElement := nbElement + 1;
    Supprimer un élément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    lire(nombre);
    
    position := rechercheElement(nombre, t); 
    {position = 0 si nombre n'existe pas}
    Si (position > 0) alors
      i := position;
      Tant que (i < nbElement) faire
        t[i] := t[i + 1];
        i := i + 1;
      Fin Tant que
      nbElement := nbElement - 1;
    Finsi
    Je n'ai pas testé ces deux codes !

    Nota bene :
    1. L'indice de la première case est 1.
    2. Insertion ==> décalage à droite.
    3. Suppression ==> décalage à gauche.
    4. Insertion à la fin du tableau ne nécessite pas un décalage à droite.
    5. Suppression à la fin du tableau ne nécessite pas un décalage à gauche.
    6. Tu peux remplacer Tant que par la boucle Pour, c'est plus simple.
    7. Pour l'insertion, j'ai supposé que la taille du tableau est illimitée, dans le cas contraire il faut faire un test !

    Cordialement,
    Sidahmed.
    sur mon exemple 3456 et insertion de 1 entre 4 et 5 comment ça s'interprete?
    t[i+1]=t[i](c'est bien comme ça accia)
    pardonnez moi je sais que je suis lourde j'arrive pas a comprendre les choses rapidement

Discussions similaires

  1. Mais pourquoi ... Avec IE les tableaux sont décentrés ?
    Par nebule dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 26/11/2004, 10h04
  2. Article sur les tableaux dynamiques
    Par Eric Sigoillot dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2004, 22h00
  3. Réponses: 14
    Dernier message: 01/09/2003, 22h46
  4. Les tableaux en PL/SQL
    Par GRUMLY dans le forum PL/SQL
    Réponses: 5
    Dernier message: 12/08/2002, 18h10

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