Voici un algorithme que j'ai écrit hier dans le but d'utiliser le tri par selection pour trier un tableau de chaînes de caractères. Cette fonction doit servir à trouver l'indice de la chaîne qui se trouve en première position dans l'ordre alphabétique entre la case a et la case b du tableau.
D'abord je vous demande si c'est correct ensuite, est-ce que ça sert à quelque chose ? Parce que j'ai remarqué qu'en Pascal, par exemple, on peut comparer deux chaînes à l'aide d'un opérateur ">" ou "<".
Puisque c'est ici qu'il y a des gens sympathiques et que c'est l'endroit idéal pour poser ses questions et qu'en ce moment je m'en pose pas mal... Je suis en bac -1 section Sciences de l'Informatique, la matière principale se nomme "Algorithmique et Programmation", on y apprend ce que je connais au nom d'algorithmique c'est à dire les boucles pour, répéter, les structures conditionnelles si, cas de, algorithmes de tri et de recherche... le tout en faisant des applications en Pascal, le seul langage qu'on apprend. Seulement, je me demande ce que c'est que l'algorithmique exactement. Ce que j'ai retenu de tout ce qu'on m'a dit c'est que c'est le langage en quelque sorte universel qu'on utilise pour programmer avant de passer à la traduction en un langage "compilable". La définition que je retiens ne me plaît pas beaucoup car je suis de plus en plus conscient de la différence qu'il y a entre les langages. Alors, je me dis qu'on ne peut peut-être pas utiliser le même algorithme dans deux différents langages. En d'autres termes, je ne suis pas en train d'apprendre LA programmation mais plutôt la programmation en Pascal. Si vous pouvez lever ce doute de mon esprit, je vous en serais très reconnaissant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 fonction posmin(t:tab, a,b:entier):entier min := a pour i de a+1 à b faire ok := faux j := 0 répéter j := j+1 si (t[i][j]=t[min][j]) alors si j=long(t[min]) alors ok := vrai si long(t[min])>long(t[i]) alors min := i fsi sinon ok := vrai si t[i][j]<t[min][j] alors min := i finsi jusqu'à ( ok = vrai ) ou ( j = long(t[min]) ) fin pour posmin:=min fin posmin i est un compteur donc un entier, min étant la position du minimum est un entier ok est de type booléen
Merci.
Partager