Pouvez-vous m'expliquer moi ce code svp ?

Pouvez-vous m'expliquer moi ce code svp ? - Delphi/Pascal - Programmation

Marsh Posté le 06-02-2003 à 01:06:37    

Voilà, mon prof m'a donné le code du tri par insertion, et il y a une chose que je comprends pas :

  • Pourquoi dans la 2ème boucle for, il commence de k:=2 et non k :=1 ?

Code :
  1. PROGRAM Ins_Lin;
  2. USES CRT;
  3. TYPE ATrier = BYTE;
  4. VAR N, k, i : BYTE;
  5.     Tmp     : ATrier;
  6.     A       : ARRAY[1..100] OF ATrier;
  7. PROCEDURE Affiche;
  8. VAR i : BYTE;
  9. BEGIN
  10. FOR i:=1 TO N DO
  11.   WRITE (A[i]:4);
  12. WRITELN
  13. END;
  14. BEGIN
  15. CLRSCR;
  16. N:=99; {nb d'élément ds mon tableau}
  17. RANDOMIZE;
  18. FOR k:=1 TO N DO    {remplissage du tableau}
  19.   A[k]:=RANDOM(50);
  20. WRITELN('Avant le tri:');
  21. Affiche;
  22. FOR k:=2 TO N DO
  23.   BEGIN
  24.   Tmp:=A[k];
  25.   i:=k-1;
  26.   WHILE NOT ((A[i]<=Tmp) OR (i=1)) DO
  27.     BEGIN
  28.     A[i+1]:=A[i];
  29.     DEC(i)
  30.     END;
  31.   IF A[1]>Tmp THEN BEGIN
  32.                    A[2]:=A[1];
  33.                    i:=0
  34.                    END;
  35.   A[i+1]:=Tmp;
  36.   END;
  37. WRITELN('Apr?s le tri:');
  38. Affiche
  39. END.

 
 
Merci beaucoup


Message édité par greeeg le 06-02-2003 à 01:07:39
Reply

Marsh Posté le 06-02-2003 à 01:06:37   

Reply

Marsh Posté le 06-02-2003 à 02:56:18    

va voir sur mon site web, tu auras la réponse :)


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 06-02-2003 à 09:12:29    

voyant tout les mots-clé en majuscule j'avais cru à de l'assembleur ou du cobol :lol: je suis pas habitué à voir du pascal écrit comme ça :sweat:

Reply

Marsh Posté le 06-02-2003 à 10:06:17    

greeeg a écrit :

Voilà, mon prof m'a donné le code du tri par insertion, et il y a une chose que je comprends pas :

  • Pourquoi dans la 2ème boucle for, il commence de k:=2 et non k :=1 ?

 
Merci beaucoup


 
Prof de quoi ? si C ds le supérieur en info change d'école...
 
il commence par k:=2 becose sont tableau commence à 1  :ouch:  et parce kil fait i := k-1 pour la comparaison (comme ça pour le test A[i] est bien un élément du tableau
 
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 06-02-2003 à 10:06:57    

os2 a écrit :

va voir sur mon site web, tu auras la réponse :)


ça C de la super réponse.... le forum est pas là pour promouvoir ton site web  :p


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 06-02-2003 à 10:15:06    

os2 a écrit :

va voir sur mon site web, tu auras la réponse :)


 
à part une image et une liste de nouveautés je vois que dalle sur ton site :??:

Reply

Marsh Posté le 06-02-2003 à 10:23:56    

-> antp : il y a un menu en haut...
t'as trop modéré cette nuit, tu as les yeux qui fatiguent :lol:

Reply

Marsh Posté le 06-02-2003 à 10:25:23    

ha ouais je croyais que seul le site de rufo marche dans IE uniquement, on dirait que c'est le cas aussi du site d'os2 :o
ça fait très pro tout ça :o
 
dans Opera y a pas de menu du tout :o


Message édité par antp le 06-02-2003 à 10:26:10
Reply

Marsh Posté le 06-02-2003 à 10:49:09    

-> antp : exact, Opéra n'en veut pas.
Encore un site développé avec frontpage...

Reply

Marsh Posté le 18-02-2003 à 17:37:58    

JPA a écrit :

-> antp : exact, Opéra n'en veut pas.
Encore un site développé avec frontpage...


lol

Reply

Marsh Posté le 18-02-2003 à 17:37:58   

Reply

Marsh Posté le 18-02-2003 à 17:39:57    


 
remonter un topic juste pour ça c'est un peu abusé :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 18-02-2003 à 17:45:32    

bon, personne n'a répondu du coup...
 
j'avoue que j'ai un peu la flemme aussi... alors, j'vais juste de donner les outils pour mieux comprendre l'algo : suis l'algo en donnant des valeurs à tes variables... (hem. smal dit tt ça... bon, c encore plus chiant à expliquer comment comprendre :)))) lol
 
bon, j'vais essayer :
FOR k:=1 TO N DO    {remplissage du tableau}  
 A[k]:=RANDOM(50);  
 
bon, apparement, ton tableau A est indexé de 1 à N (ok ?)
donc, si on essaye A[0] => ça correspond pas à une valeure que t'as inséré (ou ça plante (ArrayOutOfBound))
 
 
 
et là, regardes bien ce morceau :
 
FOR k:=2 TO N DO  
 BEGIN  
 Tmp:=A[k];  
 i:=k-1;
 WHILE NOT ((A[i]<=Tmp) OR (i=1)) DO  
   BEGIN  
   A[i+1]:=A[i];
   DEC(i)  
   END;  
 
 
 
bon... tjs pas vu ??!
 
alors :
i := k-1;
 
si tu commences ta boucle à 1 :
tu aurrais :
i := 1-1;
  soit i = 0 ^^
 
et donc ensuite, plus loin ds le code (en gras au dessus) :
 
A[i+1]:=A[i]; donnerais : A[1] := A[0] !!!!
 
On vient pas de dire que A[0] était une valeur incorrecte ?!
bah si... bah ouala. stout...
 
maintenant si c'est une explication de l'algo que tu veux... => demandes au prof, il est là pour ça :)
 
(belle explication pas concise et pas claire :)))
dsl. :p


Message édité par Moustaaki le 18-02-2003 à 17:46:10
Reply

Marsh Posté le 18-02-2003 à 17:46:35    

antp a écrit :


 
remonter un topic juste pour ça c'est un peu abusé :o


 
 
la réponse était un peu longue à poster :) dsl.

Reply

Marsh Posté le 18-02-2003 à 18:50:54    

ok t'es excusé :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed