Différences entre versions de « Js algo td4 »
Ligne 19 : | Ligne 19 : | ||
</source> | </source> | ||
== Exercice 1 == | == Exercice 1 == | ||
− | Écrire la fonction ''compare_char'' qui prend en | + | Écrire la fonction ''compare_char'' qui prend en paramètres deux caractères ''a'' et ''b'' et qui renvoie: |
* une valeur négative si ''a'' < ''b''; | * une valeur négative si ''a'' < ''b''; | ||
* ''0'' si ''a'' == ''b''; | * ''0'' si ''a'' == ''b''; | ||
Ligne 25 : | Ligne 25 : | ||
== Exercice 2 == | == Exercice 2 == | ||
− | Écrire la fonction ''compare_string'' qui prend en | + | Écrire la fonction ''compare_string'' qui prend en paramètres deux chaînes de caractères ''x'' et ''y'' et qui renvoie: |
* une valeur négative si ''a'' < ''b''; | * une valeur négative si ''a'' < ''b''; | ||
* ''0'' si ''a'' == ''b''; | * ''0'' si ''a'' == ''b''; | ||
* une valeur positive si ''a'' > ''b''; | * une valeur positive si ''a'' > ''b''; | ||
− | Pour cela vous pouvez vous aider de la fonction ''String.charAt( | + | Cette fonction doit comparer chacune des lettres des deux chaînes tant qu'il y a égalité ! |
+ | |||
+ | Pour cela, vous pouvez vous aider de la fonction ''String.charAt(num)'' dont voici la documentation: | ||
<pre> | <pre> | ||
Syntax | Syntax | ||
Ligne 40 : | Ligne 42 : | ||
</pre> | </pre> | ||
− | == Exercice | + | == Exercice 3 == |
− | Écrire la fonction ''get_half'' qui prend en | + | Écrire la fonction ''get_half'' qui prend en paramètres le tableau ''T'' ainsi qu'une chaîne de caractères, ''x''. Cette fonction renvoie un tableau qui correspond à la moitié du tableau ''T'' où se trouverait la valeur ''x''. |
− | == Exercice | + | == Exercice 4 == |
Écrire la fonction main qui prend en paramètre une chaîne de caractères ''name'' et qui utilise les fonctions précédentes pour retourner: | Écrire la fonction main qui prend en paramètre une chaîne de caractères ''name'' et qui utilise les fonctions précédentes pour retourner: | ||
* l'index de la chaîne ''name''; | * l'index de la chaîne ''name''; | ||
* la phrase suivante ''La chaîne n'existe pas''. | * la phrase suivante ''La chaîne n'existe pas''. |
Version du 29 avril 2014 à 21:07
Introduction
En algorithmique, la recherche dichotomique relève du principe diviser pour régner qui est ici pris au pied de la lettre puisque l'intervalle de recherche est divisé en deux sous-intervalles de même taille.
À chaque étape de l'algorithme, on calcule le milieu m de l'intervalle de recherche et on compare la valeur avec la valeur au milieu du tableau.
Au départ . Trois situations se présentent :
- : la recherche est terminée.
- : il faut poursuivre la recherche dans la moitié gauche de l'intervalle .
- : il faut poursuivre la recherche dans la moitié droite de l'intervalle .
Dans les deux derniers cas, la recherche continue avec le même procédé, on divise à nouveau l'intervalle en deux moitiés et ainsi de suite jusqu'à ce que l'intervalle de recherche soit réduit à un seul terme.
L'algorithme est la stricte application de ce principe.
Application
Soit T un tableau de noms:
var T = new Array("Alain","Antoine", "Bernard", "Colin", "Christine","François", "Guy","Gérard", "Léa","Léon","Louis","Nathalie","Serge","Sylvie","Sylvain","Vincent");
Exercice 1
Écrire la fonction compare_char qui prend en paramètres deux caractères a et b et qui renvoie:
- une valeur négative si a < b;
- 0 si a == b;
- une valeur positive si a > b;
Exercice 2
Écrire la fonction compare_string qui prend en paramètres deux chaînes de caractères x et y et qui renvoie:
- une valeur négative si a < b;
- 0 si a == b;
- une valeur positive si a > b;
Cette fonction doit comparer chacune des lettres des deux chaînes tant qu'il y a égalité !
Pour cela, vous pouvez vous aider de la fonction String.charAt(num) dont voici la documentation:
Syntax string.charAt(num) The charAt() method returns the character located at the indexed, num, position passed. This indexing is done from left to right starting with the 0 (zero) position. If the num passed is not a valid index in the string, -1 is returned.
Exercice 3
Écrire la fonction get_half qui prend en paramètres le tableau T ainsi qu'une chaîne de caractères, x. Cette fonction renvoie un tableau qui correspond à la moitié du tableau T où se trouverait la valeur x.
Exercice 4
Écrire la fonction main qui prend en paramètre une chaîne de caractères name et qui utilise les fonctions précédentes pour retourner:
- l'index de la chaîne name;
- la phrase suivante La chaîne n'existe pas.