La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Module I3 algorithmique et programmation

Présentations similaires


Présentation au sujet: "Module I3 algorithmique et programmation"— Transcription de la présentation:

1 Module I3 algorithmique et programmation
Objectif Proposer une solution logicielle conforme à un cahier des charges Compétences Écrire un algorithme Utiliser un langage de programmation Compiler, corriger, tester un programme Rendre compte de ses choix de programmation Car dans le cadre professionnel on programme rarement : tout seul pour soi-même

2 Contenu Algorithmes Sur QUOI travaille-t-on ? Pour produire QUOI ?
COMMENT ? Programmation Variables (informations) Fonctions (traitements) Combinaison des informations Combinaison des traitements

3 Liens et prolongements en DUT GTR
module I2 : représentation de l'information et architecture des machines informatiques codages internes de l'information, des traitements modules I5-I6 : programmation orientée objet, événementielle et réseau modules complémentaires I7 : systèmes d'exploitation, programmation I8 : algorithmique avancée I9 : applications clients-serveurs et Web I10 : développement informatique (Génie Logiciel)

4 Progression de l'enseignement
Types et actions élémentaires Variables : déclaration, utilisation Affectation ; expressions, application de fonction - procédure Combinaisons d’actions (blocs) Séquence, choix, itérations Fonctions Visibilité des déclarations (portée des variables) Combinaisons de types Ensembles d’éléments de même type : « tableaux », « fichiers » Ensembles d’éléments de types différents : « structures » Travailler avec les adresses en mémoire : « pointeurs »

5 Evaluation de l'enseignement
Vérification régulière du travail en TP (compte-rendus) Contrôle en TD après les vacances d'hiver Travail personnel de mars à mai (en binômes) Contrôle en TP lors de la dernière séance Devoir surveillé début avril

6 TRAITER automatiquement des INFORMATIONS
Introduction TRAITER automatiquement des INFORMATIONS le PROCESSEUR effectue des ACTIONS en SÉQUENCE charger A ajouter 1 à A ranger A les INFORMATIONS sont stockées en MÉMOIRE VIVE, à une certaine adresse ... 0x78920

7 Une information manipulée par un ordinateur c'est :
¨ une certaine VALEUR (codée en 0 et 1) ¨ d’un certain TYPE (sur un certain nombre d ’octets) ¨ (parfois) désignée par un certain NOM (nom de variable ou cste) ¨ rangée à une certaine ADRESSE en mémoire vive 4 octets 1 octet

8 Unité d'entrées/sorties
Schéma de fonctionnement d'un ordinateur Unité centrale Processeur Mémoire Principale Unité de commande Programme Unité de traitement (U.A.L.) Données Unité d'entrées/sorties Ecran Souris Clavier

9 Méthode de programmation
Pourquoi une méthode ? ¨ Obtenir des programmes lisibles, corrects (vérifiables), modifiables ¨ Permettre un travail d’équipe ¨ Enseigner la programmation Quelle méthode ? programmation STRUCTURÉE => structurer : ¨ les INFORMATIONS liées à un problème (les données connues et les résultats attendus) ¨ les ACTIONS qui permettent d’obtenir les résultats à partir des informations initiales

10 Structurer éléments de base (types élémentaires, actions élémentaires)
à combiner selon des schémas définis programmes machine programmes assembleur programmation structurée (langages de programmation) [programmations déclaratives (logique, fonctionnelle)] programmation orientée objet etc.

11 Concevoir comprendre un cahier des charges analyser
produire des algorithmes (structurer…) produire des programmes (adapter à un langage) vérifier et tester ces programmes documenter chaque étape, et en particulier le produit fini : documentation système documentation utilisateur

12 Génie Logiciel - exposé du problème, cahier des charges…
- analyse, spécification de solutions - conception des algorithmes - programmation - tests, vérification de l’adéquation du programme au problème (CYCLE DE Développement) [organisation en V, en cycles, incrémentale…] - « recette », formation, mise en service - évolutions, aménagements… (CYCLE de vie)

13 Dans le module I3 Un DOSSIER DE PROGRAMMATION accompagnera tout programme : dictionnaire des variables expliquer le rôle que joue chaque variable prototype de chaque fonction définir les données et les résultats définir l'action réalisée explication des traitements si nécessaire Pour de petits programmes, la partie dossier est dans le même fichier que le programme : sans la partie dossier le fichier de programme n'est pas complet

14 Premières étapes de conception
La première étape se fait en français, elle a pour but une compréhension claire du cahier des charges (énoncé) La deuxième étape consiste à rassembler les éléments de l'énoncé en 3 rubriques : L'algorithme peut alors être décrit Quelles sont les données nécessaires ? Quels sont les résultats attendus ? Quelles actions faut-il effectuer pour obtenir ces résultats ?

15 Exemple Enoncé : calculer la valeur future d’un dépôt d’argent après un certain nombre d’années sur un compte rémunéré à un certain taux d’intérêt annuel. Données : le dépôt Dépôt (un nombre réel), le nombre d’années Années (un nombre entier), le taux d’intérêt annuel Taux (un nombre réel). Résultat : la valeur future Future (un nombre réel), définie par la formule : Future = Dépôt  (1+Taux/100)Années Traitements : avoir les valeurs de Dépôt, Taux, et Années, ranger dans Future le résultat du calcul, renvoyer la valeur de Future en résultat.

16 Algorithme du calcul d ’intérêts
Fonction Intérêts (Dépôt: réel, Années: entier, Taux: réel) résultat réel Début Le résultat est Dépôt × (1+Taux/100)Années Fin Tous les mot-clefs du langage algorithmique ont une traduction dans les langages de programmation (impératifs). On utilise un langage algorithmique pour ne pas compliquer cette étape avec les conventions d'un langage de programmation donné, conventions liées non pas à la résolution du problème, mais au langage en lui-même.

17 Étape de programmation
Langage de programmation Langages de programmation => compromis entre : ¨ du code LISIBLE (haut niveau d'abstraction) ¨ du code EFFICACE (bas niveau d'abstraction) Langage C : ¨ EFFICACITÉ favorisée ¨ lisibilité possible, mais à la charge du programmeur (doit s’obliger à suivre des règles non imposées par le compilateur)

18 Exemple langages de programmation
Fonction Intérêts (Dépôt: réel, Années: entier, Taux: réel) résultat réel Début Le résultat est Dépôt × (1+Taux/100)Années Fin function Interet (Depot, Taux : real ; Annees : integer) : real ; begin Interet := Depot * puissance((1+Taux/100), Annees) end ; type du résultat Pascal : type du résultat float Interet (float Depot, float Taux, int Annees) { return Depot * pow((1+Taux/100), Annees) ; } Langage C :

19 Outils pour programmer
Les programmes rédigés dans un langage de programmation sont saisis avec un ÉDITEUR DE TEXTE (TEXT EDITOR) Une fois saisis, ils sont contenus dans des FICHIERS (FILES) en mémoire vive, puis sur disque dès qu’on les a enregistrés Le COMPILATEUR (COMPILER) les traduit en codes exécutables par le processeur : ce code exécutable est stocké dans d'autres fichiers L'ÉDITEUR DE LIENS (LINKER) génère le fichier exécutable final

20 Outils pour programmer
éditeur de texte Exécu-table Liens Compil stdio.h interet.exe interet.c

21 Progression de l'enseignement
Types et actions élémentaires Variables : déclaration, utilisation Affectation ; expressions, application de fonction - procédure Combinaisons d’actions (blocs) Séquence, choix, itérations Fonctions Visibilité des déclarations (portée des variables) Combinaisons de types Ensembles d’éléments de même type : « tableaux », « fichiers » Ensembles d’éléments de types différents : « structures » Travailler avec les adresses en mémoire : « pointeurs »

22 Les variables et leurs types
Les VARIABLES (et les constantes) portent les informations manipulées dans le programme Une variable est DÉCLARÉE avant utilisation : on précise son nom et son type Une variable représente une place en mémoire, dont la taille est fixée par le type, et qui débute à une certaine ADRESSE. NOMS des variables Note (4 octets) 0x100 réel

23 Action élémentaire : donner une valeur à une variable
TRANSMISSION de paramètre : depuis une autre fonction (zone mémoire d’exécution 1) (zone mémoire d’exécution 2) Depot = 1000 Taux = 5.8 Annees = 3 écrire(Interet(1000, 5.8, 3)) ... exécution du code de ‘Interet’ 1184,29 (=Interet(1000, 5.8, 3))

24 Action élémentaire : donner une valeur à une variable
ACQUISITION : lecture au clavier, ou dans un fichier, ou depuis un autre périphérique d’entrée lire(Note) ... le système lit la valeur 15 Note reçoit 15 AFFECTATION : Note  15 ...

25 Les constantes Informations que le programme ne modifie pas
Exemple : calcul de la valeur du polynôme P(x) = 3x2+5x-4 Les valeurs 3, 5 et 4 sont des constantes La valeur de x sera stockée dans une variable X. Une constante peut avoir un nom : PI = 3.14

26 Exemples de variables et constante
constante nElemMax = 15 variables tabNote : tableau de nElemMax réels i : entier Début ... Pour i variant de 1 à nElemMax faire écrire(tabNote[i]) fin pour Fin Déclarations Traitements

27 Les types des variables
Un type représente un ENSEMBLE DE VALEURS, sur lequel sont définies un ENSEMBLE d’OPÉRATIONS. La machine impose que l'ensemble de valeurs soit FINI. Exemple : le type booléen est l'ensemble de 2 valeurs {vrai, faux}. Sur ces valeurs sont définies les opérations ET, OU, NON, etc. A B A ET B V V V V F F F V F F F F A B A OU B V V V V F V F V V F F F A NON(A) V F F V

28 Les types élémentaires
Les TYPES DE BASE sont les nombres entiers et réels (opérations arithmétiques, de comparaison) les caractères, chaînes de caractères (opérations de comparaison, de concaténation) les booléens (sauf en langage C) Les valeurs représentées par ces types sont codées codage binaire (bits : 0 ou 1), octal (un octet = 8 bits), hexadécimal (2 octets = 16 bits), ... Un type correspond donc à un certain nombre d'octets

29 Les types de base du langage C sur PC
TYPE LONGUEUR DOMAINE DE VALEURS unsigned char 8 bits … 255 char bits … 127 unsigned int bits … int bits … unsigned long 32 bits … long bits … float bits * (10^-38) … 3.4 * (10^+38) double bits * (10^-308) … 1.7 * (10^+308) long double bits * (10^-4932) … 1.1 * (10^+4932)

30 Aire + Indice * 7.8888 - (6 / Epsilon)
Les expressions Une expression est une combinaison d’opérations, qui définit une nouvelle valeur : par exemple 3*2+5 est une « expression arithmétique ». Une expression est évaluée, puis remplacée par sa valeur. Expression arithmétique : les opérations portent sur des nombres, la valeur correspondante est un nombre Aire + Indice * (6 / Epsilon)

31 (a = 0) OU (b > c) ET Condition
Les expressions Expression relationnelle : les opérations portent sur des nombres, la valeur correspondante est un booléen (a = 0) (b > c) Expression logique : les opérations portent sur des booléens, la valeur correspondante est un booléen (a = 0) OU (b > c) ET Condition Notion de priorité des opérateurs : 32+5 est différent de 3(2+5)

32 3+4*5 A OU B ET C -3+2 3+4-x (3+4)*5 (A OU B) ET C
Quelques règles sur l’ordre d’évaluation des opérateurs : Les produits sont prioritaires sur les sommes : 3+4*5 A OU B ET C Opérateurs unaires prioritaires sur opérateurs binaires : -3+2 En cas d'égalité de priorité : de gauche à droite 3+4-x utilisation de parenthèses : (3+4)*5 (A OU B) ET C

33 Actions élémentaires Affectation d’une valeur à une variable
Exemple : "la variable Px reçoit la valeur de l'expression 3x2+5x-4" en langage algorithmique : Px ← 3 x2 + 5 x - 4 en Pascal : Px := 3 * x * x + 5 * x - 4 en langage C : Px = 3 * x * x + 5 * x - 4 Appel de fonction ou de procédure Exemples : en langage algorithmique appel de fonction : gain ← Intérêts(D, 8.25, 15) - D appel de procédure : tri(3, x)

34 procédure de saisie au clavier
en langage algorithmique : lire(X) en Pascal : read(X) en C++ : cin >> X en langage C : scanf(“%d”, &X) // si X est entier Par cet appel de procédure, le système lit la valeur saisie par l’utilisateur au clavier et l'affecte à la zone mémoire désignée par X : X NOMS des variables 0x100 entier 15

35 procédure d'affichage à l'écran
en langage algorithmique : écrire(X) ou encore écrire("voici les valeurs de X et Y : ", X,Y) en Pascal : write(X) ou : write('voici la valeur de X : ', X) en langage C : printf(“%d”, X) // si X est entier ou : printf(“voici la valeur de X : %d”, X)


Télécharger ppt "Module I3 algorithmique et programmation"

Présentations similaires


Annonces Google