• Formation d'ingénieur • Licence • Formation continue • BTS Algorithmique et P
• Formation d'ingénieur • Licence • Formation continue • BTS Algorithmique et Programmation C Cours et exercices corrigés Dr Maher HENI Mme Sonia GUERBOUJ Mheni & SGarbouje Liste des ouvrages: Dr: Maher HENI: Routage orienté optimisation énergétique dans les réseaux sans fil: Routage et efficacité énergétique dans les MANETs et les WSN, Editions universitaires europeennes (Aôut -2013) Mheni & SGarbouje Algorithmique et Programmation C Cours et exercices corrigés © Tous droits de reproduction, de traduction et d'adaptation réservés pour tous pays ©Centre de Publication Universitaire, Manouba, 2015 B.P:223 La Manouba 2010-Tunisie Tél:(+216)71600025 Fax:(+216)71601266 Dr Maher HENI Mme Sonia GUERBOUJ Mheni & SGarbouje « Dans la vie rien à craindre, tout est à comprendre » Marie Curie ******* « L'imagination, c'est l'art de donner vie à ce qui n'existe pas, de persuader les autres d'accepter un monde qui n'est pas vraiment là » Paul Auster ******* « I arise in the morning torn between a desire to improve the world and a desire to enjoy the world. This makes it hard to plan the day » Elwyn Brooks White ******* «The world can develop only with the human imagination, so you must try to imagine an idea that can change the world or we'll just live and die and will be forgotten » Maher HENI Mheni & SGarbouje Avant propos Cet ouvrage présente les algorithmes et structures de données de base qu'on rencontre souvant en programmation. Ces algorithmes sont implémentés par la suite en langage C. En effet, de ce langage, nombreux langages en dérivant et aussi il est à la base de tous les systèmes d'exploitation populaires. L'algorithmique et la programmation C est très enseigné dans les écoles et institutions d'eseignement superieure. Ce livre s'adresse aux étudiants en licence fondamentale et appliquée en informatique, aux élèves ingénieurs, et à tous ceux qui souhaitent acquérir des bases solides en algorithmique et programmation C. L'ouvrage est structuré en douze chapitres, chaque chapitre est structuré en trois parties : • Syntaxe algorithmique: Il s'agit de fournir une solution à un problème, la première étape consiste à analyser ce problème, c'est-à-dire en cerner les limites puis le mettre en forme dans un langage descriptif. • Le langage de programmation C Un langage de programmation est l'intermédiaire entre l'utilisateur humain et l'ordinateur. Il permet d'écrire dans un langage proche de la machine mais intelligible par l'humain les opérations que l'ordinateur doit effectuer. Ainsi, étant donné qu'il est destiné à l'ordinateur, le langage de programmation doit respecter une syntaxe stricte. Un algorithme peut toutefois aboutir à plusieurs programmes. Dans notre ouvrage nous présentons la traduction des algorithmes en langage C. • Exercices corrigés: Nous avons choisit des exercices et problèmes contigus aux notions de cours présentés, formalisés comme complément à la compréhension des notions. Nous avons aussi présenté quelques problèmes de concours nationaux et des examens semestriels avec des corrigés détaillés. Mheni & SGarbouje Mheni & SGarbouje p. 7 Introduction à l’algorithmique I. Notion de programmation Programmation Un programme est une liste d’instructions bien structurées qu’on exécute afin de répondre à un problème. L’exécution de ces instructions peut être faite par l’homme ou par l’ordinateur. Dans ce dernier cas, on parle de programmation informatique. Algorithme : Dérivé du nom du mathématicien arabe « Al- Khawarizmi », il s’agit d’une séquence d’opérations pour résoudre un type de problème spécifique. Selon la définition précédente de programmation, on remarque qu’il existe une grande similitude entre les termes « programme » et « algorithme ». Les deux désignent une méthode pour résoudre un problème donné. On emploie le terme « algorithme » lorsque la séquence d’instructions est écrite en langage algorithmique et fait abstraction d’un ensemble de détails. On emploie le terme « programme » lorsque la séquence d’instructions est écrite dans un langage compréhensible par la machine (tel que le langage C). II. Démarche de programmation Pour élaborer un programme, il faut suivre les 5 étapes suivantes: Étape-1: SPECIFICATIONS DU PROBLEME Mheni & SGarbouje p. 8 Dans cette étape, on doit spécifier les objectifs attendus du programme. On doit par la suite dissocier le problème en deux parties, données du problème et résultat attendu. Etape-2: ANALYSE et CONCEPTION Lors de cette étape, on analyse le problème et on élabore la méthode de sa résolution. Cette méthode est exprimée en un langage humain simple appelée algorithme. Etape-3: CODAGE L’algorithme obtenu à l’issu de l’étape précédente est traduit en un langage de programmation bien spécifique. Etape-4: TEST et CORRECTION (Debugging) Tout programme doit passer par cette étape qui consiste à tester le code et chercher les erreurs afin de les corriger. Cette étape peut être l’étape la plus longue. Etape-5: EXPLOITATION et MAINTENANCE Le programme est maintenant prêt à être utilisé. Et au fur et à mesure de son exploitation, on continue à le maintenir c'est-à-dire à corriger les erreurs qui n’ont pas été détectées auparavant et l’améliorer. i.e: Le mot compilation se traduit en algorithmique et en programmation par la traduction d'un programme en langage compréhensible par la machine dans un premier temps, puis l'éxécuter dans un deuxième temps. L'entité responsable de cette fonction s'appelle compilateur. Mheni & SGarbouje p. 9 III. Les variables : Définition Tous les langages de programmation sont basés sur la manipulation de variables. En programmation, une variable sert à stocker une valeur qui correspond à une donnée ou un résultat. Elle est identifiée par un nom et une adresse, c'est-à- dire une zone mémoire dans laquelle on enregistre sa valeur. Le nom de la variable peut être formé d’un ou de plusieurs caractères (lettres et chiffres), à condition de ne pas commencer par un chiffre pour éviter toute confusion entre la nomination et l’opération de multiplication. En plus, les caractères spéciaux ne sont pas pris en compte sauf le tirait bas "_". Déclaration Syntaxe Exemple En algorithmique nom_variable : type_variable x, age_etudiant : entier En langage C type_variable nom_variable ; int x, age_etudiant ; Mheni & SGarbouje Les constantes Les constantes sont des qui ne changent jamais durant l’exécution du programme. Elles doivent être déclarées au début du programme avant les variables. Par convention, les noms des constantes sont écrits en majuscule pour les différencier des variables dans le code. Syntaxe En algorithmique nom_const = valeur_const En langage C const type_const nom_const = valeur_const IV. Les types simples Un type spécifie la liste des valeurs que peut prendre une variable. Il spécifie aussi les effectuer sur cette valeur. En algorithmique types de données simples : - Type entier : les valeurs de l’ensemble (l’ensemble des entiers relatifs) en mathématique - Type réel : les valeurs de l’ensemble des réels) en mathématique p. 10 des valeurs de certaines grandeurs durant l’exécution du programme. Elles doivent être déclarées au début du programme avant les variables. Par convention, les noms des constantes sont écrits en majuscule pour les différencier des variables dans le code. Syntaxe Exemple nom_const = valeur_const PI = 3.14 G = 10 type_const nom_const = valeur_const ; const float PI = 3.14 ; const int G = 10 ; Un type spécifie la liste des valeurs que peut prendre une variable. Il spécifie aussi les opérations qu’on peut effectuer sur cette valeur. En algorithmique, on définit 5 les valeurs de l’ensemble « » (l’ensemble des entiers relatifs) en mathématique les valeurs de l’ensemble ℝ (l’ensemble Mheni & SGarbouje p. 11 - Type caractère : cet ensemble est formé par les chiffres de 0 à 9, les lettres alphabétiques et les caractères spéciaux (£, $, +, &, @...) - Les chaines de caractères : les séquences de caractères - Le type logique ou booléen : les valeurs vrai et faux. Nous verrons dans un autre chapitre comment créer un type personnalisé. 1. Le type entier L’ensemble des valeurs que peut prendre un entier varie selon le langage de programmation utilisé. Les opérations qu’on peut effectuer sur un entier sont : + : Addition - : Soustraction * : Multiplication div : Division entière mod : Modulo, le reste de la division Et aussi les opérations de comparaison: ≠ : Différence = : Egalité < : Inférieur ≤ : Inférieur ou égal > : Supérieur ≥ : Supérieur ou égal 2. Le type réel Pour représenter des nombres flottants, on utilise le type réel. En plus des opérations de comparaison, les opérations qu’on peut effectuer sur un réel sont : Mheni & SGarbouje p. 12 + : Addition - : Soustraction * : Multiplication / : Division ^:Puissance 3. Le type caractère Un caractère peut être un chiffre ou une lettre aphabétique ou un caractère spécial. Le caractère espace est aussi pris en considération. Les opérations qu’on peut effectuer sur les caractères sont principalement des opérations de comparaison utilisant le code ASCII (American Standard Code for Information Interchange) de chaque caractère. Ce codage permet d’affecter un code entier à chaque caractère. Les principales opérations qu’on peut effectuer sur les caractères sont : ≠ : Différence = : Egalité < : Inférieur ≤ : Inférieur ou égal > : Supérieur ≥ : Supérieur ou égal Le résultat de uploads/Ingenierie_Lourd/ livre-asd-17-11-2015-mise-en-page-pdf.pdf
Documents similaires










-
34
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 12, 2022
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 1.0987MB