Série 2.Exercice 1 : nombres premiers La méthode la plus simple pour tester la primauté d’un nombre N est de tester sa divisibilité par 2 puis par tous les entiers compris entre 3 et [√N] = E(√N) 5 37 13 [4,564] = E(4,564) [0.0035] = E(0.0035) = 0 Although most of the UNL infrastructure and architecture has been already researched and designed, it is still at an early stage of applications development. One of the goals to be reached during the UNL application development process is how to represent the distribution of a same textual content in different languages, taking into account all the elements of a Graphical User Interface (GUI). For those who are used to deal with GUI for standard web pages to start working with Adaptive User Interfaces (AUI) in different cultures and languages environment becomes a huge step. 1
Nombres premiers / Algorithme lire N; Boolean EstPremier(N)= {Si N<2 alors retourne(faux) sinon si (N=2) alors retourne(vrai) sinon si (N modulo(2)=0) alors retourne(faux) sinon {i ← 3; tant que (i2 <=N) faire {si (N modulo(i)=0) alors retourne(faux) ; i ← i+2;} Retourne (vrai);} } Pour un entier N donné, Si N <2, N n’est pas premier Si N=2; N est premier Si N est divisible par un entier D tel que 2 <D< = [√N] alors N n’est pas premier, sinon il l’est
Rappels Java
Rappels Java les tableaux Tableau = objet Taille fixe Taille variable quel choix? possibilité de stocker des types de base (int, char, boolean, long, short, …) ou des objets int[ ] tableau1 = new int[45]; (Éléments numéroté de 0 à 44) monObjet[] tab_objets = new monObjet[50]; Int[ ] tableauInit = {1, 40, 54, 13, 5}; boolean[] tabBooleans = {true, true, false, true}; Tableau anonyme : new char[ ] {‘c’, ‘q’, ‘e’, ‘v’};
Rappels Java Les tableaux en Java Possibilité de récupérer un tableau en tant que résultats Public static char[] getVoyels(); Possibilité de passer un tableau en argument Public static void main(String[] argv); Opérations sur les tableaux: affectation d'une valeur à une case int[] tableau1 = new int[5]; tab[3] = "salut"; Copie: int[] tab1=new int[10]; int[] tab2=tab1; Tab2[4]=3; // alors tab1[4] vaux maintenant 3. Longeur d’un tableau int longueur = tableau1.length;
Rappels Java la classe Arrays Cette classe contient diverses méthodes pour manipuler des tableaux fill : affecte la même valeur à toutes les cases du tableau: public class Array_demo{ public static void main(String[] args){ int[] tableau = new int[20]; Arrays.fill(tableau, (int)(Math.random()*100)); //remplit toutes les cases avec le MÊME nombre for(int i = 0; i < tableau.length; i++){ System.out.println(tableau[i]); } …
Rappels Java la classe Arrays Arrays.equals(tableau1, tableau2); equals : égalité profonde: Arrays.equals(tableau1, tableau2); equals() retourne vrai si : - les deux tableaux sont de la même taille - les deux tableaux contiennent le même type d'éléments - les paires d'éléments correspondent tableau1[i]=tableau2[i] sort : pour trier un tableau Arrays.sort(tableau); binarySearch : recherche d'un élément Arrays.binarySearch(tableau, 17); retourne l'index de l'élément recherché sinon une valeur négative sinon. Le tableau doit avoir été trié au préalable (avec Arrays.sort())
Rappels Java la classe Arrays import java.util.Random; import java.util.Arrays; public class RandomTab{ public static void main(String[] args){ int[] tableau = new int[20]; for(int i = 0; i < tableau.length; i++){ tableau[i] = (int)(Math.random()*100); } Arrays.sort(tableau); System.out.println(tableau[i]);
Autre utilitaire pour les tableaux Rappels Java Autre utilitaire pour les tableaux System.arraycopy(Object from, int fromIndex, Object to, int toIndex, int count); : copier un tableau (ou une partie) public class CopieTableau { public static void main(String[] args) { char[] source = { 'a', 'r', 't', 'i', 'f', 'i', 'c', 'i', 'e', 'l', 'l', 'e' }; char[] cible = new char[4]; System.arraycopy(source, 6, cible, 0, 4); System.out.println(new String(cible)); } → ciel
Autre utilitaire pour tableaux Rappels Java Autre utilitaire pour tableaux System.sort(short[] a); trie le tableau passé en paramètre en utilisant un algorithme QuickSort adapté. System.binarySearch(long[] l, long v); recherche la valeur v dans le tableau l et renvoie son indice ou une valeur négative r, (-r+1) désigne la position ou v pourrait s’insérer pour que le tableau reste trié
Autre utilitaire pour tableaux Rappels Java Autre utilitaire pour tableaux System.fill(char[] t, char c); donne la valeur c à tous les éléments de t System.equals(xxx[] t, Object other); Renvoie true si Other est un tableau du même type que t Other a le même taille que la taille de t Les éléments correspondants possèdent la même valeur.
Les tableaux multidimensionnels Rappels Java Les tableaux multidimensionnels Plusieurs applications double[][] matrice = new double[5][7]; Mais Java ne possède pas de tableaux multidimensionnels!! tableaux de tableaux Int[][] naissances={{1,2,1985}, {30,4,1976}, {29,12,1999},{20,8,1975},{27,2,1976}}; Donc naissance[1] vaux {30,4.1976} Possibilité de créer des tableaux irréguliers
Exercices / Série 3
série n°3 Exercice 1 On va jouer pour deviner un nombre inférieur à 120 Nombre d'essaies : 6 ça y est, j'ai choisi un nombre au hasard. Taper le nombre que vous avez deviné: 45 trop grand :) il vous reste 5 essaie(s) 32 trop petit :) il vous reste 4 essaie(s) 39 trop grand :) il vous reste 3 essaie(s) Although most of the UNL infrastructure and architecture has been already researched and designed, it is still at an early stage of applications development. One of the goals to be reached during the UNL application development process is how to represent the distribution of a same textual content in different languages, taking into account all the elements of a Graphical User Interface (GUI). For those who are used to deal with GUI for standard web pages to start working with Adaptive User Interfaces (AUI) in different cultures and languages environment becomes a huge step. 1
série n°3 Exercice 1 1 … 15 trop petit :) il vous reste 1 essaie(s) Taper le nombre que vous avez deviné: 18 trop petit :) il vous reste 0 essaie(s). Désolé, vous n‘avez pas réussi à trouver le nombre mystérieux Voulez – vous rejouer (O/N) ? Although most of the UNL infrastructure and architecture has been already researched and designed, it is still at an early stage of applications development. One of the goals to be reached during the UNL application development process is how to represent the distribution of a same textual content in different languages, taking into account all the elements of a Graphical User Interface (GUI). For those who are used to deal with GUI for standard web pages to start working with Adaptive User Interfaces (AUI) in different cultures and languages environment becomes a huge step. 1
série n°3 Exercice 2 > Géstion d’agenda. Tapez A pour ajouter un rendes-vous ou V pour afficher des rendez-vous. Votre choix ?: A Quelle date, jj/mm ?: 14/03 RDV ?: Anniversaire Michelle. Ok > Tapez ‘a’ pour ajouter un rendes-vous, ‘v’ pour afficher des rendez-vous ou ‘q’ pour quitter. Although most of the UNL infrastructure and architecture has been already researched and designed, it is still at an early stage of applications development. One of the goals to be reached during the UNL application development process is how to represent the distribution of a same textual content in different languages, taking into account all the elements of a Graphical User Interface (GUI). For those who are used to deal with GUI for standard web pages to start working with Adaptive User Interfaces (AUI) in different cultures and languages environment becomes a huge step. 1
série n°3 Exercice 2 v Quelle date, jj/mm ?: 14/03 RDV(s) : - Anniversaire Michelle. > Tapez ‘a’ pour ajouter un rendes-vous, ‘v’ pour afficher des rendez-vous ou ‘q’ pour quitter. Votre choix ?: q