Présentation des objectifs Morinet-Lambert, Cadot, Pierron O-1

Documents pareils
Évaluation et implémentation des langages

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

Cours 1 : La compilation

L informatique en BCPST

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

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

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Éléments de programmation et introduction à Java

Préparation à l examen EFA en Macro

La mémoire. Un ordinateur. L'octet. Le bit

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Initiation à la programmation en Python

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

Cours 1 : Qu est-ce que la programmation?

Introduction à l informatique en BCPST

Cours 3 : L'ordinateur

Machines virtuelles Cours 1 : Introduction

Éléments d'architecture des ordinateurs

Annexe : La Programmation Informatique

Présentation du langage et premières fonctions

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

Introduction aux Bases de Données Relationnelles Conclusion - 1

Le génie logiciel. maintenance de logiciels.

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

TP 1. Prise en main du langage Python

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique


CH.3 SYSTÈMES D'EXPLOITATION

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

Introduction au langage C

Chapitre I Notions de base et outils de travail

Qlik Sense Desktop. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Concept de machine virtuelle

I00 Éléments d architecture

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

ACTIVITÉ DE PROGRAMMATION

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

Télécom Nancy Année

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Programmation Web. Introduction

PG208, Projet n 3 : Serveur HTTP évolué

Module Communication - Messagerie V6. Infostance. Messagerie

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Utiliser Freemind à l'école

Conception de circuits numériques et architecture des ordinateurs

ALGORITHMIQUE ET PROGRAMMATION En C

TD3 - Facturation avec archivage automatisé

UE 8 Systèmes d information de gestion Le programme

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

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

IV- Comment fonctionne un ordinateur?

Séance 0 : Linux + Octave : le compromis idéal

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 20/06/2007. AUTEUR : Equipe technique Syfadis

INDUSTRIALISATION ET RATIONALISATION

Un ordinateur, c est quoi?

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 12/09/2008. AUTEUR : Equipe technique Syfadis

Tsoft et Groupe Eyrolles, 2005, ISBN :

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Aide Webmail. L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels.

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

FreeNAS Shere. Par THOREZ Nicolas

Windows Front-End Installation Guide HOPEX V1R1 FR

Manuel de System Monitor

Catalogue & Programme des formations 2015

Installation et prise en main

Optimisation de logiciels de modélisation sur centre de calcul

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Python - introduction à la programmation et calcul scientifique

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide

HP Data Protector Express Software - Tutoriel 3. Réalisation de votre première sauvegarde et restauration de disque

Comment utiliser RoundCube?

Chapitre 1 Qu est-ce qu une expression régulière?

Aperçu rapide de PC BSD 1.2.

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

Traitement de données

Installation locale de JOOMLA SEPIA

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Cours d Algorithmique et de Langage C v 3.0

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

M Études et développement informatique

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

I. QU'EST-CE QU'UN ORDINATEUR? Un ordinateur est relié à plein de périphériques

Si un quadrilatère a. Si un quadrilatère a. Si un quadrilatère a. Si un quadrilatère a. ses côtés opposés. ses côtés opposés de. deux côtés opposés

M Études et développement informatique

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Comment configurer Kubuntu

Découvrez notre solution Alternative Citrix / TSE

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

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique

Ref : Résolution problème d'accès aux supports de cours

The Grid 2: Manuel d utilisation

Chapitre 1 : Introduction aux bases de données

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Transcription:

Présentation des objectifs Morinet-Lambert, Cadot, Pierron O-1 Introduction à l informatique : module d'algorithmique et programmation Université Henri Poincaré Nancy1 e-mail : Laurent.Pierron@loria.fr Dernières modifications : 28/09/04 2003 J. Morinet Lambert & Martine Cadot 2004 L. Pierron Aucune diffusion autorisée en dehors du module d enseignement

Objectifs de la programmation procédurale Minimiser le temps de développement Génération automatique de code : Spécifications précises Langages de haut niveau Réutilisation de code : Généricité du code Documentation Morinet-Lambert, Cadot, Pierron O-2 Minimiser la maintenance des programmes Lisibilité et simplicité du code : langages de haut niveau Documentation technique

Programmes : des exemples Morinet-Lambert, Cadot, Pierron O-3 Le programme essentiel pour fonctionner : le système d exploitation : Linux un éditeur interpréteur de commande : le shell (in console) une interface graphique : le "bureau" (desktop) Des logiciels : éditeurs : de texte (emacs), d images (gimp), de sons... applications : traitement de texte, navigateur (FireFox)... Des environnements de programmation Turbo Pascal, C, C++, Lisp, ADA... compilateur, éditeur, debugger, bibliothèques Des programmes de commandes : les scripts liste de commandes : mode batch

Informatisation : les transformations Morinet-Lambert, Cadot, Pierron O-4 Départ : Cahier des charges sur papier ou verbal Explicitation comment faire : texte informel Schémas : organigramme Phrases en langage naturel : retrouver dans les commentaires Formalisation : texte ou schéma formel Identification (recherche de nom de variables) des informations à traiter, typage Organisation (liens : composé de, liste de) Données : Entrées - Résultats : sorties Traitements (procédures) profils des procédures : rôles, données, résultats Implantation : réalisation du programme dans un langage Tests : jeux d'essais et consolidation

Algorithme - programmation Morinet-Lambert, Cadot, Pierron O-5 Phase 1 : Trouver un algorithme exprimer la demande sous une forme facilitant son traitement électronique C'est aussi spécifier le problème réflexion initiale obligatoire prendre un exemple et le traiter pas à pas Phase 2 : Passer à la réalisation programmation Choisir un langage adapté au problème à traiter cf. les catégories de langage Traduction de la spécification dans le langage

Transposition computationnelle Morinet-Lambert, Cadot, Pierron O-6 programmer c'est transposer une réalité dans une machine réduire le cahier des charges à ce qui est automatisable facilement réduire les coûts et le temps de développement facilement 60%, difficilement : 90% reste : 10 % très difficile (exceptions) trouver les représentations les plus proches : déformer risques d'erreurs ou d'imprécision limites des programmes

Quels sont les langages existants Morinet-Lambert, Cadot, Pierron O-7 On ne parle que de langage de programmation Permet de donner des instructions pour traiter des données à différencier des langages : de formatage (permettant de décrire les données : html, pdf, LaTeX ), de commandes (OS Unix), d'interrogation (SQL) De niveaux variables (de machine vers langage naturel) Binaire 0, 1 Assembleur LDI a, 45 Programmation : choix nombreux adaptés aux traitements : Cobol, Fortran, PHP... aux méthodes de développement (IA) : Lisp, PROLOG, LOO [Spécification : Uniform Modeling Langage]***

Assembleur Morinet-Lambert, Cadot, Pierron O-8 Un programme Est une suite d'instructions que l'on fournit au processeur d'une machine Une instruction Est une commande que sait interpréter le processeur pour la faire passer d'un état dans un autre On travaille avec des registres contenant des valeurs chargées depuis la mémoire Exemple : Load A, 215 L'assembleur est le seul niveau de langage qui peut se traduire directement en binaire compréhensible par le processeur

Programmation structurée ou classique Morinet-Lambert, Cadot, Pierron O-9 Un programme est constitué d'instructions regroupées en blocs ou en procédures, chaque procédure est une séquence d'instructions qui manipule un ensemble de données pour obtenir des résultats Il faut donc identifier les données : les typer et les déclarer IF condition else { Bloc d instructions1 } /* partie alors */ { Bloc d instructions 2} /* partie sinon */

Exemples de langages Morinet-Lambert, Cadot, Pierron O-10 orientés gestion : cobol édition d'états orienté traitement mathématique : fortran efficacité des calculs, gestion des très grands nombres orienté type abstrait, généricité, temps réel et traitement des exceptions : ada orienté pédagogie : python lisibilité des instructions orienté programmation machine : C orienté Web : php, Javascript intégration modèle de document [X]HTML

Programmation fonctionnelle Morinet-Lambert, Cadot, Pierron O-11 Un programme est une suite d'application de fonctions qui associe des valeurs de sortie à des valeurs d'entrées Exemple : scheme, lisp, caml Utilisation : systèmes déductifs à base de règles, moteurs d'inférence

Programmation logique Morinet-Lambert, Cadot, Pierron O-12 Un programme est un ensemble de relations logiques, et son exécution est une preuve de la déductibilité d'une formule logique Exemple : Prolog Utilisation: preuve de programme, traitement des langues

Programmation objet*** Morinet-Lambert, Cadot, Pierron O-13 Une application est un ensemble d'objets possédant des propriétés et des méthodes pour définir le comportement de ces objets, ceux ci peuvent interagir et communiquer via des messages héritage de comportement Exemple : C++, Java, Python, Delphi (pascal objet)

Exemple progoo : interfaces graphiques Morinet-Lambert, Cadot, Pierron O-14 décrire les objets : fenêtres, boutons fenêtre composée de cadre, barre de menu, zone d'édition leur propriétés fenêtre : nom, état : active, iconifiée, quel comportement sur les évènement souris clic sur la barre? : on active passe en premier plan on ouvre si iconifiée drag barre? : on déplace et sur les évènements clavier? etc.

Héritage : un exemple de classes Morinet-Lambert, Cadot, Pierron O-15 propriétés : 4 cotés quadrilatère 2 cotés parallèles égaux parallélogramme - diagonales égales - diagonales se coupent selon angle droit 4 cotés égaux rectangle carré losange

Problèmes en programmation Morinet-Lambert, Cadot, Pierron O-16 Comment s'assurer qu'un programme fait ce qu'on attend de lui? jeux d'essais exhaustifs? impossibilité utiliser un langage de preuve Portabilité des programmes code exécutable sur une plate-forme à recompiler pour un autre environnement idée : Développer dans un langage abstrait indépendant de la station : machine virtuelle java Lisibilité et maintenance rester proche du problème à traiter décrire en langage proche langage naturel moins les ambiguïtés : langage de spécification UML

Objectifs de la formation*** Morinet-Lambert, Cadot, Pierron O-17 Analyser un cahier des charges du cahier des charges (donné) à la spécification les objets du problème et les variables qui les représentent les traitements à appliquer : algorithmes Programmer proprement commentaires (taux =30%) lisibilité des sources (noms de variables significatifs) réutilisation (types de données, modules) quel que soit le langage support ici : le langage C

Méthode de travail Morinet-Lambert, Cadot, Pierron O-18 cours : noter les concepts et techniques de programmation td en salle : réfléchir, écrire analyser les problèmes (exemples courts de difficulté croissante) développer les programmes exécuter "sur papier" (simuler) avec des jeux d'essai td machines : réaliser les programmes exécuter travail personnel + libre service machine (4h/sem)

Types de problèmes traités dans ce cours Morinet-Lambert, Cadot, Pierron O-19 on donne des informations on attend des résultats on décrit les transformations allure d'un programme [étape 0 : choisir ce qu'on veut faire (menu) ] étape 1 : saisir les données étape 2 : traiter les données étape 3 : afficher les résultats

Programmation procédurale Morinet-Lambert, Cadot, Pierron O-20 chaque étape de traitement peut se décomposer en sous étapes chaque sous étape correspond à l'enchaînement de morceaux de programmes (procédures) auxquels on "passe" les informations nécessaires et dont on récupère les résultats saisir les produits achetés calculer une facture calculer les montants dus éditer la facture

Développer une application Morinet-Lambert, Cadot, Pierron O-21 Structurer les instructions en blocs, procédures Remplissant un rôle, une fonction Représenter/décrire les informations/objets Variables avec des noms significatifs UNE variable par objet requis : note, somme, moy, nbelev... Et non pas une variable réutilisée pour représenter des objets différents préciser la catégorie : définir les types Définir les propriétés d'un objet dans des champs de l'objet (cf. cours sur les structures) Leur associer des procédures/méthodes pour décrire leur comportement : créer des bibliothèques premiers pas vers la programmation "objet"

Points développés dans le cours Morinet-Lambert, Cadot, Pierron O-22 algorithmique représentations des informations typage et définition de types par le programmeur types abstraits : bibliothèques méthodologies de programmation réutilisation : procédures portabilité maintenance de programme langage support

Langage C : imposé Morinet-Lambert, Cadot, Pierron O-23 de type fonctionnel en bloc d'instructions instructions se terminent par ; bloc marqué par {.} des procédures appelées fonctions proche du système d'exploitation permet de développer le noyau de commandes de UNIX syntaxe des instructions semblable en java (programmation objet cf. cours en IUP2) javascript (programmation objet pour le web)

Principales instructions Morinet-Lambert, Cadot, Pierron O-24 Quel que soit le langage utilisé il faut connaître les instructions : Une instruction se termine par le caractère ; Affectation a = 4; som =a+b; n = n+1; cond = (age<18); Répétition Itération sur nombre for ( i = valeurinit ; i<=valeurfinale; i ++) { linstr } sur condition do { linstr} while ( encore ) ; while ( encore ) { linstr } Condition (test) if ( cond ) {linstr1} else { linstr2 } Entrée (saisie) scanf("%d", &i); /*format, adr_variable*/ Sortie (affichage) : printf("%d\n",i); Commentaires : /* texte en clair */

L'environnement de programmation Morinet-Lambert, Cadot, Pierron O-25 Un navigateur (Netscape) cours et documents via le web à consulter Un éditeur de texte (emacs) créer les programmes en C Le shell Linux (fenêtre terminal) pour compiler les programmes et les exécuter exemple : gcc prog.c -o prog gérer l'espace disque (10Mo alloués par user : du -sm ~/*) Le gestionnaire de fichiers Konqueror pour organiser les documents sur le serveur ou les périphériques de stockage Aide en ligne (bouée, xman + références C)

par défaut Les états du shell Morinet-Lambert, Cadot, Pierron O-26 éditeur rétroaction : 20-~> prompt affiché ctrl C return fin normale interpréteur rétroaction : les résultats ou rien application : interrompre un programme

< flux d entrée stdin (0) Flux et redirection Shell fichier ou périphérique Editeur et interpréteur de commandes : flux de sortie sortie erreur stdout (1) > fichier de sortie périphérique (écran) stderr (2) exemple : exécuter un programme C fichier /dev/null

Application Morinet-Lambert, Cadot, Pierron O-28 exécuter un programme en C fournir des données depuis d'un fichier donnees.txt stocker des résultats dans un fichier resultats.txt exemple : soit l'exécutable prog* la commande est : prog <donnees.txt >resultats.txt rien ne s'affiche à l'écran contrôler les résultats : more resultats.txt

Filtres ou redirections? Donnée : input clavier Commande ls ls > liste ls Sortie : output écran 1) Le résultat s affiche à l écran liste 2) Le résultat est stocké dans le fichier (regarder le contenu de liste) On redirige l affichage Résultat de la commande sort écran 3) Le résultat est retraité pour être trié par ordre alphabétique sur la première colonne On retraite le flux de données

Architecture fonctionnelle Morinet-Lambert, Cadot, Pierron O-30 périphériques données (entrées) CPU ROM RAM Eprom résultats (sorties) les flux d'informations

Détail (cf. machine Von Neumann simplifiée) Processeur (CPU) horloge Morinet-Lambert, Cadot, Pierron O-31 Mémoire ROM Unité de commande Traitement d'adresse registres Bus d'adresse instruction Bus de commande Zone de code Unité arithmétique et logique (traitement) donnée + résultat registres Bus de donnée Zone de données RAM