Vous êtes sur la page 1sur 4

Les

algorithmes du tableau sous forme de fonctions


algorithmiques et en C
Onsupposedanscequisuitqueletableaunommtestpasscommeunerfrence.
Cesalgorithmessontvalablesqueasoitdesvaleursentiresoubiendeschainesde
caractres,desenregistrementsouautresilsuffitdechangerseulementletypedela
variable.
1. Rempliretafficheruntableau

FonctionAlgorithme:remplir

ProcedureremplirTab(t[]:rel,

taille:entier)

Variablesi:entier

Debut

Pouriallantde0taille(t)1

Ecrire("Saisirlavaleurdelacase",i+1);
Lire(t[i]);

Finpour

Fin

FonctionAlgorithme:afficher

ProcedureafficheTab(floatt[],inttaille)

Variablesi=0:entier;

Debut

Pouriallantde0taille(t)1

Ecrire("Lavaleurdelacase",i+1,"est:",t[i]);

FonctionenC
/*Passageparrfrence*/
voidremplirTab(floatt[],inttaille)
{

inti;

for(i=0;i<taille;i++)

printf("Saisirlavaleurdelacase%d",i);

scanf("%f",&t[i]);
}
}

FonctionenC
voidafficheTab(floatt[],inttaille)
{

inti=0;

for(i=0;i<taille;i++)

printf("Lavaleurdelacase%dest%f\n",i,t[i]);

2. Rechercherunevaleurdansuntableauetretournelapremirepositionsicesttrouv
oubien1sicettevaleurnexistepas

FonctionAlgorithme
FonctionenC

intrechercher(intvrech,intN,intt[])
Fonctionrechercher

(vrech:entier,t[]:entier,taille:entier):entier {

//Nlatailledutableau
Variablespos,i:entier
intpos,i;
Debut

//oninitialiseposition1commesilavaleur //oninitialiseposition1commesilavaleurrecherch
n'existepas

//recherchnexistepas
pos=1;
Pos=1

for(i=0;i<N;i++)
Pouriallantde0taille(t)1
{

Si(t[i]=vrech)
if(t[i]==vrech)
alors
{
pos=i;
pos=i;break;}
sortir;
Fsi

}
Finpour
Retournepos;
returnpos;}
Fin

3. Rechercherdansuntableau

Rechercherunevaleurdansuntableauet

retourne1sicesttrouvoubien1sicette

valeurnexistepas

FonctionenC

intchercherMotif(intT[],inttaille,intmotif)

inti;

for(i=0;i<taille;i++)

if(t[i]==motif)

return1;//onterminelafonction

return0;

Rechercherlepluspetitlmentdansuntableaudentier
partirdunecasedonneindex

FonctionenC
intminTab(intT[],intindex,inttaille)
{

inti;

inttmp;

tmp=T[index];
//onsupposequeleplusestT[indice]:initialisation

for(i=index+1;i<taille;i++)
//laboucle
commencepartird'index+1

if(T[i]<tmp)
//sijetrouveunpluspetit,jechangelemin

}
2

tmp=T[i];

4. Modifierunevaleurdansuntableau
Lamodificationconsistelocaliserc..d.rechercherlavaleurmodifieretaprscraser
lancienvaleurparlanouvellevaleur.
FonctionenC
FonctionAlgorithme
Voidmodifier(intvrech)
Fonctionmodifier(vrech:entier):vide

{
Variablespos,i,choix,nouvv:entier
Intpos,i,choix,nouvv;
Debut

if(pos!=1)
pos=rechercher(vrech);
1.
Supprimerunevaleurdansuntableau
{pos=rechercher(vrech);
Si(pos<>1)alors
printf(VoulezvousconfirmerlamodificationOui(1)/non(0):);
Ecrire(Voulezvousconfirmerlamodification
2. Triduntableau
scanf(%d,&choix);
Oui(1)/non(0):);
if(choix==1)
Lire(choix);
Si(choix=1)alors
Ecrire(Entrerlanouvellevaleur:);
Lire(nouvv);
t[pos]=nouv;
Finsi
Finsi
Fin

}
}

printf("Entrerlanouvellevaleur:");
scanf("%d,&nouvv");

t[pos]=nouv;
}

3. Insertiondunevaleurdansuntableau
Algorithme
inserer(x:entier,pos:entier,
t[]:entier,n:entier)
VARIABLES
j: entier;
DEBUT
Pour j allant de i+1 N

FonctionenC
voidinserer(intx,intpos,intt[],intn)
{
intj;
for(j=n;j<=pos+1;j)
t[j]=t[j1];
t[pos]=x;
}

t[j] t[j - 1];


FPOUR
t[pos] = x;
FIN

Supprimerunevaleurdansuntableau
Lasuppressionconsistelocaliserc..d.rechercherlavaleursupprimeretaprsfairedes
dcalages

FonctionAlgorithme
Fonctionsupprimer(vrech:entier):vide

Variablespos,i,choix,nouvv:entier

Debut
pos=rechercher(vrech);

Si(pos<>1)alors

Ecrire(Voulezvousconfirmerlasuppression

Oui(1)/non(0):);
Lire(choix);
Si(choix=1)alors

PourIallantdepostaille(t)1

t[i]=t[i+1];
Finpour
t[taille1]=0;
Finsi
Finsi
Fin
//pourleschanesonmetdanst[taille1]
lecaractredefindunechane\0.

FonctionenC
voidsupprimer(intvrech,intt[],intn)
{
intpos,i,choix,nouvv;
if(pos!=1)
{
pos=rechercher(vrech,n,t);
do
{
printf("VoulezvousconfirmerlasuppressionOui(1)/non(0):");
scanf("%d",&choix);
}
While(choix!=1&&choix!=0);

if(choix==1)
{

for(i=pos;i<n;i++)
{

t[i]=t[i+1];
}

t[n1]=0;

4. Trieruntableauparpermutation:simple

FonctionAlgorithme

//tricroissant
Fonctiontri(T[]:entier,taille:entier):vide
voidtri(intT[],inttaille)
Variablesi,c:entier
{
Debut
Pouriallantde0taille(T)1

{
//Pourchaquelmentsitudanslacasede
lindiceionle//compareavectousleslments
//det

for(j=i+1;j<taille;j++)

if(T[j]>T[i])

c=T[i];

T[i]=T[j];

T[j]=c;

}
}
}

FonctionenC

inti,j;

intc;

for(i=0;i<taille;i++)

{
//Pourchaquelmentsitudanslacasedelindiceionle
//compareavectousleslmentsdet

for(j=i+1;j<taille;j++)

if(T[j]>T[i])

c=T[i];

T[i]=T[j];

T[j]=c;

}
}
} }
4