2020/2021 Pr. Ben Mamoun 1 Cours Programmation I (chapitres 1) Licence Fondamen
2020/2021 Pr. Ben Mamoun 1 Cours Programmation I (chapitres 1) Licence Fondamentale SMI (semestre 3) Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2020/2021 2020/2021 Pr. Ben Mamoun 2 Plan du cours (1) 1. Introduction 2. Types de base, variables, constantes 3. Opérateurs et expressions 4. Les entrées-sorties (printf, scanf, …) 5. Les structures de contrôle 2020/2021 Pr. Ben Mamoun 3 Plan du cours (2) 6. Les tableaux 7. Les pointeurs 8. Les fonctions 2020/2021 Pr. Ben Mamoun 4 Langages informatiques Un langage informatique est un outil permettant de donner des ordres (instructions) à la machine • A chaque instruction correspond une action du processeur Intérêt : écrire des programmes (suite consécutive d’instructions) déstinés à effectuer une tache donnée • Exemple: un programme de gestion de comptes bancaires Contrainte: être compréhensible par la machine 2020/2021 Pr. Ben Mamoun 5 Langage machine Langage binaire: l’information est exprimée et manipulée sous forme d’une suite de bits Un bit (binary digit) = 0 ou 1 (2 états électriques) Une combinaison de 8 bits= 1 Octet possibilités qui permettent de coder tous les caractères alphabétiques, numériques, et symboles tels que ?,*,&, … • Le code ASCII (American Standard Code for Information Interchange) donne les correspondances entre les caractères alphanumériques et leurs représentation binaire, Ex. A= 01000001, ?=00111111 Les opérations logiques et arithmétiques de base (addition, multiplication, … ) sont effectuées en binaire 256 28 2020/2021 Pr. Ben Mamoun 6 L'assembleur Problème: le langage machine est difficile à comprendre par l'humain Idée: trouver un langage compréhensible par l'homme qui sera ensuite converti en langage machine • Assembleur Assembleur : exprimer les instructions élémentaires de façon symbolique • +: déjà plus accessible que le langage machine • -: dépend du type de la machine (n’est pas portable portable) • -: pas assez efficace pour développer des applications complexes Apparition des langages évolués ADD A, 4 LOAD B MOV A, OUT … traducteur langage machine 2020/2021 Pr. Ben Mamoun 7 Langages haut niveau Intérêts multiples pour le haut niveau: • proche du langage humain «anglais» (compréhensible) • permet une plus grande portabilité (indépendant du matériel) • Manipulation de données et d’expressions complexes (réels, objets, a*b/c, …) Nécessité d’un traducteur (compilateur/interpréteur), exécution plus ou moins lente selon le traducteur Code source Code source en langage évolué en langage évolué Compilateur ou Compilateur ou Langage machine Langage machine interpréteur interpréteur 2020/2021 Pr. Ben Mamoun 8 Compilateur/interpréteur Compilateur: traduire le programme entier une fois pour toutes • + plus rapide à l’exécution • + sécurité du code source • - il faut recompiler à chaque modification Interpréteur: traduire au fur et à mesure les instructions du programme à chaque exécution • + exécution instantanée appréciable pour les débutants • - exécution lente par rapport à la compilation exemple.c Compilateur Compilateur fichier source fichier source exemple fichier exécutable fichier exécutable exécution exécution exemple.bas fichier source fichier source Interprétation+exécution Interprétation+exécution 2020/2021 Pr. Ben Mamoun 9 Langages de programmation: Deux types de langages: • Langages procéduraux • Langages orientés objets Exemples de langages: • Fortran, Cobol, Pascal, C, … Fortran, Cobol, Pascal, C, … • C++, Java, … C++, Java, … 2020/2021 Pr. Ben Mamoun 10 Historique du C Le langage C a été conçu en 1972 dans «Bell Laboratories » par Dennis Ritchie Dennis Ritchie avec l’objectif d’écrire un système d'exploitation (UNIX). En 1978, une première définition rigoureuse du langage C (standard K&R-C) a été réalisée par Kernighan et Ritchie Kernighan et Ritchie en publiant le livre «The C Programming Language ». Le succès du C et l’apparition de compilateurs avec des extensions particulières ont conduit à sa normalisation. En 1983, l’organisme ANSI (American National Standards Institute) chargeait une commission de mettre au point une définition explicite et portable pour le langage C. Le résultat est le standard ANSI-C. 2020/2021 Pr. Ben Mamoun 11 Caractéristiques du C Universel : Universel : n'est pas orienté vers un domaine d'application particulier (applications scientifiques, de gestion, …) Près de la machine Près de la machine : offre des opérateurs qui sont proches de ceux du langage machine (manipulations de bits, d’adresses, …) efficace Modulaire: Modulaire: peut être découpé en modules qui peuvent être compilés séparément Portable: Portable: en respectant le standard ANSI-C, il est possible d'utiliser le même programme sur plusieurs systèmes (hardware, système d'exploitation ) Remarque : Une programmation efficace et compréhensible en C n'est pas facilement accessible à des débutants 2020/2021 Pr. Ben Mamoun 12 Programme source, objet et exécutable Un programme écrit en langage C forme un texte qu’on nomme programme ou code source programme ou code source, , qui peut être formé de plusieurs fichiers sources Chaque fichier source est traduit par le compilateur pour obtenir un fichier ou module objet fichier ou module objet (formé d’instructions machine) Ce fichier objet n’est pas exécutable tel qu’il est car il lui manque les instructions exécutables des fonctions standards appelées dans le fichier source (printf, scanf, …) et éventuellement d’autres fichiers objets L’éditeur de liens L’éditeur de liens réunit les différents modules objets et les fonctions de la bibliothèque standard afin de former un programme exécutable un programme exécutable Remarque : la compilation est précédée par une phase de prétraitement (inclusion de fichiers en-tête) réalisé par le préprocesseur préprocesseur 2020/2021 Pr. Ben Mamoun 13 Compilateurs C Pour pouvoir écrire et exécuter des programmes en C, vous avez besoin d’un compilateur C sur votre machine Il existe plusieurs compilateurs respectant le standard ANSI-C. Une bonne liste est disponible sur : c.developpez.com/compilateurs/ En TP, on va utiliser l'environnement de développement Dev-C++ ou Code::Blocks avec le système d’exploitation Windows Vous pouvez télécharger Dev-C++ librement, par exemple sur le site www.bloodshed.net et Code::Blocks sur www.codeblocks.org 2020/2021 Pr. Ben Mamoun 14 Exemple d’une fenêtre Dev-C++ 2020/2021 Pr. Ben Mamoun 15 Composantes d’un programme C • Directives du préprocesseur • inclusion des fichiers d'en-tête (fichiers avec extension .h) • définitions des constantes avec #define • déclaration des variables globales • définition des fonctions (En C, le programme principal et les sous- programmes sont définis comme fonctions ) • Les commentaires : texte ignoré par le compilateur, destiné à améliorer la compréhension du code exemple : #include<stdio.h> main() { printf( "notre premier programme C printf( "notre premier programme C \n"); n"); /*ceci est un commentaire*/ /*ceci est un commentaire*/ } 2020/2021 Pr. Ben Mamoun 16 Remarques sur ce premier programme #include<stdio.h> #include<stdio.h> informe le compilateur d’inclure le fichier stdio.h qui contient les fonctions d’entrées-sorties dont la fonction printf La fonction main est la fonction principale des programmes en C: Elle se trouve obligatoirement dans tous les programmes. L'exécution d'un programme entraîne automatiquement l'appel de la fonction main. L’appel de printf printf avec l’argument "notre premier programme C\n" permet d’afficher : notre premier programme C et \n ordonne le passage à la ligne suivante En C, toute instruction simple est terminée par un point-virgule ; Un commentaire en C est compris entre // et la fin de la ligne ou bien entre /* et */ uploads/Ingenierie_Lourd/ chap1-introduction.pdf
Documents similaires
-
139
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Fev 25, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 0.1228MB