Introduction à la Programmation 1

Documents pareils
Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Java Licence Professionnelle CISII,

Structure d un programme et Compilation Notions de classe et d objet Syntaxe


INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

ACTIVITÉ DE PROGRAMMATION

STAGE IREM 0- Premiers pas en Python

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Notions fondamentales du langage C# Version 1.0

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Utilisation d objets : String et ArrayList

Programmer en JAVA. par Tama

Cours 1 : Qu est-ce que la programmation?

Premiers Pas en Programmation Objet : les Classes et les Objets

Bases de programmation. Cours 5. Structurer les données

Solutions du chapitre 4

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TD3: tableaux avancées, première classe et chaînes

TP, première séquence d exercices.

Algorithmique et programmation : les bases (VBA) Corrigé

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Algorithmique et Programmation, IMA

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Introduction au langage C

Les structures de données. Rajae El Ouazzani

Cours d initiation à la programmation en C++ Johann Cuenin

Programmation C++ (débutant)/instructions for, while et do...while

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Plan du cours. Historique du langage Nouveautés de Java 7

Programme Compte bancaire (code)

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

INF 321 : mémento de la syntaxe de Java

Chapitre I Notions de base et outils de travail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

as Architecture des Systèmes d Information

Langage Java. Classe de première SI

Corrigés des premiers exercices sur les classes

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Projet de programmation (IK3) : TP n 1 Correction

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Introduction à MATLAB R

Chapitre 10. Les interfaces Comparable et Comparator 1

Package Java.util Classe générique

Cours Informatique Master STEP

Flux de données Lecture/Ecriture Fichiers

V- Manipulations de nombres en binaire

Cours 1 : La compilation

TP1 : Initiation à Java et Eclipse

Représentation d un entier en base b

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Cours d Algorithmique et de Langage C v 3.0

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

PROGRAMMER EN MQL4. Apprenez à automatiser vos stratégies sur MetaTrader 4

4. Groupement d objets

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Programmation en langage C

Initiation à la programmation en Python

Analyse de sécurité de logiciels système par typage statique

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Programmation Objet Java Correction

L informatique en BCPST

UE C avancé cours 1: introduction et révisions

Apprendre Java en 154 minutes

Le langage C. Séance n 4

Corrigé des exercices sur les références

UE Programmation Impérative Licence 2ème Année

Initiation à l algorithmique

Initiation à la Programmation en Logique avec SISCtus Prolog

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Organigramme / Algorigramme Dossier élève 1 SI

Cours d algorithmique pour la classe de 2nde

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Gestion distribuée (par sockets) de banque en Java

Programmation C. Apprendre à développer des programmes simples dans le langage C

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Programmation C. J.-F. Lalande. 15 novembre 2012

TP1. Outils Java Eléments de correction

Environnements de développement (intégrés)

Les arbres binaires de recherche

Chapitre VI- La validation de la composition.

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

SUPPORT DE COURS. Langage C

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Programmation en Java IUT GEII (MC-II1) 1

Créer le schéma relationnel d une base de données ACCESS

Algorithmique I. Algorithmique I p.1/??

Tp 1 correction. Structures de données (IF2)

Transcription:

Introduction à la Programmation 1 Séance 1 de cours/td Université Paris-Diderot Objectifs: Utiliser Java comme une calculatrice. Identifier et donner un sens aux différentes constructions du langage (déclaration et utilisation des variables, boucles for, conditionnelles, procédures et fonctions). Apporter une modification mineure à un programme existant. 1 De quoi est fait un programme? Qu est-ce qu un programme? Un programme est la représentation d une séquence d instructions à exécuter. Par exemple, une recette est un programme exécuté par un cuisinier. Un code source Java est un programme exécuté par un ordinateur. Qu est-ce qu un ordinateur? En première approximation, un ordinateur est une machine à calculer munie d une mémoire et connectée à des périphériques (comme un écran, une carte réseau, etc). Un ordinateur peut soit faire des calculs qui produisent des valeurs ; soit effectuer des actions en transmettant des valeurs à sa mémoire ou à des périphériques. Les calculs peuvent dépendre de valeurs récoltées par les périphériques ou lues dans la mémoire. Les constituants d un programme Les expressions décrivent des calculs à faire. Les instructions décrivent des actions à effectuer. Les déclarations donnent des noms aux constituants du programme. 1 int stopsecs = ( stophour * 60 + stopmin ) * 60; int startsecs = ( starthour * 60 + startmin ) * 60; 3 int numberofsecs = stopsecs - startsecs ; 4 int alertcode = 0; 5 for ( int i = 0; i < numberofsecs ; i ++) { 6 waituntilnextsecond (); 7 if ( numberofsecs - i < 30) { 8 alertcode = 1; drawint ( numberofsecs - i, alertcode ); 11 } Listing 1 Que fait cette séquence d instructions? 1

Exercice 1 (Premier décodage, ) Dans le programme Java précédent, classifiez les parties du code source correspondant aux expressions, aux instructions et aux déclarations. Le langage des expressions arithmétiques Sous-langage des expressions arithmétiques Les expressions sont classifiées à l aide de types correspondant à la forme des valeurs qu elles calculent. Le type int est celui des expressions qui calculent des valeurs entières, les expressions arithmétiques. Le type int est l ensemble des valeurs entre -147483648 (= 31 ) et 147483647 (= 31 1). Une expression arithmétique de type int peut être : (a) une constante entière (0, 1,, -1, -, -147483648, 147483647... ) ; (b) deux expressions séparées par une opération arithmétique binaire (1 +, 1 + * 3 / 4,... ) ; (c) une expression entourée de parenthèses ((1 + ), (1 + * 3 / 4),... ) ; (d) une expression précédée du signe moins (-, -(1 + ),... ). Les opérateurs ont des priorités relatives, par exemple {*, /, % } {+,-} où signifie être prioritaire sur. Les opérateurs binaires précédents sont associatifs à gauche. On peut toujours rajouter des parenthèses pour expliciter la priorité de certains calculs sur d autres. L évaluation de l expression 1 + * 3-4 est équivalente à l expression 1 + ( * 3) - 4 et elle se décompose en (i) * 3 donne 6 ; (ii) 1 + 6 en 7 et (iii) 7-4 donne 3. Les opérations (+,, /,,... ) ont le sens usuel tant que l on reste entre les bornes du type int. Dans le type int, la division / est une division entière. Par exemple, 31 / 7 vaut 4. L opérateur % désigne le modulo : a % b est le reste dans la division entière de a par b. Par exemple, 31 % 7 vaut 3 car 31 = 7 4 + 3. Exercice (Java comme une calculatrice, ) Prévoir l évaluation des expressions arithmétiques suivantes : 1 6 * 7 + 3 6 * (7 + 3) 3 45 / 7 4 3 * 7 / 4 5 (3 * 7) / 4 6 (45 / 7) * 7 + 45 % 7 7 (1 + - 3 + 4-5 + 6-7 + 8-9 + - 11 + 1-13) / (1 - + 3-4 + 5-6 + 7-8 + 9 - + 11-1 + 13) 3 Utilisation des variables

Déclaration et utilisation des variables Une variable a un nom et contient une valeur, c est-à-dire le résultat d un calcul. On déclare une variable x de type int qui contient initialement le résultat du calcul 6 * 7 ainsi : 1 int x = 6 * 7; Dans l exemple précédent, la valeur de la variable x est 4. Exemples de noms de variable : x, y, foo, foobar4... On peut utiliser la valeur d une variable dans une expression en faisant référence à son nom. Ainsi, l expression x + 1 vaut 43 si x vaut 4. On peut changer la valeur d une variable qui a été déclarée auparavant en lui affectant le résultat d un nouveau calcul. L opérateur d affectation est «=» : 1 x = * ; Sur papier, une mémoire contenant les variables x = 4, y = 73 et z = 37 sera écrite : x y z 4 73 37 Instructions Une expression calcule une valeur tandis qu une instruction a un effet sur la machine. Une affectation est un exemple d instruction. On dit qu une machine exécute une instruction. Exercice 3 (Nommer, ) Quelle est la valeur des variables, à la suite des instructions suivantes. 1 int x = 6 * 7; int y = x + x; Exercice 4 (Affectations, ) Quelle est la valeur des variables, à la suite des instructions suivantes. 1 int x = 1; int y = 4; 3 x = y + ; Exercice 5 (Affectations, ) Quelle est la valeur des variables, à la suite des instructions suivantes. 1 int x = 1; int y = x - 1; 3 x = ; Exercice 6 (Affectations, ) Quelle est la valeur des variables, à la suite des instructions suivantes. 1 int x = 1; x = x - 1; 3

4 Fonctions et procédures Nommer un calcul comme une fonction La fonction qui attend en paramètre une valeur x de type int et calcule une valeur de type int qui est le triple de x s écrit : 1 public static int triple ( int x) { return (x * 3); On peut utiliser une fonction en écrivant son nom suivi de son paramètre entouré de parenthèses, comme par exemple dans l expression : 1 triple () * 6 Dans cet exemple, triple () vaut 6 donc l expression vaut 36. Voici des exemples de noms de fonction : triple, add3, foobar,... Une fonction peut attendre plusieurs paramètres en les séparant par des virgules. On peut utiliser des fonctions prédéfinies dans des bibliothèques de fonctions. Exercice 7 (Utiliser une fonction, ) Étant donnée la fonction suivante, que vaut l expression twice(3)? 1 public static int twice ( int x) { return ( * x); Exercice 8 (Utiliser une fonction, ) On considère la fonction suivante. 1 public static int cube ( int x) { return (x * x * x); Quelle est la valeur de la variable a à la suite des instructions suivantes? 1 int b = 5; int a = 3; 3 a = b - a; 4 a = cube (a); Exercice 9 (Écrire une fonction, ) Voici une fonction 1 public static int f( int x) { return (x * x + 5); 4

Quel est son nom? Que calcule-t-elle? Modifier son corps pour qu elle calcule la division entière par 3. Modifier son nom pour qu elle se nomme third. Exercice (Écrire une fonction, ) Écrire des fonctions effectuant les calculs suivants : 1. La puissance 5 d un entier donné en paramètre.. Le produit de deux entiers donnés en paramètre moins leur somme. 3. Le produit de trois entiers donnés en paramètre au carré. Utiliser une procédure Un appel de procédure est une instruction écrite à l aide du nom de la procédure suivi d un ou plusieurs paramètres séparés par des virgules et entourés de parenthèses. Par exemple : 1 printint (1 + ); affiche 3 à l écran à l aide de la procédure prédéfinie printint. Un autre exemple : 1 putpixel (0, 0, 55, 55, 55) ; affiche un pixel blanc en position (0, 0) d une image à l aide de la procédure prédéfinie putpixel. Écrire une procédure Une procédure est définie en termes d une suite d instructions. Par exemple, la procédure qui attend deux entiers x et y et qui affiche successivement leur somme et leur produit s écrit : 1 public static void showproductandsum ( int x, int y) { printint (x + y); 3 printint (x * y); 4 } Exercice 11 (Différences syntaxiques, ) 1. Quelles différences trouvez-vous entre la syntaxe de déclaration des fonctions et des procédures?. Même question pour l appel de fonctions et l appel de procédures. 5 Conditionnelle 5

Instruction conditionnelle Une instruction conditionnelle permet d exécuter des instructions en fonction d une condition. On écrit par exemple 1 int x = ; int y = 4; 3 if (x <= 0) { 4 y = x; 5 } else { 6 y = -x; 7 } pour affecter la valeur de x à y si x <= 0 ou pour lui affecter la valeur -x dans le cas contraire. Les conditions peuvent par exemple être des comparaisons entre deux expressions de type int (e1 == e, e1!= e, e1 < e, e1 <= e, e1 > e, e1 >= e). Exercice 1 (Le max, ) À la suite des instructions ci-dessous, quelle est la valeur de la variable max? 1 int x = 3; int y = 4; 3 int max = 0; 4 if (x > y) { 5 max = x; 6 } else { 7 max = y; 8 } Transformez la suite d instructions pour calculer le minimum de x et y et le mettre dans une variable min. Exercice 13 (Différents tests, ) Quelle est la valeur des variables a, b et c après la suite d instructions suivante : 1 int a = ; int b = a * a + 3; 3 int c = b - a; 4 if (c == a) { 5 a = 1; 6 } else { 7 a = a + 3; 8 } 9 if (b + c < a) { b = ; 11 } else { 1 b = 4; 1 14 if (b!= c * c) { 15 c = 1; 16 } else { 17 c = -6; 6

6 Boucles Boucles Une boucle permet de répéter plusieurs fois les mêmes instructions. Le numéro de l itération est disponible dans une variable qui s appelle le compteur de boucle. La boucle suivante affiche les entiers de 0 à 9 : 1 for ( int i = 0; i <= 9; i ++) { printint (i); L en-tête est formé du mot clé for suivi d une initialisation, d une condition, et d une incrémentation, séparées par des points-virgules et entourées de parenthèses. L initialisation int i = 0 déclare le compteur de boucle, son type et sa valeur initiale. La condition de boucle i <= 9 définit sous quelle condition l exécution de la boucle continue. L instruction d incrémentation i++. Cette instruction est équivalente ici à l instruction i = i + 1. Le corps de la boucle, entre accolades, est exécuté à chaque itération de la boucle. La même boucle aurait pu être écrite comme suit : 1 for ( int i = 0; i < ; i ++) { printint (i); Nous verrons qu il existe un autre type de boucle introduite par le mot-clé while. Exercice 14 (Afficher des suites d entiers, ) 1. Écrivez une boucle qui affiche les 0 premiers entiers, en commençant à 0. Quel est le dernier entier affiché?. Écrivez une boucle qui affiche les 50 premiers entiers pairs, en commençant à 0. Quel est le dernier entier affiché? 3. Écrivez une boucle qui affiche 00 fois le nombre 3. 7 Fonctions et procédures utilisées Liste des fonctions 1 /* * Affiche un entier sur l é cran. 3 * x est l entier à afficher. 4 */ 5 public static void printint ( int x) { 7

6 System. out. println (x); 7 } 8

8 s aux exercices Exercice, page Compiler et exécuter le programme suivant : 1 public class ExoCalc { 1 public static void main ( String [] args ) { 13 printint (6 * 7 + 3); 14 printint (6 * (7 + 3) ); 15 printint (45 / 7); 16 printint (3 * 7 / 4); 17 printint ( (3 * 7) / 4); 18 printint ( (45 / 7) * 7 + 45 % 7); 19 printint ( (1 + - 3 + 4-5 + 6-7 + 8-9 + - 11 + 1-13) / 0 (1 - + 3-4 + 5-6 + 7-8 + 9 - + 11-1 + 13) ); 1 } } Exercice 3, page 3 code/exocalc.java En exécutant le programme suivant la réponse sera affichée. 1 public class ExoValy { 1 public static void main ( String [] args ) { 13 int x = 6 * 7; 14 int y = x + x; 15 printint (x); 16 printint (y); 17 } 9

code/exovaly.java Exercice 4, page 3 En exécutant le programme suivant la réponse sera affichée. 1 public class ExoValx { 1 public static void main ( String [] args ) { 13 int x = 1; 14 int y = 4; 15 x = y + ; 16 printint (x); 17 printint (y); 1 Exercice 5, page 3 code/exovalx.java En exécutant le programme suivant la réponse sera affichée. 1 public class ExoValx { 1 public static void main ( String [] args ) { 13 int x = 1; 14 int y = x - 1; 15 x = ; 16 printint (x); 17 printint (y); 1 code/exovalx.java

Exercice 6, page 3 En exécutant le programme suivant la réponse sera affichée. 1 public class ExoValx3 { 1 public static void main ( String [] args ) { 13 int x = 1; 14 x = x - 1; 15 printint (x); 16 } 17 } Exercice 7, page 4 Ici, on a la réponse. 1 public class ExoTwice { code/exovalx3.java 11 public static int twice ( int x) { 1 return ( * x); 1 14 15 /* Fonction d entr ée du programme. */ 16 public static void main ( String [] args ) { 17 printint ( twice (3) ); 1 Exercice 8, page 4 La réponse est donnée par le programme suivant : 1 public class ExoCube { code/exotwice.java 11

11 public static int cube ( int x) { 1 return (x * x * x); 1 14 15 /* Fonction d entr ée du programme. */ 16 public static void main ( String [] args ) { 17 int b = 5; 18 int a = 3; 19 a = b - a; 0 a = cube (a); 1 printint (a); } Exercice 9, page 5 code/exocube.java Le nom de cette fonction est f. Elle calcule le carré de la variable donnée en paramètre auquel elle ajoute 5. Cette fonction après modification devient : 1 public static int third ( int x) { return (x / 3); Exercice, page 5 Voilà une réponse possible pour ces fonctions : 1. 1 public static int powerfive ( int y) { return (y * y * y * y * y);. 1 public static int productminussum ( int x, int y) { return ((x * y) - (x + y)); 1 public static int productsquare ( int x, int y, int z) { return ((x * y * z) * (x * y * z)); 1

Exercice 1, page 6 Voilà le programme, pour voir la valeur de max. 1 public class ExoMax { 1 public static void main ( String [] args ) { 13 int x = 3; 14 int y = 4; 15 int max = 0; 16 if (x > y) { 17 max = x; 19 else { 0 max = y; 1 } printint ( max ); 4 } et voilà la solution calculant le minimum. 1 public class ExoMin { code/exomax.java 1 public static void main ( String [] args ) { 13 int x = 3; 14 int y = 4; 15 int min = 0; 16 if (x > y) { 17 min = y; 19 else { 0 min = x; 1 } printint ( min ); 4 } 13

code/exomin.java Exercice 13, page 6 Le programme suivant affiche la valeur des trois variables. 1 public class ExoValabc { 1 public static void main ( String [] args ) { 13 int a = ; 14 int b = a * a + 3; 15 int c = b - a; 16 if (c == a) { 17 a = 1; 19 else { 0 a = a + 3; 1 } if ( (b + c) < a) { 3 b = ; 4 } 5 else { 6 b = 4; 7 } 8 if (b!= (c * c) ) { 9 c = 1; 30 } 31 else { 3 c = -6; 3 34 printint (a); 35 printint (b); 36 printint (c); 37 } 38 } Exercice 14, page 7 code/exovalabc.java 3. 1. 1 for ( int i = 0; i < 0; i ++) { printint (i); 14

1 for ( int i = 0; i < 50; i ++) { printint ( * i);. 3. 1 for ( int i = 0; i < 00; i ++) { printint (3) ; 15