You are on page 1of 5

INFO 13GE

Liste de problmes types


1 Ajoutez la classe C la mthode calculateGcd calculant et retournant le PGCD de deux nombres entiers (paramtres ou attributs). Le calcul se fait par recherche linaire, mais les algorithmes d'Euclide sont aussi accepts.

2 Mglichkeiten : public class C { public int calculateGcd(int nbr1, int nbr2) { if(nbr1==nbr2) return nbr1; int max = Math.max(nbr1,nbr2); int min = Math.min(nbr1,nbr2); int reste = max%min; while (reste != 0) { max=min; min=reste; reste=max%min; } return min; } } public class C { public int calculateGcd(int nbr1, int nbr2) { if(nbr1==nbr2) return nbr1; int max = Math.max(nbr1,nbr2); int min = Math.min(nbr1,nbr2); while (min != 0) { if (max > min) { max -= min; } else { min -= max; } } return max; } } Wenn die Methoden der Klasse Math nicht benutzt werden drfen muss man das Maximum und Minimum durch eine if-Schleife herausgeben. Bsp.: int max=nbr1; int min=nbr2; if(nbr2>nbr1) { max =nbr2; min=nbr1;
}

Lacitignola Giuseppe 1

INFO 13GE
2 Ajoutez la classe C la mthode isPrime qui indique si un nombre entier (paramtre ou attribut) est un nombre premier ou non. public class C { public boolean isPrime(int nbr){ int diviseurs =0; for(int i =1;i<nbr+1;i++){ if(nbr%i ==0) diviseurs ++; } if(diviseurs==2) return true; return false; } } 3 Gnration d'une suite de nombres alatoires entiers d'un intervalle donne. Les nombres peuvent tre affichs l'cran, incorpors dans un calcul ou stocks dans une liste.

public class C { private ArrayList<Integer> list = new ArrayList<Integer>(); public void getRandomList(int pN, int pMin, int pMax){ for(int i=0; i<pN; i++){ int randomNumber = (int)(Math.random()*(pMax-pMin+1)+pMin); list.add(randomNumber); } } } !! import java.util.ArrayList;
4 La classe C possde un attribut du type ArrayList<K>. Ajoutez la classe C la mthode public int find(<?> pNeedle) qui recherche dans cette liste la position d'un lment dont un attribut donn a la valeur pNeedle. La mthode retourne la position de la premire occurrence correspondant au critre de recherche. Si aucun lment n'est trouv, la valeur -1 est retourne.

public class C { public ArrayList<Person> list = new ArrayList<Person>(); public int find(<?> pNeedle){ for(int i=0; i<list.size();i++){ if(pNeedle == list.get(i).get<?>() ) return i; } return -1; } } !! import java.util.ArrayList; Wenn es sich bei <?> um String handelt muss man das Doppel-ist-gleich in der if-Schleife durch die Methode .equals(..) ersetzen.

Lacitignola Giuseppe 2

INFO 13GE

5 La classe C possde un attribut du type ArrayList<K>. Ajoutez la classe C la mthode sort() qui trie cette liste l'aide de l'algorithme de tri par slection directe suivant la valeur d'un attribut donn (Integer, Double, String).

public class C{ private ArrayList<K> list = new ArrayList<K>(); public void sort (){ int minIndex; for (int i=0; i<list.size()-1; i++) { int j; minIndex = i; for (j=i+1; j<list.size(); j++){ if (list.get(j).get<?>()<list.get(minIndex).get<?>()){ minIndex = j; } } if (minIndex != i) { K temp = list.get(i); list.set(i, list.get(minIndex)); list.set(minIndex, temp); } } } } !! import java.util.ArrayList; .get<?>() ist eine Methode der Klasse K, diese gibt das Attribut der Klasse welches verglichen werden soll raus. Wenn es sich bei <?> um String handelt muss man das kleiner-als-Zeichen in der if-Schleife durch die Methode .compareTo(..) ersetzen.

Lacitignola Giuseppe 3

INFO 13GE
6 Calculez le minimum, le maximum, la somme et/ou la moyenne d'attributs numriques d'objets contenus dans une liste.

public class C { private ArrayList<TYP> list = new ArrayList<TYP>(); public TYP getMin(){ TYP min = list.get(0); for(int i=0;i<list.size();i++){ if(list.get(i)<min) min=list.get(i); } return min; } public TYP getMax(){ TYP max = list.get(0); for(int i=0;i<list.size();i++){ if(list.get(i)>max) max=list.get(i); } return max; } public TYP getSum(){ TYP sum=0; for(int i=0;i<list.size();i++){ sum+=list.get(i); } return sum; } public double getAverage(){ TYP sum=0; for(int i=0;i<list.size();i++){ sum+=list.get(i); } return (double)sum/list.size(); } } !! import java.util.ArrayList;

TYP steht fr einen beliebigen numerischen Datentyp (Integer,Double,Float,Long,Short,Byte).

Lacitignola Giuseppe 4

INFO 13GE
7 Soit la classe Polynomial reprsentant un polynme et contenant une liste dont l'lment la position N reprsente le coefficient du terme XN. Implmentez la mthode evaluate permettant d'valuer le polynme pour une certaine valeur donne. Le calcul se fait suivant la mthode dite nave , mais la mthode de Horner est aussi accepte.

public class Polynomial{ private ArrayList<Double> coefficients = new ArrayList<Double>(); public double evaluate(double pX) { double p = 0; for(int i = coefficients.size()-1; i>=0 ; i--) { p = p * pX + coefficients.get(i); } return p; } } !! import java.util.ArrayList; Diese Methode verfhrt nach der Horner -Methode.

Lacitignola Giuseppe 5

You might also like