Programmer en c site du zero pdf
Advertisement Advertisement. Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
The purpose of the cookie is to collect statistical information in an anonymous form about the visitors of the website. The data collected include number of visits, average time spent on the website, and the what pages have been loaded.
These data are then used to segment audiences based on the geographical location, demographic, and user interest provide relevant content and for advertisers for targeted advertising. The cookie is used to collect visitor behaviour from mutiple websites for serving them with relevant ads based on their preference.
This coookie is used to collect data on visitor preference and behaviour on website inorder to serve them with relevant content and advertisement. This cookie is used for targeting and advertising.
B This Cookie is used by Yahoo to provide ads, contents or analytics. The main purpose is targeting and advertising. This cookie is used to serve the user with relevant advertisement based on real time bidding. It allows the website to show relevant advertisement to visitors. The cookie is used to collect information about the usage behavior for targeted advertising. This cookie is used to show relevant ads based on the user movement and various advertiser bids for displaying user ads.
This cookie assigns a unique ID to each visiting user that allows third-party advertisers target that users with relevant ads. EE 4 months This cookie is set by exelator. The cookies is used to store information about users' visit to the website. The data includes the number of visits, average time spent on the website, and the pages that have been loaded.
This information is used to provide the users customized and targeted ads. EQUser 3 months This cookie is set by the provider Eqads. This cookie is used for registering unique ID for identifying the returning user's device. The ID is used for targeting Ads to the user.
The purpose of the cookie is to map clicks to other events on the client's website. It is used to create a profile of the user's interest and to show relevant ads on their site. This Cookie is set by DoubleClick which is owned by Google. IDE 1 year 24 days Used by Google DoubleClick and stores information about how the user uses the website and any other advertisement before visiting the website. This is used to present users with ads that are relevant to them according to the user profile.
The cookie is used for recognizing the browser or device when users return to their site or one of their partner's site. It Enable to help the website's advertising partners make decisions about displaying an advertisement to users. The website stores the ID that each partner uses to identify users and pass that information to the partner when a website requests an advertisement from us.
This cookie registers a unique ID used to identify a visitor on their revisit inorder to serve them targeted ads. This cookie is used for serving the user with relevant content and advertisement. The cookie stores an ID that is used to display ads on the users' browser. The main purpose of this cookie is advertising.
This cookie is used to identify an user by an alphanumeric ID. It register the user data like IP, location, visited website, ads clicked etc with this it optimize the ads display based on user behaviour. This cookie is a session cookie version of the 'rud' cookie. It contain the user ID information. It is used to deliver targeted advertising across the networks. This cookie is used for promoting events and products by the webiste owners on CRM-campaign-platform.
The cookie assigns a unique user ID to users and use this ID for serving relevant advertisement and content. This cookie is used for data synchronization with advertising networks. The purpose of the cookie is to track users across devices to enable targeted advertising.
TDID 1 year The cookie is set by CloudFare service to store a unique ID to identify a returning users device which then is used for targeted advertising. The purpose of the cookie is to determine if the user's browser supports cookies. The cookies stores a unique ID for the purpose of the determining what adverts the users have seen if you have visited any of the advertisers website.
The information is used for determining when and how often users will see a certain banner. It is used to keep track of the users on multiple website inorder to show relevant advertisement based on the user behaviour. Others Others. Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet. The exact purpose of the cookie is not known. UID 1 year No description. The cookie is used by cdn services like CloudFare to identify individual clients behind a shared IP address and apply security settings on a per-client basis.
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Advertisement".
This cookie is used by the website to store the user's session ID. This cookie is provided by the PayPal. The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. Helps users identify the users and lets the users use twitter related features from the webpage they are visiting.
This cookie is set by pubmatic. This cookie is set by the provider Eventbrite. This cookie is set by the provider TripAdvisor. This cookies is installed by Google Universal Analytics to throttle the request rate to limit the colllection of data on high traffic sites. This cookie tracks anonymous information on how visitors use the website. This cookie is set by the provider Dailymotion. This cookie is set by Dmxleo. This cookie is used for load balancing and session stickiness.
This cookie is very common and is used for session state management. This cookies is set by Youtube and is used to track the views of embedded videos. This cookie is set by Google and stored under the name dounleclick. This cookie is installed by Google Analytics. This cookie is used to store information of how a user behaves on multiple websites. This cookie register a unique ID which identifies the user browser from visiting the webistes. This cookie is set under the domain demdex.
The domain of this cookie is owned by Rocketfuel. This cookie is set by the provider Yahoo. The cookie is set by crwdcntrl. This cookie is set by Admixer.
Ces fichiers s'appellent stdio. Pour le moment, notre programme ne contient donc qu'une seule fonction. Oui : notre fonction s'appelle donc main. C'est un nom de fonction particulier qui signifie « principal ». Toute la fonction main se trouve donc entre ces accolades. Si vous avez bien suivi, notre fonction main contient deux lignes :. Certes, on n'a pas vraiment tout vu en profondeur, et vous devez avoir quelques questions en suspens.
Vous suivez toujours? Si tel n'est pas le cas, rien ne presse. Tester devrait aller vite. Si vous ne l'avez pas encore fait, on vous demandera d'enregistrer les fichiers. Le programme affiche « Hello world! Oui je sais, ce n'est pas transcendant. C'est un premier programme, un instant dont vous vous souviendrez toute votre vie! Le message « Bonjour » doit s'afficher dans la console.
Ce sera en fait assez simple. Moi je ne vois que la fonction main! C'est une fonction qui en appelle une autre ici, main appelle printf. C'est bien, mais ce n'est pas suffisant. Voici le code source que vous devriez avoir sous les yeux :. C'est en « bidouillant » les programmes que je vous donne que vous allez en apprendre le plus. Ne vous contentez pas de ce que vous lisez, essayez un peu vos propres modifications des programmes que nous voyons ensemble!
Par contre la console de Linux, oui. C'est une solution un peu radicale et il me faudrait un cours entier pour vous expliquer comment vous servir de Linux. Ne pas utiliser d'accents. C'est malheureusement la solution que vous risquez de choisir. Je vous recommande donc de ne pas utiliser d'accents temporairement, pendant votre apprentissage dans la console. Cela permet :. Si vous faites une pause ne serait-ce que quelques jours, vous aurez besoin de vous aider de vos propres commentaires pour vous retrouver dans un gros code ;.
Votre commentaire est court : il tient sur une seule ligne, il ne fait que quelques mots. Par exemple :. Exemple :.
Normalement, on ne commente pas chaque ligne du programme. En fait, je souhaite vous situer un peu. C'est votre ordinateur qui s'en occupe. On va y aller par zooms successifs. Ouvrons-la fig. C'est un joyeux petit bazar.
Rassurez-vous, je ne vous demanderai pas de savoir comment tout cela fonctionne. Comme vous le voyez, il faut en gros distinguer deux colonnes. On ne peut stocker qu'un nombre par adresse! Bonne question. Une phrase est une simple succession de nombres. Il existe un tableau qui fait la correspondance entre les nombres et les lettres. Maintenant que vous savez ce qu'il faut, on peut retourner programmer.
Alors une variable, c'est quoi? Eh bien c'est une petite information temporaire qu'on stocke dans la RAM. Tout simplement. Si ce nombre atteint 0, on saura que le joueur a perdu. Nos programmes, vous allez le voir, sont remplis de variables. C'est le compilateur qui fera la conversion entre le nom et l'adresse. 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.
Vous ne pouvez pas appeler une variable n'importe comment :. Pour votre culture, sachez qu'on dit que c'est un langage qui « respecte la casse ». Il ne sait traiter que des nombres. Il existe plusieurs types de nombres! Par exemple, il y a les nombres entiers positifs :. Votre pauvre ordinateur a besoin d'aide! Lorsque vous lui demandez de stocker un nombre, vous devez dire de quel type il est.
Voici les principaux types de variables existant en langage C :. Ce n'est pas tout! Si vous ne savez pas si votre variable risque de prendre une grosse valeur, mettez int ou double pour un flottant. On y arrive. Il suffit dans l'ordre :. Et c'est tout! Quelques autres exemples stupides pour la forme :.
Si vous lancez le programme ci-dessus, vous constaterez avec stupeur… qu'il ne fait rien. En fait, il se passe des choses, mais vous ne les voyez pas. Et maintenant?
N'est-ce pas magnifique? Dans cet exemple, la variable va prendre d'abord la valeur 5, puis 4, et enfin 3. 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.
Cette lettre permet d'indiquer ce que l'on doit afficher. Je vous parlerai des autres symboles en temps voulu. Pour le moment, retenez uniquement ceux-ci ;. On a presque fini. Il est possible d'afficher la valeur de plusieurs variables dans un seul printf. Allez, un petit test maintenant.
Vous devez mettre un format pour indiquer ce que l'utilisateur doit entrer un int , un float , Puis vous devez ensuite indiquer le nom de la variable qui va recevoir le nombre. Vous avez donc 20 ans! Voyons donc l'addition pour commencer. Si vous voulez voir la valeur de la variable, rajoutez un printf comme vous savez maintenant si bien le faire :.
Les divisions fonctionnent normalement sur un ordinateur quand il n'y a pas de reste. Et pourtant! Regardez ce que fait ce code :. Il y a anguille sous roche.
C'est parce que resultat est un int! Eh non, ce n'est pas la raison! Il faut que vous reteniez que pour un ordinateur :. Voici quelques exemples de modulos :.
Finis les cours de maths! Si, si, je vous assure! Ces deux nombres, vous les stockez dans des variables. Et pour cause! Pourquoi utiliser des raccourcis? Que se passe-t-il ici? Du coup, si notre variable nombre valait 4, elle vaut maintenant 5.
Si elle valait 8, elle vaut maintenant 9, etc. Ainsi, si vous voulez multiplier par deux une variable :. Voici un petit programme d'exemple :. Tenez par exemple, on ne peut pas faire de puissances en C! La valeur absolue d'un nombre est sa valeur positive :. C'est une sorte d'arrondi. Par exemple, si on lui donne Si vous lui donnez Cette fonction permet de calculer la puissance d'un nombre. Il suffit d'indiquer une puissance de 2. Elle renvoie un double. Ces fonctions attendent une valeur en radians.
Cette fonction calcule l'exponentielle d'un nombre. Elle renvoie un double oui, oui, elle aussi. Cette fonction calcule le logarithme base 10 d'un nombre. Il est possible d' effectuer des calculs entre des variables. C'est d'ailleurs ce qu'un ordinateur sait faire de mieux : il le fait bien et vite. Nous avons vu dans le premier chapitre qu'il existait de nombreux langages de programmation. En parlant de principes de base : nous sommes en plein dedans.
Les conditions permettent de tester des variables. Attaquons maintenant sans plus tarder. En anglais, le mot « si » se traduit par if. C'est celui qu'on utilise en langage C pour introduire une condition. Voici donc un code complet que vous pouvez tester :. Essayez de changer la valeur initiale de la variable pour voir. Utilisez ce code de base pour tester les prochains exemples du chapitre. Petit exemple :. On a vu comment faire un « si » et un « sinon ».
Le « sinon si » se place entre le if et le else. Notez qu'on peut mettre autant de else if que l'on veut. Pour faire cela, il va falloir utiliser de nouveaux symboles :. Pour faire un OU, on utilise les deux signes.
Je dois avouer que ce signe n'est pas facilement accessible sur nos claviers. En informatique, le point d'exclamation signifie « non ». Vous devez mettre ce signe avant votre condition pour dire « si cela n'est pas vrai » :. Cela pourrait se traduire par « si la personne n'est pas mineure ». Nous ce qu'on veut faire ici, c'est tester la valeur de la variable, non pas la changer! On n'a pas mis de condition dans le if , juste un nombre. Supposons que age vaille Quand le nombre est 1, comme on l'a vu, l'ordinateur dit que la condition est vraie, donc il affiche « C'est vrai »!
Cette fois, majeur vaudra 0. Ceci dit, pour simplifier les choses on va se contenter de n'utiliser que les nombres 0 et 1, pour dire si « quelque chose est faux ou vrai ». Comme majeur vaut 1, la condition est vraie, donc on affiche « Tu es majeur! On voit if majeur , ce qui peut se traduire par « si tu es majeur ». Bravo, vous avez tout compris! C'est vraiment utile et ce que je viens de vous expliquer vous permettra de comprendre bon nombre de choses par la suite.
La condition if Le if Toutefois, le if Prenons cet exemple :. Vous ouvrez ensuite des accolades que vous refermez tout en bas. Je crois que le moment est venu de pratiquer un peu! Voici par exemple ce que la console devra afficher :. On appelle cela des expressions ternaires. Voici comment faire cela avec un if Les ternaires permettent, sur une seule ligne, de changer la valeur d'une variable en fonction d'une condition.
Un autre exemple? Le point d'interrogation permet de dire « est-ce que tu es majeur? Si oui, alors on met la valeur 18 dans age. Sinon le deux-points : signifie else ici , on met la valeur Les ternaires ne sont pas du tout indispensables, personnellement je les utilise peu car ils peuvent rendre la lecture d'un code source un peu difficile.
Le switch est une alternative au if quand il s'agit d'analyser la valeur d'une variable. Qu'est-ce qu'une boucle? Relaxez-vous : ce chapitre sera simple. Nous allons voir trois types de boucles courantes en C :. Voici comment on construit une boucle while :. C'est aussi simple que cela. Voici maintenant le test que j'ai fait. Regardez attentivement ce bout de code et, surtout, essayez de le comprendre :. On affiche la phrase « Salut les Zeros! Ben oui, compteur vaut 1!
Donc on recommence les instructions de la boucle. Et ainsi de suite… compteur va valoir progressivement 0, 1, 2, 3, …, 8, 9, et Comme l'instruction est fausse, on sort de la boucle.
Voici un exemple de boucle infinie :. Il est donc parfois utile de faire des boucles de ce type, pour s'assurer que l'on rentre au moins une fois dans la boucle. Je n'ai pas de statistiques sous la main, mais sachez que vous utiliserez certainement autant de for que de while , si ce n'est plus, il vous faudra donc savoir manipuler ces deux types de boucles.
Tant que la condition est vraie, la boucle for continue. Sachez vous en servir, vous en aurez besoin plus d'une fois! Il existe plusieurs types de boucles : while , do… while et for. La boucle for est probablement celle qu'on utilise le plus dans la pratique.
Nous arrivons maintenant dans le premier TP. Le but est de vous montrer que vous savez faire des choses avec ce que je vous ai appris. C'est pour cela que j'ai choisi d'en faire le premier TP du cours. Avant toute chose, il faut que je vous explique en quoi va consister notre programme.
C'est un petit jeu que j'appelle « Plus ou moins ». Il vous demande de deviner le nombre. Vous entrez donc un nombre entre 1 et Mais comment tirer un nombre au hasard? Je ne sais pas le faire! L'avantage est qu'on peut jouer tout seul du coup.
Pour ce faire, on va utiliser la formule suivante je ne pouvais pas trop vous demander de la deviner! MAX et MIN sont des constantes, le premier est le nombre maximal et le second le nombre minimal 1.
Votre programme devra donc commencer par :. Bref, vous en savez assez. N'ouvrez pas le fichier main. On n'en a pas eu besoin de beaucoup. J'ai choisi de faire une boucle do On stocke le nombre qu'il propose dans nombreEntre.
Puis, on compare ce nombreEntre au nombreMystere. Il faut une condition pour la boucle. Ceux qui lisent les cours d'une traite sans jamais faire de tests font une grosse erreur, je l'ai dit et je le redirai! Faites un compteur de « coups ». Pourquoi ne pas demander s'il veut faire une autre partie? Attention, je veux qu'on ait le choix entre un mode 1 joueur et un mode 2 joueurs! Nous terminerons la partie I du cours « Les bases » par cette notion fondamentale que sont les fonctions en langage C.
Tous les programmes en C se basent sur le principe que je vais vous expliquer dans ce chapitre. Tous les gros programmes en C sont en fait des assemblages de petits bouts de code, et ces petits bouts de code sont justement ce qu'on appelle… des fonctions! Je vous rassure, c'est toujours vrai! Nous n'en sommes jamais sortis. Chaque « petit bout de programme » sera ce qu'on appelle une fonction. C'est ce qu'on appelle la sortie, ou encore le retour.
Vous reconnaissez la forme de la fonction main. Comme les variables, les fonctions ont un type. Ce sont des valeurs avec lesquelles la fonction va travailler. Cette fonction calcule le triple du nombre qu'on lui donne :.
Elle doit donc renvoyer une valeur de type int. La ligne qui donne pour consigne de « renvoyer une valeur » est celle qui contient le return. Cela signifie qu'elle n'est utilisable que dans cette fonction, et pas dans une autre comme la fonction main par exemple.
Non, on peut faire tout cela en une ligne en fait :. Par exemple, une fonction addition qui additionne deux nombres a et b :. En effet, comme vous le voyez ma fonction n'a pas non plus de return. Elle ne retourne rien. Une fonction qui ne retourne rien est de type void. Je vous expliquerai pourquoi par la suite. Notre programme commence par la fonction main comme vous le savez.
Pas de panique! Le programme commence par la fonction main. Il lit les instructions dans la fonction une par une dans l'ordre. Il lit l'instruction… Ah! On fait des calculs sur le nombre et on termine la fonction.
Un return! Note : ce n'est pas le cas de toutes les fonctions. Que fait l'ordinateur quand il tombe sur cette ligne? Il voit que la ligne commence par printf , il va donc appeler la fonction printf. C'est un peu une imbrication de fonctions. Je ne vous apprendrai rien de nouveau, mais ce sera l'occasion de voir des exemples pratiques. Lisez-la attentivement :. Elle renverra l'aire. Pourrait-on afficher directement la largeur, la hauteur et l'aire dans la fonction? La fonction renvoie le choix de l'utilisateur.
Dans le main , vous avez vu qu'on fait un switch menu. Les fonctions s'appellent entre elles. Essayez, vous verrez! Un prototype, c'est en fait une indication pour l'ordinateur. Comme vous le voyez, la fonction main n'a pas de prototype. Jusqu'ici, nous n'avions qu'un seul fichier source dans notre projet. Un projet, c'est l'ensemble des fichiers source de votre programme. Comme vous le voyez, il y a plusieurs fichiers. Vous reconnaissez dans la liste le fichier main.
Pour information, ce n'est pas du tout une obligation, chacun s'organise comme il veut. Ainsi, dans le fichier editeur. Ces fichiers contiennent les prototypes des fonctions. Pour chaque fichier. Mais comment faire pour que l'ordinateur sache que les prototypes sont dans un autre fichier que le. Il faut inclure le fichier. Comment inclure un fichier header? On inclut trois fichiers. Et dans le fichier jeu.
On trouve simplement les prototypes des fonctions du fichier jeu. La raison est en fait assez simple. Tout est une question d'ordre : si vous placez vos prototypes dans des. Comment puis-je ajouter des fichiers. Ce fichier n'est pas encore de type. On vous demandera alors quel nom vous voulez donner au fichier. Vous y voyez des. Ce sont des headers. Vous y retrouverez donc stdio. Si vous cherchez bien, vous verrez que ce fichier est rempli de prototypes de fonctions standard, comme printf par exemple.
Mais comment pourrais-je voir le code source de ces fonctions? Vous ne les avez pas! En fait, les fichiers. Il est donc totalement impossible de les lire. N'essayez pas de les lire : ce n'est absolument pas comestible pour un humain. Le compilateur compile chaque fichier. Ce sont des fichiers binaires temporaires.
En effet, si parmi les 10 fichiers. Il va assembler vos. Par exemple, la fonction printf se trouve dans un. On dit que c'est une variable locale. Sur cet exemple, ma fonction triple ne renvoie plus rien void. Il est possible de la rendre accessible uniquement dans le fichier dans lequel elle se trouve.
Comme la variable valait 1, elle vaudra maintenant 2, puis 3, puis 4, etc. Elle est accessible depuis n'importe quel autre fichier. Un programme contient de nombreux fichiers.
Le contenu des fichiers. Prenez un grand bol d'air avant car ce chapitre ne sera probablement pas une partie de plaisir. Nous allons faire en sorte que ce ne soit pas votre cas. Ce sera en quelque sorte le fil rouge du chapitre.
En effet, on ne peut renvoyer qu'une valeur par fonction :. On ne peut pas faire deux return. Celle-ci renverrait le nombre d'heures et minutes correspondantes :. C'est simplement une copie! Votre fonction decoupeMinutes fait son job. Petit flash-back. Vous souvenez-vous du chapitre sur les variables? On ne peut pas stocker deux nombres par adresse. Elle ne peut stocker ni lettres ni phrases.
On sait afficher la valeur de la variable, mais saviez-vous que l'on peut aussi afficher l'adresse correspondante? Eh bien en fait, je veux vous faire retenir ceci :. Mais… Les adresses sont des nombres aussi, non? C'est exact. C'est encore plus important de le faire avec les pointeurs!
Que se passe-t-il? Cependant, et c'est ce qui change, la valeur du pointeur est faite pour contenir une adresse. L'adresse… d'une autre variable. Pourquoi pas l'adresse de la variable age? En fait, on doit indiquer quel est le type de la variable dont le pointeur va contenir l'adresse. Vocabulaire : on dit que le pointeur pointeurSurAge pointe sur la variable age. On y est, nous venons de rentrer dans le monde merveilleux des pointeurs! Seulement maintenant, on a un pointeurSurAge qui contient l'adresse de la variable age.
On demande la valeur de pointeurSurAge , et sa valeur c'est l'adresse de la variable age Qu'est-ce qu'on y gagne? On n'avait pas besoin d'un pointeur pour afficher la valeur de la variable age! Si vous avez compris le principe, c'est l'essentiel. Voici ce qu'il faut avoir compris et ce qu'il faut retenir pour la suite de ce chapitre :. Contentez-vous de bien retenir ces quatre points. Tout cela est fon-da-men-tal. Je ne peux pas vous en vouloir si vous n'avez pas compris du premier coup et ce n'est pas une honte non plus, d'ailleurs.
Voici un premier exemple :. On lui affecte la valeur 5. Pour l'exemple, on fait un simple test : on multiplie la variable nombre par 3 ;. Dans le code source qu'on vient de voir, il n'y avait pas de pointeur dans la fonction main. Juste une variable nombre. La fonction travaille avec un pointeur sur la variable nombre et peut ainsi modifier directement le contenu de nombre.
Le chapitre est sur le point de s'achever, il est temps de retrouver notre fil rouge. Qu'est-ce que vous en dites? Rien ne devrait vous surprendre dans ce code source. C'est un chapitre important, vous devez faire beaucoup d'efforts pour comprendre : je peux donc bien en faire moi aussi pour vous! Comme vous le voyez, les adresses se suivent : , , , Il n'y a pas de « trou » au milieu. Si le tableau est de type int , alors chaque case du tableau contiendra un int. Ainsi, un tableau de int contiendra uniquement des int , et pas autre chose.
Il suffit donc de rajouter entre crochets le nombre de cases que vous voulez mettre dans votre tableau. Je ne vois pas le rapport entre les tableaux et les pointeurs?
Faites le test :. En revanche, si vous indiquez l'indice de la case du tableau entre crochets, vous obtenez la valeur :. Les deux lignes suivantes sont donc identiques :. Et ainsi de suite pour les autres valeurs. Le langage C existe en plusieurs versions. Nous verrons cela bien plus loin dans ce cours. Supposons que je veuille maintenant afficher les valeurs de chaque case du tableau. Je pourrais faire autant de printf qu'il y a de cases. Le mieux est de se servir d'une boucle.
Pourquoi pas d'une boucle for? Ici, on a mis la variable i , qui vaut successivement 0, 1, 2, et 3. Or, dans votre fonction, vous ne connaissez pas la taille de votre tableau. C'est pour cela qu'il faut envoyer en plus une variable que vous appellerez par exemple tailleTableau. J'utilise personnellement tout le temps les crochets dans mes fonctions pour bien montrer que la fonction attend un tableau.
Prototype :. Cet exercice est plus difficile. Chaque case d'un tableau de type int contient une variable de type int. On pourrait ainsi stocker le nom de l'utilisateur. Les lettres sont exclues. Comment diable les programmeurs font-ils pour manipuler du texte, alors? Eh bien ils sont malins, vous allez voir! Si vous vous souvenez bien, le type char permet de stocker des nombres compris entre et Attention, j'ai bien dit : UNE lettre.
B vaut 66, C vaut 67, etc. Le site AsciiTable. Retenez bien :. On utilise donc les apostrophes pour obtenir la valeur d'une lettre.
Comme on dit, tout est dans le titre. Je le sais pour en avoir fait les frais plus d'une fois. Bref, c'est bien plus pratique. Maintenant que vous savez ce qu'est un prototype, je vais vous donner le prototype des fonctions dont je vous parle. Testons la fonction strlen :. La fonction longueurChaine fait une boucle sur le tableau chaine.
Son prototype est :. Testons cela :. On voit que chaine vaut « Texte ». Supposons que l'on ait les variables suivantes :. C'est exactement ce que fait strcat , dont voici le prototype :.
Voici son prototype :. En effet, strcmp renvoie :. Notez que j'aurais pu stocker ce que renvoie strcmp dans une variable de type int. Toutefois, ce n'est pas obligatoire, on peut directement mettre la fonction dans le if comme je l'ai fait.
C'est la seule source d'erreurs possible ici. Avez-vous bien compris ce qu'il se passe ici? C'est un peu particulier. Lorsque je fais un printf de suiteChaine , il est donc normal que l'on m'affiche juste « de test ». Vous ferez juste un if resultat! Ce nom doit vaguement vous rappeler quelque chose. Pour cela, on utilise un tableau de char.
Il faut inclure string. Ne vous y trompez pas : les informations contenues dans ce chapitre vous seront utiles. On s'en sert en particulier pour inclure des fichiers. Pour inclure un fichier. Supposons que j'aie un fichier. Tout le contenu de fichier. Imaginons qu'on ait dans le fichier.
Et dans le fichier. Au final, le code source de fichier. Le contenu du. Voici un exemple :. En fait, le define remplace dans votre code source tous les mots par leur valeur correspondante.
Ainsi, la ligne :. Voici un exemple de fichier. C'est logique, vu que lors de la compilation il ne reste plus que des nombres dans le code source. Un exemple concret d'utilisation des define?
C'est une sorte de mini-configuration. Il est possible de faire quelques petits calculs dans les define. Il n'a pas de valeur, mais il « existe ». J'ai du nouveau! Il permet de remplacer aussi par… un code source tout entier! Je vous l'accorde, ce n'est pas original pour le moment. Mais… on ne peut mettre qu'une seule ligne de code par macro? Cela marche quasiment comme avec les fonctions. Voici comment cela fonctionne :. Alors, bien entendu, il faut recompiler le programme pour chaque OS ce n'est pas magique.
J'ai un fichier A. Le fichier A. Le fichier B est donc inclus dans le fichier A. Le premier fichier a besoin du second pour fonctionner, et le second a besoin du premier.
Vous vous doutez bien que tout cela est sans fin! Voici l'astuce. Vous mettrez en fait tout le contenu de votre fichier. Comprenez-vous bien comment ce code fonctionne? Imaginez que le fichier. Bien entendu, vous appelez votre constante comme vous voulez. Tous vos futurs fichiers. Voici un exemple de structure :.
Et maintenant, que mettre entre les accolades? Toutes les structures que vous verrez sont en fait des « assemblages » de variables de type de base, comme long , int , double , etc. Allons, allons, ce n'est pas bien difficile :. Les structures peuvent contenir des tableaux. Allez, imaginons une structure Personne qui stockerait diverses informations sur une personne :.
Il n'y a pas de limite au nombre de variables dans une structure. Retournons dans le fichier. Je vous recommande de faire un typedef comme je l'ai fait ici pour Coordonnees. La plupart des programmeurs font comme cela. Comme ceci :. On envoie la variable utilisateur. On peut donc faire :. On peut donc initialiser dans l'ordre nom , prenom , adresse , age et garcon comme ceci :. Toutefois, j'utilise assez peu cette technique, personnellement.
Pour faire cela il faut envoyer un pointeur de ma variable. Si vous ne le faites pas, vous risquez de modifier l'adresse, et ce n'est pas ce que nous voulons faire. Ce code fonctionne, vous pouvez tester. Quand je vous disais que les pointeurs vous poursuivraient jusque dans votre tombe, je ne le disais presque pas en rigolant! Reprenons notre fonction initialiserCoordonnees. Utilisez ce petit exemple pour vous en souvenir :. C'est une liste de « valeurs possibles » pour une variable.
Cela devrait vous rappeler les constantes et les define , non? On pourrait facilement ajouter de nouvelles valeurs possibles comme MUET. Vous avez compris. On appelle la fonction d' ouverture de fichier fopen qui nous renvoie un pointeur sur le fichier. Voyons justement le prototype de la fonction fopen :. Cette fonction renvoie… un pointeur sur FILE!
C'est un pointeur sur une structure de type FILE. Pourquoi le nom de la structure est-il tout en majuscules FILE? Cela ne doit pas vous perturber pour autant. Voici les modes d'ouverture possibles. C'est un mode un peu particulier que nous ne verrons pas ici. Le code suivant ouvre le fichier test. Le pointeur fichier devient alors un pointeur sur test. Bref, ce qui compte c'est de bien voir que mon programme tests.
C'est vous qui choisissez l'extension lorsque vous ouvrez le fichier. Ici, le fichier test.
0コメント