{"id":470,"date":"2018-03-23T09:56:52","date_gmt":"2018-03-23T08:56:52","guid":{"rendered":"http:\/\/wollef.org\/?p=470"},"modified":"2018-03-23T09:56:52","modified_gmt":"2018-03-23T08:56:52","slug":"a-la-decouverte-de-java","status":"publish","type":"post","link":"https:\/\/wollef.org\/blog\/a-la-decouverte-de-java\/","title":{"rendered":"A la d\u00e9couverte de java"},"content":{"rendered":"<p>Dans la s\u00e9rie d&#8217;article pr\u00e9c\u00e9dente sur l&#8217;<a href=\"http:\/\/wollef.org\/fr\/histoire-de-la-programmation-14-des-premiers-bits-au-premier-langage\/\">histoire des langages de programmation<\/a>, j&#8217;ai vu que Java \u00e9tait un des derniers langages de programmation cr\u00e9\u00e9s.<\/p>\n<p>Cc&#8217;est pour \u00e7a que j&#8217;ai d\u00e9cid\u00e9 d&#8217;utiliser ce langage pour d\u00e9couvrir \u00e0 quoi ressemble le travail de programmation.<\/p>\n<p>Pour programmer en Java il faut d&#8217;abord t\u00e9l\u00e9charger un outil de programmation java.<\/p>\n<p>En ce cas j&#8217;utilise \u00e9clipse. <a href=\"https:\/\/www.eclipse.org\">https:\/\/www.eclipse.org<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-471\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2018\/09\/trape-1-300x70.png\" alt=\"\" width=\"300\" height=\"70\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Test de l&#8217;environnement java.<\/h2>\n<p>Une fois qu&#8217;on a lanc\u00e9 Eclipse, on cr\u00e9e un nouveau projet.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-472\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2018\/09\/trape2-300x236.png\" alt=\"\" width=\"479\" height=\"377\" \/><\/p>\n<p>Dans ce projet j&#8217;ai recopi\u00e9 le code d&#8217;exemple Java\u00a0que j&#8217;avais cit\u00e9 dans l&#8217;article sur &#8220;l&#8217;histoire de la programmation&#8221;.<\/p>\n<p>En haut de la fen\u00eatre il y a le code et directement en dessous il y a le r\u00e9sultat de l&#8217;ex\u00e9cution du code.<\/p>\n<p>C&#8217;est-ce qu&#8217;on fait en cliquant sur le petit bouton vert en haut.<\/p>\n<h2>Quelques essais de programmes<\/h2>\n<p>Pour explorer le langage java, nous avons essay\u00e9 de r\u00e9\u00e9crire les programmes d&#8217;exemples\u00a0des diff\u00e9rents langages explor\u00e9 dans la s\u00e9rie d&#8217;articles sur l&#8217;histoire de la programmation :<\/p>\n<ul>\n<li>Exemple &#8220;langage machine&#8221; : trouver le plus grand nombre<\/li>\n<li>Exemple &#8220;fortran&#8221; : le plus grand commun diviseur<\/li>\n<li>Exemple &#8220;cobol&#8221; : la multiplication<\/li>\n<\/ul>\n<p>Dans les articles qui suivent, je vais montrer\u00a0les programmes que cela donne.<\/p>\n<p>Enfin, je me suis essay\u00e9 \u00e0 \u00e9crirer un petit programme pour m&#8217;aider en math\u00e9matiques.<\/p>\n<h4><a name=\"_Toc377573486\"><\/a>Exemple &#8220;langage machine&#8221; : trouver le plus grand nombre<\/h4>\n<p>De\u00a0l&#8217;original en &#8220;<a href=\"http:\/\/wollef.org\/fr\/histoire-de-la-programmation-14-des-premiers-bits-au-premier-langage\/\">langage machine<\/a>&#8221; \u00e0 sa version java !<\/p>\n<pre><strong>public class<\/strong> P02_PlusGrandNombre {\n\u00a0\u00a0\u00a0 <strong>public static void<\/strong> main(String[] args) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int tableauDeNombres[] = { 12, 56, 42, 87, 23, 14, 3, 97, 18, 23, 52, 35 };\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int positionPlusGrandNombre = 0;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>for <\/strong>(int posNombreExamin=0; posNombreExamin&lt;tableauDeNombres.length ; posNombreExamin++) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0System.out.println(\"le nombre \" + posNombreExamin +\" est \"+tableauDeNombres[posNombreExamin]);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>if<\/strong>( tableauDeNombres[posNombreExamin] &gt; tableauDeNombres[positionPlusGrandNombre]) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0System.out.println(\"le nombre \" + posNombreExamin +\" (\"+tableauDeNombres[posNombreExamin]+\") est plus grand que le nombre \"+positionPlusGrandNombre+\" (\"+tableauDeNombres[positionPlusGrandNombre]+\")\");\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 positionPlusGrandNombre = posNombreExamin;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"le plus grand nombre est le \"+positionPlusGrandNombre + \" (\" + tableauDeNombres[positionPlusGrandNombre] +\")\" );\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0 }\n\n}\n<strong>\u00a0<\/strong><\/pre>\n<h4><a name=\"_Toc377573487\"><\/a>Exemple &#8220;fortran&#8221; : le plus grand commun diviseur<\/h4>\n<p>De\u00a0l&#8217;original en &#8220;<a href=\"http:\/\/wollef.org\/fr\/histoire-de-la-programmation-24-les-langages-historiques\/\">fortran<\/a>&#8221; \u00e0 sa version java &#8230;<\/p>\n<pre><strong>p<\/strong><strong>ublic class<\/strong> P03_PlusGrandCommunDiviseur {\n\u00a0\u00a0\u00a0 <strong>public static void<\/strong> main(String[] args) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int a = 55;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int b = 33;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int resultat = calculePGCD(a,b);\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"le PGCD de \"+a+\" et \"+b+\" est \"+resultat);\n\u00a0\u00a0\u00a0 }\n\n\u00a0<strong>\u00a0 public static<\/strong> int calculePGCD(int na, int nb) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int ia = na;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int ib = nb;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>while <\/strong>( ib !=0) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int itemp = ia;\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ia = ib;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ib = itemp % ib;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>return <\/strong>ia;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0 }\n}<\/pre>\n<h4><a name=\"_Toc377573488\"><\/a>Exemple &#8220;cobol&#8221; : la multiplication<\/h4>\n<p>De\u00a0l&#8217;original en &#8220;<a href=\"http:\/\/wollef.org\/fr\/histoire-de-la-programmation-24-les-langages-historiques\/\">cobol<\/a>&#8221; \u00e0 sa version java &#8230;<\/p>\n<pre>import java.util.Scanner;\n<strong>public class<\/strong> P04_LaMultiplication {\n\u00a0\u00a0 <strong>\u00a0public static<\/strong> <strong>void <\/strong>main(String[] args) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ ouvre le lecteur\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Scanner in = <strong>new <\/strong>Scanner(System.in);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\/\/ lit les nombres.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.printf(\"Enter first number:\u00a0 \");\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int num1 = in.nextInt();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0System.out.printf(\"Enter second number:\u00a0 \");\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int num2 = in.nextInt();\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\/\/ \u00e7a fait le calcul\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int result = num1 * num2;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\/\/ affiche le resultat\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0System.out.println(\"result is = \" + result);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\/\/ ferme le lecteur\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 in.close();\n\u00a0\u00a0\u00a0 }\n}<\/pre>\n<h4><a name=\"_Toc377573489\"><\/a>Un premier d\u00e9fi : Utilisation de Java pour r\u00e9soudre un de mes soucis en math\u00e9matique<\/h4>\n<p>En math\u00e9matique j&#8217;oublie souvent d&#8217;aller jusqu&#8217;au bout dans la r\u00e9duction des fractions.<\/p>\n<p>Or je sais que quand on divise le num\u00e9rateur et le d\u00e9nominateur par leur plus grand diviseur commun on obtient le num\u00e9rateur et le d\u00e9nominateur de la fraction r\u00e9duite.<\/p>\n<p>Dans les programmes d&#8217;exemple, j&#8217;ai trouv\u00e9 un programme qui trouve les plus grands diviseurs communs. Alors je vais m&#8217;en servir pour calculer les fractions r\u00e9duites.<\/p>\n<p>Le programme java que voici va m&#8217;aider \u00e0 v\u00e9rifier les fractions que je dois calculer\u00a0: on y voit l\u2019appel de l\u2019autre sous-programme\u00a0:<\/p>\n<p>P03_PlusGrandCommunDiviseur.calculePGCD(numerateur, denominateur)\u00a0;<\/p>\n<p>Maintenant plus d\u2019erreur pour r\u00e9duire mes fractions\u00a0!<\/p>\n<p>&nbsp;<\/p>\n<pre>import java.util.Scanner;\n<strong>public class <\/strong>P05_ReductionFraction {\n\u00a0\u00a0\u00a0 <strong>public static void<\/strong> main(String[] args) {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ ouvre le lecteur\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Scanner in = <strong>new <\/strong>Scanner(System.in);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ lit les nombres.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.printf(\"Entre le num\u00e9rateur:\u00a0 \");\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int numerateur = in.nextInt();\n\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0System.out.printf(\"Entre le d\u00e9nominateur:\u00a0 \");\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int denominateur = in.nextInt();\n\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(\"saisie est \" + numerateur +\"\/\"+denominateur);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ calcul du pgcd en utilisant le programme d'exemple\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int pgcd = P03_PlusGrandCommunDiviseur.calculePGCD(numerateur, denominateur);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/calcul du nouveu num\u00e9rateur et du nouveau d\u00e9nominateur\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 numerateur= numerateur\/pgcd;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 denominateur= denominateur\/pgcd;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\/\/ affiche le resultat\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"resultat est \" + numerateur +\"\/\"+denominateur);\n\n\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\/\/ ferme le lecteur\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 in.close();\n\u00a0\u00a0\u00a0 }\n}<\/pre>\n<h1>Update 2019 !<\/h1>\n<p>Dans le cadre d&#8217;un travail personnel sur Raspberry Pi en 2019-2020, j&#8217;ai\u00a0utilis\u00e9 le langage Python. Pour d\u00e9couvrir Python, j&#8217;ai\u00a0 r\u00e9\u00e9crit les m\u00eames programmes dans ce langage :\u00a0vous pouvez <a href=\"http:\/\/wollef.org\/fr\/la-programmation-du-raspberry-pi-en-python\/\">voir ici \u00e0 quoi ressemble le r\u00e9sultat<\/a> !<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans la s\u00e9rie d&#8217;article pr\u00e9c\u00e9dente sur l&#8217;histoire des langages de programmation, j&#8217;ai vu que Java \u00e9tait un des derniers langages de programmation cr\u00e9\u00e9s. Cc&#8217;est pour \u00e7a que j&#8217;ai d\u00e9cid\u00e9 d&#8217;utiliser ce langage pour d\u00e9couvrir \u00e0 quoi ressemble le travail de programmation. Pour programmer en Java il faut d&#8217;abord t\u00e9l\u00e9charger un outil de programmation java. En <a class=\"read-more\" href=\"https:\/\/wollef.org\/blog\/a-la-decouverte-de-java\/\">Continue Reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28,45,14],"tags":[],"class_list":["post-470","post","type-post","status-publish","format-standard","hentry","category-histoire-programmation-java","category-java","category-programmation"],"_links":{"self":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/posts\/470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/comments?post=470"}],"version-history":[{"count":0,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/posts\/470\/revisions"}],"wp:attachment":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/media?parent=470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/categories?post=470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/tags?post=470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}