Mon apprentissage du Java (Suivi de ma progression)

Inscrit
5 Juillet 2013
Messages
13
Reactions
1
#1
!Edit : je laisse ce post un peu à l'abandon pour pouvoir apprendre à coder un peu plus vite et sortir des tutoriels dans la sections Tuto, je compte probablement compléter ce post plus tard, dans la section voulue !

Salut à tout et à toutes,
Comme l'indique le titre, ce post servira à informer mon apprentissage sur le Java, mon avancés au cours des prochaines semaines, mois, etc.

Je fais ce post avant tout pour montrer mes petits bouts de code au fur et à mesure que j'avancerai sur le site du zéro (OpenClassrooms maintenant), afin d'avoir un feed back sur mes codes (pour avoir des conseils sur comment faire, ce que je peux améliorer, etc...). Je compte aussi indiquer les difficultés rencontrées et comment j'ai résolu celles-ci (aide par quelqu'un pour mieux comprendre, acharnement sur la logique, et j'en passes !).

Deuxième raison pour ce post : je suis un éternel fainéant, et j'espère que ce post et les retours que je recevrais me pousserons à continuer et à m'améliorer !
Apprendre à programmer c'est bien, Voir des gens s'intéresser sur l'avancement, ça peut-être un coup de pouce plutôt que de rester chez soi et n'avoir a personne à qui le dire (si si, j'ai des amis, mais ceux-ci n'aiment pas la programmation donc, quand je leur dis quelques choses, je reçois comme réponse, c'est cool (jmblc) ).

Voici pour l'intro !

maintenant, voici le cours que je vais suivre, décomposer en chapitre et montrant mon avancement.

Lien vers le cours : https://openclassrooms.com/courses/apprenez-a-programmer-en-java#_=_

Rouge : Non commencé
Orange : En cours d'apprentissage
Vert : Appris

Table des matières
Partie 1 : bien commencer en Java (progression : 10/100 %)(on commence à être dans le bon)
1. Les variables et opérations
Code:
package project1;

public class base {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("Hello World !"); //Commande pour afficher à l'écran une valeur.
 
 
        // Partie des variables nombre.
 
        byte temperature; //byte = entier entre -128 et + 127, 1 octet (8 bits)
        temperature = 64; // affectation d'une valeur à la variable "temperature".
 
        short vitesseMax; //short = entier entre  -32768 et +32767, 2 octets (16 bits)
        vitesseMax = 30000; // affectation d'une valeur à la variable "vitesseMax".
 
        int temperatureSoleil; //int = entier entre -(2^31) et (2^31)-1
        temperatureSoleil = 15000000; // idem que les 2 précédents.
 
        long anneeLumiere; //long = entier entre -(2^63) et (2^63)-1
        anneeLumiere = 9460700000000000L; // Pour les variables long, "L" est obligatoire en fin de nombre.
 
        float nombre; // float = nombre décimal (4 octets).
        nombre = 3.0215525f; // ici, un "." est utilisé à la place de "," et f suis le nombre.
 
        double division; // double = nombre décimal (8 octets)
        division = 0.333333333333333333333333333333333333333333334d;
        // idem, "." à la place de ",", d suivant le nombre;
 
        /* à retenir pour long, float et double, ils sont suivis dans l'ordre de "l", "f" et "d" à leurs fins
         * afin d'éviter que le programme ne les confondent avec un entier, par exemple, un float dont la valeur
         * est 2.0, peut etre un int si le "f" n'est pas mis afin de parfaire la variable.
         */
 
 
        // Partie des variables text/caractère.
 
        char lettre; // Variable servant à stocker un caractère.
        lettre = 'a'; // affection se fait en mettent le caractère entre ' ' et non pas " ".
 
        boolean question; // Variable pouvant contenir 2 valeur, vrai ou faux (1 ou 0)
        question = true; // attribue la valeur "vrai" à la variable (1)
        question = false; // attribue la valeur "faux" à la variable (0)
 
        /* Boolean est une variable assez spéciale, elle est considerée comme une variable stockant
         * des caractères, mais elle ne peut stocker que deux valeures, vrai ou faux.
         */
 
        String phrase; // Variable (tableau en réalité) stockant une chaîne de caractères.
        phrase = "Je suis une phrase"; /* ici, on stocke plusieurs caractères à l'aide des " " et non des ' '
                                        * car ce n'est pas un caractère, mais plusieurs et les ' ' sont fait
                                        * pour 1 seul caractère.
                                        * ! cette variable commence par une majuscule !
                                        */
 
 
 
         /* Le Java est sensible à la casse, càd qu'il faut impérativement respecter les minuscules ou majuscules
          * de chaques variables ou fonction, String =/ string, la variable nombre n'est pas la même que Nombre,
          * se sont deux variables bien distinctes à cause de leurs nom.
          */
 
        // Plusieurs façon peuvent être utilisée pour déclarer une variable, voici les exemples.
 
        int nbr1 = 1,nbr2 = 4; // déclaration de 2 variables + affectation.
        int nbr3 = 2;// affectation à la création de la variable.
        int nbr4;
 
 
        //partie des opérations
 
        /* il existe plusieurs opérations mathématiques
         * le +, le -, la multiplication *, la divition /
         * et le modulo % qui permet d'obtenir la partie restante d'une divition entière
         * exemple : 5/2 = 2 + 1, 1 = modulo
         */
 
        // d'autres exemples.
        nbr1 = 1+1;
        nbr2 = 2-1;
        nbr3 = nbr1 - nbr2;
        nbr4 = nbr2/nbr3;
 
        nbr1 += 2; // revient à faire nbr1 = nbr1 + 2;
        nbr1 -= 2; // revient à faire nbr1 = nbr1 - 2;
 
        nbr1 ++; ++nbr1; // revient à faire nbr1 = nbr1 + 1;
        nbr1 --; --nbr1; // revient à faire nbr1 = nbr1 - 1;
 
        nbr1 = nbr1 * 2;// Ses deux opérations sont identiques
        nbr1 *= 2;      // Ses deux opérations sont identiques
 
        nbr1 = nbr1 / 2;//idem ici
        nbr1 /= 2;        //idem ici
        int resultat = (int)10/3; // ici force la conversion de 3.3333 en 3, appelé aussi cast
 
        System.out.println("Le nombre 1 = " + nbr1);
        System.out.println("Prmière partie de "+ "Phrase");
        System.out.println(resultat);
 
        float resultat2 = (float)10/3;
        System.out.println(resultat2);
 
 
    }

}
2. Lire les entrées du clavier
Voici ce que j'ai retenu de ce chapitre, sous forme de commentaire et non de code.

Il faut créer un objet Scanner pour lire les entrées => Scanner sc = new Scanner(System.in);
Il faut également ajouter une import en haut du projet => import java.util.Scanner;
Cette ligne dis au compilateur d'utiliser l'objet Scanner situé dans java.util.

à noter que l'on peut simplement mettre "import java.util.*;" afin d'importer toutes les "commandes" dans java.util.

Pour récupérer les données, il faut l'utiliser comme ce qui suit :
String str = sc.nextLine(); => récupère la prochaine ligne (phrase)
int nbr = sc.nextInt(); => prochain int;
short nbr = sc.nextShort(); => prochain short;
etc...

2 Cas spéciaux !!!
1.
si l'on récupère un nombre en premier, important de faire "sc.nextLine();" afin de faire un retour "chariot" car les autres commandes (nextInt, nextShort, etc...) ne le font pas et donc à la prochaine utilisation d'un nextLine(); vous aurez droit à ne rien entrez, le programme continuera son chemin.

2.
Pour récupérez un caractère, il faut utiliser un "nextLine();", mais ce n'est pas tout, un exemple sera mieux pour définir la situation :
String str = sc.nextLine(); => on récupère le caractère comme ça
char carac = str.charAt(0);

ici, nous récupérons le caractère entrez dans la variable String à la positions données, ici 0 car c'est le premier caractères entrez qui est demandez.

un autre exemple, si vous écrivez un mot : "mot", vous voulez récupérer la 2ème lettre, soit le "o", il faudra donc faire
char carac = str.charAt(1); => pourquoi 1 et pas 2 ?
Car le premier caractère commence à l'enregistrement 0 et non 1, ce qui signifie que le dernier est à la position 2, et non 3. En mathématique, sa donnerai ça (grossièrement)

lettreDemande = positionDeLaLettreDansLeMot - 1;


Voici ce que j'ai appris sur cette partie.
Ps : Ne pas oubliez qu'après next(nomdevarible)(); le nom de variable commence TOUJOURS par une maj.
3. Les conditions
4. Les boucles
5. TP : conversion c° >> f° << c°
6. Les tableaux
7. Les méthodes de classes
J'ajouterai et j'éditerai ce post au fur et à mesure de mon avancement, j'indiquerais aussi (au moyen d'une légende) les parties qui m'ont posées problèmes et comment je les ai réaliser. Je comptes posté mes codes à partir des conditions/boucles car c'est déjà la que les commentaires peuvent être bénéfiques ( Ai-je utilisé la bonne boucle, la bonne condition, Est-ce suffisant ou puis-je l'amélioré, peut-être je peut modifier l'ordre afin d'en diminuer les conditions boucles pour arriver au même résultats, mais plus rapidement).

J'espère qu'un post de ce type à sa place ici, car avant de contribuer à l'entre-aide de se forum, il faut apprendre.
 
Dernière édition:

Arth

Contributeur
Inscrit
28 Aout 2016
Messages
80
Reactions
3
#2
Salut, personnellement je pense que c'est une bonne idée de faire ce que tu fait, car cela t'aidera à apprendre (et surtout comprendre) comment concevoir un programme mais cela pourra aussi aider les nouveaux venus qui veulent apprendre à programmer. Il y a beaucoup de petit obstacle à passer avant de bien comprendre pourquoi le langage de programmation est construit de cette manière et comment on utilise tout ce qu'il nous permet de faire.
Par contre commencer par apprendre un langage Orienté Objet (OO) c'est peut-etre un peu rude si on a du mal avec ce concept. Si tu as du mal avec les class et les packages: tu peut commencer par apprendre le C (sur Openclassroom aussi, le cours est bien fait, et il n'est pas nécessaire d'aller jusqu’au bout) pour bien prendre en main un langage de programmation simple (Qui n'est d’ailleurs pas si simple que cela en réalité) et en suite revenir au Java (ou à un autre langage) car la plupart des langages de programmation moderne s'inspire du langage C, on y retrouve la syntaxe et on y retrouve les paradigmes.

Bonne chance à toi.
 
Haut Bas