Algorithmes avancés en C Edition Stage et Concours / SINUS-APLIQ
Par K. Constant KOUAKOU deuxième tirage
Décrochez un stage , un suivi de stage , et autres prestation; grâce à l'original de ce fascicule
1
PARTIE I :
LE LANGAGE C
INTRODUCTION
Le langage C est un langage de programmation structuré qui a été créé par
KERNIGHAN & RITCHIE dans l'objectif de développer un Système
d'Exploitation : UNIX.
90% du code d’UNIX natif a été conçu en C , et 10% en Assembleur et
langage machine. Ce qui explique la très grande portabilité d'un programme
écrit en C sur les Systèmes UNIX.
Un Système d'Exploitation est un Logiciel de base (i.e. un logiciel servant
à faire fonctionner les Logiciels d’un système informatique) c'est à dire un
ensemble d'utilitaires de type Logiciel qui permettent de gérer des ressources de
type Matériel ou Logiciel d'un ordinateur ou d'un assemblage informatique.
En vu de répondre à des contraintes d’outil de conception de Système
d’Exploitation, le Langage C a é conçu de manière à pouvoir effectuer des
accès de bas niveau vis à vis du matériel et des logiciels, il est donc très
performant tout en étant un Langage structuré. Les programmeurs en C ont
conçus des programmes d’intérêt général qui ont été intégrés par la suite dans
certains logiciels de développement en C ; ainsi par exemple le Langage C (pur)
ne possède pas de fonction d'affichage mais la fonction printf( ) qui est très
utile pour l'affichage a été intégrée dans la plupart des Logiciels de
programmation en C à travers une bibliothèque : stdio.h.
Les bibliothèques C existent presque en quantités indénombrables.
Algorithmes avancés en C Edition Stage et Concours / SINUS-APLIQ
Par K. Constant KOUAKOU deuxième tirage
Décrochez un stage , un suivi de stage , et autres prestation; grâce à l'original de ce fascicule
2
LangC I STRUCTURE GENERALE D'UN PROGRAMME EN C
Pour écrire un programme en C, un débutant peut retenir un plan standard qui
n’est pas obligatoire. Son programme pourra suivre la progression suivante :
i • Une partie d’entête de déclaration des bibliothèques
ii • Une partie de définition ou déclaration de constantes ou de macros
iii • Une partie déclarative des types de données spécifiques au programme
iv • Une partie déclarative des variables globales
v • Une partie de déclaration/définition des fonctions (sous programme)
vi • Une partie codant le corps du programme principal
vii Les fonctions déclarées en « partie v » peuvent être définies ici
Remarque :
1 Il faut faire une distinction entre une déclaration de fonction et une
définition de fonction.
- La définition d'une fonction donne l'algorithme conceptuel de la fonction
ainsi que le mode d’appel de cette fonction.
- La déclaration ne donne que le mode d'appel de la fonction .
2 Le plan de progression ci–dessus n’est conseillé que dans une première
phase d’apprentissage du Langage C ; d’un aspect avancé , la modularité le
mettra certainement en cause .
LangC 2 L'ENTETE DES BIBLIOTHEQUES
Dans cette partie nous commentons la directive
include
Exemple :
include <stdio.h>.
Il y a 2 formes pour cette directive
*
include < c:\ tcp\ include\ stdio.h >
Nom de la bibliothèque avec le chemin complet
*
include "stdio.h"
Nom de la bibliothèque sans le chemin
Algorithmes avancés en C Edition Stage et Concours / SINUS-APLIQ
Par K. Constant KOUAKOU deuxième tirage
Décrochez un stage , un suivi de stage , et autres prestation; grâce à l'original de ce fascicule
3
Dans la 2ème forme, le Compilateur (par l’intermédiaire du Préprocesseur) va
chercher la bibliothèque mentionnée dans le/les répertoire/s de l’interface du
Logiciel de programmation .
Dans le cas du Turbo C, la séquence
permettra de connaître ou préciser ces répertoires .
Remarque Sous Turbo C la compilation se fait en 2 passes.
Une 1ère passe au cours de laquelle un "compagnon" du compilateur
appelé le PREPROCESSEUR fait d'abord son travail. Les tâches qui lui sont
destinées sont généralement précédées du caractère .
Une 2ème passe au cours de laquelle le compilateur fait son travail en
effectuant (pas nécessairement) une édition de lien et produit souvent un fichier
exécutable associé au programme.
LangC 3 DEFINITION ET DECLARATION DE CONSTANTE
Pour définir ou déclarer une constante, on se sert de la directive define
Exemple
define imax 1000
define pi 3.1415926535897
define bonjour "bonjour"
define exist
Remarque
1)La directive
define ne sert pas strictement à définir ou déclarer des
paramètres. Elle sert également à déclarer des MACROS.
2) La finition d’une constante à l’aide d’une valeur donne implicitement le
type de la constante :
OPTION
Directories
Include files
Algorithmes avancés en C Edition Stage et Concours / SINUS-APLIQ
Par K. Constant KOUAKOU deuxième tirage
Décrochez un stage , un suivi de stage , et autres prestation; grâce à l'original de ce fascicule
4
#define pi 3.14 sous entend que pi est de type réel
#define strg "bonjour" sous entend que strg est une chaîne de
caractères
3)En C, on peut finir des constantes ou des paramètres sans leur attribuer de
valeur comme par exemple
#define MOIJEXISTE
Ici MOIJEXISTE est un paramètre qui se contente d’avoir une existence dans le
programme
4) La directive #define sert également à définir des MACROS
Exemple
define max (a, b) ((a > b) ? a : b)
define permut (a, b, t) ( t = a ; a = b ; b = t )
Il y a une différence entre une MACROS et une fonction ou procédure : une
MACRO substitue (ou remplace) son code à l'emplacement elle est
mentionnée dans le programme ; cette substitution n’a pas lieu avec une
fonction qui, en plus, effectue des opérations manipulant une pile d'appel de
fonction.
Exemple
include <stdio. h>
define permut (a, b, t) (t = a , a = b , b = t)
int x , y ;
void main (void){
int t ;
x = 10 ;
y = 0 ;
permut (x,y,t) ;
}
l’expression permut (x, y, t) sera substituée par (t = x , x = y , y = t)
l’appel d’une macro fonctionne généralement plus vite que celle d'une
fonction . Bien que les macros soit avantageuses sur les fonctions pour leur
Algorithmes avancés en C Edition Stage et Concours / SINUS-APLIQ
Par K. Constant KOUAKOU deuxième tirage
Décrochez un stage , un suivi de stage , et autres prestation; grâce à l'original de ce fascicule
5
rapidité d’appel, il ne faut pas en abuser, car une macro produit plus facilement
qu’une fonction des mauvais effets de bord .
Exemple :
Pour la macro définie par
define Doubler1(a) (2 * a)
l’appel Doubler1 (x + y) sera substitué par 2*x + y
pour une bonne implémentation il faut la définir par
define Doubler (a) ( 2* (a))
l’appel Doubler(x+y) sera alors substitué par 2*(x+y)
LangC 4 DECLARATION DES TYPES
Le Langage C possède des types scalaires prédéfinis tels que :
char : caractère
int , long : pour les nombres entiers
float , double : pour les nombres réels
char
: chaîne de caractère
Ce sont évidemment les types les plus connus et les plus utilisés.
En C il n'y a pas de types booléens (la valeur entière nulle est considérée comme
FAUSSE et toute valeur entière non nulle est VRAIE)
Bien entendu tout programmeur aura besoin de traiter des types de données qui
ne sont pas prédéfinis dans le langage C ; le Langage C lui permettra de le faire
en utilisant le mot réservé typedef à laide d’une syntaxe générale de la forme
typedef <type de donnée à désigner> <nom du type de donnée> ;
Exemple typedef struct
char
nom ;
int nom :
} ETUDIANT ;
Ici le nouveau type de donnée est ETUDIANT. La mise en œuvre des types de
données demande une maîtrise des structures de données que nous verrons dans
la 2ème partie.
1 / 81 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !