1 Programme, algorithmes, langage de program- mation 1.1 Informatique – Définiti
1 Programme, algorithmes, langage de program- mation 1.1 Informatique – Définition de l’informatique : Ensembles des techniques de la mise en mémoire et de l’utilisation des informations traitées automatiquement à l’aide de programmes mis en œuvre sur ordinateurs. – Ordinateur : – garde des nombres en mémoire – fait des calculs sur des nombres – a des instructions pour lui demander d’accéder aux données en mé- moire et de faire des calculs 1. Algorithmique et programmation – L1 Stéphane Rivière – Programme : – liste d’instructions demandant de faire certains calculs sur certaines données – écrit une fois pour toute pour pouvoir être exécuté quand on veut – Algorithmes : méthodes qui permettent de – modéliser le problème : le représenter par des nombres – quelles sont les données d’entrée à partir desquelles faire les calculs – quelles sont les données résultat voulues en sortie – résoudre le problème : savoir quels calculs faire pour obtenir les don- nées résultat à partir des données d’entrée 2. Algorithmique et programmation – L1 Stéphane Rivière – Outils de base des algorithmes : – faire des calculs sur des données : types et expressions – stocker des valeurs en mémoire : variables – demander des valeurs à l’utilisateur, les afficher : entrées/sorties – exécuter de façon conditionnelle des instructions (c.-à-d. en fonction de résultats de tests) : instructions conditionnelles – répéter l’exécution d’instructions : instructions itératives – isoler des instructions pour pouvoir les réutiliser plus facilement : fonc- tions et procédures – rassembler plus facilement des ensembles de données : structures et tableaux – Langage algorithmique : – langage informel de haut niveau proche du langage humain – qui permet de représenter les outils algorithmiques 3. Algorithmique et programmation – L1 Stéphane Rivière 1.2 Langage de programmation – Un ordinateur (un processeur) possède un langage de programmation : le langage machine (assembleur) – chaque instruction est représentée par un numéro (un symbole) – instructions de bas niveaux : très précises, spécifiques au processeur – impossible en pratique d’écrire des gros programmes en langage ma- chine →On utilise un langage de programmation : – langage plus proche du langage humain mais avec une syntaxe précise – transformé en langage machine grâce à un compilateur – On utilisera le langage C++ et le logiciel Code : :Blocks (codeblocks.org) pour écrire les programmes en C++, les compiler et les exécuter 4. Algorithmique et programmation – L1 Stéphane Rivière 2 Structure d’un programme C++ #include<iostream> <-- bibliothèques utilisées #include<string> using namespace std; <-- pour utiliser bibliothèques /* <-- commentaire bloc programme qui demande le nom de l’utilisateur et affiche un message de bienvenue */ int main() <-- programme principal { //demander le nom de la personne <-- commentaire en ligne string nom; <-- déclaration de variable cout<<"votre nom : "; <-- affichage cin>>nom; <-- lecture de données //afficher le message de bienvenue cout<<"bonjour "<<nom<<" j’espère que vous allez bien"<<endl; } 5. Algorithmique et programmation – L1 Stéphane Rivière 2.1 Bases d’un programme C++ 1. Bibliothèques : – utilitaires (fonctions, procédures) supplémentaires n’existant pas dans le langage de base – pour utiliser une bibliothèque : #include<nom bibliothèque> – à la fin des bibliothèques : using namespace std; 2. Programme principal : – c’est lui qui est exécuté quand on lance le programme int main() { instructions du programme } 3. Une fois le programme écrit (dans un fichier .cpp), il faut le compiler puis l’exécuter. 6. Algorithmique et programmation – L1 Stéphane Rivière 2.2 Écriture en C++ – Indentation : mise en page (espaces, retour à la ligne) – en C++ l’indentation n’est pas importante : il faut juste respecter la syntaxe – mais l’indentation est importante pour l’utilisateur : elle donne l’aspect visuel et donc aide la lecture et la compréhension d’un programme →respecter des règles d’indentation – Commentaires : texte ignoré par le compilateur contenant des indications pour celui qui lit le programme – commentaire sur une ligne : // à partir de là : commentaire – bloc de commentaires : /* commentaires */ 7. Algorithmique et programmation – L1 Stéphane Rivière 3 Types et expressions 3.1 Types – Les valeurs avec lesquelles on fait des calculs sont classées en différents types de valeurs – Un type définit : – les valeurs possibles : format, représentation en mémoire (et donc taille et valeurs limites) – les opérations que l’on a le droit d’effectuer sur ces valeurs – On utilisera en C++ 5 types principaux : booléens bool types discrets caractères char entiers int types réels en virgule flottante double arithmétiques chaînes de caractères string 8. Algorithmique et programmation – L1 Stéphane Rivière – Valeurs littérales des différents types : Type Type C++ Valeurs littérales entiers int 0 123 -3248 réels double 1.23 .23 0.23 1. 1.0 1.2e10 1.23e-15 booléens bool false ou true caractères char ’a’ ’;’ ’\t’ chaînes de caractères string "bonjour" "" "c’est \"mauvais\"" 9. Algorithmique et programmation – L1 Stéphane Rivière 3.2 Expressions – Une expression est un calcul sur des valeurs dont le résultat est une valeur – Les valeurs proviennent de – valeur littérale – valeur stockée dans une variable – valeur résultat d’un calcul : expression – On peut faire des calculs grâce aux – opérateurs – fonctions 10. Algorithmique et programmation – L1 Stéphane Rivière 3.2.1 Opérateurs Opérateur C++ multiplication expr * expr division expr / expr reste euclidien (modulo) expr % expr addition expr + expr soustraction expr - expr moins unaire - expr – Les opérateurs dans une même case ont la même priorité, les cases sont classés par ordre de priorité décroissant : a+b*c signifie a+(b*c) – Ces opérateurs sont associatifs à gauche : a+b+c signifie (a+b)+c – Des parenthèses peuvent être utilisées pour forcer l’ordre d’évaluation !! La division entre deux entiers renvoie le quotient entier de la division eu- clidienne : 23 / 3 →7, et 23 % 3 →2 11. Algorithmique et programmation – L1 Stéphane Rivière 3.2.2 Les fonctions mathématiques – Les fonctions mathématiques usuelles sont fournies par la bibliothèque cmath – Il n’y a pas de fonction « au carré ». double abs(double); valeur absolue double fabs(double); double ceil(double d); plus petit entier ≥d double floor(double d); plus grand entier ≤d double sqrt(double d); racine carrée, d≥0 double pow(double d,double e); d puissance e double pow(double d,int i); d puissance i 12. Algorithmique et programmation – L1 Stéphane Rivière double cos(double); cosinus double sin(double); sinus double tan(double); tangente double acos(double); arc cosinus double asin(double); arc sinus double atan(double); arc tangente double atan2(double x,double y); atan(x/y) double sinh(double); sinus hyperbolique double cosh(double); cosinus hyperbolique double tanh(double); tangente hyperbolique double exp(double); exponentielle, base e double log(double d); logarithme népérien (base e), d>0 double log10(double); logarithme base 10 13. Algorithmique et programmation – L1 Stéphane Rivière 4 Instructions – Une expression est un calcul qui donne une valeur – Une instruction est un ordre à exécuter, par exemple – déclarer une variable – afficher une valeur – lire une valeur tapée au clavier – En C++ une instruction est toujours terminée par un point-virgule « ; » – Pour faire exécuter plusieurs instructions : les écrire dans l’ordre d’exécu- tion instruction1 ; instruction2 ; ... 14. Algorithmique et programmation – L1 Stéphane Rivière 5 Variables et constantes 5.1 variables – Une variable est une case mémoire qui permet de stocker une valeur – Elle sert à – garder en mémoire une valeur que l’on veut utiliser plusieurs fois – calculer une valeur en plusieurs étapes (en permettant de garder en mémoire le résultat de l’étape précédente) – stocker en mémoire les valeurs rentrées par l’utilisateur – découper un calcul compliqué 15. Algorithmique et programmation – L1 Stéphane Rivière – Pour pouvoir utiliser une variable, il faut d’abord la déclarer : – donner son nom (pour pouvoir l’utiliser ensuite), un nom intelligent qui décrit ce qu’elle contient – donner son type (pour savoir le type de la valeur contenue) – éventuellement donner une valeur d’initialisation (une variable non initialisée contient n’importe quoi) – déclarer une variable est une instruction – en algorithmique : – variable type nom (=valeur initialisation) – p.ex. : variable entière n=10 16. Algorithmique et programmation – L1 Stéphane Rivière – En C++ : – le nom peut contenir des lettres (y compris ’_’, ! minuscules̸=majus- cules) et des chiffres (mais ne peut pas commencer par un chiffre) – on peut déclarer plusieurs variables de même type en même temps type nom; //une variable non initialisée type nom = valeur; //une variable initialisée type nom1, nom2; //deux variables non initialisées type nom1 = valeur1, //deux variables initialisées nom2 = valeur2; – exemple : int var1; //pas terrible comme nom int var2 = 10; //pas terrible comme nom double x = 10.2, y = -1.25; double z; char choix=’r’; 17. Algorithmique et programmation – L1 Stéphane Rivière – Une fois déclarée, on peut utiliser une variable : – Pour lire la valeur stockée dans une variable et l’utiliser : donner le nom de la variable – Pour changer la valeur stockée dans une uploads/s3/ algo-prog-tout.pdf
Documents similaires










-
28
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 19, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.3778MB