Introduction au langage C Hitskin_logo Hitskin.com

Ceci est une prévisualisation d'un thème de Hitskin.com
Installer le thèmeRetourner sur la fiche du thème

Club Informatique VINCI
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Connexion

Récupérer mon mot de passe

Sondage

Quel est votre antivirus préféré ?

Introduction au langage C Vote_lcap16%Introduction au langage C Vote_rcap 16% [ 4 ]
Introduction au langage C Vote_lcap32%Introduction au langage C Vote_rcap 32% [ 8 ]
Introduction au langage C Vote_lcap0%Introduction au langage C Vote_rcap 0% [ 0 ]
Introduction au langage C Vote_lcap0%Introduction au langage C Vote_rcap 0% [ 0 ]
Introduction au langage C Vote_lcap0%Introduction au langage C Vote_rcap 0% [ 0 ]
Introduction au langage C Vote_lcap36%Introduction au langage C Vote_rcap 36% [ 9 ]
Introduction au langage C Vote_lcap0%Introduction au langage C Vote_rcap 0% [ 0 ]
Introduction au langage C Vote_lcap0%Introduction au langage C Vote_rcap 0% [ 0 ]
Introduction au langage C Vote_lcap8%Introduction au langage C Vote_rcap 8% [ 2 ]
Introduction au langage C Vote_lcap8%Introduction au langage C Vote_rcap 8% [ 2 ]

Total des votes : 25

Derniers sujets
» algorithme en langage C
Introduction au langage C EmptyJeu 28 Nov - 8:07 par arsenepoutsi

» CCNA version 4 français
Introduction au langage C EmptyDim 31 Mar - 15:15 par kadhouceeee

» Trés important " Livre exercices en langage C ( claude delannoy) "
Introduction au langage C EmptyJeu 27 Sep - 16:31 par latifa oustouh

» Ulead VideoStudio 11.5.0157.2 Plus + Crack Collection
Introduction au langage C EmptyJeu 26 Avr - 9:51 par miloduvi

» Langage IDL(Interface Definition Language)
Introduction au langage C EmptyMar 27 Sep - 13:02 par Abdelkhalek Bakkari

» demande cours PHP
Introduction au langage C EmptyJeu 2 Juin - 11:23 par elasriahmed

» exemple page web réaliser avec du html et JavaScript
Introduction au langage C EmptyLun 30 Mai - 4:05 par ouh.rouchan.zakaria

» cours group2_ 2année 2011
Introduction au langage C EmptyDim 20 Mar - 15:35 par El Maligno Angelo

» Cours : Infrastructures Réseaux 2003 Server
Introduction au langage C EmptyMar 15 Fév - 6:55 par jettjackson

» cours officiel de CCNA 2
Introduction au langage C EmptyMar 18 Jan - 13:53 par agares

Qui est en ligne ?
Il y a en tout 5 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 5 Invités

Aucun

[ Voir toute la liste ]


Le record du nombre d'utilisateurs en ligne est de 27 le Lun 3 Juin - 10:16
Statistiques
Nous avons 437 membres enregistrés
L'utilisateur enregistré le plus récent est intellection

Nos membres ont posté un total de 1292 messages dans 373 sujets
Le deal à ne pas rater :
Cdiscount : -30€ dès 300€ d’achat sur une sélection Apple
Voir le deal

Introduction au langage C

3 participants

Aller en bas

Introduction au langage C Empty Introduction au langage C

Message par ELBADRI.Zakaria Dim 24 Mai - 13:02

Bon premièrement j suis très fière si vous partagez avec moi vos connaissance en langage C et me donner des idées pour partir loin au niveau des cours que je vais traitait sur le langage c
Comme un premier chapitre je vais poster seulement une petite introduction et après je vais passer au programmation en langage C






Introduction au langage C



Petite histoire du C

Le langage C a été mis au point par D.Ritchie et B.W.Kernighan au début des années 70. Leur but était de permettre de développer un langage qui permettrait d'obtenir un système d'exploitation de type UNIX portable. D.Ritchie et B.W.Kernighan se sont inspirés des langages B et BCPL, pour créer un nouveau langage : le langage C.

La première définition de ce langage a été donnée dans leur livre commun « The C programming language ».
Toutefois, suite à l'apparition de nombreux compilateurs C, l'ANSI (abréviation de American National Standards Institute) a décidé de normaliser ce langage pour donner ce que l'on appelle le C-ANSI. Suite à cette norme, Ritchie et Kernighan ont sorti une deuxième édition du livre en intégrant les modifications apportées par l'ANSI.


Les atouts du C

Le langage C reste un des langages les plus utilisés actuellement. Cela est dû au fait que le langage C est un langage comportant des instructions et des structures de haut niveau (contrairement à l'assembleur par exemple) tout en générant un code très rapide grâce à un compilateur très performant.

Un des principaux intérêts du C est que c'est un langage très portable. Un programme écrit en C en respectant la norme ANSI est portable sans modifications sur n'importe quel système d'exploitation disposant d'un compilateur C : Windows, UNIX, VMS (système des VAX) ou encore OS/390 ou z/Os (l'OS des mainframes IBM).

La rapidité des programmes écrits en C est en grande partie due au fait que le compilateur présuppose que le programmeur sait ce qu'il fait : il génère un code ne contenant pas de vérifications sur la validité des pointeurs, l'espace d'adressage, etc.
Ainsi, les programmes en C sont très compacts.

De plus, une des caractéristiques du C est qu'il est un langage « faiblement typé » : les types de données qu'il manipule sont très restreints, et proches de la représentation interne par le processeur : par exemple, le type 'Chaîne de caractères' n'existe pas en C. A l'inverse, comparer un entier et un caractère a un sens en C car un caractère est bien représenté en interne par le processeur par une valeur de type entier (le code ASCII ou le code EBCDIC).

Enfin et pour conclure, il est inexact que le C est un langage difficile à apprendre ! Au contraire : le C dispose de peu d'instructions, les structures de données sont limitées, etc.
Le C est un langage concis et son apprentissage est beaucoup moins ardu que ne peut l'être celui du Pascal par exemple.

L'apprentissage du C est ainsi nécessaire pour quiconque s'intéresse à la programmation, et cet apprentissage en vaut la peine !

en fine je vous remerci pour votre attention
ELBADRI.Zakaria
ELBADRI.Zakaria
Administrateur
Administrateur

Messages : 141
Points : 5920
Réputation : -1
Date d'inscription : 01/05/2009
Age : 34

Revenir en haut Aller en bas

Introduction au langage C Empty Re: Introduction au langage C

Message par owenho Mar 2 Juin - 18:29

merci mi amigo pour ces informations .
owenho
owenho
Modérateur
Modérateur

Messages : 115
Points : 5744
Réputation : 4
Date d'inscription : 02/05/2009
Age : 34
Localisation : larache/rabat

Revenir en haut Aller en bas

Introduction au langage C Empty Re: Introduction au langage C

Message par digital_brain Dim 19 Juil - 17:04

je prends l initiative et je complete le sujet de mr ELBADRI.Zakaria

Une affaire de mémoire
Ce que je vais vous apprendre dans ce chapitre a donc un rapport direct avec la mémoire de votre ordinateur.

Tout être humain normalement constitué a une mémoire. Eh bien c'est pareil pour un ordinateur... à un détail près : un ordinateur a plusieurs types de mémoire !

Pourquoi un ordinateur aurait-il plusieurs types de mémoire ? Une seule mémoire aurait suffit, non ?


Non, en fait le problème c'est qu'on a besoin d'avoir une mémoire à la fois rapide (pour récupérer une information très vite) et importante (pour stocker beaucoup de choses). Or, vous allez rire, mais jusqu'ici nous avons été infichus de créer une mémoire qui soit à la fois très rapide et importante. Plus exactement, la mémoire rapide coûte cher, donc on n'en fait qu'en petites quantités.
Du coup, pour nous arranger, nous avons dû doter les ordinateurs de mémoires très rapides mais pas importantes, et de mémoires importantes mais pas très rapides (vous suivez toujours ? ^^ )

Les différents types de mémoire


Pour vous donner une idée, voici les différents types de mémoire existant dans un ordinateur, de la plus rapide à la plus lente :

1. Les registres : une mémoire ultrarapide située directement dans le processeur.
2. La mémoire cache : elle fait le lien entre les registres et la mémoire vive.
3. La mémoire vive : c'est la mémoire avec laquelle nous allons travailler le plus souvent.
4. Le disque dur : que vous connaissez sûrement, c'est là qu'on enregistre les fichiers.



Comme je vous l'ai dit, j'ai classé les mémoires de la plus rapide (les registres) à la plus lente (le disque dur). Si vous avez bien suivi, vous avez compris aussi que la mémoire la plus rapide était la plus petite, et la plus lente la plus grosse.
Les registres sont donc à peine capables de retenir quelques nombres, tandis que le disque dur peut stocker de très gros fichiers.

Quand je dis qu'une mémoire est "lente", c'est à l'échelle de votre ordinateur bien sûr. Eh oui, pour un ordinateur 8 millisecondes pour accéder au disque dur c'est déjà trop long !


Que faut-il retenir dans tout ça ?
En fait, c'est pour vous situer un peu. Vous savez désormais qu'en programmation, on va surtout travailler avec la mémoire vive. On verra aussi comment lire et écrire sur le disque dur, pour lire et créer des fichiers (mais on ne le fera que plus tard). Quant à la mémoire cache et aux registres, on n'y touchera pas du tout ! C'est votre ordinateur qui s'en occupe.
Dans des langages très bas niveau, comme l'assembleur (abrégé "ASM"), on travaille au contraire plutôt directement avec les registres. Je l'ai fait, et je peux vous dire que faire une simple multiplication dans ce langage est un véritable parcours du combattant ! Heureusement, en langage C (et dans la plupart des autres langages de programmation), c'est beaucoup plus facile.


Il faut ajouter une dernière chose très importante : seul le disque dur retient tout le temps les informations qu'il contient. Toutes les autres mémoires (registres, mémoire cache, mémoire vive) sont des mémoires temporaires : lorsque vous éteignez votre ordinateur ces mémoires se vident !

Heureusement, lorsque vous rallumerez l'ordinateur, votre disque dur sera toujours là pour rappeler à votre ordinateur qui il est ^^

La mémoire vive en photos


Vu qu'on va travailler pendant un moment avec la mémoire vive, je pense qu'il serait bien de vous la présenter Wink

On va y aller par zooms successifs. Ca, c'est votre ordinateur :

Image utilisateur


Vous reconnaissez le clavier, la souris, l'écran et l'unité centrale (la tour).
Intéressons-nous maintenant à l'unité centrale, le cœur de votre ordinateur qui contient toutes les mémoires :

Image utilisateur


Ce qui nous intéresse, c'est ce qu'il y a à l'intérieur de l'unité centrale, si on l'ouvre :


C'est un joyeux petit bazar ^^
Rassurez-vous, je ne vous demanderai pas de savoir comment tout cela fonctionne. Je veux juste que vous sachiez où se trouve la mémoire vive là-dedans. Je vous l'ai encadrée en rouge.
Je n'ai pas indiqué les autres mémoires (registres et mémoire cache) car de toute façon elles sont bien trop petites pour être visibles à l'oeil nu Wink

La mémoire vive est aussi appelée RAM, ne vous étonnez donc pas si par la suite j'utilise plutôt le mot RAM qui est un peu plus court.


Le schéma de la mémoire vive


En photographiant de plus près la mémoire vive, on n'y verrait pas grand-chose. Pourtant, il est très important de savoir comment ça fonctionne à l'intérieur. C'est d'ailleurs là que je veux en venir depuis tout à l'heure Very Happy

Je vais vous faire un schéma du fonctionnement de la mémoire vive. Il est ultra-simplifié (comme mes schémas de compilation :p ), mais c'est parce que nous n'avons pas besoin de trop de détails. Si vous retenez ce schéma déjà, ça sera très bien ^^


Comme vous le voyez, il faut en gros distinguer 2 colonnes :

* Il y a les adresses : une adresse est un nombre qui permet à l'ordinateur de se repérer dans la mémoire vive. On commence à l'adresse 0 (au tout début de la mémoire) et on finit à l'adresse 3 448 765 900 126 et des poussières... Euh, en fait je ne connais pas le nombre d'adresses qu'il y a dans la RAM, je sais juste qu'il y en a beaucoup.
En plus ça dépend de la quantité de mémoire vive que vous avez. Plus vous avez de mémoire vive, plus il y a d'adresses, donc plus on peut stocker de choses Wink
* A chaque adresse, on peut stocker une valeur (un nombre) : votre ordinateur stocke dans la mémoire vive ces nombres pour pouvoir s'en souvenir par la suite. On ne peut stocker qu'un nombre par adresse !



Notre RAM ne peut stocker que des nombres.

Mais alors, comment fait-on pour retenir des mots ?


Bonne question. En fait, même les lettres ne sont que des nombres pour l'ordinateur ! Une phrase est une simple succession de nombres !
Il existe un tableau qui fait la correspondance entre les nombres et les lettres. C'est un tableau qui dit par exemple : le nombre 67 correspond à la lettre Y. Je ne rentre pas dans les détails, on aura l'occasion de reparler de cela plus loin dans le cours.

Revenons à notre schéma. Les choses sont en fait très simples : si l'ordinateur veut retenir le nombre 5 (qui pourrait être le nombre de vies qu'il reste au joueur), il le met quelque part en mémoire où il y a de la place et note l'adresse correspondante (par exemple 3 062 199 902)
Plus tard, lorsqu'il veut savoir à nouveau quel est ce nombre, il va chercher à la "case" mémoire n°3 062 199 902 ce qu'il y a, et il trouve la valeur... 5 !

Voilà en gros comment ça fonctionne. C'est peut-être un peu flou pour le moment (quel intérêt de stocker un nombre s'il faut à la place retenir l'adresse ?) mais tout va rapidement prendre du sens dans la suite de ce chapitre je vous le promets Smile
Déclarer une variable
Croyez-moi, cette petite introduction sur la mémoire va nous être plus utile que vous ne le pensez.
Maintenant que vous savez ce qu'il faut, on peut retourner programmer Very Happy

Alors une variable, c'est quoi ?
Eh bien c'est une petite information temporaire qu'on stocke dans la RAM. Tout simplement.
On dit qu'elle est "variable" car c'est une valeur qui peut changer pendant le déroulement du programme. Par exemple, notre nombre 5 de tout à l'heure (le nombre de vies restant au joueur) risque de diminuer au fil du temps. Si ce nombre atteint 0, on saura que le joueur a perdu.

Nos programmes, vous allez le voir, sont remplis de variables. Vous allez en voir partout, à toutes les sauces ^^

En langage C, une variable est constituée de 2 choses :

* Elle a une valeur : c'est le nombre qu'elle stocke, par exemple 5.
* Elle a un nom : c'est ce qui permet de la reconnaître. En programmant en C, on n'aura pas à retenir l'adresse mémoire (ouf !), on va juste indiquer des noms de variables à la place. C'est le compilateur qui fera la conversion entre le nom et l'adresse. Voilà déjà un souci en moins.

digital_brain
Modérateur
Modérateur

Messages : 4
Points : 5473
Réputation : 0
Date d'inscription : 24/05/2009

Revenir en haut Aller en bas

Introduction au langage C Empty Re: Introduction au langage C

Message par digital_brain Dim 19 Juil - 17:05

Donner un nom à ses variables


En langage C, chaque variable
doit donc avoir un nom. Pour notre fameuse variable qui retient le
nombre de vies, on aimerait bien l'appeler "Nombre de vies" ou quelque
chose du genre.

Hélas, il y a quelques contraintes. Vous ne pouvez pas appeler une variable n'importe comment :

* Il ne peut y avoir que des lettres minuscules et majuscules et des chiffres (abcABC012...).
* Votre nom de variable doit commencer par une lettre.
* Les espaces sont interdits. A la place, on peut utiliser le caractère
"underscore" _ (qui ressemble à un trait de soulignement). C'est le
seul caractère différent des lettres et chiffres autorisé.
* Vous n'avez pas le droit d'utiliser des accents (éàê etc).



Enfin,
et c'est très important à savoir, le langage C (comme le C++) fait la
différence entre les majuscules et les minuscules. Pour votre culture,
sachez qu'on dit que c'est un langage qui "respecte la casse".
Donc,
du coup, les variables largeur, LARGEUR ou encore LArgEuR sont 3
variables différentes en langage C, même si pour nous ça a l'air de
signifier la même chose !

Voici quelques exemples de noms de
variable corrects : nombreDeVies, nombre_de_vies, prenom, nom,
numero_de_telephone, numeroDeTelephone.

Chaque programmeur a sa propre façon de nommer des variables. Pendant ce cours, je vais vous montrer ma manière de faire :

* Je commence tous mes noms de variables par une lettre minuscule.
* S'il y a plusieurs mots dans mon nom de variable, je mets une lettre majuscule au début de chaque nouveau mot.



Je vais vous demander de faire de la même manière que moi, ça nous permettra d'être sur la même longueur d'ondes ^^

Quoi
que vous fassiez, faites en sorte de donner des noms clairs à vos
variables. On aurait pu abréger nombreDeVies, en l'écrivant par exemple
ndv. C'est peut-être plus court, mais c'est beaucoup moins clair pour
vous quand vous relisez votre code. N'ayez donc pas peur de donner des
noms un peu plus longs pour que ça reste compréhensible.


Les types de variables


Notre
ordinateur, vous pourrez le constater, n'est en fait rien d'autre
qu'une (très grosse) machine à calculer. Il ne sait traiter que des
nombres.

Oui mais voilà, j'ai un scoop ! Il existe plusieurs types de nombres !

Par exemple, il y a les nombres entiers positifs :

* 45
* 398
* 7650



Mais il y a aussi des nombres décimaux, c'est-à-dire des nombres à virgule :

* 75,909
* 1,7741
* 9810,7



En plus de ça, il y a aussi des nombres entiers négatifs :

* -87
* -916



... Et des nombres négatifs décimaux !

* -76,9
* -100,11



Votre
pauvre ordinateur a besoin d'aide ! Lorsque vous lui demandez de
stocker un nombre, vous devez dire de quel type il est. Ce n'est pas
vraiment qu'il ne soit pas capable de le reconnaître tout seul, mais...
Ca l'aide beaucoup à s'organiser, et à faire en sorte de ne pas prendre
trop de mémoire pour rien.

Lorsque vous créez une variable, vous allez donc devoir indiquer son type.
Voici les principaux types de variables existant en langage C (il y en aura un autre qui fera son apparition en C++) :

Nom du type Nombres stockables
char -128 à 127
int -2 147 483 648 à 2 147 483 647
long -2 147 483 648 à 2 147 483 647
float -3.4 x 10 puissance 38 à 3.4 x 10 puissance 38
double -1.7 x 10 puissance 308 à 1.7 x 10 puissance 308


(Je suis loin d'avoir mis tous les types, mais j'ai conservé les principaux Wink )

Les 3 premiers types (char, int, long) permettent de stocker des nombres entiers : 1, 2, 3, 4...
Les 2 derniers (float, double) permettent de stocker des nombres décimaux : 13.8, 16.911...

Les types float et double permettent de stocker des nombres décimaux extrêmement grands.
Si
vous ne connaissez pas les puissances de 10, dites-vous par exemple que
le type double permet de stocker le nombre 1 suivi de 308 zéros
derrière !
C'est-à-dire : 10000000000000000000000000000000000000000000000000000..... (je ne vais quand même pas écrire 308 zéros pour vous Laughing )


Vous
remarquerez qu'int et un long ont l'air identiques. Avant ce n'était
pas le cas (un int était plus petit qu'un long), mais aujourd'hui les
mémoires ont évolué et on a assez de place pour stocker des grands
nombres, donc on se moque un peu de la différence entre un int et un
long. Le langage C "conserve" tous ces types pour des raisons de
compatibilité, même si certains sont un peu de trop.
En pratique, j'utilise principalement char, int et double.


Vous verrez que la plupart du temps on manipule des nombres entiers (tant mieux, parce que c'est plus facile à utiliser ^^ )

Attention
avec les nombres décimaux ! Votre ordinateur ne connaît pas la virgule,
il utilise le point. Vous ne devez donc pas écrire 54,9 mais plutôt
54.9 !


Ce n'est pas tout ! Pour les types stockant des
entiers (char, int, long...), il existe d'autres types dits "unsigned"
(non signés) qui eux ne peuvent stocker que des nombres positifs. Pour
les utiliser, il suffit d'écrire le mot "unsigned" devant le type :

unsigned char 0 à 255
unsigned int 0 à 4 294 967 295
unsigned long 0 à 4 294 967 295


Comme
vous le voyez, les unsigned sont des types qui ont le défaut de ne pas
pouvoir stocker de nombre négatifs, mais qui ont l'avantage de pouvoir
stocker des nombres 2 fois plus grands (char s'arrête à 128, tandis que
unsigned char s'arrête à 255 par exemple).

Pourquoi avoir créé 3 types pour les nombres entiers ? Un seul type aurait été suffisant non ?


Oui,
mais on a créé plusieurs types à l'origine pour économiser de la
mémoire. Ainsi, quand on dit à l'ordinateur qu'on a besoin d'une
variable de type "char", on prend moins d'espace en mémoire que si on
avait demandé une variable de type "int".

Toutefois, c'était
utile surtout à l'époque où la mémoire était limitée. Aujourd'hui, nos
ordinateurs ont largement assez de mémoire vive pour que ça ne soit
plus vraiment un problème. Il ne sera donc pas utile de se prendre la
tête pendant des heures sur le choix d'un type. Si vous ne savez pas si
votre variable risque de prendre une grosse valeur, mettez int.
Et je dis ça sérieusement. Ne vous prenez pas trop la tête sur le choix d'un type pour le moment Wink

En résumé, on fera surtout la distinction entre nombres entiers et décimaux :

* Pour un nombre entier, on utilisera le plus souvent int.
* Pour un nombre décimal, on utilisera généralement double.

digital_brain
Modérateur
Modérateur

Messages : 4
Points : 5473
Réputation : 0
Date d'inscription : 24/05/2009

Revenir en haut Aller en bas

Introduction au langage C Empty Re: Introduction au langage C

Message par digital_brain Dim 19 Juil - 17:06

Déclarer une variable


On y arrive. Maintenant, créez un nouveau projet console que vous appellerez "variables".
On va voir comment déclarer une variable, c'est-à-dire demander à l'ordinateur la permission d'utiliser un peu de mémoire.

Une déclaration de variable, c'est très simple maintenant que vous savez tout ce qu'il faut Smile
Il suffit d'indiquer dans l'ordre :

1. Le type de la variable que l'on veut créer
2. Tapez espace
3. Indiquez le nom que vous voulez donner à la variable
4. Et enfin n'oubliez pas le point-virgule Wink



Par exemple, si je veux créer ma variable nombreDeVies de type int, je dois taper la ligne suivante :

Code : C

1



int nombreDeVies;



Et c'est tout ! Very Happy

Quelques autres exemples stupides pour la forme :

Code : C

1
2
3



int noteDeMaths;
double sommeArgentRecue;
unsigned int nombreDeZerosEnTrainDeLireUnNomDeVariableUnPeuLong;



Bon bref, vous avez compris le principe je pense Very Happy

Ce qu'on fait là s'appelle une déclaration de variable (un vocabulaire à retenir là ^^ )
Vous
devez faire les déclarations de variables au début des fonctions. Comme
pour le moment on n'a qu'une seule fonction (la fonction main), vous
allez déclarer la variable comme ceci :

Code : C

1
2
3
4
5
6
7
8
9
10
11



#include
#include

int main(int argc, char *argv[]) // Equivalent de int main()
{
// Début de la fonction
int nombreDeVies;

return 0;
// Fin de la fonction
}



Si vous lancez le programme ci-dessus, vous constaterez avec stupeur... qu'il ne fait rien o_O

Quelques explications


Alors,
avant que vous ne m'étrangliez en croyant que je vous mène en bateau
depuis tout à l'heure, laissez-moi juste dire une chose pour ma défense
:p

En fait, il se passe des choses, mais vous ne les voyez pas.
Lorsque le programme arrive à la ligne de la déclaration de variable,
il demande bien gentiment à l'ordinateur s'il peut utiliser un peu
d'espace dans la mémoire vive.
Si tout va bien, l'ordinateur répond "Oui bien sûr, fais comme chez toi". Généralement, cela se passe sans problème.

Le
seul problème qu'il pourrait y avoir, c'est qu'il n'y ait plus de place
en mémoire... Mais cela arrive rarement heureusement, car pour remplir
toute la mémoire rien qu'avec des int il faut vraiment être un bourrin
de première ^^


Soyez sans craintes donc, vos variables devraient normalement être créées sans souci.

Une
petite astuce à connaître : si vous avez plusieurs variables du même
type à déclarer, inutile de faire une ligne pour chaque variable. Il
vous suffit de séparer les différents noms de variable par des virgules
sur la même ligne :
Code : C

1



int nombreDeVies, niveau, ageDuJoueur;


Cela créera 3 variables int appelées nombreDeVies, niveau et ageDuJoueur.


Et maintenant ?
Maintenant qu'on a créé notre variable, on va pouvoir lui donner une valeur Smile


Affecter une valeur à une variable


C'est
tout ce qu'il y a de plus bête. Si vous voulez donner une valeur à la
variable nombreDeVies, il suffit de procéder comme ceci :

Code : C

1



nombreDeVies = 5;



Rien de plus à faire. Vous indiquez le nom de la variable, un signe égal, puis la valeur que vous voulez mettre dedans.
Ici, on vient de donner la valeur 5 à la variable nombreDeVies.
Notre programme complet ressemble donc à ceci :

Code : C

1
2
3
4
5
6
7
8
9
10



#include
#include

int main(int argc, char *argv[])
{
int nombreDeVies;
nombreDeVies = 5;

return 0;
}



Là encore, rien ne s'affiche à l'écran, tout se passe dans la mémoire.
Quelque
part dans les tréfonds de votre ordinateur, une petite case de mémoire
vient de prendre la valeur 5. C'est pas magnifique ça ? Smile
Pour un peu on en pleurerait ^^

On peut s'amuser si on veut à changer la valeur par la suite :

Code : C

1
2
3
4



int nombreDeVies;
nombreDeVies = 5;
nombreDeVies = 4;
nombreDeVies = 3;



Dans
cet exemple, la variable va prendre d'abord la valeur 5, puis 4, et
enfin 3. Comme votre ordinateur est très rapide, tout cela se passe
extrêmement vite. Vous n'avez pas le temps de cligner des yeux que
votre variable vient de prendre les valeurs 5, 4 et 3... et ça y est
votre programme est fini :p


La valeur d'une nouvelle variable


Voici une question très importante que je veux vous soumettre :

Quand on déclare une variable, quelle valeur a-t-elle au départ ?


En effet, quand l'ordinateur lit cette ligne :

Code : C

1



int nombreDeVies;



Il
réserve un petit emplacement en mémoire, d'accord. Mais quelle est la
valeur de la variable à ce moment-là ? Y a-t-il une valeur par défaut
(par exemple 0) ?

Eh bien, accrochez-vous : la réponse est non.
Non non et non, il n'y a pas de valeur par défaut. En fait,
l'emplacement est réservé mais la valeur ne change pas. On n'efface pas
ce qui se trouve dans la "case mémoire". Du coup, votre variable prend
la valeur qui se trouvait là avant dans la mémoire, et cette valeur
peut être n'importe quoi !

Si cette zone de la mémoire n'a
jamais été modifiée, la valeur est peut-être 0. Mais vous n'en êtes pas
sûrs, il pourrait très bien y avoir le nombre 363 ou 18 à la place,
c'est-à-dire un reste d'un vieux programme qui est passé par là avant !
Il
faut donc faire très attention à ça si on veut éviter des problèmes par
la suite. Le mieux est d'initialiser la variable dès qu'on la déclare.
En C, c'est tout à fait possible. En gros, ça consiste à combiner la
déclaration et l'affectation d'une variable dans la même instruction :

Code : C

1



int nombreDeVies = 5;



Ici, la variable nombreDeVies est déclarée et elle prend tout de suite la valeur 5.
L'avantage, c'est que vous êtes sûrs après que cette variable contient une valeur correcte, et pas du n'importe quoi Wink


Les constantes


Il
arrive parfois que l'on ait besoin d'utiliser une variable dont on
voudrait qu'elle garde la même valeur pendant toute la durée du
programme. C'est-à-dire qu'une fois déclarée, vous voudriez que votre
variable conserve sa valeur et que personne n'ait le droit de changer
ce qu'elle contient.

Ces variables particulières sont appelées constantes, justement parce que leur valeur reste constante.

Pour
déclarer une constante, c'est en fait très simple : il faut utiliser le
mot "const" juste devant le type quand vous déclarez votre variable.
Par
ailleurs, il faut obligatoirement lui donner une valeur au moment de sa
déclaration comme on vient d'apprendre à le faire. Après, il sera trop
tard : vous ne pourrez plus changer la valeur de la constante.

Exemple de déclaration de constante :

Code : C

1



const int NOMBRE_DE_VIES_INITIALES = 5;



Ce
n'est pas une obligation, mais par convention on écrit les noms des
constantes entièrement en majuscules comme je viens de le faire là.
Cela nous permet ainsi de distinguer facilement les constantes des
variables. Notez qu'on utilise l'underscore _ à la place de l'espace.


A part ça, une constante s'utilise comme une variable normale, vous pouvez afficher sa valeur si vous le désirez.
La
seule chose qui change, c'est que si vous essayez de modifier la valeur
de la constante plus loin dans le programme, le compilateur vous
indiquera qu'il y a une erreur avec cette constante.

Les erreurs de compilation sont affichées en bas de l'écran, dans ce que j'appelle la "zone de la mort", vous vous souvenez ? ^^
Dans
un tel cas, le compilateur vous afficherait un mot doux du genre :
[Warning] assignment of read-only variable ' NOMBRE_DE_VIES_INITIALES'
(traduction : "mais t'es vraiment idiot, pourquoi t'essaies de modifier
la valeur d'une constante ? o_O " )
Afficher le contenu d'une variable
On sait afficher du texte à l'écran avec la fonction printf.
Maintenant, on va voir comment afficher la valeur d'une variable avec cette même fonction.

On
utilise en fait printf de la même manière, sauf que l'on rajoute un
symbole spécial à l'endroit où on veut afficher la valeur de la
variable.
Par exemple :

Code : C

1



printf("Il vous reste %d vies");



Ce
"symbole spécial" dont je viens de vous parler est en fait un % suivi
de la lettre "d". Cette lettre permet d'indiquer ce que l'on doit
afficher. "d" signifie que c'est un nombre entier.
Il existe plusieurs autres possibilités, mais pour des raisons de simplicité on va se contenter de retenir ces deux-là :

Symbole Signification
%d Nombre entier (ex. : 4)
%f Nombre décimal (ex. : 5.18)


Je
vous parlerai des autres symboles en temps voulu. Pour le moment,
sachez que si vous voulez afficher un int vous devez utiliser %d, et
pour un double vous utiliserez %f.

On a presque fini. On a
indiqué qu'à un endroit précis on voulait afficher un nombre entier,
mais on n'a pas précisé lequel ! Il faut donc indiquer à la fonction
printf quelle est la variable dont on veut afficher la valeur.
Pour ce faire, vous devez taper le nom de la variable après les guillemets et après avoir rajouté une virgule, comme ceci :

Code : C

1



printf("Il vous reste %d vies", nombreDeVies);



Le %d sera remplacé par la variable indiquée après la virgule, à savoir nombreDeVies.
On se teste ça un petit coup dans un programme ? Smile

Code : C

1
2
3
4
5
6
7
8
9
10
11
12
13
14



#include
#include

int main(int argc, char *argv[])
{
int nombreDeVies = 5; // Au départ, le joueur a 5 vies

printf("Vous avez %d vies\\n", nombreDeVies);
printf("**** B A M ****\\n"); // Là il se prend un grand coup sur la tête
nombreDeVies = 4; // Il vient de perdre une vie !
printf("Ah desole, il ne vous reste plus que %d vies maintenant !\\n\\n", nombreDeVies);

return 0;
}



Ca pourrait presque être un jeu vidéo (il faut juste beaucoup d'imagination ^^ ).
Ce programme affiche ceci à l'écran :

Code : Console



Vous avez 5 vies

**** B A M ****

Ah desole, il ne vous reste plus que 4 vies maintenant !



Vous devriez reconnaître ce qui se passe dans votre programme :

1. Au départ le joueur a 5 vies, on affiche ça dans un printf
2. Ensuite le joueur prend un coup sur la tête (d'où le BAM)
3. Finalement il n'a plus que 4 vies, on affiche ça aussi avec un printf



Bref, c'est plutôt simple ^^


Afficher plusieurs variables dans un même printf


Il
est possible d'afficher la valeur de plusieurs variables dans un seul
printf. Il vous suffit pour cela d'indiquer des %d ou des %f là où vous
voulez, puis d'indiquer les variables correspondantes dans le même
ordre, séparées par des virgules.

Par exemple :

Code : C

1



printf("Vous avez %d vies et vous etes au niveau n°%d", nombreDeVies, niveau);



Veillez
à bien indiquer vos variables dans le bon ordre. Le premier %d sera
remplacé par la première variable (nombreDeVies), et le second %d par
la seconde variable (niveau). Si vous vous trompez d'ordre, votre
phrase ne voudra plus rien dire Wink


Allez
un petit test maintenant. Notez que j'enlève les lignes tout en haut
(les directives de préprocesseur commençant par un #), je vais supposer
que vous les mettez à chaque fois maintenant :

Code : C

1
2
3
4
5
6
7
8



int main(int argc, char *argv[])
{
int nombreDeVies = 5, niveau = 1;

printf("Vous avez %d vies et vous etes au niveau n°%d\\n", nombreDeVies, niveau);

return 0;
}



Ce qui affichera :

Code : Console



Vous avez 5 vies et vous etes au niveau n°1

Récupérer une saisie
Les
variables vont en fait commencer à devenir intéressantes maintenant. On
va apprendre à demander à l'utilisateur de taper un nombre dans la
console. Ce nombre, on va le récupérer et le stocker dans une variable.
Une fois que ça sera fait, on pourra faire tout un tas de choses avec, vous verrez Wink

Pour demander à l'utilisateur de rentrer quelque chose dans la console, on va utiliser une autre fonction toute prête : scanf
Cette
fonction ressemble beaucoup à printf. Vous devez mettre un %d pour
indiquer que l'utilisateur doit rentrer un nombre entier (pour les
décimaux je vais y revenir). Puis vous devez indiquer après le nom de
la variable qui va recevoir le nombre.

Voici comment faire par exemple :

Code : C

1
2



int age = 0;
scanf("%d", &age);



On doit mettre le %d entre guillemets.
Par ailleurs, il faut mettre le symbole & devant le nom de la variable qui va recevoir la valeur.

Euh, pourquoi mettre un & devant le nom de la variable o_O ?


Là,
il va falloir que vous me fassiez confiance. Si je dois vous expliquer
ça tout de suite, on n'est pas sortis de l'auberge croyez-moi ^^
Que
je vous rassure quand même : je vous expliquerai un peu plus tard ce
que signifie ce symbole. Pour le moment, je choisis de ne pas vous
l'expliquer pour ne pas vous embrouiller, c'est donc plutôt un service
que je vous rends là Very Happy


Attention
: si vous voulez faire rentrer un nombre décimal (de type double),
cette fois il ne faut pas utiliser %f comme on pourrait s'y attendre
mais... %lf. C'est une petite différence avec le printf qui lui prenait
%f.
Code : C

1
2



double poids = 0;
scanf("%lf", &poids);



Revenons
à notre programme. Lorsque celui-ci arrive à un scanf, il se met en
pause et attend que l'utilisateur rentre un nombre. Ce nombre sera
stocké dans la variable "age".

Voici un petit programme simple qui demande l'âge de l'utilisateur et qui le lui affiche ensuite :

Code : C

1
2
3
4
5
6
7
8
9
10



int main(int argc, char *argv[])
{
int age = 0; // On initialise la variable à 0

printf("Quel age avez-vous ? ");
scanf("%d", &age); // On demande d'entrer l'age avec scanf
printf("Ah ! Vous avez donc %d ans !\\n\\n", age);

return 0;
}



Code : Console



Quel age avez-vous ? 20

Ah ! Vous avez donc 20 ans !



Le
programme se met donc en pause après avoir affiché la question "Quel
age avez-vous ?". Le curseur apparaît à l'écran, vous devez taper un
nombre entier (votre âge). Tapez ensuite sur Entrée pour valider, et le
programme continuera à s'exécuter.
Ici, tout ce qu'il fait après c'est afficher la valeur de la variable "age" à l'écran ("Ah ! Vous avez donc 20 ans !").

Voilà, vous avez compris le principe Smile
Grâce
à la fonction scanf, on peut donc commencer à interagir avec
l'utilisateur, histoire de lui demander 2-3 informations privées :-°

Notez que rien ne vous empêche de taper autre chose qu'un nombre entier :


* Si vous rentrez un nombre décimal, comme 2.9, il sera automatiquement
tronqué, c'est-à-dire que seule la partie entière sera conservée. Dans
ce cas, c'est le nombre 2 qui aurait été stocké dans la variable.
*
Si vous tapez des lettres au hasard ("éèydf"), la variable ne changera
pas de valeur. Ce qui est bien ici, c'est qu'on avait initialisé notre
variable à 0 au début. Du coup, le programme affichera "0 ans" si ça
n'a pas marché. Si on n'avait pas initialisé la variable, le programme
aurait pu afficher n'importe quoi !

EXTRAIT DE www.siteduzero.com

digital_brain
Modérateur
Modérateur

Messages : 4
Points : 5473
Réputation : 0
Date d'inscription : 24/05/2009

Revenir en haut Aller en bas

Introduction au langage C Empty Re: Introduction au langage C

Message par ELBADRI.Zakaria Dim 9 Aoû - 9:50

salut frére digital_brain
Bon premièrement je veux te remercie pour les améliorations que tu as ajouté au sujet.
Mais il vaut mieux poster chaque sujet comme nouveau, comme ca tout devient facile a lire ainsi que le forum va contenir beaucoup de sujet à la place d'un seul qui contiens beaucoup de réponses
ELBADRI.Zakaria
ELBADRI.Zakaria
Administrateur
Administrateur

Messages : 141
Points : 5920
Réputation : -1
Date d'inscription : 01/05/2009
Age : 34

Revenir en haut Aller en bas

Introduction au langage C Empty Re: Introduction au langage C

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum