Compare commits

..

8 Commits

Author SHA1 Message Date
4e700efb76 Exercice vérification ISBN 2019-06-26 18:21:42 +02:00
0322d823a2 Exercice tableau 2019-06-26 17:57:18 +02:00
1c1f3b6a3a Exercice java 2019-06-24 19:28:01 +02:00
f8cf339f65 Fibonacci recursif 2019-06-22 16:37:38 +02:00
f816fd180f Fix afficher 2019-06-22 08:22:46 +02:00
64af6ce32e Notes cours java 2019-06-22 08:07:47 +02:00
a88103d6c7 Exercice Fibonacci boucle 2019-06-18 23:38:53 +02:00
92cbcae4cf Exercice analyse de code 2019-06-17 20:08:44 +02:00
9 changed files with 194 additions and 31 deletions

22
Accents.java Normal file
View File

@ -0,0 +1,22 @@
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));
}
}

38
Analyse1.java Normal file
View File

@ -0,0 +1,38 @@
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,3 +351,28 @@ 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).
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,6 +135,10 @@ Exemple:
## 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:
@ -145,13 +149,19 @@ Il sagit dune suite de nombres dans laquelle tout nombre (à partir du tro
=> Fibonacci.java
## Exercice 10
## Exercice 11
Convertir un nombre romain en entier (avec "chiffre" romains I, V et X).
=> Romain.java
## Exercice 11
## Exercice 12
Remplacer tous les caractères accentués par caractères non accentués.
=> Accents.java
## Exercice 13
Chiffre de César:
@ -159,10 +169,23 @@ Le texte chiffré s'obtient en remplaçant chaque lettre du texte clair original
=> CesarChiffre.java CesarDechiffre.java
## Exercice 12
## Exercice 14
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
* Chiffrement de César

43
ExercicesJava.md Normal file
View File

@ -0,0 +1,43 @@
# 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

@ -4,7 +4,34 @@ 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);
}
}
}

12
Isbn.java Normal file
View File

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

View File

@ -9,31 +9,6 @@ public class Romain {
}
public static int convertirEnDecimal(char[] romain) {
int cur = 0;
int prec = 0;
int dec = 0;
for (int i = 0; i < romain.length; i++) {
prec = cur;
cur = asInt(romain[i]);
if (prec<cur) {
dec -= prec;
} else {
dec += prec;
}
}
dec+=cur;
return dec;
}
public static int asInt(char c) {
switch (c) {
case 'I':
return 1;
case 'V':
return 5;
case 'X':
return 10;
}
return 0;
}

View File

@ -69,7 +69,6 @@ public class Utils {
.collect(Collectors.joining(" "));
System.out.println(str);
}
System.out.print(' ');
}
public static final void afficherTabInt(int... args) {
if (args == null) {
@ -81,7 +80,6 @@ public class Utils {
.collect(Collectors.joining(" "));
System.out.println(str);
}
System.out.print(' ');
}
public static int lireEntier() {