1. Les éléments algorithmiques

Slides:



Advertisements
Présentations similaires
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Advertisements

Principes de programmation
B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.
Formation des enseignants Formation MATLAB. Formation des enseignants MATLAB® (pour MATrix LABoratory) est un logiciel scientifique de calcul numérique.
Le débogage Semaine 12 Version A15. Plan de leçon - Débogage  Commentaire javadoc  Définition  Fonctionnement  Point d’arrêt  Exécution  Contrôler.
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.
1 Chapitre 2 La numération binaire. 2 Chapitre 2 : La numération binaire Introduction 1 - Le système binaire 2 - La conversion des nombres entiers 2.1.
1 Programmation en C++ IO en C++/SL. 2 Sortie à l’écran Exemple: #include int main () { std::cout
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
Les chaînes d’opérations. Rappel des principes Ordre de priorité 1- Parenthèse 2- Exposant 3- Multiplication et division 4- Addition et soustraction.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Algorithmique ‘’ Un algorithme est une suite finie et non-ambiguë d’instructions permettant de donner la réponse à un problème. ‘’ Niveau de difficulté.
Tableaux en C Mardi 2/05.
SITUATION DE REFERENCE
Synthèse TP 2 Codeblock 1 Les objectifs de ce tp sont :
Les tableaux différencier les variables simples des variables indicées (ordonnées et numérotées) un identificateur unique désigne un ensemble, une collection.
Environnement de développement des BD
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
Langage C Structure d'un programme Types Lire Ecrire Tester
Représentation des nombres réels
Quelques Termes INFORMATIQUE ? ORDINATEUR ( Système Informatique)?
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
PO M Multiplication A Addition D M A S = = 11 6
« Un langage de programmation est une convention pour donner des ordres à un ordinateur. Ce n’est pas censé être obscur, bizarre et plein de pièges subtils.
Pointeurs et langage C.
2. Expressions relationnelles et alternatives
Programmation en C++ IO en C++/SL
Cours 2 : Représentation des nombres réels
Opérateurs Toute donnée informatique est stockée en mémoire sous la forme d'une combinaison de bits (mot machine). Les opérateurs bits permettent de modifier.
Algorithmique et programmation de modèles numériques
Semaine #1 INF130 par Frédérick Henri.
Représentation de l’information en binaire:
Javadoc et débogueur Semaine 03 Version A17.
TD1 Ecris un programme qui déclare deux variables entières. L’utilisateur doit saisir leurs valeurs. Le programme calcule ensuite leur.
Algorithmique demander jeu du pendu.
AO (Architecture des ordinateurs)
Principes de programmation (suite)
Algorithmique Langage C
Les fonctions.
Les fonctions.
Algorithmique - L’affectation -
SIF-1053 Architecture de ordinateurs
Excel (et toute l’informatique) :
Chapitre 4 Multiplication.
Programmation en C++ IO en C++/SL
6. Les types utilisateurs et les structures de données
Cours N°6: Algorithmiques Structures Conditionnelles
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Les flux en C++ Les flux d’entrées sorties Les flux standards.
Cours N°9: Algorithmiques Les Tableaux 1
Les tableaux.
Programmation en C++ C++ de base
Comment réussir son diaporama
Calcul Scientifique Initiation à SCILB
ACP Analyse en Composantes Principales
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
Apprendre le clavier Séquence 1 : découvrir les touches
Chapitre 1: introduction à Matlab
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
Les classes et les objets
5. Les modules Découpage d’une application en modules
Sylvie DELAËT 2002 Architecture des machines Bienvenus en Amphi d’Architecture des Machines.
PROGRAMMATION ET ENSEIGNEMENT
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Chapitre 2 : Représentation de l’information dans la machine Introduction Représentation des nombres négatifs –Signe / valeur absolue –Complément à 1 –Complément.
Fonctions Abstractions procédurales.
Codification et représentation de l’information Enseignant: Mahseur mohammed Groupe FB: mi2016ua1 Chaine YT: Cours informatique.
Transcription de la présentation:

1. Les éléments algorithmiques Automne 2012 1. Les éléments algorithmiques Joan S. Morales - Introduction à l'algo. et la programmation Collège Lionel-Groulx

Définition: L’algorithme Séquence complète et ordonnée de toutes les opérations à réaliser pour obtenir un résultat Exemples d’algorithmes dans la vie de tous les jours: Recette, indications routières, instructions d’assemblage Un algorithme doit être sans ambigüités produire chaque fois les mêmes résultats se terminer après un nombre fini d’opérations Joan S. Morales - Introduction à l'algo. et la programmation 2

L’algorithme (suite) Exemples d’opérations: Lire un nombre du clavier Effectuer une opération mathématique Copier une valeur en mémoire Afficher une réponse à l’écran Un algorithme effectue des traitements sur des intrants pour produire des extrants Traitements Intrants Extrants Joan S. Morales - Introduction à l'algo. et la programmation 3

Étapes du développement Automne 2012 Étapes du développement Compréhension du problème Intrants Extrants Constantes Souvent programmeur oublie le client… Ne pas se pitcher direct sur l’ordi Conception: gros du travail Création du jeu de tests Cas de base Cas extrêmes Cas limites Cas d’erreur Joan S. Morales - Introduction à l'algo. et la programmation 4 Collège Lionel-Groulx

Étapes du développement (suite) Automne 2012 Étapes du développement (suite) Codification et mise au point Création du code Tests Débogage TESTER! Joan S. Morales - Introduction à l'algo. et la programmation 5 Collège Lionel-Groulx

4 règles d’or de la programmation Automne 2012 4 règles d’or de la programmation Le développement, c’est plus que de la programmation: il faut réfléchir avant! Il faut programmer un petit bout à la fois, compiler, tester et recommencer (itératif) Un beau programme est un bon programme! Une fois terminé, il faut tester son programme, puis le tester encore, puis le tester encore, puis le tester encore, puis le tester encore, puis le tester encore, puis le tester encore , puis le tester encore , puis le tester encore , puis le tester encore , puis le tester encore , puis le tester encore , puis le tester encore,… Pas facile de faire simple. Un programme c’est comme un texte: notion de beauté Ou comme une maison! La maison doit tenir plus qu'un mois, être modifiée, améliorée! Joan S. Morales - Introduction à l'algo. et la programmation Collège Lionel-Groulx

Un premier exemple: La sphère Automne 2012 Un premier exemple: La sphère Besoin d’un outil pour calculer le volume de boules de bowling (sphères) de dimension variable L’informatique n’est pas la solution à tous les problèmes… Joan S. Morales - Introduction à l'algo. et la programmation 7 Collège Lionel-Groulx

Compréhension du problème Volume = 4/3 x π x Rayon3 Intrant(s)? Le rayon Extrant(s)? Le volume Constantes π = 3,14159265 Joan S. Morales - Introduction à l'algo. et la programmation 8

Création du jeu de tests Automne 2012 Création du jeu de tests Intrant(s) Extrant(s) Rayon Volume 1 4,1887 2 33,5103 3,5 179,5943 25 65 449,8469 Erreur -1 Joan S. Morales - Introduction à l'algo. et la programmation 9 Collège Lionel-Groulx

Codification et mise au point Démarrer Visual Studio Créer un projet (et une solution) Écrire le programme Générer la solution Exécuter le programme Faire la mise au point (tests/débogage…) Joan S. Morales - Introduction à l'algo. et la programmation 10

Structure d’un programme C++ Entête Bibliothèques Programme principal Joan S. Morales - Introduction à l'algo. et la programmation

La séquence L’algorithme que l’on va créer sera une séquence. Automne 2012 La séquence L’algorithme que l’on va créer sera une séquence. Une séquence est une suite d’opérations, toutes obligatoires, nécessairement exécutées de haut en bas. Exemple: cin >> Rayon; Volume = 4.0f / 3.0f * Pi * Rayon * Rayon * Rayon; cout << Volume; L’ordre est important! S’il n’y a pas d’erreur, les 3 lignes seront exécutées l’une après l’autre! Enlever pseudo et morpho, mettre le code, faire des exemples!! Une animation, montrer avec le debuggeur Joan S. Morales - Introduction à l'algo. et la programmation Collège Lionel-Groulx

La variable Contenant pour donnée, information Automne 2012 La variable Contenant pour donnée, information Chaque variable a un type et un nom Le nom doit être composé uniquement de caractères alphabétiques, de chiffres décimaux et des traits de soulignement _ Normes de programmation Le nom d’une variable doit débuter par une lettre majuscule suivie de lettres minuscules Exemple: NbEtudiants Le nom doit être significatif! Il faut éviter les abréviations incompréhensibles! Illustrer l'association d'une variable à une case mémoire Joan S. Morales - Introduction à l'algo. et la programmation Collège Lionel-Groulx

La variable (suite) Il faut déclarer chaque variable avant usage Automne 2012 La variable (suite) Il faut déclarer chaque variable avant usage  Pour déclarer une variable en C++ float Rayon; Pour déclarer une constante en C++ const float Pi = 3.14159f; Principaux types de données en C++ char (-128 à 127, entier) short (-32768 à 32767, entier) int (-2147483648 to 2147483647, entier) float (réel simple) double (réel double) bool (true ou false) Expliciter les types Expliquer le 4/3, 4.0/3, 4.0/3.0 et 4.0f / 3.0f http://www.commentcamarche.net/contents/cpp/cpptype.php3 Joan S. Morales - Introduction à l'algo. et la programmation Collège Lionel-Groulx

La constante symbolique La constante est une variable qui ne change pas! Facilite la modification d'un programme Rend le code plus facile à lire Exemple: const float PourcentageAugm = 0.03f; const int MoisRetroactifs = 9; Il faut éviter les constantes littérales (« magic numbers »)! Mauvais exemples: const int Trois = 3; const int NbMoisEtNbOeufs = 12; Joan S. Morales - Introduction à l'algo. et la programmation

Les opérations de base: la lecture du clavier Automne 2012 Les opérations de base: la lecture du clavier Le programme arrête et attend que l’usager tape une information à la console, suivie de la touche ENTRÉE L’information (un nombre ou un mot) est alors placée dans la variable spécifiée cin >> Rayon; Lit un nombre ou un mot seulement (espace) cin représente la console (Console INput) Nom de la variable qui va recevoir l’information Joan S. Morales - Introduction à l'algo. et la programmation Collège Lionel-Groulx

Les opérations de base: L’affectation Automne 2012 Les opérations de base: L’affectation Le programme copie la valeur de l’expression de droite dans la variable de gauche. L’ancienne valeur de la variable de gauche est écrasée! Ce n’est pas une égalité mathématique! Exemples: Age = 17; Salaire = 10 * NbHeures; X = Y; Exemples qui ne marchent pas: 75 = Note; 2 * X = Y; Exercice 1.0 Joan S. Morales - Introduction à l'algo. et la programmation Collège Lionel-Groulx

Les opérations de base: L’écriture Automne 2012 Les opérations de base: L’écriture Le programme affiche des informations à la console Exemples: cout << "Le volume est: "; cout << Volume; cout << endl; Ou encore: cout << "Le volume est: " << Volume << endl; Le texte doit être entre " " cout représente la console (Console OUTput) Pas de " " pour afficher le contenu d’une variable Pour changer de ligne (END of Line) Joan S. Morales - Introduction à l'algo. et la programmation Collège Lionel-Groulx

Code C++ final (voir vidéo!) // Sphere.cpp // Fait par Gontran Tromblon // le 22 août 2016 // But : lit un rayon et calcule le // volume de la sphère correspondante #include <iostream> using namespace std; int main() { const float Pi = 3.14159f; float Rayon; float Volume; cin >> Rayon; Volume = 4.0f / 3.0f * Pi * Rayon * Rayon * Rayon; cout << Volume; cout << endl; } Joan S. Morales - Introduction à l'algo. et la programmation

Règles de base du C++ Les majuscules et les minuscules sont importantes! Le C++ est sensible à la casse! Chaque instruction C++ se termine par un point virgule (sauf les commentaires, les inclusions de bibliothèques et les accolades ouvrantes et fermantes) Pour chaque parenthèse ouvrante (, il y a une parenthèse fermante ) Pour chaque accolade ouvrante {, il y a une accolade fermante } Joan S. Morales - Introduction à l'algo. et la programmation

Indentation du code CTRL-A,K,F Automne 2012 CTRL-A,K,F Indentation du code CTRL-A,K,F Joan S. Morales - Introduction à l'algo. et la programmation Collège Lionel-Groulx

Les composants (résumé) Automne 2012 Déclaration d’une constante symbolique Les composants (résumé) const float Pi = 3.14159f; float Rayon; float Volume;   cin >> Rayon; Volume = 4.0f / 3.0f * Pi * Rayon * Rayon * Rayon; cout << Volume; Déclaration de variables / * << >>: de gauche à droite = : droite à gauche Opération de lecture Variable Opération d’affectation Constante littérale Expression arithmétique Opération d’écriture Joan S. Morales - Introduction à l'algo. et la programmation 22 Collège Lionel-Groulx

Les expressions arithmétiques Automne 2012 Les expressions arithmétiques Exécute un calcul mathématique Combinaison d’opérandes, d’opérateurs et de parenthèses Priorité Opérateur Description Associativité Mode C++ 1 ^ Exposant  Binaire N.D. 2 + Positif Unaire - Négatif 3 * Multiplication / Division % Modulo (reste d’une division) 4 Addition Soustraction Priorité 0 : () Expliquer le 4.0/3.0 et 4.0/3 et 4/3 Joan S. Morales - Introduction à l'algo. et la programmation Collège Lionel-Groulx

Exp. arithmétiques (suite) Exemples 42 42 + 25 4 / 3 * PI * Rayon 4 / ( 3 * PI ) Joan S. Morales - Introduction à l'algo. et la programmation

Exercices 12 + 42 * 2 / 4 (12 + 42) * 2 / 4 4 * 8 / 2 ^ 3 + 1 Automne 2012 Exercices 12 + 42 * 2 / 4 (12 + 42) * 2 / 4 4 * 8 / 2 ^ 3 + 1 4 * ((8 / 2) ^ 3) + 1 (4 * 8 / 2) ^ 3 + 1 (4 * 8 / 2) ^ (3 + 1) Joan S. Morales - Introduction à l'algo. et la programmation Collège Lionel-Groulx

Exercices - Réponses 12 + 42 * 2 / 4 (12 + 42) * 2 / 4 4 * 8 / 2 ^ 3 + 1 4 * ((8 / 2) ^ 3) + 1 (4 * 8 / 2) ^ 3 + 1 (4 * 8 / 2) ^ (3 + 1) = 33 = 27 = 5 = 257 = 4097 = 65536 Joan S. Morales - Introduction à l'algo. et la programmation

Les bibliothèques standards Le vocabulaire de base de la plupart des langages est complété par des bibliothèques de fonctions Une fonction peut être vue comme un petit programme qui réalise une tâche précise Joan S. Morales - Introduction à l'algo. et la programmation

Les fonctions mathématiques Exemples: #include <iostream> // cin/cout #include <cmath> // Outils mathématiques Quelques fonctions mathématiques disponibles (cmath): cos(x) exp(x) fabs(x) log(x) log10(x) pow(x,y) sin(x) sqrt(x) Attention! Les fonctions trigonométriques utilisent des angles en radians! http://www.cplusplus.com/reference/cmath/ Joan S. Morales - Introduction à l'algo. et la programmation

L’appel d’une fonction Les intrants d’une fonction (généralement appelés paramètres) sont placés entre parenthèses séparés par des virgules Le résultat (l’extrant) est donné par la valeur de retour de la fonction (une seule valeur) Joan S. Morales - Introduction à l'algo. et la programmation

Exemple d’appel d’une fonction … #include <cmath> // Inclusion des outils using namespace std; // mathématiques   int main() { RayonAuCube = pow(Rayon,3); Volume = 4.0f / 3.0f * Pi * RayonAuCube; // Ou encore: Volume = 4.0f / 3.0f * Pi * pow(Rayon,3); } Joan S. Morales - Introduction à l'algo. et la programmation

Un autre exercice On veut un logiciel qui permettra de calculer le prix total d’un article incluant la TPS et la TVQ. Ce logiciel devra, en fonction d’un prix entré par l’usager, afficher le prix de l’article, le montant de la TPS, le montant de la TVQ ainsi que le total qui inclut le prix de l’article et les différentes taxes. Pour ce logiciel, vous devrez considérer que le taux de la TPS est de 5 % et celui de la TVQ de 9,975 %. Joan S. Morales - Introduction à l'algo. et la programmation

Compréhension du problème Intrant(s)? Prix de l’article Extrant(s)? Prix Montant de la TPS Montant de la TVQ Total Constantes? TPS = 5% TVQ = 9,975% Joan S. Morales - Introduction à l'algo. et la programmation

Jeux de tests Intrant Extrants Prix ($) Prix ($) Montant TPS Montant TVQ Total 1 0,05 0,1 1,15 2,50 2,5 0,13 0,25 2,88 10 0,50 1,00 11,50 1500 75 146,25 1721,25 -5 Erreur Joan S. Morales - Introduction à l'algo. et la programmation

Code C++ … const float Tps = 0.05f; // 5% const float Tvq = 0.09975f; // 9.975% float Prix, MontantTps, MontantTvq, Total; cin >> Prix; MontantTps = Prix * Tps; MontantTvq = Prix * Tvq; Total = Prix + MontantTps + MontantTvq; cout << Prix; cout << MontantTps; cout << MontantTvq; cout << Total; Joan S. Morales - Introduction à l'algo. et la programmation