🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

Licence informatique 1ère année Introduction à la programmation (2) Qu est-ce qu un identi cateur, une variable, un type ? Qu est-ce qu une instruction, une expression, une condition ? Qu est-ce...

Licence informatique 1ère année Introduction à la programmation (2) Qu est-ce qu un identi cateur, une variable, un type ? Qu est-ce qu une instruction, une expression, une condition ? Qu est-ce qu une structure de contrôle, une itération ? At te n t io n : b e a c o n c e p t s d a n s uc o u p de c e c o u rs ! [email protected] Version du 14/09/23 ’ ’ ’ ’ ’ ’ fi 2 Pourquoi le langage C ? Alors qu il existe des langages plus « cool » à utiliser ? – Parce que le langage C est un langage de référence dans l histoire de l informatique - Si vous voulez devenir un véritable informaticien le C est un incontournable – Parce que le langage C permet de se confronter à la gestion de ma mémoire - Arithmétique des pointeurs & allocation dynamique de la mémoire – Parce que la syntaxe du langage C a in uencé beaucoup d autres langages - C++ / C# / Java / PHP / Go / Swift / etc. ’ fl ’ ’ ’ 3 Pourquoi le langage C ? – Et aussi parce que ce langage reste une référence : – https://www.developpez.com/actu/146789/Quels-langages-utilisez-vous-pour-le- developpement-de-systemes-embarques/ 4 Le langage C – Est un langage de programmation impératif, procédural et généraliste. – Il a été développé entre 1972 et 1978 par Ken Thompson et Dennis Richie. – Il a été conçu à la base pour la programmation système, notamment Unix. – Au plus bas niveau portable possible, il permet des programmes très optimisés. – Sa syntaxe a été reprise par de nombreux langages : C++, Java, PHP, Go, Swift, etc. – Ken Thompson : ingénieur aux laboratoires Bell dans les années 70. Spécialiste des systèmes d exploitation à temps partagés, dont Unix. Inventeur du langage B précurseur du C. Développe actuellement chez Google le langage Go. – Dennis Richie : physicien et mathématicien à Harvard. Co-inventeur de Unix et du langage C. Co-auteur avec Brian Kernighan de l ouvrage de référence « The C Programming Language » appelé Ken Thompson Denis Richie également « Le Kernighan et Richie ». ’ ’ 5 Qu est-ce qu une instruction ? Le vocabulaire du langage C : auto double int struct break else long switch – 32 mots-clés du compilateur : case enum register typedef - instructions en cyan char extern return union - types simples en magenta const float short unsigned - types composés en jaune continue for signed void default goto sizeof volatile do if static while Les instructions du langage C : – Les instructions simples du langage C sont terminées par un point-virgule : ; – Plusieurs instructions peuvent être rassemblées par des accolades pour former une instruction composée - ou bloc - qui peut être placée partout où on peut placer une instruction simple : { { ; ; ; ; } } ’ ’ 6 Qu est-ce qu un identi cateur ? Ce sont des mots choisis par le programmeur : – Un identi cateur permet d identi er une variable, une constante, une fonction, etc. – Il ne doit pas faire partie du vocabulaire du langage pour éviter les confusions. – Il ne doit commencer ni par un chiffre, ni par un underscore. Par convention, vous appliquerez les règles suivantes : – Variables et fonctions : enCamelCaseAvecUneMinusculeAuDebut – Constantes : EN_MAJUSCULES_AVEC_DES_UNDERSCORES On vous obligera à utiliser des identi cateurs « porteurs de sens » : rayonDuCercle ou plus simplement rayon plutôt que var3 ou bien x ou même r ’ fi ’ ’ fi fi fi 7 Qu est-ce qu un type ? Depuis tout petits, on doit ranger des formes dans des cases qui leur correspondent, quelque soit leurs couleurs : – Dans le jeux des formes on range des ronds, des carrés, des triangles, etc. – Dans un programme informatique, on range des entiers, des nombres à virgule, etc. Le type c est en quelques sortes la forme de la donnée que vous allez manipuler et ranger dans la mémoire. Et sa valeur, et bien c est sa couleur. ’ ’ ’ ’ 8 Qu est-ce qu un type ? En informatique, un type de données dé nit un ensemble de valeurs possibles ainsi qu un ensemble d opérations possibles sur ces valeurs. Les types sont gérés différemment selon les langages. Avec les langages à typage statique - comme le C - le programmeur associe un type à chaque variable et fonction. Avec les langages à typage dynamique - comme Python - les types sont attribués automatiquement en fonction des valeurs manipulées. Concrètement, un type correspond à un format de stockage en mémoire : – Par exemple, pour un entier, le compilateur va réserver 2 octets ou 4 octets. Attention : les types diffèrent selon les langages et les plateformes : – Les types peuvent être dépendants de la plateforme et du compilateur utilisés ! – Les types différent également en fonction de l architecture : 32 bits, 64 bits, etc. – Certains types sont normalisés mais pas tous ! ’ ’ ’ fi ’ ’ 9 Types utilisés en Intro à la Prog Les nombres entiers relatifs – Exemples de constantes littérales : -32 0 32767 – On utilisera les types int et long – Un entier de type int sera dans l intervalle [-32768, 32767] – Un entier de type long sera dans l intervalle [-2147483648, 2147483647] Les nombres à virgule ottante – Comportent une partie décimale et éventuellement un exposant – Exemples de constantes littérales : 1.5 -1.5 2.6E-27 -3E8 – Identi cateur de type : float Ce n est pas la même chose ! Les chaînes de caractères – S écrivent avec des lettres et/ou des chiffres placés entre guillemets – Exemples de constantes littérales : "Bonjour le monde" "2.6E-27" Attention : le type string n existe pas en langage C ’ ’ fi fl ’ ’ ’ 10 Qu est-ce qu une variable ? Permettent de mémoriser des valeurs au cours d une exécution – Une variable correspond à un emplacement situé dans la mémoire RAM – Une variable est identi ée par un identi cateur – En langage C une variable est dé nitivement associée à un type – Exemples : identificateur type valeur rayon int 15 moyenne float 2.5E-27 maxlong long 2147483647 texte "Hello World" Peut-on mettre n importe quelle valeur dans n importe quelle variable ? ’ ’ fi ’ fi fi ’ ’ 11 Déclaration et initialisation Toute variable doit être déclarée une seule fois avant d être utilisée : int rayon; // rayon sera un entier int n1, n2; // n1 et n2 seront des entiers float moyenne; // moyenne sera un nombre à virgule Une variable peut être initialisée après ou pendant la déclaration n1 = 0; n2 = 1; int valeur = 4; // déclaration et initialisation int rayon = 5; // erreur car déjà déclarée La valeur d une variable doit être compatible avec son type : int a = 3.14; // possible mais a vaut 3 float b = 3; // possible mais b vaut 3.0 float c = "Hello"; // erreur car pas le bon type La valeur d une variable peut-elle changer ? ’ ’ ’ 12 Qu est-ce qu une affectation ? variable expression Affectation d une valeur à une variable : – Avec une constante littérale : rayon = 12.5; – Avec une constante symbolique : couleur = RED_COLOR; – Avec une autre variable : position = anciennePosition; – Avec le résultat d un calcul : x = x + 1; – Avec la valeur de retour d une fonction : x = sqrt(y); Après une affectation, la valeur d une variable ne change pas jusqu à une autre affectation ! int nombre = 5; nombre 5 nombre = 10; nombre 5 10 nombre = nombre + 1; nombre 10 11 Quelle est la valeur d une variable tout juste déclarée mais non encore initialisée ? ’ ’ ’ ’ ’ ’ ’ ’ 13 Bien choisir le nom de ses variables Que fait ce programme ? float x1q3z9ocd = 35.0; float x1q3z9afd = 12.50; float x1q3p9afd = x1q3z9ocd * x1q3z9afd; printFloatLn(x1q3p9afd); float a = 35.0; float b = 12.50; float c = a * b; printFloatLn(c); float heures = 35.0; is is s e z in t e ll ig e m m e n t float taux = 12.50; Ch o s! float paye = heures * taux; printFloatLn(paye); le n om de v o s v a r ia ble 14 Qu est-ce qu une constante ? Les constante littérales : – Ce sont des valeurs numériques ou alphanumériques spéci ées dans le code source. – Elles sont réser vées et initialisées lors de la phase de compilation du code source. – Elles sont « gravées dans le marbre » dans la mémoire RAM lors de la compilation. 10 3.14 "Bonjour" Les constantes symboliques : – Pour un code plus lisible et pour faciliter sa maintenance il peut être intéressant de nommer une constante littérale, plutôt que d avoir à recopier sa valeur. – Déclarées comme des variables mais avec le mot-clé const avant le type. – Par convention, utilisez des identi cateurs en majuscule : const int LA3 = 440; const float PI = 3.141592; ’ ’ fi ’ fi 15 Qu est-ce qu une expression ? Dé nition d une expression : – Une expression en informatique est une combinaison de littéraux, de variables, d opérateurs et de fonctions qui, évaluée en suivant les règles de priorité et d associativité du langage de programmation, retourne (produit) une valeur : - Un littéral est une expression (il est sa propre valeur) : 3 - Les variables et les constantes sont des expressions : x PI - Un appel de fonction est une expression : sin(PI) - Un calcul avec un opérateur est une expression : x + 3 – Puisqu elle retourne une valeur, une expression peut être affectée à une variable : correction = KP * getErreur(); ’ ’ fi ’ ’ ’ ’ 16 Evaluation d une expression Principe de l évaluation d une expression : – L expression est évaluée avant la ré-affectation de la variable x : x = 0.6 ( ) Parenthésage x = 3.9 * x * ( 1 - x ) * Multiplication / Division % Modulo 0.4 + Addition - Soustration 0.93 – Règles de priorité lors d une évaluation : - Les sous-expressions entre parenthèses sont évaluées en premier - Puis les multiplications, les divisions et les modulos - Puis les additions et les soustractions - De la gauche vers la droite ’ ’ ’ ’ ’ 17 Type d une expression Le type d une expression dépend des éléments qui la composent : 2 + 3 retourne le int 5 (les int font des int) 10 / 4 retourne le int 2 (les int font des int) 2.0 + 3.0 retourne le float 5.0 (les float font des float) 2 + 3.0 retourne le float 5.0 (le float est contaminant) 10.0 / 4 retourne le float 2.5 (le float est contaminant) Mais la valeur récupérée dépend également du type de la variable : int a = 10 / 4; a vaut 2 (un int dans un int) float b = 10 / 4; b vaut 2.0 (un int dans un float) float c = 10.0 / 4; c vaut 2.5 (un float dans un float) int d = 10.0 / 4; d vaut 2 (un float dans un int) Trois règles essentielles qu il faut retenir : ! – Les chiens ne font pas des chats S u p e r im p o rt a n t e n C – Le oat est un type contaminant – Une affectation peut provoquer une conversion de type fl ’ ’ ’ 18 Flux d exécution d un programme Diagramme de ux, parfois appelé « logigramme » : – Les symboles suivants représentent les notions élémentaires d un algorithme – Les connecteurs indiquent le ux (sens) d exécution du programme Début / Fin Entrée / Sortie Instruction / Traitement Décision Connecteur Le ux d exécution par défaut est linéaire : – Il suf t de suivre les èches du début à la n Deb Instruction 1 Instruction 2 Instruction 3 Fin fl fi ’ ’ fl fl fl ’ ’ fi ’ 19 Flux d exécution d un programme Parfois on a besoin de répéter une séquence d instructions : Deb Instruction 1 Instruction 2 Instruction 3 Instruction 1 – Flux d exécution : Instruction 2 Instruction 3 Q ue re m a rq ue z-vo us ? Instruction 2 C ommen t on qu a li e ce tt e séquen ce ? Instruction 3 Instruction 2 C est une boucle in nie... Instruction 3 Et en général, on n aime pas ça ! etc. De qu oi a- t- on be so in po ur év iter le s bo uc le s in n ie s ? ’ ’ ’ fi ’ fi fi ’ ’ 20 Flux d exécution d un programme Parfois il faut savoir prendre une décision : Décision Deb Instruction 1 Instruction 2 Instruction 3 – Deux ux d exécution possibles : Deb Instruction 1 Instruction 2 Le choix entre les deux ux sera fait en fonction Deb Instruction 1 d une condition qui doit être vraie ou fausse. La condition doit être notée dans le losange. Instruction 3 ’ fl ’ ’ fl ’ 21 Qu est-ce qu une condition ? En informatique, une condition est une expression qui peut être évaluée vrai ou fausse. On parle aussi d expression logique ou d expression booléenne en référence à l algèbre de Boole. Les conditions sont utilisées dans les structures de contrôle (répétitions ou conditionnelles). Dans certains langages (ex: Python) il existe un type « booléen » qui n autorise que les deux valeurs True ou False mais en langage C : – La valeur « faux » est représentée par zéro. 0 = FAUX – La valeur « vrai » est représentée par tout sauf zéro. pas 0 = pas FAUX Une expression booléenne peut comporter : (donc VRAI) – Des opérateurs de comparaison (sur les types de données avec relation d ordre). – Des opérateurs booléens (entre des expressions booléennes). – Une simple variable peut être évaluée à 0 ou pas 0 (notion de drapeau). ’ ’ ’ ’ ’ ’ ’ 22 Les expressions booléennes Opérateurs de comparaison : – Soient A et B deux expressions quelconques : A == B est vrai si A (évaluée) est égale à B (évaluée) A != B est vrai si A (évaluée) est différent de B (évaluée) – Soient A et B deux expressions dont le type possède une relation d ordre : A < B est vrai si A (évaluée) est inférieure à B (évaluée) A > B est vrai si A (évaluée) est supérieure à B (évaluée) A = B est vrai si A (évaluée) est supérieure ou égale à B (évaluée) Attention : Ne confondez pas égalité et affectation !!! ’ 23 Les expressions booléennes Opérateurs logiques (booléens) : – Soient A et B deux expressions booléennes : A && B est vrai si A est vrai ET si B est vrai A || B est vrai si A est vrai OU si B est vrai OU si A et B sont vrais !A est vrai si A est faux !A est faux si A est vrai – Tables de vérité des 3 opérateurs booléens : On y reviendra dans le module « Architecture des Ordinateurs » 24 Les expressions booléennes Expressions booléennes composées : – Penser à parenthéser vos expressions a n d imposer un ordre dans l évaluation : (((x

Use Quizgecko on...
Browser
Browser