cs_djawahir
Messages postés2Date d'inscriptionvendredi 17 février 2012StatutMembreDernière intervention17 février 2012 17 févr. 2012 à 20:58
bien sur celle qui concerne l'algorithme de djikstra
cs_djawahir
Messages postés2Date d'inscriptionvendredi 17 février 2012StatutMembreDernière intervention17 février 2012 17 févr. 2012 à 20:57
je veut demander à monsieur sami de me dire comment il a fait la form de ce projet , sltpl j'aimerais bien que vous me répondre le plus top possible.
offlake
Messages postés190Date d'inscriptionmercredi 3 septembre 2008StatutMembreDernière intervention17 janvier 2009 16 déc. 2008 à 11:14
bon les pointeurs c pour un développeur avancé car sa pose trop de dégât pour un programmeur débutant c ta dire au niveau de l'allocation et de libération
donc mieux qu'on utilise l'allocation statique que l'allocation dynamique même que sa pose un problème de gaspillage mais bon Mieux que rien!!
BY OFFLAKE
John Dogget
Messages postés384Date d'inscriptionvendredi 18 juin 2004StatutMembreDernière intervention 7 mai 2009 15 déc. 2008 à 18:19
Ben je nie pas leurs efficacité (aux pointeurs) ...
C'est juste que ça me donne des boutons ces trucs là.
Parce que bon, récuperer une fuite mémoire à tataouine sur un pointeur, faut dire que c'est quand même extremement casse bonbond :D
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 15 déc. 2008 à 18:03
Boh ? Il y a même pas de "Pointer".
Pas forcément très inspiré mon exemple... En plus, le code plus long est plus lent pour copier de petites zones mémoire.
Autre exemple concret : les algos de tri. Un tri à bulle fait quelques dizaines de lignes... Un quicksort, plus rapide à l'exécution, est nettement plus long à codé... Encore plus si on le dérecursifie pour gagner encore plus.
John Dogget
Messages postés384Date d'inscriptionvendredi 18 juin 2004StatutMembreDernière intervention 7 mai 2009 15 déc. 2008 à 17:45
Pouark !!
Des pointeurs +_+
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 15 déc. 2008 à 14:51
Un exemple de code plus long mais plus rapide. Copy_Memory recopie les octets un par un de la source vers la destination. C'est le code le plus simple. Copy_MemoryEx recopie par paquets de 4 octets autant que possible, sachant que c'est la taille avec laquelle les processeurs actuels sont les plus à l'aise.
Par curiosité, on peut aller voir la fonction Move (Appelée par CopyMemory) proposée par Delphi. Elle utilise le même algo que Copy_MemoryEx (4 octets d'abord, puis octets par octets pour finir). Par contre, rédigée en assembleur, elle est plus dense et probablement nettement plus rapide.
type PTByteArray = ^TByteArray;
type TCardinalArray = array[0..High(Word) div SizeOf(Cardinal)] of Cardinal;
type PTCardinalArray = ^TCardinalArray;
implementation
{$R *.dfm}
procedure Copy_Memory(const lpDest: PTByteArray; const lpSrc: PTByteArray; const nSize: Cardinal);
var
nI: Integer;
begin
for nI:= 0 to nSize - 1 do
lpDest[nI]:= lpSrc[nI];
end;
for nI:= 0 to nSize div 4 - 1 do
lpDestCard[nI]:= lpSrcCard[nI];
nFirstCopyEnd:= (nSize div 4) * 4;
for nI:= nFirstCopyEnd to nFirstCopyEnd + nSize mod 4 - 1 do
lpDest[nI]:= lpSrc[nI];
end;
procedure TForm1.Button1Click(Sender: TObject);
var
lpSrc: String;
lpDest: array [0..MAX_PATH] of char;
nSize: Integer;
begin
lpSrc:= '123';
Copy_MemoryEx(PTByteArray(@lpDest), PTByteArray(lpSrc), length(lpSrc) + 1);
ShowMessage(lpDest);
end;
cs_exar
Messages postés286Date d'inscriptionvendredi 5 décembre 2003StatutMembreDernière intervention22 avril 20121 13 déc. 2008 à 07:35
OK ! Je ne l'avais pas compris ainsi. Mais je ne suis pas non plus convaincu que l'optimalité d'un programme tienne dans le nombre de lignes de ses sources... De prime abord, je n'ai pas d'exemple à soumettre, mais je vais y réfléchir...
Bon week-end !
offlake
Messages postés190Date d'inscriptionmercredi 3 septembre 2008StatutMembreDernière intervention17 janvier 2009 13 déc. 2008 à 07:25
Un code plus Optimale c'est un code qui réalise le maximum de chose avec le minimum de ligne source
Je c que le compilateur ne tien pas compte des commentaires Né au moin un code source plus optimale remplace les commentaires!!
BY OFFLAKE
cs_exar
Messages postés286Date d'inscriptionvendredi 5 décembre 2003StatutMembreDernière intervention22 avril 20121 12 déc. 2008 à 18:24
Un code plus optimal parce qu'il n'y a pas de commentaires ??? Mais le compilateur n'en tient pas du tout compte...
offlake
Messages postés190Date d'inscriptionmercredi 3 septembre 2008StatutMembreDernière intervention17 janvier 2009 10 déc. 2008 à 07:06
Pour John Dogget
Pour les commentaires je pense que tu sais qu'est ce qu'un Canvas...etc
DOnc le code est plus Optimal que possible et je pense qu'il est plus comprehensible que les autres Codes
Oui Ta raison!!
Pour les prochaine Source je tient en compte les commentaires
Merci John Dogget
BY OFFLAKE
offlake
Messages postés190Date d'inscriptionmercredi 3 septembre 2008StatutMembreDernière intervention17 janvier 2009 10 déc. 2008 à 07:03
Pour NICOLAS____
Pour le nommage des composants Oui ta raison je nome pas tjrs et je sais que c'est une mauvaise habitude ok!!
Pour la prochaine Source j'essay d'être plus réaliste
BY OFFLAKE
John Dogget
Messages postés384Date d'inscriptionvendredi 18 juin 2004StatutMembreDernière intervention 7 mai 2009 9 déc. 2008 à 21:48
Tu pourrais aussi commenter ton code parce que franchement c'est pas évident ...
Par contre, t'oublie pas de nous coller un à propos de 3m².
C'est comme d'hab avec tes sources en fait.
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 9 déc. 2008 à 18:03
j'ai pas encore regardé vraiment le code Mais après 8 sources sur DelphiFr tu ne nome toujours pas tes composants et tu ne sais toujours pas faire un zip valide !
17 févr. 2012 à 20:58
17 févr. 2012 à 20:57
16 déc. 2008 à 11:14
donc mieux qu'on utilise l'allocation statique que l'allocation dynamique même que sa pose un problème de gaspillage mais bon Mieux que rien!!
BY OFFLAKE
15 déc. 2008 à 18:19
C'est juste que ça me donne des boutons ces trucs là.
Parce que bon, récuperer une fuite mémoire à tataouine sur un pointeur, faut dire que c'est quand même extremement casse bonbond :D
15 déc. 2008 à 18:03
Pas forcément très inspiré mon exemple... En plus, le code plus long est plus lent pour copier de petites zones mémoire.
Autre exemple concret : les algos de tri. Un tri à bulle fait quelques dizaines de lignes... Un quicksort, plus rapide à l'exécution, est nettement plus long à codé... Encore plus si on le dérecursifie pour gagner encore plus.
15 déc. 2008 à 17:45
Des pointeurs +_+
15 déc. 2008 à 14:51
Par curiosité, on peut aller voir la fonction Move (Appelée par CopyMemory) proposée par Delphi. Elle utilise le même algo que Copy_MemoryEx (4 octets d'abord, puis octets par octets pour finir). Par contre, rédigée en assembleur, elle est plus dense et probablement nettement plus rapide.
type PTByteArray = ^TByteArray;
type TCardinalArray = array[0..High(Word) div SizeOf(Cardinal)] of Cardinal;
type PTCardinalArray = ^TCardinalArray;
implementation
{$R *.dfm}
procedure Copy_Memory(const lpDest: PTByteArray; const lpSrc: PTByteArray; const nSize: Cardinal);
var
nI: Integer;
begin
for nI:= 0 to nSize - 1 do
lpDest[nI]:= lpSrc[nI];
end;
procedure Copy_MemoryEx(const lpDest: PTByteArray; const lpSrc: PTByteArray; const nSize: Cardinal);
var
lpDestCard: PTCardinalArray;
lpSrcCard: PTCardinalArray;
nI: Integer;
nFirstCopyEnd: Integer;
begin
lpDestCard:= PTCardinalArray(lpDest);
lpSrcCard:= PTCardinalArray(lpSrc);
for nI:= 0 to nSize div 4 - 1 do
lpDestCard[nI]:= lpSrcCard[nI];
nFirstCopyEnd:= (nSize div 4) * 4;
for nI:= nFirstCopyEnd to nFirstCopyEnd + nSize mod 4 - 1 do
lpDest[nI]:= lpSrc[nI];
end;
procedure TForm1.Button1Click(Sender: TObject);
var
lpSrc: String;
lpDest: array [0..MAX_PATH] of char;
nSize: Integer;
begin
lpSrc:= '123';
Copy_MemoryEx(PTByteArray(@lpDest), PTByteArray(lpSrc), length(lpSrc) + 1);
ShowMessage(lpDest);
end;
13 déc. 2008 à 07:35
Bon week-end !
13 déc. 2008 à 07:25
Je c que le compilateur ne tien pas compte des commentaires Né au moin un code source plus optimale remplace les commentaires!!
BY OFFLAKE
12 déc. 2008 à 18:24
10 déc. 2008 à 07:06
Pour les commentaires je pense que tu sais qu'est ce qu'un Canvas...etc
DOnc le code est plus Optimal que possible et je pense qu'il est plus comprehensible que les autres Codes
Oui Ta raison!!
Pour les prochaine Source je tient en compte les commentaires
Merci John Dogget
BY OFFLAKE
10 déc. 2008 à 07:03
Pour le nommage des composants Oui ta raison je nome pas tjrs et je sais que c'est une mauvaise habitude ok!!
Pour la prochaine Source j'essay d'être plus réaliste
BY OFFLAKE
9 déc. 2008 à 21:48
Par contre, t'oublie pas de nous coller un à propos de 3m².
C'est comme d'hab avec tes sources en fait.
9 déc. 2008 à 18:03
Ciao