MàN Info Licence acoustique

Slides:



Advertisements
Présentations similaires
Introduction à la programmation
Advertisements

CHAftITREI ARCHITECTURE de BASE. Modèle de Von Neumann Langage d’assemblage1 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
Comment utiliser le débogueur de Visual Studio /8/2015 INF145 1 Créé par Julien Galarneau Allaire, révisé par Eric Thé S.E.G.
annuités, mensualités remboursements constants VPM pendant une période ininterrompue
UE2 - M22 Licence acoustique
JAVA.
Un Algorithme , c'est Quoi ?
LES TABLEAUX EN JAVA.
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Algorithmiques Abdelbasset KABOU
Détection des erreurs.
Algorithme et programmation
Les Tableaux Mme DJEBOURI. D.
Algorithmique AU El harchaoui noureddine
Les Bases de données Définition Architecture d’un SGBD
Algorithmique demander jeu du pendu.
Chapitre 4: Variation dans le temps
Ajouter le code dans une page html
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Les opérations sur les nombres
L’Instruction de Test Alternatif
Javadoc et débogueur Semaine 03 Version A16.
Les Instructions – Organigramme
Un Algorithme , c'est Quoi ?
Bases de programmation en Python
Principes de programmation (suite)
Activités algorithmiques
Tableaux à plusieurs dimensions en langage C
Fonctions logiques et algèbre booléenne
Plans d’expériences: Plans factoriels
Semaine #7 INF130 par Frédérick Henri.
Algorithmique & Langage C
Cyber-Sphinx Séance 2.
Semaine #4 INF130 par Frédérick Henri.
Science du traitement rationnel de l'information
Algorithmique & Langage C IUT GEII S1 Notes de cours (deuxième partie)
Cours N°9: Algorithmiques Les Tableaux 1
Concepts de base de la programmation
Notion De Gestion De Bases De Données
Création Et Modification De La Structure De La Base De Données
1.2 dénombrement cours 2.
Cours N°10: Algorithmiques Tableaux - Matrices
PROGRAMMATION ET ENSEIGNEMENT
Exercice PHP DEUST TMIC
من إعداد الأساتذة بوزاوية حميد و عيسى محمد
Exercice : le jeu. Vous devez concevoir l’algorithme permettant de jouer avec votre calculatrice : elle détermine au hasard un nombre caché entier entre.
Chapitre 3 : Caractéristiques de tendance centrale
Assembleur, Compilateur et Éditeur de Liens
NUMERATION et REPRESENTATION DES NOMBRES
B.Shishedjiev - Informatique
Introduction aux microprocesseurs
Difficultés d’apprentissage
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Filière Génie Civil – 2018 Langage C Tableaux – Exercices de révision
ENREGISTREMENT DES INSPECTIONS VISUELLES
Chapitre 3: Les scriptes
Le programme informatique L’algorithme Le codage
PRO1026 Programmation et enseignement
Programmation Scratch
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Tris Simples/Rapides.
Exercices récapitulatifs
PROGRAMMATION ET ENSEIGNEMENT
Introduction à L’Informatique
Les différents types de calcul en lien avec les numérations orale et écrite Nathalie Pfaff Professeure agrégée de mathématiques à l’ESPE de l’académie.
Python Nicolas THIBAULT
Type Tableau Partie 1 : Vecteurs
Les données structurées et leur traitement
Séquence 1:Analyse du système d’information comptable
Transcription de la présentation:

MàN Info Licence acoustique Développement d'un programme Formation EAE – Année universitaire 2015-2016

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

intérêt POURQUOI UTILISER UN LANGAGE INFORMATIQUE ? Pour traiter des petits problèmes de calcul spécifiques quand on ne dispose pas d ’outils déjà adaptés Quand il faut automatiser une tâche très répétitive A CHAQUE FOIS SE POSE LA QUESTION : Choix du meilleur outil ? EXCEL Application toute intégrée (DBBATI) Application personnelle

CODAGE dans un langage informatique démarche PROBLEME Analyse Il faut avoir un minimum d ’expérience Algorithme CODAGE dans un langage informatique

algorithmie DEFINITION C’est une méthode de conception Elle permet de découper le problème complexe en sous-problèmes indépendants moins complexes. Elle doit être indépendante du langage de programmation. Elle doit être compréhensible par tout le monde, même un NON INFORMATICIEN.

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

TRAITEMENT du programme Le programme est stocké de façon permanente sur le disque DUR Quand l’application est lancée, le SYSTEME D ’EXPLOITATION recopie le fichier dans la mémoire VIVE …. MEMOIRE VIVE Zone des instructions du programme

TRAITEMENT du programme MEMOIRE VIVE Zone des instructions du programme … puis le PROCESSEUR vient rechercher et TRAITER les instructions du programme Zone des données du programme

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

Outils de base Premier programme Programme SommeDeuxValeurs Var valeur1,valeur2: NOMBRE somme: NOMBRE DEBUT /* Saisie de deux valeurs */ Afficher « Entrer 2 valeurs » Lire Valeur1 Lire Valeur2 /* Effectuer la somme */ somme  Valeur1 + Valeur2 FIN

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

Notion de type Toutes les données manipulées peuvent être de nature différente Entiers, réels, caractères, chaînes de caractères, boolean ... DEFINITION Le type d’une donnée spécifie la taille occupée par la donnée en mémoire, les opérations qui lui sont applicables ainsi que l’intervalle de valeurs autorisées

Types en algo Voici une liste : NOMBRE: représente un ENTIER sur 2 octets [-32768,+32767] LONG: représente un ENTIER LONG sur 4 octets -2 147 483 648 à 2 147 483 647 REEL: représente un REEL sur 4 octets ; autorise les décimales -3,402823E38 à -1,401298E-45 pour les valeurs négatives  1,401298E-45 à 3,402823E38 pour les valeurs positives BOOLEAN: représente le type LOGIQUE (VRAI/FAUX) sur 1 octet (ou 2 octets) CARACTERE: représente les caractères issus de la table ASCII sur 1 octet. En interne, l’ordinateur travaille avec les codes ASCII et non avec la représentation du caractère

Codes ASCII Code de 'i' >> 0x69

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

Adresse de la variable dans la mémoire de l’ordinateur Notion de variables Une variable permet de mémoriser une information MEMOIRE Valeur1 $01FF NOM de la variable Adresse de la variable dans la mémoire de l’ordinateur

Déclaration de variables Programme TestDéclaration Lavaleur: NOMBRE CarLu: CARACTERE DEBUT ……………………………….. FIN LaValeur CarLu 2 octets 1 octet

Affectation Programme TestDéclaration Lavaleur: NOMBRE DEBUT ……………………………….. LaValeur  5 FIN Après la déclaration, il y a réservation d’une zone mémoire de 2 octets sans valeur initiale LaValeur ????? Après l’opération, la zône mémoire contient la valeur 5 LaValeur 5

ATTENTION Programme TestDéclaration Lavaleur: NOMBRE DEBUT ……………………………….. LaValeur  « Bonjour » LaValeur  5.12 FIN

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

Notion de constantes C’est un objet qui ne possède pas d’emplacement mémoire La valeur de la constante est DIRECTEMENT placée dans le code du programme 3 est une constante NOMBRE 25.2 est une constante REEL VRAI ou FAUX sont des constantes BOOLEAN ‘ A ’ est une constante CARACTERE « Bonjour » est une constante chaîne

remplacera cette écriture par la valeur de la constante PI, Notion de constantes On peut associer un nom à la constante pour la rendre plus LISIBLE (LA VALEUR NE PEUT PAS ETRE MODIFIEE) Programme CalculSurface Const PI=3.1415 Var Rayon,Surface : REEL DEBUT /* Saisie de la valeur du rayon */ Afficher « Entrer la valeur du rayon » Lire Rayon /* Effectuer le calcul */ Surface  PI*Rayon*Rayon Afficher « La surface est « , Surface, »cm2 » FIN Le COMPILATEUR remplacera cette écriture par la valeur de la constante PI, ici 3.1415

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

Opérateurs Mathématiques +,-,*,/ Pour la division, le résultat est de type REEL ; éventuellement avec des décimales si l’un des opérandes est de type REEL 5.0/2.0 donne 2.5 5.0/2 donne 2.5 5/2.0 donne 2.5 5/2 donne 2 Division entière DIV 5 div 2 vaut 2 (identique à 5/2) mais plus explicite !!

Opérateurs Mathématiques Reste de la division entière MOD 5 mod 2 vaut 1 Expression logique Une expression logique (également appelée CONDITION) fait intervenir des opérateurs de comparaison ayant pour valeur VRAI ou FAUX Egalité: = Différent: <> Inférieur: < Supérieur: > Supérieur ou égal: >= Inférieur ou égal : <=

Opérateurs Expression logique 2<3 réponse : VRAI ‘ A ’<‘ E ’ réponse: VRAI Combiner les expressions logiques Il est parfois intéressant de combiner plusieurs instructions On souhaite savoir si la valeur de la variable LaValeur est comprise entre 10000 et 15000 Expression: LaValeur>=10000 et LaValeur<=15000

Opérateurs Combiner les expressions logiques Val1 2 Val2 10 Val3 15 Analysons les expressions : (Val1 < Val2) Et (Val3 < Val4) FAUX (Val1 < Val2) Ou (Val3 < Val4) VRAI (Val1 < Val2) Et (‘ A ’ < ‘ B ’) VRAI

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

Instructions de contrôle Elles permettent de contrôler le déroulement du programme …. … en fonction du résultat d’un test

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

Structure SI Si Conditions Alors Instructions Fin Si Si la condition est vraie alors exécuter les instructions Le programme continue son exécution après l’instruction Fin Si

Structure SI Programme ValeurAbsolue ValeurLue: NOMBRE DEBUT Afficher « Entrer une valeur numérique » Lire ValeurLue /* Effectuer le test pour savoir si la valeur est négative */ Si ValeurLue<0 Alors ValeurLue  -ValeurLue Fin Si Afficher « la valeur absolue est »,ValeurLue FIN

Structure SI Si Conditions Alors Instructions 1 Sinon Instructions 2 Fin Si Si la condition est vraie alors exécuter les instructions 1 Sinon exécuter les instructions 2

Structure SI Bien respecter l’indentation des blocs Programme ValeurAbsolue Valeur1,Valeur2: NOMBRE DEBUT Afficher « Entrer 2 valeurs numériques » Lire Valeur1 Lire Valeur2 /* Effectuer le test de comparaison */ Si Valeur1 < Valeur2 Alors Afficher « La valeur la plus grande est », Valeur2 Sinon Si Valeur1>Valeur2 Alors Afficher « La valeur la plus grande est », Valeur1 Afficher « les deux valeurs sont égales » Fin Si FIN Bien respecter l’indentation des blocs

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

Structure Tant que Faire Tant que Condition Faire Instructions Fin Tant que Tant que la condition est vraie exécuter les instructions C’est une instruction de répétition appelée BOUCLE Le programme teste si la condition est vraie, dans l’affirmative il exécute les instructions jusqu’au Fin Tant que Puis il revient au test de la condition ... Lorsque le test devient faux, la boucle se termine

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

Structure Répéter jusqu’à Instructions Jusqu ’à Conditions exécuter les instructions Jusqu ’à ce que la condition soit vraie C ’est une instruction de répétition appelée BOUCLE L ’instruction est exécutée AU MOINS 1 FOIS !!!!

Structure Tant que Faire L’utilisateur doit saisir une série de nombres, la saisie s'arrête quand l'utilisateur tape la valeur 0. Le programme affiche alors la somme des valeurs. Programme FaireSomme ValeurLue: NOMBRE La Somme : NOMBRE DEBUT /* initialiser la variable de cumul */ LaSomme  0 /* Effectuer la saisie et le cumul */ Afficher « Entrer une série de valeurs » Lire ValeurLue /* Boucler tant que la valeur lue n ’est pas zéro et faire le cumul*/ Tant que ValeurLue<>0 Faire LaSomme  LaSomme +ValeurLue Fin tant que Afficher « la somme des valeurs est »,LaSomme FIN

Structure Tant que Faire ANALYSE LaSomme  0 Afficher « Entrer une série de valeurs » Lire ValeurLue 4

Structure Tant que Faire ANALYSE Tant que ValeurLue<>0 Faire LaSomme  LaSomme +ValeurLue Lire ValeurLue Fin tant que Afficher « la somme des valeurs est »,LaSomme FIN Test VRAI

Structure Tant que Faire ANALYSE Tant que ValeurLue<>0 Faire LaSomme  LaSomme +ValeurLue Lire ValeurLue Fin tant que Afficher « la somme des valeurs est »,LaSomme FIN LaSomme=0+4=4 5

Structure Tant que Faire ANALYSE Tant que ValeurLue<>0 Faire LaSomme  LaSomme +ValeurLue Lire ValeurLue Fin tant que Afficher « la somme des valeurs est »,LaSomme FIN Test VRAI LaSomme=4+5=9

Structure Tant que Faire ANALYSE Tant que ValeurLue<>0 Faire LaSomme  LaSomme +ValeurLue Lire ValeurLue Fin tant que Afficher « la somme des valeurs est »,LaSomme FIN Test FAUX LaSomme=4+5=9 SORTIE DE LA BOUCLE

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

Structure Pour Pour NomVarBoucle  valDebut à ValFin Par pas de ValPas Instructions Fin pour Pour une variable de boucle dont le contenu varie de Valdebut à ValFin par Pas de ValPas exécuter les instructions Permet d ’exécuter les instructions un nombre déterminé de fois

Structure Pour Afficher la table de multiplication par 10 Pour i  1 à 10 par Pas de 1 Afficher i*10 Fin Pour

Structure Pour Afficher la table de multiplication par 10 Pour i  1 à 10 par Pas de 1 Afficher i*10 Fin Pour I=1 1*10

Structure Pour Afficher la table de multiplication par 10 Pour i  1 à 10 par Pas de 1 Afficher i*10 Fin Pour I=2 2*10

Structure Pour Afficher la table de multiplication par 10 Pour i  1 à 10 par Pas de 1 Afficher i*10 Fin Pour I=6 6*10 I=7 7*10 I=8 8*10 I=9 9*10 I=10 10*10 I=11

Structure Pour Afficher la table de multiplication par 10 Pour i  1 à 10 par Pas de 1 Afficher i*10 Fin Pour

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

Tableaux Un tableau permet de regrouper sous un même nom un ensemble de variables de même type LeTableau: Tableau(8) de NOMBRE LeTableau 2 octets L ’utilisateur déclare un tableau de nom LeTableau possédant 8 cases de type NOMBRE, chacune de 2 octets

Tableaux On différencie les cases par leur numéro LeTableau 1 2 3 4 5 1 2 3 4 5 6 7 En fait, on dira plutôt que le tableau possède un ensemble d’indices LeTableau[2] Indique la case numéro 2 LeTableau[i] Indique la case numéro i LeTableau[2]  5 la case numéro 2 prend la valeur 5

Tableaux Saisir 10 valeurs dans un tableau et en faire la somme Pour i  1 à 10 Lire LaValeur[i] som som+ LaValeur[i] Fin Pour

Tableaux Une chaîne de caractères est en fait un tableau composé Elle se déclare: NomChaine: Tableau(taille) de CARACTERES Exemple: LaChaine: Tableau(80) de CARACTERE Cette déclaration réserve en mémoire un tableau de 80 caractères

Tableaux Les langages disposent de nombreuses fonctions de manipulation de caractères. En algorithmie, nous disposons de la fonction Longueur() qui retourne la taille de la chaîne de caractères passée en paramètre LaChaine : Tableau (80) de caractères LaTaille : NOMBRE LaChaine  "Bonjour" LaTaille  Longueur(LaChaine)

Tableaux Pour déclarer un tableau à plusieurs dimensions NomTableau: Tableau(dim1,dim2,...) de TypeElément Exemple d'un tableau à 2 dimensions : Matrice : Tableau (4,3) de NOMBRE Matrice(2,1)

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURE et FONCTION 7. Structures

Procédure et fonction Quand on écrit un programme, on se rend compte rapidement que certains blocs d'instructions se répètent. Illustration: Saisir 3 nombres entiers a,b,c. L'algorithme trie les trois nombres puis affiche les valeurs a,b,c (les données doivent apparaître dans l'ordre croissant).

Procédure et fonction Illustration: a b c 7 6 5 1re comparaison 6 5 7 5 6 7 la plus grande valeur, pour la série considérée, est en place. On recommence sur la même liste moins le dernier élément

Procédure et fonction 1er bloc 2e bloc 3e bloc Si a>b Alors temp  a a  b b  temp Fin si Si b>c Alors temp  b b  c c  temp 1er bloc 2e bloc 3e bloc

Procédure et fonction On va chercher à : Rendre le programme plus LISIBLE Eviter de retaper plusieurs fois des lignes de programme Faciliter la maintenance DEFINITION Une procédure (ou une fonction) est un bloc d'instructions ayant un début et une fin. Elle est identifiée par un nom.

Procédure et fonction On va créer une procédure qui échange deux valeurs. La procédure utilise un couple de valeurs fictives (appelés paramètres formelles) pour faire son travail. Echange val1 val2 Ici, val1 et val2 sont appelés des paramètres effectifs. Procédure Echange (val1: NOMBRE, Val2: NOMBRE)

Procédure et fonction Echange Procédure Echange (val1: NOMBRE, Val2: NOMBRE) var temp : NOMBRE DEBUT temp  val1 val1  val2 val2  temp FIN Les paramètres val1 et val2 sont assimilés à des variables locales à la procédure, car ils ne sont visibles qu’à l’intérieur du bloc d’instructions

Procédure et fonction La nouvelle écriture de l’algorithme devient : Si a>b Alors Echange(a,b) Fin si Si b>c Alors Echange(b,c) Que se passe t-il lors de cet appel de procédure ? Echange val1 val2 a=7 b=6 Ici, a et b sont appelés des paramètres effectifs. Ce sont leurs valeurs qui seront utilisées dans le calcul de la procédure

Procédure et fonction REMARQUE 3 Le rôle des paramètres est de transmettre des données entre le programme appelant et la fonction. Il existe deux façons de transmettre les données. CAS 1 PAR DEFAUT, on fait une transmission par VALEUR. Il y a copie des paramètres EFFECTIFS dans les paramètres FORMELS et la fonction travaille sur la copie Procédure AjouteUn (LaValeur: NOMBRE ByVal) DEBUT LaValeur  LaValeur +1 Afficher « Valeur dans la Procédure :»,LaValeur FIN Val 5 Afficher « Avant appel de la procédure: »,Val AjouteUn(Val) Afficher « Après appel de la procédure: »,Val Avant appel de la procédure: 5 Valeur dans la Procédure: 6 Après appel de la procédure: 5

Procédure et fonction REMARQUE 3 CAS 2 On fait une transmission par ADRESSE. La fonction travaille DIRECTEMENT avec les paramètres EFFECTIFS . Procédure AjouteUn (LaValeur: NOMBRE ByRef) DEBUT LaValeur  LaValeur +1 Afficher « Valeur dans la Procédure :»,LaValeur FIN Val 5 Afficher « Avant appel de la procédure: »,Val AjouteUn(Val) Afficher « Après appel de la procédure: »,Val Avant appel de la procédure: 5 Valeur dans la Procédure: 6 Après appel de la procédure: 6

Procédure et fonction DEFINITION Une PROCEDURE est un bloc d'instructions qui ne retourne aucune valeur résultat au programme appelant. Elle ne fait qu'exécuter des actions sans en rendre compte au programme appelant. Procédure NomProcedure (Paramètres formels et type) var variables locales DEBUT instructions FIN NomProcedure p1 p2

Procédure et fonction DEFINITION Une FONCTION est un bloc d'instructions qui retourne obligatoirement une valeur au programme appelant. Elle exécute évidemment des actions avant de retourner la valeur. Le programme appelant est obligé de l’attendre. Fonction NomFonction (Paramètres formels et type mode de passage) : TypeValeurRetournée var variables locales DEBUT instructions Retourne valeur FIN NomFonction p1 p2

Procédure et fonction Illustrations des FONCTIONS : Exemple 1 Une fonction renvoyant au programme appelant la valeur passée en paramètre augmentée de 1 Fonction AjouteUn (LaValeur: NOMBRE) : NOMBRE DEBUT Retourne LaValeur+1 FIN Lire a a  AjouteUn(a) affiche a Et avec une procédure?

Procédure et fonction Exemple 2 Une fonction recevant en paramètre : - une chaîne de caractères - un caractère elle renvoie le nombre de fois où le caractère apparaît dans la chaîne Fonction CompteOccurence (LaChaine: Tableau(80) de CARACTERE,CarRech:CARACTERE) : NOMBRE Var NbOcc: NOMBRE /* Contient le nombre d ’occurrences */ i : NOMBRE /* indice pour parcourir la chaîne */ Lg : NOMBRE /* longueur de la chaîne */ DEBUT Lg Longueur(LaChaine) i  0 NbOcc  0 Tant que i<=Lg Faire Si LaChaine[i]=CarRedch Alors NbOcc  NbOcc +1 Fin Si i  i +1 Fin Tant que Retourne NbOcc FIN

Procédure et fonction REMARQUE 1 msg1="anagramme" NbOcc=2, i=9, Lg=9 Les variables NbOcc,i et Lg sont initialisées à l’intérieur du bloc d’instructions. A la fin de l'exécution de la fonction, elles « disparaissent » car elles ne « vivent » que le temps de l’exécution de la fonction. Ce sont des variables LOCALES. Lire msg1 c1  CompteOccurence (msg1, ’a ’) Lire msg2 c2  CompteOccurence (msg2, ’b ’) msg1="anagramme" A la fin de CompteOccurence NbOcc=2, i=9, Lg=9 msg2=«bonjour» Au débutCompteOccurence NbOcc=0, i=0, Lg=0

Procédure et fonction REMARQUE 2 msg1="anagramme" NbOcc=2, i=9, Lg=9 Pour que les variables NbOcc,i et Lg conservent leurs valeurs, il faut les déclarer comme STATIQUES ce qui implique qu’elles ne sont jamais ré-initialisées lors d’un nouvel appel à la fonction. Lire msg1 c1  CompteOccurence (msg1, ’a ’) Lire msg2 c2  CompteOccurence (msg2, ’b ’) msg1="anagramme" A la fin de CompteOccurence NbOcc=2, i=9, Lg=9 msg2=«bonjour» Au débutCompteOccurence NbOcc=2, i=9, Lg=9

Procédure et fonction REMARQUE 3 Lors de l’appel d’une fonction le programme attend forcement une valeur de retour: il est bloqué. Lors de l’appel d’une procédure sur un système multitâche le programme appelant n’attend pas forcement (dépend du langage de programmation) la fin de la procédure pour continuer le programme.

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures

Structure Il est intéressant de stocker dans un emplacement mémoire plusieurs informations, qui peuvent être de nature différente, mais se rapportant à un même sujet. Exemple: on veut enregistrer des données de mesure. Il faut mémoriser : le numéro de la campagne de mesure la date les valeurs des 100 échantillons var Numero : NOMBRE DATA : Tableau(10) de CARACTERE ech : Tableau(100) de NOMBRE FIN

Structure Pour traiter ces situations, il existe un outil bien adapté : le type Record ou type Structure Exemple : Record Mesure Numero : NOMBRE Date : Tableau(10) de CARACTERE ech : Tableau(100) de NOMBRE Fin record Il ne faut pas confondre la définition d’un type Record avec la déclaration de la variable de type Record. LaMesure: Record Mesure

Structure Pour déclarer un tableau de 20 mesures : Exemple: LesMesures: Tableau(20) de Record Mesure Exemple: LaMesure.Numero  1 LaMesure.Date  « 10/02/2005 » LaMesure.ech[0]  12 LaMesure.ech[10]  24 LesMesures[0].Numero  1 LesMesures[0].Date  « 10/02/2005 » Pour i  0 à (100-1) Faire LesMesures[1].ech[i]  i Fin Pour LesMesures[1].Numero  2 ...

PLAN 1. Intérêt 2. Traitement d’un programme 3. OUTILS de BASE 3.1. Notion de type 3.2. Notion de variables 3.3. Notion de constantes 3.4. Opérateurs 4. Structures de CONTROLE SI, REPETER JUSQU’A, TANT QUE , POUR 5. Tableaux 6. PROCEDURES et FONCTIONS 7. Structures