La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Algorithmes sur Open Office

Présentations similaires


Présentation au sujet: "Algorithmes sur Open Office"— Transcription de la présentation:

1 Algorithmes sur Open Office

2 1. Ouvrir Visual Basic de Open Office

3 Ouvrir un module Visual Basic (1/3)
1) Ouvrir Open Office, créer un classeur nommé « algo » (Enregistrer sous…) 2) Faire « Outils/Macros/Gérer les macros/OpenOffice Basic »

4 Ouvrir un module Visual Basic (2/3)
3) Sélectionner votre classeur (ici « algo ») 4) Cliquer sur « Nouveau » et valider « Module1 » par OK

5 Ouvrir un module Visual Basic (3/3)
La fenêtre Visual Basic s’ouvre et est présente dans la barre des tâches. Les fonctions et procédures seront créées dans ce module.

6 2. Créer une fonction dans Visual Basic de Open Office

7 Créer une fonction en Visual Basic (1/3): la fonction
On veut créer une fonction qui s’appelle « signal »: signal est périodique, de période 2; la représentation graphique de signal est ci-dessous: sur [-1 ; 0], signal(x) = x et sur ]0 ; 1], signal(x) = 1 – x.

8 Créer une fonction en Visual Basic (2/3): création de la fonction
On créé une fonction d’une ou plusieurs variable par Function nom(x,y,z..) A la fin de l’algorithme, il y nécessairement End Function Les commentaires sont précédés d’une apostrophe. VB gère les « for.. Next » et les « Do ..loop » avec while ou until. Avant le « End function », il faut donner la valeur de l’image de x par la fonction signal par « signal =… »

9 Créer une fonction en Visual Basic (3/3): utilisation dans le tableur
Maintenant on peut utiliser la nouvelle fonction comme une fonction normale du tableur.

10 Cas d’une fonction récursive

11 Créer une fonction récursive en Visual Basic : Factoriel
On veut créer la fonction n  n! qu’on appelle « fiel » (avec n entier naturel). On utilise la définition récurrente: fiel(0)=1 et pour tout n > 0, fiel(n) = n*fiel(n-1)

12 3. Créer une procédure dans Visual Basic de Open Office

13 Créer une procédure en Visual Basic (1/5): La procédure
On veut tirer au sort 5 noms d’élèves d’une liste de 35 noms. 1) Nommer une nouvelle feuille du classeur « procedure » 2) Créer une liste de 35 noms dans la colonne A (par exemple ELEVE1 dans A1, puis « tirer »

14 Créer une procédure en Visual Basic (2/5): Créer la procédure
Retourner dans le module visual basic. On créé la procédure appelée « tirage » par Sub tirage … End sub. Il suffit de mettre ce qu’il faut entre Sub et end sub!!!

15 Créer une procédure en Visual Basic (3/5): Créer un bouton sur le tableur
Pour lancer la procédure depuis le tableur, on peut créer un bouton qui, lorsqu’on cliquera dessus, lancera la procédure: 1) Afficher la barre d’outil « contrôle » dans affichage/barre d’outils/contrôle de formulaire 2) Créer un bouton à l’aide de l’outil bouton et cliquer/glisser Doit être enfoncé: Activation du mode conception Créé un bouton

16 Créer une procédure en Visual Basic (4/5): Créer un bouton sur le tableur
3) Afficher le « contrôle » du bouton (clic droit sur le bouton, contrôle) 4) Dans l’onglet « général », mettre le titre: tirage de 5 élèves

17 Créer une procédure en Visual Basic (5/5): Créer un bouton sur le tableur
5) Dans l’onglet « Evènements », associer le clic sur le bouton à la macro « tirage »: 6) Valider deux fois par OK puis désactiver le mode conception du bouton 7) Maintenant, quand on clique sur le bouton, la procédure se lance et 5 élèves sont désignés…. Normalement!

18 4. Réouverture d’un classeur contenant des procédures

19 Réouverture d’un classeur contenant des procédures (1/2)
Quand on ouvre un classeur contenant des macros (procédures visual basic), souvent ces macros sont « désactivées » et donc ne fonctionnent pas. Pour les activer: Outils/option OpenOffice.org/sécurité Sécurité des macros : Niveau de sécurité faible

20 Réouverture d’un classeur contenant des procédures (2/2)
Pour retourner sur visual basic: ALT F11 puis choisir votre module du classeur

21 5. Travail à faire…

22 Travail (1/3): créer une fonction
Exercice 1: En s’inspirant de la fonction signal: 1) Créer une fonction « chaine » périodique de période 4 telle que: sur [-1;1], chaine(x) = x² sur [-2;-1[, chaine(x) = x+2 sur ]1;2[, chaine(x) = 2-x 2) Tracer la représentation graphique de cette fonction sur [-8;8] dans le tableur.

23 Travail (2/3): créer une fonction récursive
Exercice 2: En s’inspirant de la fonction fiel: Créer la suite de fibonnaci : U0 = 1, U1 = 1 et pour tout entier n >1, Un = Un-1 + Un-2 à l’aide d’une fonction récursive appelée « suite »

24 Faire tourner l’algorithme
Travail (3/3): créer une fonction récursive Exercice 3: Modifier la procédure « tirage » de sorte à ce que les noms d’élèves tirés soit en ordre alphabétiques (c’est-à-dire que les nombres choisis doivent être en ordre croissant). On pourra utiliser l’algorithme de tri suivant: Variables: n: nombre de nombres à trier a: matrice des nombres à trier j: entier Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme Faire tourner l’algorithme

25 Réponses

26 Réponses (1/3): créer une fonction
Exercice 1: En s’inspirant de la fonction signal: 1) Créer une fonction « chaine » périodique de période 4 telle que: sur [-2;-1[, chaine(x) = x+2 sur [-1;1], chaine(x) = x² sur ]1;2[, chaine(x) = 2-x 2) Tracer la représentation graphique de cette fonction sur [-8;8] dans le tableur.

27 Réponses (2/3): créer une fonction récursive
Exercice 2: En s’inspirant de la fonction fiel: Créer la suite de fibonnaci : U0 = 1, U1 = 1 et pour tout entier n >1, Un = Un-1 + Un-2 à l’aide d’une fonction récursive appelée « suite »

28 Réponses (3/3): créer une fonction récursive
Exercice 3: Modifier la procédure « tirage » de sorte à ce que les noms d’élèves tirés soit en ordre alphabétiques (c’est-à-dire que les nombres choisis doivent être en ordre croissant). On pourra utiliser l’algorithme de tri suivant: Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme

29 Quelques fonctions et méthodes sur Visual Basic dans Open Office

30 Quelques fonctions importantes sur Visual basic de Open office
Mathématiques: sin, cos, tan, atan : sinus, cosinus, tangente, arc tangente exp, log : exponentiel et logarithme népérien sqr, ^, rnd : racine carrée, puissance, aléa de ]0;1[ int, abs, sgn : partie entière, valeur absolue, signe (renvoie -1,0,1 suivant le signe) +, *, -, /, mod : opérations habituelles et modulo (reste de la division euclidienne) Textes: str, val : convertit un nombre en chaîne de caractère, et inversement str(3,5) est la chaîne « 3,5 », val(« 3,5 ») est le nombre 3,5. left(« texte »,n) , right(« texte »,n) : renvoie les n caractère de gauche (droite) du « texte » left(« MATHEMATIQUES »,3) est égal à « MAT » mid(« texte »,n,p) : renvoie la partie du texte à partir du nième caractère et de longueur p « texte1 » & « texte2 » : concatène les deux textes len : donne la longueur d’un texte

31 3 méthodes importantes sur Visual basic de Open office
Chercher et mettre des informations dans une feuille du classeur: truc = thisComponent.getSheets.getByName(« machin ») : place dans la variable truc « l’objet » feuille appelée machin du classeur dans lequel est la procédure. truc.getCellByPosition(col,lig).string : est le texte contenue dans la cellule repérée par la colonne col et ligne lig de la feuille désignée par truc (cf au-dessus). Par exemple: si dans la feuille appelée machin du classeur la cellule B3 contient le texte « chien », A = truc.getCellByPosition(1,2).string met dans la variable A le mot « chien » truc.getCellByPosition(1,2).string = « chat » met le mot « chat » dans la cellule B3 Attention: La colonne A correspond à la colonne 0, la colonne B correspond à la colonne 1… La ligne 1 du classeur correspond à la ligne 0 de visual basic truc.getCellByPosition(col,lig).value : est le nombre contenu dans la cellule repérée par la colonne col et ligne lig de la feuille désignée par truc. Cela marche comme précédemment: on peut récupérer un nombre d’une cellule ou bien mettre un nombre dans une cellule

32 FIN

33 L’algorithme de tri

34 Algorithme de tri: on le fait « tourner »
On suppose que a(1)=7, a(2)=4, a(3)=3, n=3. Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 7 4

35 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4

36 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 j=1, n=3 Condition réalisée

37 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 j=1 a(j+1)=a(2)=4 a(j)=a(1)=7 Condition réalisée

38 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4

39 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 j=1 Condition non réalisée

40 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4

41 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2

42 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2 j=2, n=3 Condition réalisée

43 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2 a(j+1)=a(3)=3 a(j)=a(2)=7 Condition réalisée

44 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2

45 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2 j=2 Condition réalisée

46 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2

47 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2

48 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2

49 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2 j=1, n=3 Condition réalisée

50 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2 j=1, a(j+1)=a(2)=3 a(j)=a(1)=4 Condition réalisée

51 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2

52 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2 j=1, Condition non réalisée

53 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2

54 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2

55 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2 j=2, n=3 Condition réalisée

56 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2 j=2 a(j+1)=a(3)=7 a(j)=a(2)=4 Condition non réalisée

57 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2

58 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2 j=3, n=3 Condition non réalisée

59 Algorithme de tri: on le fait « tourner »
Début algorithme de tri 1j Répéter tant que j < n si a(j+1) < a(j) alors a(j)  a(j+1) si j >1 alors j-2  j fin du si fin du si j+1  j fin du répéter Fin algorithme n j a(1) a(2) a(3) 3 1 7 4 2 Retour Les nombres a(j) sont triés


Télécharger ppt "Algorithmes sur Open Office"

Présentations similaires


Annonces Google