Algorithmique et Programmation INSA Hauts-de-France Licence Informatique [Mathé
Algorithmique et Programmation INSA Hauts-de-France Licence Informatique [Mathématiques] 2ème année – Semestre 3 Christophe Wilbaut Objectifs du module - Syllabus • Appréhender un langage compilé de programmation impérative • Connaître les fondamentaux d’un langage typé • Instructions du langage, opérateurs, types • Fonctions avec ou sans effets de bord • Appréhender la gestion de la mémoire en programmation • Mémoire statique vs mémoire dynamique • Définir et utiliser des structures de données dynamiques • Tableaux, listes chaînées, piles / files 2 Organisation du module • Volume horaire • 6h CM 4 séances de 1.5h • 15h TD 10 séances de 1.5h • 15h TP 10 séances de 1.5h 3 Organisation du module • Volume horaire • 6h CM 4 séances de 1.5h • 15h TD 10 séances de 1.5h • 15h TP 10 séances de 1.5h • Modalités d’évaluation • DS + TP 4 Organisation du module • Volume horaire • 6h CM 4 séances de 1.5h • 15h TD 10 séances de 1.5h • 15h TP 10 séances de 1.5h • Modalités d’évaluation • DS + TP • Progression • Séance de cours Travail personnel TD / TP • Travail personnel : exercices spécifiques, vidéos à regarder, … • Fiches d’exercices traitées en TD et TP 5 Espace de cours Moodle • Nom : Algorithmique et Programmation Impérative • Nom abrégé : ALGO3 • Clef d’inscription • LANGAGE_C_2021 6 Espace de cours Moodle • Nom : Algorithmique et Programmation Impérative • Nom abrégé : ALGO3 • Clef d’inscription • LANGAGE_C_2021 • Contenu • Slides du cours, • Liens pour les vidéos • Fiches d’exercices (TD, TP) • Anciens sujets de DS 7 Plan du module • Partie I Eléments du langage • Partie II De la mémoire statique à la mémoire dynamique • Partie III Des structures de données dynamiques • [Partie IV] [Algorithmique non numérique] 8 PARTIE I : Eléments du langage 9 Vidéo 1 : introduction Vidéo 2 : utiliser un logiciel et un compilateur Vidéo 3 : types et opérateurs simples Vidéo 4 : mémoire, lecture / écriture Vidéo 5 : notion de pointeur Vidéo 6 : conditions et alternatives Vidéo 7 : boucles Vidéo 8 : fonctions Vidéo 9 : structures Vidéo 10 : tableaux Le langage C • Langage de Programmation crée dans les années 70 • Réécriture d’UNIX • Version stabilisée en 1978 10 Le langage C • Langage de Programmation crée dans les années 70 • Réécriture d’UNIX • Version stabilisée en 1978 • Normalisation • C89 ou ANSI C • puis C90 ou C ISO • C94 / C95 • C99 • C11 11 Le langage C • Langage de programmation impératif • Langage dit de "bas niveau" • En opposition aux langages dits de "haut niveau" • Un de ses principaux avantages : sa rapidité d’exécution • Un de ses principaux inconvénients : vérification de ce qui a été choisi 12 Le langage C • Langage de programmation impératif • Langage dit de "bas niveau" • En opposition aux langages dits de "haut niveau" • Un de ses principaux avantages : sa rapidité d’exécution • Un de ses principaux inconvénients : vérification de ce qui a été choisi • Le ‘C’ est un langage compilé • vs langage interprété • Exemples de langages … compilés … interprétés Ada, C++, Pascal PHP, Python, Ruby, Matlab • Exemple de langage « hybride » : Java 13 Pourquoi considérer le C ? • Pour manipuler un langage compilé • Parce qu’il est fondé sur un standard ouvert • Parce qu’il existe depuis longtemps … • … et surtout qu’il est encore très utilisé [1] [1] : https://spectrum.ieee.org/at-work/tech-careers/top-programming-language-2020 14 Pourquoi considérer le C ? • Pour manipuler un langage compilé • Parce qu’il est fondé sur un standard ouvert • Parce qu’il existe depuis longtemps … • … et surtout qu’il est encore très utilisé [1] • Parce qu’il reste un langage simple … • … et que l’on peut faire des choses (très) évoluées avec • Parce qu’il est très efficace • Parce qu’il est une base de nombreux autres langages et applications [1] : https://spectrum.ieee.org/at-work/tech-careers/top-programming-language-2020 15 Pourquoi considérer le C ? • Quelques exemples d’applications … historiques • Le noyau d’UNIX (1969 1972) • Oracle (1977 1983) • GNU (1984) • Windows (1985) • Le noyau de Linux (1991) 16 Pourquoi considérer le C ? • Quelques exemples d’applications … historiques • Le noyau d’UNIX (1969 1972) • Oracle (1977 1983) • GNU (1984) • Windows (1985) • Le noyau de Linux (1991) • De façon plus générale le C est toujours utilisé dans les systèmes d’exploitation • Noyau de Windows – Linux (et +) - Mac • Noyau d’Android – d’iOS – de Windows Phone Ordinateurs et smartphones utilisent le C via leur OS 17 Pourquoi considérer le C ? • Quelques autres exemples d’applications • Les systèmes de gestion de bases de données • Oracle, MySQL, MS SQL Server, Postgre SQL éducation, santé, finance, loisirs, web, etc. 18 Pourquoi considérer le C ? • Quelques autres exemples d’applications • Les systèmes de gestion de bases de données • Oracle, MySQL, MS SQL Server, Postgre SQL éducation, santé, finance, loisirs, web, etc. • Systèmes embarqués • Alarme, micro onde, garage, voiture, paiement par carte, etc. • Animations 3D 19 Pourquoi considérer le C ? • Comment expliquer cette utilisation ? • Il existe aujourd’hui de nombreux langages permettant • D’être plus productif • De faire plus de choses 20 Pourquoi considérer le C ? • Comment expliquer cette utilisation ? • Il existe aujourd’hui de nombreux langages permettant • D’être plus productif • De faire plus de choses • Langages de haut niveau avec de nombreuses librairies qui simplifient la vie pour travailler avec • Des pages Web, des requêtes clients, des connexions à des BD, manipuler du contenu média, etc. • Mais le C est (pratiquement) un langage portable • Disponible sur toutes les architectures de processeurs existantes 21 Pourquoi considérer le C ? • Portabilité + bas niveau • Compilateurs, interpréteurs et librairies d’autres langages souvent écrits en C • Python, Ruby et PHP • Communication avec la machine via le C • Eiffel, Forth 22 Pourquoi considérer le C ? • Portabilité + bas niveau • Compilateurs, interpréteurs et librairies d’autres langages souvent écrits en C • Python, Ruby et PHP • Communication avec la machine via le C • Eiffel, Forth • Dernier point important : le C est (peut être ?) entrain de devenir le "langage commun" entre développeurs • Alex Allain, Directeur Ingénierie chez Dropbox et créateur de Cprogramming.com [2] [2] : https://www.cprogramming.com/whyc.html “C is a great language for expressing common ideas in programming in a way that most people are comfortable with. Moreover, a lot of the principles used in C -- for instance, argc and argv for command line parameters, as well as loop constructs and variable types -- will show up in a lot of other languages you learn so you'll be able to talk to people even if they don't know C in a way that's common to both of you.” 23 Langage C – un premier exemple de programme void f1(); /* prototype */ /* Fonction : main */ /* Description : appelle la function f1 */ int main() { f1(); return 0; } void f1() { /* la fonction f1 ne fait rien */ } /* */ : Commentaires main : fonction principale ( ) : obligatoire f1 : une fonction (qui ne retourne rien ici) l’appel de f1 dans le main se fait de façon classique : nom de la fonction, suivi des ( ) { … } début … fin 24 ; termine chaque instruction Langage C – un premier exemple de programme • Commentaire • Tout ce qui est écrit entre /* et */ est interprété comme du commentaire • Un commentaire peut être sur plusieurs lignes • Un commentaire ne peut pas être dans un autre commentaire • Le commentaire est utile mais ne doit pas paraphraser le code • Fonction main • Chaque programme C a une (et une seule) fonction main • C’est cette fonction qui est exécutée au lancement du programme • Il s’agit bien d’une fonction qui retourne un entier (int) 25 Le langage C • Le C est un langage typé • Tout objet doit être déclaré via un identifiant (unique) et un type avant d’être utilisé 26 Le langage C • Le C est un langage typé • Tout objet doit être déclaré via un identifiant (unique) et un type avant d’être utilisé • Un objet est déclaré avec une certaine portée • Variable globale • Variable locale • etc. 27 Le langage C • Le C est un langage typé • Tout objet doit être déclaré via un identifiant (unique) et un type avant d’être utilisé • Un objet est déclaré avec une certaine portée • Variable globale • Variable locale • etc. • La notion de uploads/Management/ algo3-cm1-2.pdf
Documents similaires
-
17
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Fev 07, 2022
- Catégorie Management
- Langue French
- Taille du fichier 0.8986MB