1. Les fondements de l informatique 13



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

Les structures de données. Rajae El Ouazzani


Initiation. àl algorithmique et à la programmation. en C

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

Programmer en JAVA. par Tama

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Cours 1 : La compilation

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

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

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

Machines virtuelles Cours 1 : Introduction

Traduction des Langages : Le Compilateur Micro Java

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

données en connaissance et en actions?

Programmation Objet - Cours II

Algorithmique, Structures de données et langage C

Cours d Algorithmique et de Langage C v 3.0

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

Algorithme. Table des matières

Chapitre VI- La validation de la composition.

Conventions d écriture et outils de mise au point

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Algorithmique et structures de données I

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

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Définitions. Numéro à préciser. (Durée : )

Introduction à MATLAB R

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Évaluation et implémentation des langages

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Génie Logiciel avec Ada. 4 février 2013

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

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

Programmes des classes préparatoires aux Grandes Ecoles

Claude Delannoy. 3 e édition C++

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

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

Architecture des Systèmes d Information Architecture des Systèmes d Information

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

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

Rappels sur les suites - Algorithme

Conversion d un entier. Méthode par soustraction

as Architecture des Systèmes d Information

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

TP Bases de données réparties

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

Architecture matérielle des systèmes informatiques

Programmation Orientée Objet

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

Devenez un véritable développeur web en 3 mois!

Domaine : Sciences et technologies Licence Appliquée : Informatique de Gestion Parcours : E-commerce. 1. Finalité de la formation

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

CQP Développeur Nouvelles Technologies (DNT)

Algorithmes récursifs

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

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Cours d Informatique

Adama MBODJI MBODJ.SYSTEM

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

Initiation à JAVA et à la programmation objet.

Calculabilité Cours 3 : Problèmes non-calculables.

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Programme et contenus Licence d'informatique de Lille, parcours MIAGE, en alternance ou en formation continue (13:40)

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)

4. Les structures de données statiques

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

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

Les arbres binaires de recherche

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

Conception de circuits numériques et architecture des ordinateurs

Introduction : présentation de la Business Intelligence

ARBRES BINAIRES DE RECHERCHE

Débouchés professionnels

Compression de Données - Algorithme de Huffman Document de Conception

PHP 5.4 Développez un site web dynamique et interactif

Optimisations des SGBDR. Étude de cas : MySQL

Groupe Eyrolles, 2004 ISBN :

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

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

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

Une introduction à Java

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Initiation à l algorithmique

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Arbres binaires de recherche

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Présentation du PL/SQL

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

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

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Recherche dans un tableau

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

Transcription:

Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1 Le binaire 19 1.3.2 Les octets et les mots 22 1.3.3 L hexadécimal 23 2. L algorithmique 24 2.1 Programmer, c est un art 24 2.2 Définition : L algorithme est une recette 26 2.3 Pourquoi utiliser un algorithme? 27 2.4 Le formalisme 28 2.4.1 Les algorigrammes 29 2.4.2 L algorithme sous forme de texte 30 2.5 La complexité 32 2.6 Les structures algorithmiques 35 3. Les langages d implémentation 36 3.1 Quel langage? 36 3.2 Classifications des langages 39 3.2.1 Haut niveau, bas niveau 39 3.2.2 Diverses classifications 40 3.2.3 Compilé ou interprété 41 3.3 La machine virtuelle 42 3.4 Java 44 3.4.1 Les avantages 44 3.4.2 Un premier programme Java 46 4. Exercices 49 1/12

Les variables et opérateurs 1. La variable 51 1.1 Principe 51 1.2 Déclaration 54 1.3 Les types 54 1.3.1 Les nombres 55 1.3.2 Autres types numériques 58 1.3.3 Les caractères 59 1.3.4 Le type booléen 61 1.4 Affectation 63 1.4.1 Affectation de valeurs 63 1.4.2 Affectation de variables 67 1.5 Saisie et affichage 68 1.6 Les constantes 70 2. Opérateurs et calculs 71 2.1 Les affectations 71 2.2 Les opérateurs arithmétiques 71 2.3 Les opérateurs booléens 76 2.4 Les opérateurs de comparaison 79 2.4.1 L égalité 80 2.4.2 La différence 81 2.4.3 Inférieur, supérieur 82 2.5 Le cas des chaînes de caractères 83 2.6 La précédence des opérateurs 84 3. Pour aller plus loin 85 3.1 Les nombres négatifs 85 3.2 La représentation des nombres réels 87 3.3 Les dates 92 3.4 Les caractères 93 4. Types et langages 95 2/12

4.1 Langages typés ou non 95 4.2 La gestion de la mémoire 96 5. Exercices 97 Tests et logique booléenne 1. Les tests et conditions 101 1.1 Principe 101 1.2 Que tester? 103 1.3 Tests SI 105 1.3.1 Forme simple 105 1.3.2 Forme complexe 107 1.4 Tests imbriqués 110 1.5 Choix multiples 115 1.6 Des exemples complets 117 1.6.1 Le lendemain d une date 117 1.6.2 La validité d une date 122 1.6.3 L heure dans n secondes 123 2. L algèbre booléen 127 2.1 L origine des tests 127 2.2 Petites erreurs, grosses conséquences 129 2.2.1 Ariane 5 129 2.2.2 Mars Climate Orbiter 130 2.3 George Boole 130 2.4 L algèbre 131 2.4.1 Établir une communication 131 2.4.2 La vérité 133 2.4.3 La loi ET 133 2.4.4 La loi OU 134 2.4.5 Le contraire 135 2.4.6 Les propriétés 135 2.4.7 Quelques fonctions logiques 139 3/12

2.4.8 Avec plus de deux variables 142 2.5 Une dernière précision 145 3. Exercices 146 Les boucles 1. Les structures itératives 149 1.1 Définition 149 1.2 Quelques usages simples 150 2. Tant Que 151 2.1 Structure générale 151 2.2 Boucles infinies et "break" 153 2.3 Des exemples 155 2.3.1 Une table de multiplication 155 2.3.2 Une factorielle 156 2.3.3 x à la puissance y 157 2.3.4 Toutes les tables de multiplication 159 2.3.5 Saisie de notes et calcul de moyennes 161 2.3.6 Rendez la monnaie 167 2.3.7 Trois boucles 171 3. Répéter... Jusqu à 172 3.1 Différences fondamentales 172 3.2 Quelques exemples adaptés 175 3.2.1 La factorielle 175 3.2.2 Les trois boucles 175 4. Pour... Fin Pour 176 4.1 Une structure pour compter... 176 4.2... mais pas indispensable 177 4.3 Quelle structure choisir? 178 4/12

4.4 Un piège à éviter 178 4.5 Quelques exemples 179 4.5.1 De nouveau trois boucles 179 4.5.2 La factorielle 180 4.5.3 Racine carrée avec précision 181 4.5.4 Calcul du nombre PI 184 5. Exercices 186 Les tableaux et structures 1. Présentation 189 1.1 Principe et définition 189 1.1.1 Simplifier les variables 189 1.1.2 Les dimensions 191 1.1.3 Les types 192 1.1.4 Déclaration 193 1.1.5 Utilisation 194 1.1.6 Les tableaux dynamiques 194 1.2 Java et les tableaux 196 1.2.1 Tableaux classiques à n dimensions 196 1.3 Représentation en mémoire 201 1.3.1 Représentation linéaire 201 1.3.2 Représentation par référence 203 2. Manipulations simples 206 2.1 Recherche d un élément 206 2.2 Le plus grand/petit, la moyenne 208 2.3 Le morpion 210 3. Algorithmes avancés 214 3.1 Les algorithmes des tris 214 3.1.1 Le principe 214 3.1.2 Le tri par création 215 5/12

3.1.3 Le tri par sélection 215 3.1.4 Le tri à bulles 217 3.1.5 Le tri par insertion 221 3.1.6 Le tri Shell 223 3.2 Recherche par dichotomie 226 4. Structures et enregistrements 228 4.1 Principe 228 4.2 Déclaration 229 4.2.1 Type structuré 229 4.2.2 Enregistrement 230 4.3 Utiliser les enregistrements 231 4.3.1 Utiliser les champs 232 4.3.2 Un enregistrement dans une structure 233 4.3.3 Un tableau dans une structure 235 4.4 Les tableaux d enregistrements 236 4.4.1 Les tables 236 4.4.2 Une table comme champ 237 4.5 Et Java? 238 5. Exercices 240 Les sous-programmes 1. Présentation 241 1.1 Principe 241 1.2 Déclaration et définition 243 1.2.1 Dans un algorithme 243 1.2.2 En Java 244 1.3 Appel 245 1.4 Fonctions et procédures 247 1.4.1 Les procédures 247 1.4.2 Les fonctions 248 1.5 Variables locales et globales 250 6/12

1.5.1 Locales 250 1.5.2 Globales 251 1.5.3 Variables globales et Java 253 1.6 Les paramètres 254 1.6.1 Les procédures 254 1.6.2 Les fonctions 257 1.6.3 Paramètres et Java 259 1.6.4 Petite application fonctionnelle 260 1.7 Sous-programmes prédéfinis 263 1.7.1 Un choix important 263 1.7.2 Quelques exemples 264 1.8 Dernier cas : les tableaux 269 2. Les sous-programmes récursifs 271 2.1 Principe 271 2.2 Un premier exemple : la factorielle 272 2.3 Un exemple pratique : les tours de Hanoï 275 3. Exercices 277 Les fichiers 1. Les différents fichiers 279 1.1 Préambule 279 1.2 Problématique 280 1.3 Définition 281 1.4 Les formats 281 1.4.1 Types de contenus 281 1.4.2 Le fichier binaire 283 1.4.3 Le fichier texte 284 1.4.4 Quel format utiliser? 286 1.5 Les accès aux fichiers 287 1.5.1 Séquentiel 287 1.5.2 Accès direct 288 7/12

1.5.3 Indexé 288 1.5.4 Autre? 288 2. Les enregistrements 289 2.1 Les délimiteurs 289 2.2 Largeur fixe 292 2.3 Principes d accès 293 2.3.1 Étapes de base 293 2.3.2 Identificateurs de fichiers et canaux 294 2.3.3 Les modes d ouverture 296 3. Fichier texte séquentiel 297 3.1 Ouvrir et fermer un fichier 297 3.2 Lire et écrire des enregistrements 298 3.2.1 Lecture 298 3.2.2 Écriture 300 3.3 Les enregistrements structurés 304 3.4 Exemple en Java 306 4. Les fichiers binaires 309 4.1 Nouvelles instructions 309 4.2 Exemple 309 5. Exercices 311 Notions avancées 1. Les pointeurs et références 313 1.1 Rappels sur la mémoire et les données 313 1.1.1 Structure de la mémoire 313 1.1.2 Java : des limites qui n en sont pas 315 1.1.3 Brefs exemples en C 316 1.2 Le pointeur 316 8/12

1.2.1 Principe et définition 316 1.2.2 Le C roi des pointeurs 318 1.2.3 Applications 319 1.3 Notation algorithmique 322 1.3.1 Déclarer et utiliser les pointeurs 322 1.3.2 Allocation dynamique 325 1.4 Java et les références 327 1.4.1 Différences entre le C et Java 327 1.4.2 Références sur les objets 328 1.4.3 Les types primitifs 329 1.4.4 Références sur structures 330 1.4.5 Le piège en Java 331 1.4.6 La valeur null 332 2. Les listes chaînées 333 2.1 Listes chaînées simples 333 2.1.1 Principe 333 2.1.2 Création 337 2.1.3 Parcours de la liste 339 2.1.4 Recherche 339 2.1.5 Ajout d un élément 340 2.1.6 Suppression d un élément 345 2.1.7 Supprimer toute la liste 347 2.1.8 Parcours récursif 348 2.2 L implémentation en Java 348 2.3 Autres exemples de listes 353 2.3.1 Listes circulaires 353 2.3.2 Listes d éléments triés 353 2.3.3 Listes doublement chaînées 354 2.3.4 Files et piles 354 3. Les arbres 355 3.1 Principe 355 3.2 Définitions 357 3.2.1 Base 357 9/12

3.2.2 Terminologie 357 3.2.3 Description horizontale 358 3.2.4 Description verticale 358 3.2.5 L arbre binaire 358 3.3 Parcours d un arbre 359 3.4 Arbre binaire ordonné 362 3.4.1 Principe 362 3.4.2 Recherche d un élément 362 3.4.3 Ajout d un élément 364 3.4.4 Suppression d un noeud 365 4. Exercices 366 Une approche de l'objet 1. Principe de l objet, une notion évidente 367 1.1 Avant de continuer 367 1.2 Rappels sur la procédurale 368 1.2.1 Les données 368 1.2.2 Les traitements 369 1.3 L objet 369 1.3.1 Dans la vie courante 369 1.3.2 En informatique 371 1.4 Classe, objets 374 1.5 Déclaration et accès 376 1.6 Les méthodes 378 1.7 Portée des membres 380 1.8 Encapsulation des données 381 1.9 L héritage 383 1.9.1 Principe 383 1.9.2 Commerce 385 1.9.3 Hiérarchie 386 1.9.4 Simple ou multiple 387 1.10 Le polymorphisme 388 10/12

1.10.1 Principe 388 1.10.2 Le polymorphisme ad hoc 388 1.10.3 Le polymorphisme d héritage 389 1.10.4 Le polymorphisme paramétrique 391 2. Manipuler les objets 392 2.1 Les constructeurs 392 2.1.1 Déclaration 392 2.1.2 Appel implicite 393 2.1.3 L héritage 395 2.2 Les destructeurs 397 2.3 Les membres statiques 398 2.3.1 Attributs 398 2.4 Classes et méthodes abstraites 400 2.5 Interfaces 403 3. L objet en Java 405 3.1 Les langages objet 405 3.2 Déclaration des classes et objets 406 3.3 Héritage 409 3.4 Interfaces 412 4. Exercices 414 Corrigés des exercices 1. Introduction à l'algorithmique 415 2. Les variables et opérateurs 419 3. Tests et logique booléenne 426 4. Les boucles 435 11/12

5. Les tableaux et structures 451 6. Les sous-programmes 460 7. Les fichiers 465 8. Notions avancées 472 9. Une approche de l'objet 477 Index 487 12/12