Algorithmie et Programmation

Documents pareils
Notions fondamentales du langage C# Version 1.0

ACTIVITÉ DE PROGRAMMATION

Cours 1 : Qu est-ce que la programmation?

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

Cours d algorithmique pour la classe de 2nde

Conventions d écriture et outils de mise au point

Évaluation et implémentation des langages

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

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

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

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


Cours Informatique Master STEP

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Introduction au langage C

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

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)

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

1. Structure d'un programme FORTRAN 95

Organigramme / Algorigramme Dossier élève 1 SI

Algorithmique et programmation : les bases (VBA) Corrigé

Programme Compte bancaire (code)

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

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

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

L informatique en BCPST

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

Cours 1 : La compilation

Initiation à la programmation en Python

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

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

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

Examen Médian - 1 heure 30

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Recherche dans un tableau

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Vue d ensemble de Windows PowerShell

Introduction à l algorithmique et à la programmation M1102 CM n 3

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Programmation en Java IUT GEII (MC-II1) 1

Représentation d un entier en base b

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

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

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Concept de machine virtuelle

Les structures. Chapitre 3

Projet Active Object

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Les structures de données. Rajae El Ouazzani

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

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

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Compilation (INF 564)

Langage Java. Classe de première SI

Présentation du langage et premières fonctions

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

Les BRMS Business Rules Management System. Groupe GENITECH

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

Java Licence Professionnelle CISII,

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Propagation sur réseau statique et dynamique

Programmer en JAVA. par Tama

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

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

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

1 Lecture de fichiers

Cours 14 Les fichiers

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Ensuite, insérer la clé USB 3.0 compatible, et lancer l'assistant Windows To Go :

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, Paris

Système binaire. Algèbre booléenne

Le chiffre est le signe, le nombre est la valeur.

Chapitre 2. Classes et objets

INITIATION AU LANGAGE JAVA

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Introduction à l informatique en BCPST

Algorithme. Table des matières

Algorithmique et Programmation, IMA

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

Pourquoi l apprentissage?

Qualité du logiciel: Méthodes de test

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Chapitre 2 : Abstraction et Virtualisation

Cours de Systèmes d Exploitation

PIC EVAL Dev Board PIC18F97J60

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

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

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

as Architecture des Systèmes d Information

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

Programme awk------introduction rapide

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

Programmes des classes préparatoires aux Grandes Ecoles

Transcription:

Algorithmie et Programmation Document ressource Systèmes d Information et Numérique 1 Avant propos Avant de nous lancer dans l apprentissage d un langage de programmation, il faut tout d abord définir un peu de vocabulaire : Un programme, est formé par un ensemble d instructions (simples) qui sont exécutés successivement par une machine séquentielle (microprocesseur d un ordinateur) Un programme peut donc réaliser des tâches de calculs afin de réaliser des jeux, des simulateurs Les processeurs sont capables d effectuer plusieurs Millions d Instructions Par Seconde (MIPS), pour les moins rapides, à plusieurs dizaines de milliards pour les composants récents (>10010 9 ) Le code Source, est un texte (écrit par exemple en langage Cou C++ ou C#), compréhensible par le programmeur, qui est la forme sous laquelle est crée le programme Cependant, des représentations graphiques de programmes voient de plus en plus le jour (AppInventor _ Scratch_ pour Androïd, Flowcode pour les systèmes à microcontrôleurs ) Ces derniers offrent une grande simplicité dans la création mais n autorise pas tous les développements que le «code» permet Les professionnels de l informatique se tournent généralement vers des solutions «écrites» plutôt que graphiques Cependant, ces «passerelles» sont très intéressantes, et offrent beaucoup de ressources Le compilateur : est un programme utilitaire qui permet de traduire le code source (ou le graphique représentant le programme) en une suite de codes binaires, image du programme écrit, mais compréhensible par le microprocesseur (En fait, bien souvent, le compilateur fournit une suite de code à un «exécuteur» intermédiaire _ «machine java» par exemple ou framework NET) Dès lors on peut introduire une notion très importante en programmation : la portabilité d un langage for(i=0 ;i<10 ;i++) ConsoleWriteLine(i) ; Mon programme Compilateur pour l OS Windows Java ou NET Compilateur pour l OS Linux Java ou équivalentnet Laurent P_ Spécialité SIN : Lycée Jean Moulin 1

Un programme écrit par exemple en langage C, pourra être «compris» par des machines équipées d OS (Operating System _ Système d exploitation_) différents, voire même de processeurs différents (Advanced Micro Device et Intel par exemple) Il suffit que le compilateur soit adapté la participation de AMD et Intel à la conception de tels compilateurs représente également un enjeu économique En tout cas le travail du programmeur ne changera pas d une machine à l autre On parle alors de portabilité 2 Algorithmie 21 D abord qu est-ce que l algorithmie (ou algoritmique)? C est l ensemble des règles qui permettent d écrire une suite finie d opérations permettant de résoudre un problème La suite d opérations ainsi définie se nomme algorithme Un algorithme peut être représenté sous une forme graphique, il s agit alors de l algorigramme 22 Les symboles graphiques, l écriture d un algorithme (norme ISO 5807) Symboles Signification Exemple algorithme (texte) Indique le début Début du programme d un processus (programme ou sous-programme) Indique une suite variable2 = variable1+3 ; d actions variable3 = variable2*5 ; Exemple algorithme (langage C#) int main() variable2 = variable1+3 ; variable3 = variable2*5 ; Indique un test conditionnel permettant au processus d opérer un choix Indique des étapes d initialisations Par exemple, attributions de valeurs à des variables Et/ou appel d une méthode d initialisation Indique une opération permettant une acquisition (lecture d un clavier ) Si age_paul plus grand ou égal à 18 alors afficher une Ferrari c est bien! mais les assurances sont chères si afficher la voiture attendra, et mon vélo est sympa fin si variable1=0 variable2=0 initialisation afficheur LCD If (age_paul>=18) ConsoleWriteLine(«une Ferrari c est bien! mais les assurances sont chères» ) ; else printf(«la voiture attendra, et mon vélo est sympa» ) ; variable1=0 ; variable2=0 ; LCD_init(); Lire une entrée au clavier i=consoleread();/*permet de placer une lettre tapée au clavier dans la variable i*/ Laurent P_ Spécialité SIN : Lycée Jean Moulin 2

Indique une boucle Cette boucle (processus itératif) permet de répéter une séquence jusqu à ce que la condition soit atteinte Boucle TANT QUE Tant que (condition est vraie) faire Fin faire Boucle REPETER JUSQU'A Répéter Jusqu à (condition d arrêt) Ou encore Répéter Tant que (condition est vraie) (TANT QUE FAIRE : while ) while (i<10) ConsoleWriteLine ( bonjour ) ; // // // (FAIRE TANT QUE : do while) do ConsoleWriteLine ( bonjour ); while (i<10) Voir en page suivante Indique l appel d un processus (méthode, fonction ou sousprogramme) Indique la fin d un processus ConsoleWriteLine («bonjour») Fin du programme Les structures alternatives (de décisions) Ces structures sont employées à chaque fois qu'il est nécessaire qu'un choix soit effectué On teste la valeur d'une variable, et suivant le résultat du test, une séquence est exécutée plutôt qu'une autre Afficher "trop jeunepas de voiture!" Début de la structure alternative age_ paul > 18? Afficher "Une Ferrari peut être?" if (age_paul >18) ConsoleWriteLine («Une Ferrari») ; else ConsoleWriteLine («trop jeune») ; Structures alternatives avec langage scratch (AppInventor) Fin de la structure Laurent P_ Spécialité SIN : Lycée Jean Moulin 3

Les structures itératives (boucles) Ces structures sont très employées en informatique pour répéter une suite d instructions jusqu à ce qu une condition devienne vraie A titre d exemple la boucle while, peut être représentée ainsi : Début de la boucle i < 10? while (i < 10) i=i+1 ; ConsoleWriteLine («bonjour») ; Fin de la boucle i = i+1 ; Cette boucle (à condition que i soit à zéro au départ) permettra d afficher 10 fois le mot «bonjour» La dernière valeur «atteinte» par i sera 10 Structure de la boucle while avec langage scratch (AppInventor) et la boucle do while Début de la boucle i = i+1 ; i < 10? Fin de la boucle do while (i < 10) i=i+1 ; ConsoleWriteLine («bonjour») ; Cette boucle (à condition que i soit à zéro au départ) permettra d afficher 10 fois le mot «bonjour» La dernière valeur «atteinte» par i sera 10 A la différence de la boucle while, la séquence est au moins exécutée une fois Laurent P_ Spécialité SIN : Lycée Jean Moulin 4

Un autre type de boucle très employée existe également, il s agit de la boucle «for» Début de la boucle i =0 ; i < 10? for (i=0 ; i<10 ;i=i+1) ConsoleWriteLine («Bonjour» ); Cette boucle permettra d exécuter dix fois l affichage «Bonjour» Fin de la boucle i =i+1 ; Séquence ; Afficher la valeur de i La dernière valeur «atteinte» par i sera 10 Structure de la for next avec langage scratch (AppInventor) 3 Classe, Objet, Propriétés, Méthodes, Evénements Voilà toute une terminologie qui n aide pas, a priori, et pourtant En programmation orientée objet (POO), une classe représente la structure d un objet, c'est en quelque sorte son plan (au même titre que celui d une maison) Un objet est en fait une instanciation d une classe (c est la maison!) Une même classe peut donc donner naissance à plusieurs objets pouvant se comporter différemment et avoir des propriétés différentes (un même plan peut donner naissance à tout un quartier ) Le comportement ainsi que les propriétés sont ici importantes, en effet, une «maison 1» pourra être bleue (c est une maison bleue adossée ) et une «maison 2» avoir des volets roses De même l événement «ouverture porte» de la maison 1 n est pas obligé de se produire en même temps que l événement «ouverture porte» de la maison 2 (en C#, créer un nouvel objet à partir d une classe se fait avec le mot clef new) Image : http://msdnmicrosoftcom Laurent P_ Spécialité SIN : Lycée Jean Moulin 5

Extrait adapté de Microsoftcom «Un objet ballon possède des propriétés (Color, Height et Diameter), répond à des événements (Puncture) et peut exécuter des méthodes (Deflate, MakeNoise) Propriétés Si vous pouviez programmer un ballon, son code Visual C# ressemblerait au «code» suivant, qui définit les propriétés d'un ballon BallonColor = Red; BallonDiameter = 10; BallonInflated = True ; Remarquez l'ordre du code : l'objet (Ballon), suivi par la propriété (Color), suivie par l'assignation de la valeur (= Red) Vous pourriez modifier la couleur du ballon en remplaçant sa valeur Méthodes Les méthodes d'un ballon sont appelées de la manière suivante : BallonInflate(); BallonDeflate(); BallonRise(5); L'ordre est similaire à celui d'une propriété : l'objet (un nom), suivi de la méthode (un verbe) Dans la troisième méthode, un élément supplémentaire, appelé argument, spécifie la hauteur d'élévation du ballon Certaines méthodes auront un ou plusieurs arguments pour décrire plus en avant l'action à effectuer Événements Le ballon peut réagir à un événement de la manière suivante : Ballon_Puncture() BallonMakeNoise("Bang"); BallonDeflate(); BallonInflated = False; Lorsque l'évènement "crevaison" arrive au ballon, la séquence de programme correspondante est alors exécutée fin d extrait A titre d'analogie : Si un objet est un "robot culinaire tout en un" Une de ses propriétés peut être le type de lame choisi par le cuisinier Une de ses méthodes peut être le type de mouvement de la lame (vitesseetc) Un des évènements lié à l'objet peut être un signal ançant "la soupe est prête!" quand la température de cuisson est atteinte depuis assez longtemps Une propriété configure l'objet Une méthode demande à l'objet d'exécuter une action Un évènement est une action qui arrive à l'objet à un instant connu Laurent P_ Spécialité SIN : Lycée Jean Moulin 6