Cours informatique complet et programmation

Les bases de l’informatique et de la programmation

Le premier programme
écriture et exécution

Commençons par un exemple simple de programme. C’est un classique, il s’agit simplement d’afficher Bonjour! à l’écran.
// Voici mon premier programme class Premier{ public static void main(String[] args){ System.out.println(« Bonjour ! »); return; } }

Pour exécuter ce programme il faut commencer par le copier dans un fichier. Pour cela on utilise un éditeur de texte (par exemple nedit) pour créer un fichier de nom Premier.java (le mˆeme nom que celui qui suit class). Ce fichier doit contenir le texte du programme. Apr` es avoir tapé le texte, on doit le traduire (les informaticiens disent compiler) dans un langage que comprend l’ordinateur. Cette compilation se fait à l’aide de la commande1
unix% javac Premier.java
Ceci a pour effet de faire construire par le compilateur un fichier Premier.class, qui sera compréhensible par l’ordinateur, si on l’exécute à l’aide de la commande :
unix% java Premier
On voit s’afficher :
Bonjour !

Analyse de ce programme

Un langage de programmation est comme un langage humain. Il y a un ensemble de lettres avec lesquelles on forme des mots. Les mots forment des phrases, les phrases des paragraphes, ceux-ci forment des chapitres qui rassemblés donnent naissance à un livre. L’alphabet de Java est peu ou prou l’alphabet que nous connaissons, avec des lettres, des chiffres, quelques signes de ponctuation. Les mots seront les mots-clefs du langage (comme class, public, etc.), ou formeront les noms des variables que nous utiliserons plus loin. Les phrases seront pour nous des fonctions (appelées méthodes dans la terminologie des langages à objets). Les chapitres seront les classes, les livres des programmes que nous pourrons faire tourner et utiliser. Le premier chapitre d’un livre est l’amorce du livre et ne peut généralement etre sauté. En Java, un programme débute toujours à partir d’une fonction spéciale, appelée main et dont la syntaxe immuable est :
public static void main(String[] args)
Nous verrons plus loin ce que veulent dire les mots magiques public, static et void, args contient quant à lui des arguments qu’on peut passer au programme. Reprenons la fonction main :
public static void main(String[] args){ System.out.println(« Bonjour ! »); return; }
Les accolades { et } servent à constituer un bloc d’instructions; elles doivent englober les instructions d’une fonction, de mˆeme qu’une paire d’accolades doit englober l’ensemble des fonctions d’une classe. Noter qu’en Java les instructions se terminent toutes par un; (point-virgule). Ainsi, dans la suite le symbole I signifiera soit une instruction (qui se termine donc par;) soit une suite d’instructions (chacune finissant par;) le tout entre accolades. La fonction effectuant le travail est la fonction System.out.println qui appartient à une classe prédéfinie, la classe System. En Java, les classes peuvent s’appeler les unes les autres, ce qui permet une approche modulaire de la programmation : on n’a pas à récrire tout le temps la mˆeme chose. Notons que nous avons écrit les instructions de chaque ligne en respectant un décalage bien précis (on parle d’indentation). La fonction System.out.println étant exécutée à l’intérieur de la fonction main, elle est décalée de plusieurs blancs (ici 4) sur la droite. L’indentation permet de bien structurer ses programmes, elle est systématiquement utilisée partout. La derni`ere instruction présente dans la fonction main est l’instruction return; que nous comprendrons pour le moment comme voulant dire : retournons la main à l’utilisateur qui nous a lancé. Nous en préciserons le sens à la section 1.6. La derni`ere chose à dire sur ce petit programme est qu’il contient un commentaire, repéré par // et se terminant à la fin de la ligne. Les commentaires ne sont utiles qu’à des lecteurs (humains) du texte du programme, ils n’auront aucun effet sur la compilation ou l’exécution. Ils sont tr` es utiles pour comprendre le programme.

Faire des calculs simples

On peut se servir de Java pour réaliser les opérations d’une calculette élémentaire : on affecte la valeur d’une expression à une variable et on demande ensuite l’affichage de la valeur de la variable en question. Bien entendu, un langage de programmation n’est pas fait uniquement pour cela, toutefois cela nous donne quelques exemples de programmes simples; nous passerons plus tard à des programmes plus complexes.
// Voici mon deuxi`eme programme public class PremierCalcul{ public static void main(String[] args){ int a;a = 5 * 3; System.out.println(a); a = 287 % 7; System.out.println(a); return;}}
Dans ce programme on voit apparaˆıtre une variable de nom a qui est déclarée au début. Comme les valeurs qu’elle prend sont des entiers elle est dite de type entier. Le mot int2 qui préc`ede le nom de la variable est une déclaration de type. Il indique que la variable est de type entier et ne prendra donc que des valeurs enti`eres lors de l’exécution du programme. Par la suite, on lui affecte deux fois une valeur qui est ensuite affichée. Les résultats affichés seront 15 et 0. Dans l’opération a % b, le symbole % désigne l’opération modulo qui est le reste de la division euclidienne de a par b. Insistons un peu sur la façon dont le programme est exécuté par l’ordinateur. Celui-ci lit les instructions du programme une à une en commençant par la fonction main, et les traite dans l’ordre o` u elles apparaissent. Il s’arrete d` es qu’il rencontre l’instruction return;, qui est généralement la derniere présente dans une fonction. Nous reviendrons sur le mode de traitement des instructions quand nous introduirons de nouvelles constructions (itérateurs, fonctions récursives).

Types primitifs

Un type en programmation précise l’ensemble des valeurs que peut prendre une variable; les opérations que l’on peut effectuer sur une variable dépendent de son type. Le type des variables que l’on utilise dans un programme Java doit etre déclaré. Parmi les types possibles, les plus simples sont les types primitifs. Il y a peu de types primitifs : les entiers, les réels, les caracteres et les booléens. Les principaux types entiers sont int et long, le premier utilise 32 bits pour représenter un nombre; sachant que le premier bit est réservé au signe, un int fait référence à un entier de l’intervalle [−231,231−1]. Si lors d’un calcul, un nombre dépasse cette valeur le résulat obtenu n’est pas utilisable. Le type long permet d’avoir des mots de 64 bits (entiers de l’intervalle [−263,263−1]) et on peut donc travailler sur des entiers plus grands. Il y a aussi les types byte et short qui permettent d’utiliser des mots de8 et 16 bits. Les opérations sur les int sont toutes les opérations arithmétiques classiques : les opérations de comparaison : égal, différent de, plus petit, plus grand et les opérations de calcul comme addition (+), soustraction (-), multiplication (*), division (/), reste (%). Dans ce dernier cas, précisons que a/b calcule le quotient de la division euclidienne de a par b et que a % b en calcule le reste. Par suite int q = 2/3;contient le reste de la division euclidienne de 2 par 3, c’est-`a-dire 0. Les types réels (en fait nombres décimaux) sont float et double, le premier se contente d’une précision dite simple, le second donne la possibilité d’une plus grande précision, on dit que l’on a une double précision. Les caracteres sont déclarés par le type char au standard Unicode. Ils sont codés sur 16 bits et permettent de représenter toutes les langues de la planete (les caracteres habituels des claviers des langues européennes se codent uniquement sur 8 bits). Le standard Unicode respecte l’ordre alphabétique. Ainsi le code de ’a’ est inférieur à celui de ’d’, et celui de ’A’ à celui de ’D’. Le type des booléens est boolean et les deux valeurs possibles sont true et false. Les opérations sont et, ou, et non; elles se notent respectivement &&, ||,!. Si a et b sont deux booléens, le résultat de a && b est true si et seulement si a et b sont tous deux égaux à true. Celui de a || b est true si et seulement si l’un de a et b est égal à true. Enfin!a est true quand a est false et réciproquement. Les booléens sont utilisés dans les conditions décrites au chapitre suivant. La déclaration du type des variables est obligatoire en Java, mais elle peut se faire à l’intérieur d’une fonction et pas nécessairement au début. Une déclaration se présente sous la forme d’un nom de type suivi soit d’un nom de variable, soit d’une suite de noms de variables séparés par des virgules. En voici quelques exemples :int a, b, c; float x; char ch; boolean u, v;

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *