Compare commits

..

1 Commits

Author SHA1 Message Date
7fac0b5f63 Correction palindrome 2019-06-16 16:12:37 +02:00
12 changed files with 14 additions and 295 deletions

View File

@ -1,22 +0,0 @@
import static utils.Utils.*;
public class Accents {
private static final String TEST =
"Avec la mer du Nord pour dernier terrain vague,\n"+
"Et des vagues de dunes pour arrêter les vagues,\n"+
"Et de vagues rochers que les marées dépassent,\n"+
"Et qui ont à jamais le coeur à marée basse.\n"+
"Avec infiniment de brumes à venir\n"+
"Avec le vent d'ouest écoutez le tenir\n"+
"Le plat pays qui est le mien.\n";
public static final void main(String[] args) {
afficher("Accents");
char[] test = TEST.toCharArray();
afficher(String.valueOf(test));
}
}

View File

@ -1,38 +0,0 @@
import static utils.Utils.*;
public class Analyse1 {
public static final void main(String[] args) {
afficher("Analyse 1");
int[] tab1 = new int[] { 12, 0, 5, 21 };
afficher("tab1:");
maFonction(tab1);
int[] tab2 = new int[] { 81, 13, 100, 4 };
afficher("tab2:");
maFonction(tab2);
}
public static void maFonction(int[] tab){
int m1 = 0;
int m2 = 0;
for (int i = 0; i < tab.length; i++) {
int n = tab[i];
if (m1 < n) {
m2 = m1;
m1 = n;
} else if (m2 < n) {
m2 = n;
}
}
afficher(m1);
afficher(m2);
}
}

View File

@ -351,28 +351,3 @@ Certains langages sont dédiés à la manipulation de données (lecture, créati
D'autres langages sont utilisés pour la création de documents (HTML) ou la mise en page (CSS). D'autres langages sont utilisés pour la création de documents (HTML) ou la mise en page (CSS).
Certains langages sont dit "embarqués", car ils ne sont pas exécutés directement sur le processeur mais au sein d'un autre logiciel (par exemple javascript dans un navigateur). Certains langages sont dit "embarqués", car ils ne sont pas exécutés directement sur le processeur mais au sein d'un autre logiciel (par exemple javascript dans un navigateur).
# Cours java
Sommaire: https://www.jmdoudoux.fr/java/dej/index.htm
Chapitres essentiels
* https://www.jmdoudoux.fr/java/dej/chap-presentation.htm 1.1
* https://www.jmdoudoux.fr/java/dej/chap-techniques-base.htm 2.1 (voir plus tard)
* https://www.jmdoudoux.fr/java/dej/chap-syntaxe.htm parcourir rapidement, revenir pour les détails
* https://www.jmdoudoux.fr/java/dej/chap-poo.htm gros morceau objet, voir en plusieurs fois, avec exercices
* https://www.jmdoudoux.fr/java/dej/chap-packages-base.htm packages de bases, filtrer les classes utiles
* https://www.jmdoudoux.fr/java/dej/chap-math.htm maths, pas indispensable
* https://www.jmdoudoux.fr/java/dej/chap-exceptions.htm exceptions, important
* https://www.jmdoudoux.fr/java/dej/chap-jdk1.5.htm spécificités java 5, voir rapidement, revenir après collections
* https://www.jmdoudoux.fr/java/dej/chap-annotations.htm voir plus tard
* https://www.jmdoudoux.fr/java/dej/chap-java7.htm specificités java 7, voir rapidement
* https://www.jmdoudoux.fr/java/dej/chap-lambdas.htm voir plus tard
* https://www.jmdoudoux.fr/java/dej/chap-collections.htm collections
Autres sujets:
* https://www.jmdoudoux.fr/java/dej/chap-normes-dev.htm normes de développement, utile à connaître
* https://www.jmdoudoux.fr/java/dej/chap-utilisation_dates.htm dates, voir surtout la nouvelle API
* https://www.jmdoudoux.fr/java/dej/partie15.htm tests unitaires, voir principalement Junit4/5

View File

@ -135,57 +135,16 @@ Exemple:
## Exercice 9 ## Exercice 9
Que fait maFonction dans Analyse1.java?
## Exercice 10
Afficher la suite de Fibonacci.
Il sagit dune suite de nombres dans laquelle tout nombre (à partir du troisième) est égal à la somme des deux précédents:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,…
Écrire ensuite une solution avec une fonction récursive.
=> Fibonacci.java
## Exercice 11
Convertir un nombre romain en entier (avec "chiffre" romains I, V et X).
=> Romain.java
## Exercice 12
Remplacer tous les caractères accentués par caractères non accentués.
=> Accents.java
## Exercice 13
Chiffre de César: Chiffre de César:
Le texte chiffré s'obtient en remplaçant chaque lettre du texte clair original par une lettre à distance fixe, toujours du même côté, dans l'ordre de l'alphabet. Pour les dernières lettres (dans le cas d'un décalage à droite), on reprend au début. Par exemple avec un décalage de 3 vers la droite, A est remplacé par D, B devient E, et ainsi jusqu'à W qui devient Z, puis X devient A etc. Le texte chiffré s'obtient en remplaçant chaque lettre du texte clair original par une lettre à distance fixe, toujours du même côté, dans l'ordre de l'alphabet. Pour les dernières lettres (dans le cas d'un décalage à droite), on reprend au début. Par exemple avec un décalage de 3 vers la droite, A est remplacé par D, B devient E, et ainsi jusqu'à W qui devient Z, puis X devient A etc.
=> CesarChiffre.java CesarDechiffre.java => CesarChiffre.java CesarDechiffre.java
## Exercice 14 ## Exercice 10
Tester si un mot est un palindrome. Un palindrome est un mot qui peut se lire dans les 2 sens: été, ici, colloc Tester si un mot est un palindrome. Un palindrome est un mot qui peut se lire dans les 2 sens: été, ici, colloc
## Exercice 15
Vérification ISBN à 13 caractères:
Retirer les tirets, ajouter tous les chiffres en multipliant successivement par 1 puis 3. Le résultat doit être un multiple de 10.
Exemple:
978-2-3793-1012-6
9x1 + 7x3 + 8x1 + 2x3 + 3x1 + 7x3 + 9x1 + 3x3 + 1x1 + 0x3 + 1x1 + 2x3 + 6x1 = 100
=> Isbn.java
# Idées # Idées
* Chiffrement de César * Chiffrement de César

View File

@ -1,43 +0,0 @@
# Exercices java
## Bases classe/objet
### Bonjour
* Créer un programme java qui affiche "Bonjour", appeler la classe principale `Application`.
### Classe et objet
* Créer une classe `Personne` vide. Créer un objet de cette classe dans la classe `Application`.
### Constructeur
* Ajouter un constructeur à la classe `Personne`, et lui faire afficher "Constructeur!".
### Constructeurs multiples
* Ajouter un autre constructeur à la classe `Personne`, prenant en paramètre une chaine de caractères `nom`.
* Faire afficher le paramètre `nom` par le constructeur.
* Modifier la classe `Application` pour utiliser ce constructeur.
### Variable d'instance
* Ajouter à la classe `Personne` une variable d'instance `nom`.
* Dans le second constructeur, valoriser la variable d'instance avec le paramètre, et supprimer l'affichage.
### Méthodes
* Ajouter à la classe `Personne` une méthode `ecrireNom`, qui affiche `Mon nom est ` puis la valeur de la variable d'instance `nom`.
* Appeler cette méthode depuis `Application`.
### Getters/setters
* Ajouter à la classe `Personne` les getter/setter pour l'attribut `nom`.
* Modifier la classe `Application` pour changer le nom, avant l'appel à `ecrireNom`.
### Composition
* Créer une classe `Cerveau`.
* Ajouter un constructeur à cette classe qui affiche "Réflexion...".
* Ajouter un attribut `cerveau` de type `Cerveau` à la classe `Personne`.
* Initialiser cet attribut dans le constructeur avec `nom`.

View File

@ -1,37 +0,0 @@
import static utils.Utils.*;
public class Fibonacci {
public static final void main(String[] args) {
afficher("Fibonacci");
/*
int valeurPrecedente=0;
int valeur = 1;
afficher(valeurPrecedente);
while (valeur<=100){
afficher(valeur);
int nouvelleValeur = valeur+valeurPrecedente;
valeurPrecedente=valeur;
valeur=nouvelleValeur;
}
*/
afficher(0);
calculer(0, 1);
}
public static final void calculer(int valeurPrecedente,int valeur){
if (valeur<=100){
afficher(valeur);
int nouvelleValeur=valeur+valeurPrecedente;
calculer(valeur,nouvelleValeur);
}
}
}

View File

@ -4,22 +4,6 @@ public class FizzBuzz {
public static final void main(String[] args) { public static final void main(String[] args) {
for (int a=1; a<=199; a++){
if (a%3==0){
if (a%5==0) {
afficher("FizzBuzz");
} else {
afficher("Fizz");
}
} else{
if (a%5==0){
afficher("Buzz");
} else{
afficher(a);
}
}
}
} }
} }

View File

@ -1,12 +0,0 @@
import static utils.Utils.*;
public class Isbn {
public static final void main(String[] args) {
afficher("ISBN");
// exemple: 978-2-3793-1012-6
}
}

View File

@ -7,7 +7,14 @@ public class Palindrome {
} }
private static final boolean estPalindrome(char[] mot) { private static final boolean estPalindrome(char[] mot) {
return false; for (int i=0; i < mot.length/2; i++) {
char c1 = mot[i];
char c2 = mot[mot.length -i-1];
if (c1 != c2) {
return false;
}
}
return true;
} }
} }

View File

@ -1,15 +0,0 @@
import static utils.Utils.*;
public class Romain {
public static final void main(String[] args) {
afficher("Conversion nombre romains (I à X)");
testRomains(Romain::convertirEnDecimal);
}
public static int convertirEnDecimal(char[] romain) {
return 0;
}
}

View File

@ -9,20 +9,7 @@ public class Somme2 {
} }
public static final int somme2(int n, int p) { public static final int somme2(int n, int p) {
return 0;
if (n<=p){ }
int r=0;
for (int q=n; q<=p; q++){
r=r+q;
}
return r;
}
else {
return somme2(p,n);
}
}
} }

View File

@ -1,6 +1,5 @@
package utils; package utils;
import java.util.Map;
import java.util.List; import java.util.List;
import java.util.Arrays; import java.util.Arrays;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -10,19 +9,6 @@ import java.util.function.BiFunction;
public class Utils { public class Utils {
public static Map<String, Integer> ROMAINS = Map.of(
"I", 1,
"II", 2,
"III", 3,
"IV", 4,
"V", 5,
"VI", 6,
"VII", 7,
"VIII", 8,
"IX", 9,
"X", 10
);
public static final char[] ALPHABET = new char[] { public static final char[] ALPHABET = new char[] {
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
@ -69,6 +55,7 @@ public class Utils {
.collect(Collectors.joining(" ")); .collect(Collectors.joining(" "));
System.out.println(str); System.out.println(str);
} }
System.out.print(' ');
} }
public static final void afficherTabInt(int... args) { public static final void afficherTabInt(int... args) {
if (args == null) { if (args == null) {
@ -80,6 +67,7 @@ public class Utils {
.collect(Collectors.joining(" ")); .collect(Collectors.joining(" "));
System.out.println(str); System.out.println(str);
} }
System.out.print(' ');
} }
public static int lireEntier() { public static int lireEntier() {
@ -140,18 +128,4 @@ public class Utils {
afficher(mot, result == val ? "OK" : "ERREUR"); afficher(mot, result == val ? "OK" : "ERREUR");
} }
public static void testRomains(Function<char[], Integer> func) {
for (Map.Entry<String, Integer> entry : ROMAINS.entrySet()) {
String rom = entry.getKey();
int val = entry.getValue();
int res = func.apply(rom.toCharArray());
afficher(rom, " -> ", res);
if (res == val) {
afficher("Succés");
} else {
afficher("Attendu:", val);
}
}
}
} }