هدا هو المحتوي وللتحميل اضغطي علي الروابط
Aix-Marseille Université – Université de la Méditerranée
Faculté des Sciences de Luminy
Algorithmique & programmation en langage C
Henri Garreta
2/11/2008
Algorithmique &
programmation en langage C
Ces pages sont une synthèse de divers enseignements sur le langage C donnés à la Faculté des Sciences de Luminy en Licence d’Informatique, Master de Mathématiques et Master professionnel Compétence Complémentaire en Informatique.
Il y est question un peu d’algorithmique élémentaire mais surtout de
programmation en langage C. Cependant, les rudiments de la programmation sont supposés connus et on ne revient pas sur des notions de base comme celles de variable, expression, affectation, etc.
Les commentaires et suggestions
sont les bienvenus. Les questions aussi, mais sans garantie de réponse.
Supports de cours
Exercices
Série 1.
Pour commencer... Des exercices très simples, autour des nombres entiers et réels, leur lecture au clavier, l’affectation, division entière et réelle, etc.
Corrections.
Série 2.
Boucles tant que et pour Encore des exercices très simples, avec des boucles.
Corrections.
Série 3.
Algorithmes simples sur des tableaux Des algorithmes très basiques qu’on emploie partout.
Corrections.
Série 5.
Chaînes de caractères. Sur la notion de chaîne de caractères, les fonctions de la bibliothèque associées et la manière d’utiliser les unes et les autres.
Corrections.
Série 6.
Fonctions récursives. Quelques exercices de réflexion autour des fonctions récursives.
Corrections.
Série 8.
Arbres. Sur des application usuelles de la structure d’arbre : arbre binaire de recherche, arbre représentant une expression arithmétique, etc.
Corrections.
Série 10.
Ensembles. Une série de variations sur les diverses manières d’implémenter les ensemble dans les programmes C.
Corrections.
Série 11.
Polynômes. Un magnifique exercice de synthèse sur la représentation des polynômes par des listes chaînées et la programmation de leurs opérations.
Corrections.
Série 12.
Les adresses des fonctions. Quatre exercices (utiles) autour de la notion de pointeur sur une fonction.
Corrections.
Problèmes
Bonnes adresses
Compilateurs libres ou gratuits
Tous les exercices proposés ici ont été effectivement réalisés et testés sur Linux avec ses outils de développement C natifs (gcc et ses amis) et sur Windows avec l’environnement de développement Dev-C++.
Dev-C++ s'appelle maintenant wxDev-C++ ; vous pouvez
télécharger la dernière version de wxDev-C++ et lire quelques
explications sur l’installation et l’utilisation de Dev-C++.
Un autre successeur de Dev-C++ qui se révèle excellent est
Code::Blocs, dont vous pouvez télécharger des
versions pour Windows, Linux et MacOs.
Sur Windows, wx-Dev-C++ et Code::Blocs sont construits au-dessus de
MinGW, un portage de
gcc, le compilateur C/C++ du projet
GNU. Ainsi, que vous travailliez chez vous avec Windows et Dev-C++ ou Code::Blocs ou bien à la fac avec Linux, vos programmes seront traités exactement de la même manière.
Une autre plate-forme utilisant gcc est
eclipse, dont existe des versions Windows, MacOS et Linux. Il vous faudra installer le
plugin CDT et, par ailleurs,
MinGW ou
cygwin. Eclipse est un peu plus lourd que les deux outils précédents, mais il permet le développement dans beaucoup d’autres langages de programmation, à commencer par Java.
Sur Windows, un autre bon outil pour faire du C est
Microsoft Visual C++, dont la version dite Express Edition est gratuite. L’installation est un peu plus laborieuse que pour les deux précédents et le compilateur au cœur du dispositif n’est pas à la pointe du langage comme gcc, mais son debugger intégré est d’une remarquable robustesse. Des explications sur ce produit sont données
ici.
Le
Site du Zéro donne de précieuses explications sur la manière de télécharger et installer ces divers produits.
Enfin, si vous êtes
unixien fondamentaliste et pensez qu’on n’a rien inventé depuis
gcc et
vi, voyez quand-même
ici des indications sur l’utilisation de DDD, le débogueur graphique de Linux.