Accueil > > > COMPARAISON TRI + TEST CPU
COMPARAISON TRI + TEST CPU
Information sur la source
Description
Code qui compare le bubble sort et le Quicksort avec : 1000, 5000, 10000, 15000, 20000, 25000, 30000 entiers. Une fois les calculs fini, il est possible d'afficher le graphique de comparaison en pressant n'importe quelle touche. Il est possible de changer l'echelle grace a la touche + et a la touche -. Ce Programem permet de tester la vitesse de son CPU. Par exemple il me faut 20 secondes pour faire le tri bulle a 30000.
Source
- // ex1.cpp : Defines the entry point for the console application.
- //
- //------------------------------------------------------------------------
- //
- //Spécifications:
- // Finalité : Faire une application graphique de base pour tester la vitesse de son cpu et
- // comparer le tribulle et le quicksort
- // avec modification des graduations du repère pour zoomer en avant
- // et en arrière.
- // Précondition :
- // Résultat :
- //
- // Analyse :
- //
- //
- //-----------------------------------------------------------------------
- #include "stdafx.h"
- #include <iostream> // fichier entête pour E/S en C++
- #include <stdio.h> // fichier entête pour E/S en C
- #include <math.h> // fichier entête pour fcts mathématiques
- #include <conio.h> // utile : fcts comme getch()
- #include <stdlib.h> // fichier entête librairie standard (par ex:fct exit())
- #include <time.h>
- #include <iomanip>
- #include "graphics.h"
-
- using namespace std;
-
- #define PI 3.1415926535
-
- int gradx=40; //Unité du repère en x: 1 unité=80 pixels
- int grady=40; //Unité du repère en y: 1 unité=80 pixels
-
- // fonction de traçage des axes et graduations
- void traceAxes(int ax, int ay, int midx, int midy );
-
- void Ini(int N, int *& TAB);
- void tribulles(int* &TAB, int N ,int &nbpermutb);
- void echanger(int* &TAB, int a,int b );
- void aff(int *TAB, int N);
- void Trirapide (int* TAB, int inf, int sup,int &nbpermutq);
- void Segmentation (int* tab, int inf, int sup, int & place,int &nbpermutq);
- void copieTAB (int* TAB, int* &TAB2, int N);
- void CourbeB(int *& B,int Y);
- void CourbeQ(int *& Q,int Y);
- //void Ratio(int *& B,int *& Q,int Y);
- void main(void)
- {
- srand( (unsigned)time( NULL ) );
- int nbpermutb=0;//nombre de permutation avec le tri bulle
- int nbpermutq=0;//nombre de permutation avec le tri rapide
- double Tempsbul; //temps realise par le tribulles
- double Tempsqck;//temps realise par le quicksort
- int * TAB;
- int * TAB2;
- int NN=7;
- int * B;
- B=new int[NN];
- int * Q;
- Q=new int[NN];
- int cmp=0;
- for(int N=0;N<=30000;N=N+5000)
- {
- if(N==0)
- N=1000;
-
- Ini(N,TAB);
- copieTAB(TAB,TAB2,N);
-
- clock_t debbul =clock();//debut du chronometrage
- tribulles (TAB, N ,nbpermutb);//Appel du tribulles
- clock_t finbul =clock();//fin du chronometrage
- Tempsbul=((double(finbul-debbul)));//en msecondes
-
- clock_t debqck =clock();//debut du chronometrage
- Trirapide (TAB2, 0, N-1,nbpermutq);//Appelle du quicksort
- clock_t finqck =clock();//fin du chronometrage
- Tempsqck=((double(finqck-debqck)));//en msecondes
-
-
- cout<<"N= "<<N<<endl;
- cout<<"Tri Bulles || Nbpermutation = "<<nbpermutb<<" temps = "<< Tempsbul<<"ms"<<endl;
- cout<<"quicksort || Nbpermutation = "<<nbpermutq<<" temps = "<< Tempsqck<<"ms"<<endl;
- cout<<endl;
- B[cmp]=nbpermutb;
- Q[cmp]=nbpermutq;
-
- if(N==1000)
- N=0;
-
- cmp++;
- }
-
- int gdriver = DETECT /* demande de détection automatique de la résolution de l'écran*/, gmode, errorcode;
- int midx,midy,maxx,maxy;
-
- int gradx=40; //Unité du repère en x: 1 unité=80 pixels
- int grady=40; //Unité du repère en y: 1 unité=80 pixels
-
- cout<<"Press any key to show the Graphic<<endl;
-
- char car; scanf("%c",&car); // utilisation de fonction de lecture du C
-
- // passage en mode graphique en demandant la détection automatique de
- // la résolution de l'écran :
- initgraph(&gdriver, &gmode,"");
- errorcode = graphresult();
- if (errorcode != grOk){ /* an error occurred */
- printf("Graphics error: %s\n", grapherrormsg(errorcode));
- printf("Press any key to halt:");
- getch();
- exit(1); /* terminate with an error code */
- }
-
- maxx=getmaxx(); maxy=getmaxy(); // détermination résolution de la fenêtre en nombre de pixels
- midx = maxx/ 2;midy = maxy/ 2;
-
- cleardevice(); // on efface la fenêtre graphique
- setcolor(WHITE); // on sélectionne la couleur blanche
-
- char colstr[80];
- unsigned int Y=20000000;
- char c='a';//getch();//saisie de la premiere touche
-
- while( c!='q')
- { cleardevice();
-
-
- if(c=='+')
- {
- Y=Y/2;
- }
-
- if(c=='-')
- {
- Y=Y*2;
- }
- if(Y<78125)
- Y=78125;
-
- if(Y>160000000)
- Y=160000000;
-
- setcolor(MAGENTA);
- traceAxes(gradx,grady,midx, midy);
-
- setcolor(WHITE);
- for(int k=0;k<=11;k++)
- {
- int ptt=maxy-30-k*grady;
- sprintf(colstr,"%i ",k*Y);
- outtextxy(0,ptt,colstr);
- }
-
- setcolor(RED);
- CourbeB(B,Y);//On trace la courbe tribulles
- setcolor(RED);
- sprintf(colstr, "Tribulles");//legende courbe tribulles
- outtextxy(100,10,colstr);
- //circle ( maxx-nbpermutb*grad,maxy-N*grad, 3);
- setcolor(YELLOW);
- CourbeQ(Q,Y);//On trace la courbe quicksort
- setcolor(YELLOW);
- sprintf(colstr, "Quicksort");//legende courbe quicksort
- outtextxy(220,10,colstr);
- setcolor(LIGHTMAGENTA);
- //Ratio(B,Q,Y);
- c=getch();
- }
-
- while (!kbhit()) ; // boucle d'attente d'une touche , avant de fermer la fenêtre graphique
- closegraph(); // pour fermer le mode graphique
- exit(0);
- }
-
- void traceAxes(int ax, int ay, int midx, int midy)
- {
- const int dec=5; // nbre de pixels correspondant à la largeur d' 1 graduation
- int xcour,ycour; // abscisse et ordonnee courante pour les graduations
- int maxx=2*midx, maxy=2*midy;
-
- moveto(0,maxy-30);lineto(maxx,maxy-30); // on trace l'axe horizontal
- line(midx-290,0,midx-290,maxy); // on trace l'axe vertical
-
- // traçage des graduations sur l'axe des x (partie positive)
- for(xcour=midx;xcour>=0;xcour-=gradx)
- {line(xcour+30, midy+200-dec,xcour+30, midy+200+dec);}
- // traçage des graduations sur l'axe des x (partie negative)
- for(xcour=midx+gradx;xcour<=maxx;xcour+=gradx)
- {line(xcour+30, midy+200-dec,xcour+30, midy+200+dec);}
- // traçage des graduations sur l'axe des y (partie positive)
- for(ycour=midy;ycour<=maxy;ycour+=grady)
- //Car on veux egalement tracer une graduation sur "l'ancien 0 de laxe centre"
- {line(midx-290, ycour-30,/*midx-290+dec*/maxx,ycour-30 );}
- // traçage des graduations sur l'axe des y (partie negative)
- for(ycour=midy-grady;ycour>=0;ycour-=grady)
- {line(midx-290, ycour-30,/*midx-290+dec*/maxx,ycour-30 );}
- }
-
- void Ini(int N, int *& TAB)
- {
- //int * TAB;
- TAB=new int[N];
-
- for(int i=0;i<N;i++)
- {
- TAB[i]=rand()%99+1;
- }
- }
-
- void aff(int *TAB, int N)
- {
- int i;
- for (i=0; i<N; i++)
- cout<< setw (2)<< TAB[i]<< " " << flush ;
- cout<< endl << endl;
- }
-
- void echanger(int* &TAB, int a,int b )
- {
- int temp;
- temp=TAB[a];
- TAB[a]=TAB[b];
- TAB[b]=temp;
- }
-
- void tribulles(int* &TAB, int N ,int &nbpermutb)
- {
- nbpermutb=0;
- int i,j;
- bool fini;
- i=0;
- do
- {
- fini=true;
- for(j=0;j<N-i-1;j++)
- {
- if( TAB[j]>TAB[j+1])
- {
- echanger(TAB, j, j+1);
- nbpermutb++;
- fini=false;
- }
- }
- i++;
- }
- while (fini==false && i!=N-1);
- }
-
- void Trirapide (int* tab, int inf, int sup,int &nbpermutq)
- {
- int place;
- if (inf<sup)
- {
- Segmentation (tab, inf, sup, place,nbpermutq);
- Trirapide (tab, inf, place-1,nbpermutq);
- Trirapide (tab, place+1, sup,nbpermutq);
- }
- }
-
- void Segmentation (int* tab, int inf, int sup, int & place,int &nbpermutq)
- {
-
- int i=sup;
- int pivot=inf;
-
-
- do
- {
- if ( tab[pivot]<tab[pivot+1] )
- {
- echanger (tab, pivot+1, i);
- i--;
- nbpermutq++;//cout << "permutation loc1, nbpermutq=" << nbpermutq <<endl;
- }
- else
- {
- echanger(tab, pivot, pivot+1);
- nbpermutq++;// cout << "permutation loc2, nbpermutq=" << nbpermutq << endl;
- pivot++;
- }
- }while (i!=pivot);
- place=pivot;
- }
-
- void copieTAB (int* TAB, int* &TAB2, int N)
- {
- TAB2 =new int[N] ;
- int i;
- for (i=0; i<N; i++)
- {
- TAB2[i]=TAB[i];
- }
- }
-
- void CourbeB(int *& B,int Y)
- {
- int maxx=getmaxx(); int maxy=getmaxy(); char colstr[80];
- setcolor(WHITE);
- int xcour=30;
- int ycour=maxy-30;
- int cmp=0;
- for(int N2=0;N2<=30000;N2=N2+5000)
- {
- if(N2==0)
- N2=1000;
-
- int pt=30+N2/50;
- setcolor(RED);
- line(xcour,ycour,pt,maxy-30-B[cmp]/Y*40);
- xcour=pt;
- ycour=maxy-30-B[cmp]/Y*40;
- cmp++;
- setcolor(WHITE);
- line(pt,maxy-30,pt,maxy-10);
- sprintf(colstr,"N=%i ",N2);
- outtextxy(pt-45,maxy-11,colstr);
-
- if(N2==1000)
- N2=0;
- }
- }
-
- /*void Ratio(int *& B,int *& Q,int Y)
- {
- int maxx=getmaxx(); int maxy=getmaxy(); char colstr[80];
- setcolor(WHITE);
- int xcour=30;
- int ycour=maxy-30;
- int cmp=0;
- for(int N2=0;N2<=30000;N2=N2+5000)
- {
- if(N2==0)
- N2=1000;
-
- int pt=30+N2/50;
- setcolor(LIGHTMAGENTA);
- line(xcour,ycour,pt,maxy-30-((B[cmp]+Q[cmp])/2)/Y*40);
- xcour=pt;
- ycour=maxy-30-(B[cmp]/Q[cmp])/Y*40;
- cmp++;
-
- if(N2==1000)
- N2=0;
- }
- }*/
-
- void CourbeQ( int *& Q,int Y)
- {
- float maxxf=(float)getmaxx(); float maxyf=(float)getmaxy(); char colstr[80];
- int maxxi=getmaxx(); int maxyi=getmaxy();
- setcolor(WHITE);
- float xcourf=30;
- float ycourf=maxyf-30;
- int cmp=0;
- for( int N2=0;N2<=30000;N2=N2+5000)
- {
- if(N2==0)
- N2=1000;
-
- float ptxf=(float)(30+N2/50);
- float valtabf=(float)(Q[cmp]);
- float Yf=(float)(Y);
- float resf=(valtabf/Yf)*40;
- float ptyf=maxyf-30-resf;
- int ptyi=(int)(ptyf);
- int ptxi=(int)(ptxf);
- setcolor(YELLOW);
- int xcouri=(int)(xcourf);
- int ycouri=(int)(ycourf);
- line(xcouri,ycouri,ptxi,ptyi);
- xcourf=ptxf;
- ycourf=ptyf;
- cmp++;
- setcolor(WHITE);
- line(ptxi,maxyi-30,ptxi,maxyi-10);
- sprintf(colstr,"N=%i ",N2);
- outtextxy(ptxi-45,maxyi-11,colstr);
-
- if(N2==1000)
- N2=0;
- }
- }
// ex1.cpp : Defines the entry point for the console application.
//
//------------------------------------------------------------------------
//
//Spécifications:
// Finalité : Faire une application graphique de base pour tester la vitesse de son cpu et
// comparer le tribulle et le quicksort
// avec modification des graduations du repère pour zoomer en avant
// et en arrière.
// Précondition :
// Résultat :
//
// Analyse :
//
//
//-----------------------------------------------------------------------
#include "stdafx.h"
#include <iostream> // fichier entête pour E/S en C++
#include <stdio.h> // fichier entête pour E/S en C
#include <math.h> // fichier entête pour fcts mathématiques
#include <conio.h> // utile : fcts comme getch()
#include <stdlib.h> // fichier entête librairie standard (par ex:fct exit())
#include <time.h>
#include <iomanip>
#include "graphics.h"
using namespace std;
#define PI 3.1415926535
int gradx=40; //Unité du repère en x: 1 unité=80 pixels
int grady=40; //Unité du repère en y: 1 unité=80 pixels
// fonction de traçage des axes et graduations
void traceAxes(int ax, int ay, int midx, int midy );
void Ini(int N, int *& TAB);
void tribulles(int* &TAB, int N ,int &nbpermutb);
void echanger(int* &TAB, int a,int b );
void aff(int *TAB, int N);
void Trirapide (int* TAB, int inf, int sup,int &nbpermutq);
void Segmentation (int* tab, int inf, int sup, int & place,int &nbpermutq);
void copieTAB (int* TAB, int* &TAB2, int N);
void CourbeB(int *& B,int Y);
void CourbeQ(int *& Q,int Y);
//void Ratio(int *& B,int *& Q,int Y);
void main(void)
{
srand( (unsigned)time( NULL ) );
int nbpermutb=0;//nombre de permutation avec le tri bulle
int nbpermutq=0;//nombre de permutation avec le tri rapide
double Tempsbul; //temps realise par le tribulles
double Tempsqck;//temps realise par le quicksort
int * TAB;
int * TAB2;
int NN=7;
int * B;
B=new int[NN];
int * Q;
Q=new int[NN];
int cmp=0;
for(int N=0;N<=30000;N=N+5000)
{
if(N==0)
N=1000;
Ini(N,TAB);
copieTAB(TAB,TAB2,N);
clock_t debbul =clock();//debut du chronometrage
tribulles (TAB, N ,nbpermutb);//Appel du tribulles
clock_t finbul =clock();//fin du chronometrage
Tempsbul=((double(finbul-debbul)));//en msecondes
clock_t debqck =clock();//debut du chronometrage
Trirapide (TAB2, 0, N-1,nbpermutq);//Appelle du quicksort
clock_t finqck =clock();//fin du chronometrage
Tempsqck=((double(finqck-debqck)));//en msecondes
cout<<"N= "<<N<<endl;
cout<<"Tri Bulles || Nbpermutation = "<<nbpermutb<<" temps = "<< Tempsbul<<"ms"<<endl;
cout<<"quicksort || Nbpermutation = "<<nbpermutq<<" temps = "<< Tempsqck<<"ms"<<endl;
cout<<endl;
B[cmp]=nbpermutb;
Q[cmp]=nbpermutq;
if(N==1000)
N=0;
cmp++;
}
int gdriver = DETECT /* demande de détection automatique de la résolution de l'écran*/, gmode, errorcode;
int midx,midy,maxx,maxy;
int gradx=40; //Unité du repère en x: 1 unité=80 pixels
int grady=40; //Unité du repère en y: 1 unité=80 pixels
cout<<"Press any key to show the Graphic<<endl;
char car; scanf("%c",&car); // utilisation de fonction de lecture du C
// passage en mode graphique en demandant la détection automatique de
// la résolution de l'écran :
initgraph(&gdriver, &gmode,"");
errorcode = graphresult();
if (errorcode != grOk){ /* an error occurred */
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
maxx=getmaxx(); maxy=getmaxy(); // détermination résolution de la fenêtre en nombre de pixels
midx = maxx/ 2;midy = maxy/ 2;
cleardevice(); // on efface la fenêtre graphique
setcolor(WHITE); // on sélectionne la couleur blanche
char colstr[80];
unsigned int Y=20000000;
char c='a';//getch();//saisie de la premiere touche
while( c!='q')
{ cleardevice();
if(c=='+')
{
Y=Y/2;
}
if(c=='-')
{
Y=Y*2;
}
if(Y<78125)
Y=78125;
if(Y>160000000)
Y=160000000;
setcolor(MAGENTA);
traceAxes(gradx,grady,midx, midy);
setcolor(WHITE);
for(int k=0;k<=11;k++)
{
int ptt=maxy-30-k*grady;
sprintf(colstr,"%i ",k*Y);
outtextxy(0,ptt,colstr);
}
setcolor(RED);
CourbeB(B,Y);//On trace la courbe tribulles
setcolor(RED);
sprintf(colstr, "Tribulles");//legende courbe tribulles
outtextxy(100,10,colstr);
//circle ( maxx-nbpermutb*grad,maxy-N*grad, 3);
setcolor(YELLOW);
CourbeQ(Q,Y);//On trace la courbe quicksort
setcolor(YELLOW);
sprintf(colstr, "Quicksort");//legende courbe quicksort
outtextxy(220,10,colstr);
setcolor(LIGHTMAGENTA);
//Ratio(B,Q,Y);
c=getch();
}
while (!kbhit()) ; // boucle d'attente d'une touche , avant de fermer la fenêtre graphique
closegraph(); // pour fermer le mode graphique
exit(0);
}
void traceAxes(int ax, int ay, int midx, int midy)
{
const int dec=5; // nbre de pixels correspondant à la largeur d' 1 graduation
int xcour,ycour; // abscisse et ordonnee courante pour les graduations
int maxx=2*midx, maxy=2*midy;
moveto(0,maxy-30);lineto(maxx,maxy-30); // on trace l'axe horizontal
line(midx-290,0,midx-290,maxy); // on trace l'axe vertical
// traçage des graduations sur l'axe des x (partie positive)
for(xcour=midx;xcour>=0;xcour-=gradx)
{line(xcour+30, midy+200-dec,xcour+30, midy+200+dec);}
// traçage des graduations sur l'axe des x (partie negative)
for(xcour=midx+gradx;xcour<=maxx;xcour+=gradx)
{line(xcour+30, midy+200-dec,xcour+30, midy+200+dec);}
// traçage des graduations sur l'axe des y (partie positive)
for(ycour=midy;ycour<=maxy;ycour+=grady)
//Car on veux egalement tracer une graduation sur "l'ancien 0 de laxe centre"
{line(midx-290, ycour-30,/*midx-290+dec*/maxx,ycour-30 );}
// traçage des graduations sur l'axe des y (partie negative)
for(ycour=midy-grady;ycour>=0;ycour-=grady)
{line(midx-290, ycour-30,/*midx-290+dec*/maxx,ycour-30 );}
}
void Ini(int N, int *& TAB)
{
//int * TAB;
TAB=new int[N];
for(int i=0;i<N;i++)
{
TAB[i]=rand()%99+1;
}
}
void aff(int *TAB, int N)
{
int i;
for (i=0; i<N; i++)
cout<< setw (2)<< TAB[i]<< " " << flush ;
cout<< endl << endl;
}
void echanger(int* &TAB, int a,int b )
{
int temp;
temp=TAB[a];
TAB[a]=TAB[b];
TAB[b]=temp;
}
void tribulles(int* &TAB, int N ,int &nbpermutb)
{
nbpermutb=0;
int i,j;
bool fini;
i=0;
do
{
fini=true;
for(j=0;j<N-i-1;j++)
{
if( TAB[j]>TAB[j+1])
{
echanger(TAB, j, j+1);
nbpermutb++;
fini=false;
}
}
i++;
}
while (fini==false && i!=N-1);
}
void Trirapide (int* tab, int inf, int sup,int &nbpermutq)
{
int place;
if (inf<sup)
{
Segmentation (tab, inf, sup, place,nbpermutq);
Trirapide (tab, inf, place-1,nbpermutq);
Trirapide (tab, place+1, sup,nbpermutq);
}
}
void Segmentation (int* tab, int inf, int sup, int & place,int &nbpermutq)
{
int i=sup;
int pivot=inf;
do
{
if ( tab[pivot]<tab[pivot+1] )
{
echanger (tab, pivot+1, i);
i--;
nbpermutq++;//cout << "permutation loc1, nbpermutq=" << nbpermutq <<endl;
}
else
{
echanger(tab, pivot, pivot+1);
nbpermutq++;// cout << "permutation loc2, nbpermutq=" << nbpermutq << endl;
pivot++;
}
}while (i!=pivot);
place=pivot;
}
void copieTAB (int* TAB, int* &TAB2, int N)
{
TAB2 =new int[N] ;
int i;
for (i=0; i<N; i++)
{
TAB2[i]=TAB[i];
}
}
void CourbeB(int *& B,int Y)
{
int maxx=getmaxx(); int maxy=getmaxy(); char colstr[80];
setcolor(WHITE);
int xcour=30;
int ycour=maxy-30;
int cmp=0;
for(int N2=0;N2<=30000;N2=N2+5000)
{
if(N2==0)
N2=1000;
int pt=30+N2/50;
setcolor(RED);
line(xcour,ycour,pt,maxy-30-B[cmp]/Y*40);
xcour=pt;
ycour=maxy-30-B[cmp]/Y*40;
cmp++;
setcolor(WHITE);
line(pt,maxy-30,pt,maxy-10);
sprintf(colstr,"N=%i ",N2);
outtextxy(pt-45,maxy-11,colstr);
if(N2==1000)
N2=0;
}
}
/*void Ratio(int *& B,int *& Q,int Y)
{
int maxx=getmaxx(); int maxy=getmaxy(); char colstr[80];
setcolor(WHITE);
int xcour=30;
int ycour=maxy-30;
int cmp=0;
for(int N2=0;N2<=30000;N2=N2+5000)
{
if(N2==0)
N2=1000;
int pt=30+N2/50;
setcolor(LIGHTMAGENTA);
line(xcour,ycour,pt,maxy-30-((B[cmp]+Q[cmp])/2)/Y*40);
xcour=pt;
ycour=maxy-30-(B[cmp]/Q[cmp])/Y*40;
cmp++;
if(N2==1000)
N2=0;
}
}*/
void CourbeQ( int *& Q,int Y)
{
float maxxf=(float)getmaxx(); float maxyf=(float)getmaxy(); char colstr[80];
int maxxi=getmaxx(); int maxyi=getmaxy();
setcolor(WHITE);
float xcourf=30;
float ycourf=maxyf-30;
int cmp=0;
for( int N2=0;N2<=30000;N2=N2+5000)
{
if(N2==0)
N2=1000;
float ptxf=(float)(30+N2/50);
float valtabf=(float)(Q[cmp]);
float Yf=(float)(Y);
float resf=(valtabf/Yf)*40;
float ptyf=maxyf-30-resf;
int ptyi=(int)(ptyf);
int ptxi=(int)(ptxf);
setcolor(YELLOW);
int xcouri=(int)(xcourf);
int ycouri=(int)(ycourf);
line(xcouri,ycouri,ptxi,ptyi);
xcourf=ptxf;
ycourf=ptyf;
cmp++;
setcolor(WHITE);
line(ptxi,maxyi-30,ptxi,maxyi-10);
sprintf(colstr,"N=%i ",N2);
outtextxy(ptxi-45,maxyi-11,colstr);
if(N2==1000)
N2=0;
}
}
Conclusion
Il faut presser n'importe quelle touche avec l'executable fournie, ceci ce fait automatiquement avec le .cpp.
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
tri rapide (quicksort) et/ou tri par tas(heapsort) urgent [ par mersniyassine ]
je trouve une difficulté a simuler graphiquement en C ces 2 trisya t-il quelqu'un qui peut me fournir un code.c compilable sur Turbo C qui effectue u
comparaison string [ par darksoul07 ]
je cherche à trier une liste de fichier comme sous l'explorateur de vista. je m'expliquela plus part des fonctions trie de manière logique mais moi je
Comparer un USHORT à un entier (int)??! [ par Aumenov ]
Salut à tous,J'ai un petit problème, les experts parmi vous en ont sans doute la réponses.Soit le bout de code suivant:typedef struct _KEY_DATA {
Tri par insertion sur liste simplement chainée [ par Jordy89 ]
Bonjour,Dans le cadre de la manipulation d'une liste chaînée, je suis amené à effectuer un tri; Je me suis renseigné à gauche et à droite, et il appar
Comment convertir les codes des frappes clavier en "vrai" caractère?? [ par Aumenov ]
Salut,Je suis en train de faire un keylogger. En fait j'ai trouvé du code sur le net et je suis en train de l'adapter.Je souhaite convertir proprement
Surdefinition de fonction [ par samaie ]
float test(int i, int j) { return (float) i+j; } float test(float i, float j) <p align="le
Tri de vecteur [ par dodo1309 ]
hello, Je suis actuellement etudiant en C et lors d'un exercice on m'a imposé de trier un vecteur sans algorithme de tri. Comment pourrais -je faire
CPU/CLOCK ??? [ par hazkaal ]
Bonjour, Je voudrais savoir comment récupérer la fréquence du CPU en C svp ?Merci :-DCordialement.The HazKaaL
Tri alphabétrique [ par dolsky ]
Bonjour. je cherche un algorithme de tri alaphabetique. J'ai trouvé ce algorithme ci-dessus. Quelqu'un peut m'aider à le comprendre les instructions
Client/Serveur [ par hy_dev ]
HI folks, Voila, j'ai 2 programmes Client et Serveur lancés sur la même machine (c'est une colaboration Peer), ils s'echanges des infos mutuellement.
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|