Module : Algorithmique & Programmation 2 - PDF

Summary

This document is a presentation on algorithmic & programming 2. Topics covered include Introduction Générale, Instructions of base of language C, Instructions conditionnelles, Instructions répétitives, Tableaux, Chaines de caractères, Fonctions et Procédures, and Pointeurs.

Full Transcript

‫ﻛﻠﯿﺔ اﻟﻌﻠﻮم واﻟﺘﻘﻨﯿﺎت ﺑﻄﻨﺠﺔ‬ Faculté des Sciences et Techniques de Tanger Département Génie Informatique Module : Algorithmique & Programmation 2 Niveau Tronc Commun MIP Cours préparé et enseigné par : ▪ Pr. Sanae KHALI IS...

‫ﻛﻠﯿﺔ اﻟﻌﻠﻮم واﻟﺘﻘﻨﯿﺎت ﺑﻄﻨﺠﺔ‬ Faculté des Sciences et Techniques de Tanger Département Génie Informatique Module : Algorithmique & Programmation 2 Niveau Tronc Commun MIP Cours préparé et enseigné par : ▪ Pr. Sanae KHALI ISSA Module : Algorithmique & Programmation 2 : Tronc Commun MIP Déroulement du cours Introduction Générale Instructions de base du langage C Instructions conditionnelles Instructions répétitives Tableaux Chaines de caractères Fonctions et Procédures Pointeurs Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Introduction générale Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Schéma de résolution d’un problème Problème Algorithme Programme Solution Analyse 1. Identification des données 2. Détermination des traitements Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Schéma de résolution d’un problème Problème Algorithme Programme Solution Algorithme Somme ; Variables x1, x2, S : réel ; Début Ecrire (‘Donner les deux valeurs : ‘); Lire (x1,x2); S ← x1+x2; Ecrire (‘La somme des deux valeurs est : ‘ , S) ; Fin Pseudocode Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Schéma de résolution d’un problème Problème Algorithme Programme Solution Traduction Utilisation d’un langage de programmation tels que : Langage pascal Langage C Langage Python Langage C++ Langage java Etc. Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Schéma de résolution d’un problème Problème Algorithme Programme Solution #include main() { float x1,x2,S; printf("Donner les deux valeurs :"); scanf("%f %f", &x1, &x2); S=x1+x2; printf("la somme est : %f", S) } Code C Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Schéma de résolution d’un problème Problème Algorithme Programme Solution Compilation & Exécution Utilisation d’un environnement de développement tels que : Borland C++ Dev C++ Visual studio code JavaCreator Etc. Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Terminologie Algorithme Une description formelle d’un proc d de traitement qui permet, partir d’un ensemble d’informations initiales, d’obtenir des informations d duites; Un algorithme peut être représenté sous forme d’un organigramme ou d’un pseudocode Exemple d’un Début Exemple d’un pseudocode organigramme Algorithme Division ; Entrer la valeur de A et B Variables A, B : réel ; Faux Vrai Début B=0 Ecrire (‘Entrer les deux valeurs : ‘) ; Lire (A,B); Calculer A/B if (B=0) Afficher un message d’erreur Ecrire (‘impossible de diviser par 0 ‘) ; Afficher le résultat else Ecrire (‘le résultat est : ‘, A/B) ; Fin Fin Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger à é é é Module : Algorithmique & Programmation 2 : Tronc Commun MIP Terminologie Programme Programmer une machine : expliquer en détail ce que doit faire une machine pour atteindre un but ou résoudre un problème Un programme est une suite d’instructions écrites dans un code bien précis appelé langage de programmation pouvant être compilés, interprétés ou exécutés pour donner un résultat bien déterminé. Types des programmes Systèmes d’exploitation : un ensemble des programmes qui gèrent les ressources matérielles et logicielles. Il propose une aide au dialogue entre l’utilisateur et l’ordinateur à travers une interface textuelle (interpréteur de commande) ou graphique (gestionnaire de fenêtres). Il est souvent multitâche et parfois multiutilisateur ( ex : Ms dos, windows, macOS, Linux, etc.) Programmes d’application : ils sont dédiés à des tâches particulières, formés d’une série de commandes contenues dans un programme source qui est transformé pour être exécuté par l’ordinateur (Photoshop, Ms office, WhatsApp, etc.) Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Terminologie Langage de C’est une notation conventionnelle destinée à formuler des programmation algorithmes afin de produire des programmes informatiques. Un langage de programmation est construit à partir d'une grammaire formelle, qui inclut des symboles et des règles syntaxiques. Types des langage de programmation Langage machine : un langage proche de la machine, formé de 0 et 1, propre à chaque processeur, il n’est pas portable. Langage d’assemblage : un codage alphanumérique du langage machine. plus lisible que le langage machine, mais n’est toujours pas portable. traduit en langage machine par un assembleur Langage de haut niveau : compréhensible par l’être humain, portable d’une machine à une autre, traduit en langage machine par un compilateur ou un interpréteur. Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Terminologie Compilation C’est la traduction du code source (rédigé en utilisant un langage de programmation) en langage objet (langage binaire). Elle comprend au moins quatre phases : - Phase d’analyse lexicale, - Phase d’analyse syntaxique - Phase d’analyse sémantique - Et une phase de production de code objet Code Code Résultat Compilateur Exécuteur source Objet d’exécution Ex : Langage Langage binaire C 0 et 1 Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Terminologie Interprétation C’est l’analyse et l’exécution de chaque ligne du code source (rédigé en utilisant un langage de programmation) sans la génération du code objet. Code source Interpréteur Résultat d’exécution Ex : Langage python Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Terminologie Différence entre Interpréteur et Compilateur Interpréteur Compilateur Convertit le programme en prenant une Analyse l’ensemble du programme et le seule ligne à la fois. traduit dans son ensemble en code machine. L’analyse du code source prend moins L’analyse du code source prend beaucoup de de temps, mais le temps d’exécution temps, mais le temps d’exécution global est global est plus lent. comparativement plus rapide. Génère du code d’objet intermédiaire qui Aucun code d’objet intermédiaire n’est nécessite en outre une liaison, nécessite donc généré, la mémoire est donc efficace. davantage de mémoire. Continue de traduire le programme Il génère le message d’erreur uniquement jusqu’à ce que la première erreur soit après avoir analysé l’ensemble du programme. rencontrée. Par conséquent, le débogage Par conséquent, le débogage est relativement est facile. difficile. Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Terminologie Type de programmation Généralement, on distingue entre deux types de programmation : programmation procédurale et programmation orienté objet Programmation procédurale La programmation procédurale est un paradigme de programmation qui repose sur le concept de procédures ou fonctions. Dans la programmation procédurale, un programme est divisé en petites unités autonomes appelées procédures contenant des séquences d'instructions à exécuter. Ces procédures peuvent être appelées dans un ordre spécifique pour accomplir une tâche plus complexe. Exemple : Ada, FoxPro, Modula-2, BASIC, Pascal, C, ALGOL, COBOL, Fortran Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Terminologie Type de programmation Généralement, on distingue entre deux types de programmation : programmation procédurale et programmation orienté objet Programmation orienté objet La programmation orientée objet (POO) est un paradigme de programmation qui utilise des objets, qui sont des instances de classes, pour organiser et structurer le code. Elle repose sur plusieurs concepts clés à savoir : l’encapsulation, l’abstraction, l’héritage, le polymorphisme, etc. Exemple : C++, C, Java, Python, Ruby, Javascript, etc. Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Un peu d’histoire 1972 Conception d’un langage structuré par Dennis M. Ritchie afin de développer une version portable du système d’exploitation UNIX (Laboratoires de Bell) 1978 Publication de la définition classique du langage C sous le nom « Standard K & R-C » par Brain W. Kernighan et Dennis M. Ritchie. 1983 Mise en point d’une définition explicite et indépendante de la machine pour le langage C sous le nom « Standard AINSI-C» 1988 Apparition de la 2eme version du livre « The C programming language » Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Avantages du langage C Langage Prés de la Exécution Universel machine rapide et Indépendant de la efficace (Applications dans différents machine domaines Modulaire (Décomposables en Extensible plusieurs (Possibilité Portable modules ) d’ajouter d’autres (Exécutable sur fonctions) différents systèmes d’exploitations Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun GEGM Instructions de base du Langage C Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Structure générale d’un programme en C # include # include Directives du préprocesseur Liste des bibliothèques # include …. main () { Déclaration des données ; instruction 1; // commentaires instruction 2; La fonction principale main() … instruction n; } Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Structure générale d’un programme en C Exemple # include main() { float CC1, CC2, M; // M représente la moyenne à calculer int CF1, CF2; printf("Donner les deux notes :"); scanf("%f %f", &CC1, &CC2); printf("Donner les deux coefficients :"); scanf("%d %d", &CF1, &CF2); M= (CC1*CF1+CC2*CF2)/(CF1+CF2); printf("la moyenne est : %f ", M); } Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Notion d’une donnée ▪ Une donnée est un emplacement en mémoire dans lequel on peut mettre une X - 1,3 valeur. N 12 ▪ Une donnée est identifiée par son adresse en mémoire et son identificateur. a D ▪ Pour déclarer une donnée, il faut spécifier son identificateur, sa nature et son type L M Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Notion d’une donnée Identificateur d’une donnée L’identificateur est un nom choisi pour désigner une donnée, Il doit : Être formé des lettres (A - Z) (a - z), des chiffres (1 - 9) et des lignes de soulignement ( _ ) Commencer obligatoirement par une lettre. Il ne doit pas Contenir des espaces Être un mot réservé du langage c Exemple : N1, Nombre_1, Somme, nom_etudiant, note_CC1, moyenne, etc. Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Notion d’une donnée Adresse d’une donnée L’adresse d’une donnée représente son adresse dans la mémoire. Elle est représentée par le symbole : & Identificateur_donnée. Exemple : &N1 : adresse de la variable N1 &Note_CC1 : adresse de la variable Note_CC1 Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Notion d’une donnée Types des données Types Taille en Format de Signification Plage des valeurs prédéfinis mémoire type char caractère 1 octet -128 à 127 %c int Nombre entier 2 octets -32768 à 32767 %d ou %i -3,4 *10 -38 à 3,4 *10 float Nombre réel 4 octets 38 %f Nombre réel avec -1.7 *10 - 308 double 8 octets %f ou %e double précision à 1.7 *10 308 Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Notion d’une donnée Exemples des données Identificateur Type Exemple nom_etudiant Chaine de caractères "Alami" , "Idrissi" , "Hadi" vitesse_vent Nombre entier 13 - 17 - 20 - 19 Temperature Nombre entier -2 - 27 - 33 - 13 note_etudiant Nombre réel 17.5 - 12.5 - 15.0 - 12.25 modele_voiture Nombre entier 2012 - 2015 - 2000 Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Notion d’une donnée Nature des données La nature d’une donnée peut être Variable ou Constante : Type_Variable Iden_Var1, Iden_Var2, … ; Const Type_Constante Ou bien Identificateur_Constante = Valeur_Constante; Type_Variable Identificateur_Variable = Valeur initiale; Ex : Ex : Const float Pi = 3,14; int N1; float Nombre_1; char L = ‘a’; Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Instruction d’écriture en C Pour afficher un message : printf ( ″ Texte a afficher ″ ) ; Pour afficher la valeur d’une variable : printf ( ″ format_Variable1 format_Variable2 … ″ , Id_Var1, Id_Var2, … ) ; Exemple : printf (" La moyenne est : " ) ; printf ("%f ", M) ; printf ( " La moyenne est %f : ", M ) ; Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Instruction de lecture en C Pour demander l’attribution d’une valeur à une variable : scanf ( ″ format_Variable1 format_Variable2 … ″ , Adr_Var1, Adr_Var2, … ) ; Exemple : scanf ("%f ", &CC1) ; scanf ("%f %f ", &CC2, &TP) ; Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Opérateurs mathématiques Opérateurs arithmétiques + Addition Opérateurs de comparaison - Soustraction < inférieur à * Multiplication supérieur à % Reste de la division >= supérieur ou égal à Opérateurs logiques == égal à != différent && ET logique || OU logique ! Négation logique Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Opérateurs mathématiques Opérateurs d’affectation Identificateur_Variable = Valeur simple ; Ou bien Identificateur_Variable = Expression arithmétique ; Exemple : M= (CC1*CF1+CC2*CF2)/(CF1+CF2); NB : Lorsque les types des deux opérandes sont différents il y’a conversion implicite vers le type de la variable résultante. Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Opérateurs mathématiques Opérateur d’incrémentation (ajouter un à l’ancienne valeur) identificateur_Variable ++ ; Opérateur de décrémentation (soustraire un de l’ancienne valeur) identificateur_Variable - - ; Exemple : A++ ; // Ajouter un à la valeur de A , équivalent à A=A+1; B - - ; // Soustraire un de la valeur de B, équivalente à B=B-1; Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Opérateurs mathématiques Opérateurs d’assignations Additionne les deux valeurs op1 et op2, le op1+= op2 op1=op1 +op2 résultat est stocké dans op1 Soustrait les deux valeurs op1 et op2, le op1-= op2 op1= op1 – op2 résultat est stocké dans op1 Multiplie les deux valeurs op1 et op2, le op1*= op2 op1= op1*op2 résultat est stocké dans op1 Divise les deux valeurs op1 et op2, le op1/= op2 op1= op1/op2 résultat est stocké dans op1 Exemple : A+=2; // Ajouter 2 à A et stocker la nouvelle valeur dans A Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Instructions conditionnelles Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Instruction conditionnelle simple Expression logique ▪ C’est une comparaison de deux valeurs de même type en simple utilisant un opérateur de comparaison. ▪ La valeur d’une expression logique est de type booléen (vrai ou faux) Exemple A==B A 0) printf ( ″ Nombre positif ″ ); Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Instruction conditionnelle complète Syntaxe générale if ( expression logique) Exemple { Instruction 1; à exécuter si if ( X > 0) … l’expression printf (″ Nombre positif ″); Instruction n; logique est vraie else } printf (″ Nombre négatif ou else nul ″ ); { Instruction 1; à exécuter si … l’expression logique Instruction n; est fausse } Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Instruction conditionnelle imbriquée Syntaxe générale if ( expression logique 1) { Instructions à exécuter si l’expression logique 1 est vraie } else if (expression logique 2 ) { Instructions à exécuter si l’expression logique 2 est vraie } else { Instructions à exécuter si l’expression logique 2 est fausse } Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Instruction conditionnelle imbriquée Exemple if ( X > 0) printf (″ Nombre positif ″); else if (X < 0 ) printf (″ Nombre négatif ″ ); else printf (″ Nombre nul ″ ); Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger Module : Algorithmique & Programmation 2 : Tronc Commun MIP Instruction conditionnelle imbriquée Exercice d’application Ecrire un programme C qui permet d’afficher les mentions suivantes selon la valeur de la moyenne générale choisie par l’utilisateur. - Si moyenne >=16, la mention affichée est : Très Bien - Si 14

Use Quizgecko on...
Browser
Browser