Correction du TD n°4

Exercice 1

Ecrire un algorithme qui calcule le produit scalaire de deux vecteurs (représentés comme des tableaux).

001 { Calcul du produit scalaire de 2 vecteurs }
002 { materialises par des tableaux de reels }
003
004 fonction nombreOccurences(t1,t2) : reel
005 Donnees t1 : tableau [N] de reel { premier tableau de reels }
006 t2 : tableau [N] de reel { second tableau de reels }
007 Locales i : entier { variable indice de boucle pour }
008 ps : reel { variable cumul resultat }
009 ps := 0.0
010 pour i de 0 à N-1 faire
011 ps := ps + t1[i]*t2(i]
012 fait
013 Resultat : ps
014 fin action

ProduitScalaire.lda

Exercice 2

Soient deux tableaux d'entiers. Ecrire un algorithme qui permet de tester l'égalité entre les deux tableaux : il rend VRAI si les composants des deux tableaux correspondent position par position, et FAUX sinon.

001 { Test de l'egalite de deux tableaux }
002 { d'entiers position pour position }
003
004 fonction testEgaliteTableaux(t1,t2) : booleen
005 Donnees t1 : tableau [N] de entier { premier tableau d'entiers }
006 t2 : tableau [N] de entier { second tableau d'entiers }
007 Locales i : entier { variable indice de boucle tant que }
008 res : booleen { variable booleenne resultat }
009 res := vrai
010 i := 0
011 tant que res et (i < N) faire
012 si t1[i] <> t2[i] alors
013 res := faux
014 sinon
015 i := i+1
016 fsi
017 fait
018 Resultat : res
019 fin fonction

TestEgaliteTableaux.lda

TestEgaliteTableaux.java

Exercice 3

Ecrire un algorithme qui recherche le nombre d'occurrences d'un entier dans un tableau d'entiers.

001 { Calcul du nombre d'occurences d'un entier }
002 { dans un tableau d'entiers }
003
004 fonction nombreOccurences(t,v) : entier
005 Donnees t : tableau [N] de entier { tableau d'entiers ou rechercher }
006 v : entier { entier recherche }
007 Locales i : entier { variable indice de boucle pour }
008 cpt : entier { variable compteur resultat }
009 cpt := 0
010 pour i de 0 à N-1 faire
011 si t[i] = v alors
012 cpt := cpt+1
013 fsi
014 fait
015 Resultat : cpt
016 fin fonction

NombreOccurrences.lda

NombreOccurrences.java

Exercice 4

Ecrire un algorithme qui inverse l'ordre d'apparition des nombres présents dans un tableau d'entiers.

001 { Inversion d'un tableau d'entiers }
002
003 action inversionTableau(t)
004 Donnees / Resultat t : tableau [N] de entier { tableau d'entiers inverse }
005 Locales i : entier { variable indice de boucle }
006 aux : entier { variable auxiliaire }
007 pour i de 0 à N/2-1 faire
008 aux := t[i]
009 t[i] := t[N-1-i]
010 t[N-1-i] := aux
011 fait
012 fin action

InversionTableau.lda

Auteur: Nicolas JANEY
UFR Sciences et Techniques
Université de Besançon
16 Route de Gray, 25030 Besançon
nicolas.janey@univ-fcomte.fr