Algorithmique Instructions de base et Variables Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 10/09/2003 Dernière modification: 17/09/2003.

Slides:



Advertisements
Présentations similaires
Les Structures.
Advertisements

Premier programme en C :
Tris.
Algorithmique (suite)
Algorithmique et Programmation DEUG 2 Sciences Economiques 2004/2005
Algorithmique et Programmation
Algorithmique Résume.
GEF 243B Programmation informatique appliquée Expressions et opérateurs.
Les Structures. Introduction : Imaginons que lon veuille afficher les notes dune classe délèves par ordre croissant avec les noms et prénoms de chaque.
Exercices Algorithmiques
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
Chap. 1 Structures séquentielles : listes linéaires
5. Les structures répétitives
4. Les structures de tests
8. Les tableaux P. Costamagna – ISEN N1.
Initiation à la programmation et algorithmique cours 3
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
Les bases de l’Algorithmique
CPI/BTS 2 Programmation Web Introduction au PHP
Cours algorithme 2 S. Tabbone.
Cours de programmation
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Partie 1 Etude de l'existant
Introduction à l’algorithmique
Chapitre IV LES STRUCTURES SIMPLES. Plan I- Les entrées II- Laffectation III- Les sorties.
Démarche de résolution de problèmes
Algorithmique et Programmation
Algorithmique et structure de données
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Le codage des nombres en informatique
Outils de Programmation
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
FICHIERS : Définition : Algorithme général:
CHAINE DE CARACTERES : Définition :
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Semaine #1 INF130 par Frédérick Henri.
Semaine #1 INF135 par Frédérick Henri.
Algorithmique et structure de données
Types de données fondamentaux
Python Fonction et procédure
Un survol du language C.
Codage des nombres en informatique : le système binaire.
Algorithmique : Introduction
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
Module algorithmique et programmation
Codage de l’information
8PRO107 Éléments de programmation Les adresses et les pointeurs.
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Scripts et fonctions Instructions de contrôle
Chapitre 4 La représentation des nombres.
Algorithmique Tableaux de données
Chapitre 4b La représentation des nombres.
Chapitre 9 Les caractères.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Objets et Actions Élémentaires.
Scratch Partie 03 Version A15.
Les Structures simples
Algorithmique Conditions et Itérations Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 17/09/2003 Dernière modification: 17/09/2003.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Seconde 8 Module 7 M. FELT 03/11/ Module 7: Algorithmique #2  Objectifs:  AlgoBox.  Définition d’un algorithme.  Affectation de variable. 
Algorithmique Boucles et Itérations
Introduction au langage C
Algorithmique et programmation
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Transcription de la présentation:

Algorithmique Instructions de base et Variables Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 10/09/2003 Dernière modification: 17/09/2003

Instructions de base Dans le chapitre précédent nous avons vu qu’un programme (et donc un algo) utilise des données en entrée et en sortie. Données en entréeProgrammeDonnées en sortie ProcesseurMémoire

Instructions de base La question qui se pose à nous, outre le fait de savoir avec quels outils traiter les données, c’est d’abord de savoir comment les lire, et comment les écrire. Pour cela, rien de plus simple, deux instructions élémentaires: –La primitive (ou fonction) lire –La primitive (ou fonction) écrire (ou afficher)

Instructions de base Ces deux primitives permettent de lire une donnée (chiffre, lettre, phrase, signe quelconque) saisie au clavier, ou bien d’afficher un texte créé dans l’algorithme Il faut cependant stocker la donnée lue dans la mémoire de l’ordinateur. Le plus simple pour le moment, est de réserver une place dans la mémoire vive. Nous verrons précisément comment un peu plus tard, l’important ici étant de montrer l’emploi de lire et écrire dans un algo

Instructions de base Programme SaisieAffichage Début écrire(‘Veuillez saisir un texte: ’) lire(texte) écrire(‘voici le texte que vous avez entré: ‘, texte) Fin Note: l’instruction lire(texte) peut aussi s’écrire: texte  lire() c’est selon vos préférences personnelles …

Instructions de base La fonction lire() associe donc un contenu (la donnée saisie au clavier) dans un emplacement mémoire: une variable. Dans l’exemple précédent, l’algo lit le texte que l’utilisateur a entré au clavier, puis le « range » dans une case mémoire de l’ordinateur. Cette case a un nom: texte. Elle aurait pu s’appeler TOTO, dans ce cas on aurait utilisé: lire(TOTO). Mais on aurait aussi du écrire: écrire(‘voici le texte que vous avez entré: ‘, TOTO) La fonction écrire permet d’alterner l’affichage entre du texte prédéfini (celui entre quotes ‘ ‘) et une variable, quelle qu’elle soit. L’important est de toujours marquer la différence entre texte prédéfini et variables par des quotes et des virgules

Instructions de base Exemple : écrire(‘Toto habite au ‘, num_rue, ‘rue ‘, nom_rue, ‘de la ville ‘, nom_ville) Dans cette instruction, « num_rue », « nom_rue » et « nom_ville » sont des variables. On ne peut pas les mettre entre quotes comme le reste du texte prédéfini Donc on les sépare par des virgules du reste du texte En prenant soin d’encadrer chaque morceau de texte par une quote de chaque côté.

Instructions de base Exercice: écrire un algorithme qui demande à l’utilisateur de saisir successivement le statut (M. Mme, Mlle), le nom d’une personne, son âge, et sa profession, puis qui affiche le tout sous la forme: M. Toto a 37 ans. Sa profession est : chauffeur de taxi Indication: ne vous souciez pas des variables, utilisez les comme vous voulez.

Instructions de base Correction: Programme SaisieAffichage Début écrire(‘Veuillez saisir le statut de l’individu: ‘) lire(statut) écrire(‘Veuillez saisir le nom de l’individu: ‘) lire(nom) écrire(‘Veuillez maintenant saisir son age: ‘) lire(age) écrire(‘ … et enfin sa profession: ‘) lire(profession) écrire(statut, nom, ‘ a ‘, age, ‘ ans.’) écrire(‘Sa profession est: ‘, profession) Fin

Les variables Nous savons maintenant lire et écrire des données, mais il nous reste à définir précisément la manière de les stocker dans un algo. Nous avons vu que tout traitement de donnée utilise la mémoire de l’ordinateur, Sur un ordinateur, 2 principaux types de mémoire: –Mémoire vive (RAM), volatile –Mémoire de masse (disque dur), permanente Pour le moment nous n’allons nous intéresser qu’à la mémoire vive, pour des raisons de simplicité.

Les variables La mémoire vive est un espace global disponible pour le stockage d’informations, Dans cet espace global, chaque donnée se voit réserver un espace particulier, d’une certaine taille, La taille du bloc mémoire alloué (réservé) pour une donnée est directement déterminé par le programmeur. On ne peut pas réserver un bloc quelconque, et mettre ensuite n’importe quel type de donnée dedans.

Les variables Pourquoi ne peut-on pas mettre n’importe quel type de données dans un bloc mémoire ? Car les données sont stockées en binaire en mémoire. Or, une séquence de bits peut définir énormément d’informations différentes suivant l’utilisation que l’on en fait. Un bloc de bits est donc totalement abstrait si l’on ne sait pas comment le lire ! C’est là qu’interviennent les types de variables : ils conditionnent la manière de réserver un espace mémoire, d’écrire dedans, et d’interpréter ensuite leur contenu.

Les variables Question: quels types de variables pouvez vous imaginer ?

Les variables Les types « de base » sont: –Les entiers, pour manipuler des entiers, –Les réels, pour manipuler des réels, –Les booléens, pour manipuler des valeurs booléennes vrai ou faux –Les caractères, pour manipuler des caractères alphabétiques ou numériques –Les chaînes, pour manipuler des chaînes de caractères représentant des mots ou des phrases. Il faut noter qu'à un type donné, correspond un ensemble d'opérations définies pour ce type, que nous allons voir. Une variable est l'association d'un nom de variable avec un type, permettant de mémoriser une valeur de ce type.

Les variables Le type entier Les opérations utilisables sur les entiers sont : –les opérateurs arithmétiques classiques : + (addition), - (soustraction), * (produit) –la division entière, notée ÷, telle que n ÷ p donne la partie entière du quotient de la division entière de n par p –le modulo, noté mod, telle que n mod p donne le reste de la division entière de n par p –Les opérateurs de comparaison classiques :, =, <> Un entier est codé sur 2 octets, soit 2*8 = 16 bits D’où un intervalle de valeur : à 32767

Les variables Le type entier Fonctions utiles: –abs(-3) renvois 3 (valeur absolue) –sqr(7) renvois 49 (carré)

Les variables Le type réel Les opérations utilisables sur les réels sont : –les opérations arithmétiques classiques : + (addition), - (soustraction), * (produit), / (division) –Les opérateurs de comparaison classiques :, =,... –A noter que la division / marche aussi sur les entiers mais résultat de type réel.

Les variables Le type réel Fonctions utiles: –Abs() –Sqr() –Sqrt()(racine carré) –frac() (partie fractionnaire. Ex: frac(1.35) renvoie 0.35) –int()(partie entière. Ex: int(1.35) renvoie 1.) –ln, exp, sin, cos, etc. Ces fonctions renvoient un réel. D’autres renvoient un entier: –round()(arrondi. Ex: round(2.85) renvoie 3) –trunc()(tronquage. Ex: trunc(2.85) renvoie 2)

Les variables Le type booléen Il s'agit du domaine dont les seules valeurs sont vrai ou faux. Les opérations utilisables sur les booléens sont réalisées à l'aide des connecteurs logiques : et (pour le et logique), ou (pour le ou logique), non (pour le non logique). Rappel des opérateurs logiques NON VraiFaux Vrai ETVraifaux Vrai Faux OUVraifaux Vrai FauxVraiFaux

Les variables Le type caractère Il s'agit du domaine constitué des caractères alphabétiques et numériques. Une variable de ce type ne peut contenir qu'un seul et unique caractère. Les opérations élémentaires réalisables sont les comparaisons : >, <, =,... Code ASCII étendu de 256 caractères Fonctions utiles: –ord(caractere)(valeur numérique du code de caractère, ex. ord(‘A’) retourne l’entier 65) –chr(entier)(cherche le caractère correspondand à l’entier, dans la table ASCII. Ex. chr(65) == ‘A’.)

Les variables Le type chaîne Une chaîne est une séquence de plusieurs caractères. Les opérations élémentaires réalisables sont les comparaisons :, =,... selon l'ordre lexicographique. Fonctions utiles: –fonction concat (chaîne1, chaîne2) retourne une chaîne formée de la concaténation de chaîne1 et chaîne2 –fonction longueur (chaîne) retourne un entier: la longueur de la chaîne –fonction sousChaîne (chaîne, entier, entier) retourne un extrait de la chaîne Le premier entier représente l’indice de départ de la sous chaîne, et le deuxième la longueur à partir de l’indice. exemple : sousChaîne("informatique", 6, 2) retourne la chaîne "ma". –fonction ième (chaîne, entier) retourne le caractère placé à l’indice indiqué par la valeur de l’entier. Il faut donc le stocker dans une var de type caractère

Instruction d’Affectation Une instruction est la spécification d'une ou de plusieurs actions portant sur une ou des variables. L'instruction la plus commune est l'affectation. Elle consiste à doter une variable d'une valeur appartenant à son domaine, c'est à dire à lui donner une première valeur ou à changer sa valeur courante. Elle se note  Exemple: nom  “Toto”{chaîne de caractères} numéro  6544{entier} num_reel  56.34{réel} lettre  ‘c’{caractère} test  vrai{booléen}

Instruction d’Affectation Exemple d’algorithme Algorithme affectation Début x  12 y  x + 4 x  3 fin Cet algorithme est constitué de trois instructions successives qui seront effectuées les unes après les autres. Les variables x et y sont entières. La première instruction consiste à affecter à la variable x la valeur 12. A la fin de cette instruction, la variable x vaut 12.

Instruction d’Affectation Exemple d’algorithme Algorithme affectation Début x  12 y  x + 4 x  3 fin 2ème instruction: affectation d'une expression non réduite à une valeur, à une variable (y). L'expression x + 4 est d'abord reconnue comme une somme à effectuer portant sur deux valeurs. La première valeur est celle de la variable x, qui existe, puisque l'instruction précédente a affecté 12 à x.

Instruction d’Affectation Exemple d’algorithme Algorithme affectation Début x  12 y  x + 4 x  3 fin La troisième instruction modifie la valeur de la variable x, qui devient 3. L'ancienne valeur de x, qui était 12, est définitivement perdue.

Instruction d’Affectation Conclusion: –Le déroulement séquentiel fait naturellement oublier les instructions effectuées en ne conservant que les valeurs courantes des variables. Ex: la première valeur de x (12) a été complètement perdue lors de la 3ème instruction. –La plupart du temps on ne peut faire des opérations que sur des variables de type identiques. Dans l’algo précédent, elles sont toutes de type Entier. –Toujours penser à initialiser les variables en début de programme. Pourquoi ? Car effectuer des opérations sur une variable ne contenant « rien » n’est pas autorisé. Ex: Dans notre algo précédent, les deux premières instructions ne sont pas permutables car x n'aurait alors pas eu de valeur au moment du calcul.

Déclaration de variables Jusqu’à présent nous avons utilisé des variables: –sans nous soucier de leur type, –puis en évoquant leur type mais sans trop en subir les contraintes Avant d’utiliser une variable comme nous l’avons fait, il faut la « déclarer » au début de l’algorithme La déclaration sert à faire connaître cette variable au reste de l’algorithme. La déclaration associe le nom d’une variable à un type particulier de données. L’association { nom, type de données } ne changera plus tout au long du déroulement de l’algo.

Déclaration de variables Comment déclarer les variables ? Très simple: rajout d’un bloc nommé « Déclarations » en début de programme. Exemple: Algorithme affectation Déclarations Variable x : entier{ commentaire sur le rôle de x } y : entier{ commentaire sur le rôle de y } Début x  12 y  x + 4 x  3 fin

Déclaration de variables Note: on peut aussi écrire: Variable x : entier y : entier Sous la forme: Variable x, y : entier

Déclaration de variables Déclaration des autres types de données: Programme ExempleDeclaration Déclarations Variables x, y : entier{ commentaires sur x et y } z : réel{ commentaires sur z } nom : chaîne[30]{ commentaire sur nom } tmp : caractère{ commentaire sur tmp } test : booléen{commentaire sur booléen} Début …. Fin

Déclaration de variables Règles de nommage des variables: –Toutes les variables sont uniques –Le premier caractère de la variable est une lettre, minuscule ou majuscule, ou un underscore (caractère souligné _, touche 8) –Les autres caractères suivent la même règle sauf qu’on peut ajouter des chiffres –Pas de caractères ‘espace’ ou de caractères spéciaux –Exemples: Variable x : entier{ OK } user1 : entier{ OK } 1b : entier{ IMPOSSIBLE } : entier{ IMPOSSIBLE }

Exercices Exercice: écrire un algorithme qui demande à l’utilisateur de saisir successivement le statut (M. Mme, Mlle), le nom d’une personne, son âge, et sa profession, puis qui affiche le tout sous la forme: M. Toto a 37 ans. Sa profession est : chauffeur de taxi Indication: faites attention aux types de variables !

Exercices Programme SaisieAffichage Déclarations Variable statut: chaîne[4] { statut de la personne } nom:chaîne[30] { nom de la personne } age: entier { age de la personne } profession: chaîne[30] { profession de la personne } Début écrire(‘Veuillez saisir le statut de l’individu: ‘) lire(statut) écrire(‘Veuillez saisir le nom de l’individu: ‘) lire(nom) écrire(‘Veuillez maintenant saisir son age: ‘) lire(age) écrire(‘ … et enfin sa profession: ‘) lire(profession) écrire(statut, nom, ‘ a ‘, age, ‘ ans.’) écrire(‘Sa profession est: ‘, profession) Fin

Exercices Exercice: écrire un algorithme qui demande deux nombres à l’utilisateur. L’algorithme les additionne et informe l’utilisateur du résultat de l’addition. Exemple: Veuillez entrer le premier nombre: 56 Veuillez entrer le nombre à additionner: 5 Résultat: = 61

Exercices Programme Addition Déclarations Variable x: entier { premier nombre lu } y:entier { deuxième nombre lu } resultat: entier { résultat de l’addition } Début écrire(‘Veuillez entrer le premier nombre: ‘) lire(x) écrire(‘Veuillez entrer le nombre à additionner: ‘) lire(y) resultat  x + y{ on affecte x+y à la var. resultat } écrire(‘Résultat: ‘, x, ‘ + ‘, y, ‘ = ‘, resultat) Fin

Exercices Programme Addition Déclarations Variable x: entier { premier nombre lu } y:entier { deuxième nombre lu } Début écrire(‘Veuillez entrer le premier nombre: ‘) lire(x) écrire(‘Veuillez entrer le nombre à additionner: ‘) lire(y) écrire(‘Résultat: ‘, x, ‘ + ‘, y, ‘ = ‘, x+y) Fin

Exercices Exercice: écrire un algorithme qui demande un nombre réel à l’utilisateur. L’algorithme affiche alors un encadrement de ce nombre entre les deux entiers les plus proches. Exemple: Veuillez entrer un nombre réel: Ce nombre est compris entre 3 et 4

Exercices Programme Encadrement Déclarations Variable x: réel { nombre lu } nb_inf, nb_sup: entier { nombres qui encadrent } Début écrire(‘Veuillez entrer un nombre réel: ‘) lire(x) nb_inf  trunc(x){ on calcule l’arrondi inférieur } nb_sup  trunc(x) + 1{ on calcule l’arrondi supérieur } écrire(‘Ce nombre est compris entre ‘, nb_inf, ‘ et ‘,nb_sup) Fin

Exercices Programme Encadrement Déclarations Variable x: réel { nombre lu } Début écrire(‘Veuillez entrer un nombre réel: ‘) lire(x) écrire(‘Ce nombre est compris entre ‘, trunc(x), ‘ et ‘, trunc(x) + 1) Fin

Exercices Exercice: écrire un algorithme qui demande trois phrases à l’utilisateur. L’algorithme concatène alors ces trois phrases, écrit le résultat de la concaténation, ainsi que la longueur de la nouvelle phrase ainsi formée. Exemple: Veuillez entrer une phrase: toto est Veuillez entrer une phrase: pas beau Veuillez entrer une phrase: mais alors vraiment pas Résultat: toto est pas beau mais alors vraiment pas Longueur: 41 caractères

Exercices Programme concat Déclarations Variable ch1, ch2, ch3: chaîne[25] { phrases lues } ch_concat: chaîne[75] { concaténation } ch_long : entier{ longueur finale } Début écrire(‘Veuillez entrer une phrase: ‘) lire(ch1) écrire(‘Veuillez entrer une phrase: ‘) lire(ch2) écrire(‘Veuillez entrer une phrase: ‘) lire(ch3) {on concatène ch2 à la suite de ch1 dans ch_concat} ch_concat  concat(ch1, ch2) {on concatène ch3 à la suite de ch_concat dans ch_concat} ch_concat  concat(ch_concat, ch3) écrire(‘Résultat: ‘, ch_concat) ch_long  longueur(ch_concat) écrire(‘Longueur: ‘, ch_long) Fin

Exercices Programme concat Déclarations Variable ch1, ch2, ch3: chaîne[25] { phrases lues } ch_concat: chaîne[75] { concaténation } Début écrire(‘Veuillez entrer une phrase: ‘) lire(ch1) écrire(‘Veuillez entrer une phrase: ‘) lire(ch2) écrire(‘Veuillez entrer une phrase: ‘) lire(ch3) {on concatène ch3 à la suite de ch2 puis le tout à la suite de ch1 dans ch_concat} ch_concat  concat(ch1, concat(ch2,ch3) ) écrire(‘Résultat: ‘, ch_concat) écrire(‘Longueur: ‘, longueur(ch_concat)) Fin

Exercices Programme concat Déclarations Variable ch : chaîne[25] { phrases lues } ch_concat: chaîne[75] { concaténation } Début écrire(‘Veuillez entrer une phrase: ‘) lire(ch_concat) écrire(‘Veuillez entrer une phrase: ‘) lire(ch) ch_concat  concat(ch_concat, ch) écrire(‘Veuillez entrer une phrase: ‘) lire(ch) ch_concat  concat(ch_concat, ch) écrire(‘Résultat: ‘, ch_concat) écrire(‘Longueur: ‘, longueur(ch_concat)) Fin

En conclusion … Dans ce chapitre nous avons appris: –Ce qu’était une variable, –Ce qu’est un type de variable, –Comment les déclarer, –Comment les nommer, –Comment les utiliser dans un programme, –Et comment économiser leur nombre.