- LightNoxMembre
- Nombre de messages : 1759
Age : 34
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008
Cours sur le langage C:
Lun 10 Nov 2008 - 20:16
Ce cours n'est pas du rgss mais pour ceux qui veulent
je leur donne les premiers pas à l'initiation au langage C:
Cours de : Dark34590
1/ Element fondamentaux:
Un programme C est fait de module distingués, ils sont nommés
FONCTION, est celles ci peuvent s'appeler mutuellement.
Chaque fonction effectue une tache donnée, des fonctions sont pretes à l'emploi
suivant le compilateur.
COMPILATEUR:
- Dev C++
- Code Blocks
- Visual C++ express
La fonction main est la plus courante pour commencer le
programme, c'est la premiere fonction à etre appelées au démarrage du programme.
Toutes les autres fonctions sont des sous-programmes liés a celle ci.
Toutes les fonctions définies comme sous programme pourront etre appelées n'importe ou
dans le programme.
2/ Structure d'un programme en C:
un programme en C est formé des fonctions main et afficherPage, et affiche le début d'un
fichier texte dont on précise le nom dans la ligne de commande après que le programme soit lancé.
1*Les instructions qui constituent les fonctions:
les déclarations et les directives au processeur forment le code source d'un programme en C.
(Les petits programmes sont ecrits dans un seul fichier source)
Les programmes volumineux, la, font appel à plus de fichiers sources,
qui par la suite peuvent etre compilés separement,
chacun de ces fichiers integre des fonctions qui font partie d'une unité logique,
exemple:
fonction de sortie sur un terminal!
les informations nécéssaires dans les fichiers sources(FS)
comme les déclarations, sont placées dans l'en-tête.
Celles ci peuvent etre integre dans chaque FS via la directive "#include"
la librairie des fichiers de l'en-tete se termine toujours par ".h"
exemple:
#include <stdio.h> //La on remarque le .h grace a ça quand le programme
va etre compilé, le FS principal va chercher les
informations et la librairie nécéssaire au bon fonctionnement
du programme//
(apres il y a aussi les FS qui se terminent par .c ou .ccp mais j'en reparlerai)
Comme je l'ai ecris plus haut, les fonctions peuvent etre definies dans n'importe quel ordre,
une fonction afficherPage peut etre aussi bien placée avant la fonction main.
Toutefois, une fonction pricipale type main ne peut pas etre definie a l'interieur d'une
autre fonction principale.
exemple:
#include <stdio.h>
#include <conio.h>
int main()
{
sytem("PAUSE");
return(0);
}
La le programme est juste car main est definie seule,
si j'avais fait cela:
#include <stdio.h>
#include <conio.h>
int afficherPage()
{
int main()
{
sytem("PAUSE");
return(0);
}
}
La il comprend plus rien du tout le pauvre
il est tres important que ou soit main ou soit afficherPage soit definie seule!!
Le compilateur traite les FS en séquence et decompose leur contenu en tokens (" { " pour l'ouverture " } " pour la fermeture)
c'est pareil pour les noms de fonctions ou les opérateurs(le cours sur les opérateur viendra par la suite).
Bien la je crois qu'on a assez bavé de théorie pour l'instant passons a la pratique!!
La le compilateur que je vous montre c'est DEV C++
je vais maintenant parler pour finir des identificateurs
2/ Identificateurs:
l'indentificateur(IDE) designe le nom des variables, des fonctions, (des macro-instruction), des types. ils obeissent
aux regle de construction que je vous donne ci dessous:
*un IDE est formé d'une suite de lettres (A à Z, a à z),
de chiffre (0 à 9) ou de caractere de soulignage( _ ).
*le 1er caractere d'un IDE ne peut etre un chiffre.
*les IDE sont sensible a la casse.
*il n'y a aucune limite a la longeur des IDE , mais seul les 31 premier caractere sont courament significatif.
Voila le prochain cour portera sur la creation d'un premier programme simple
et des categorie et portee des IDE(je mettrais aussi une liste des mot cles a savoir).
Voila pour vous, a bientot!! :c1bm:
je leur donne les premiers pas à l'initiation au langage C:
Cours de : Dark34590
1/ Element fondamentaux:
Un programme C est fait de module distingués, ils sont nommés
FONCTION, e
Chaque fonction effectue une tache donnée, des fonctions sont pretes à l'emploi
suivant le compilateur.
COMPILATEUR:
- Dev C++
- Code Blocks
- Visual C++ express
La fonction main est la plus courante pour commencer le
programme, c'est la premiere fonction à etre appelée
Toutes les autres fonctions sont des sous-programmes liés a celle ci.
Toutes les fonctions définies comme sous programme pourront etre appelées n'importe ou
dans le programme.
2/ Structure d'un programme en C:
un programme en C est formé des fonctions main et afficherPage, et affiche le début d'un
fichier texte dont on précise le nom dans la ligne de commande après que le programme soit lancé.
1*Les instructions qui constituent les fonctions:
les déclarations et les directives au processeur forment le code source d'un programme en C.
(Les petits programmes sont ecrits dans un seul fichier source)
Les programmes volumineux, la, font appel à plus de fichiers sources,
qui par la suite peuvent etre compilés separement,
chacun de ces fichiers integre des fonctions qui font partie d'une unité logique,
exemple:
fonction de sortie sur un terminal!
les informations nécéssaires dans les fichiers sources(FS)
comme les déclarations, sont placées dans l'en-tête.
Celles ci peuvent etre integre dans chaque FS via la directive "#include"
la librairie des fichiers de l'en-tete se termine toujours par ".h"
exemple:
#include <stdio.h> //La on remarque le .h grace a ça quand le programme
va etre compilé, le FS principal va chercher les
informations et la librairie nécéssaire au bon fonctionnement
du programme//
(apres il y a aussi les FS qui se terminent par .c ou .ccp mais j'en reparlerai)
Comme je l'ai ecris plus haut, les fonctions peuvent etre definies dans n'importe quel ordre,
une fonction afficherPage peut etre aussi bien placée avant la fonction main.
Toutefois, une fonction pricipale type main ne peut pas etre definie a l'interieur d'une
autre fonction principale.
exemple:
#include <stdio.h>
#include <conio.h>
int main()
{
sytem("PAUSE");
return(0);
}
La le programme est juste car main est defini
si j'avais fait cela:
#include <stdio.h>
#include <conio.h>
int afficherPage()
{
int main()
{
sytem("PAUSE");
return(0);
}
}
La il comprend plus rien du tout le pauvre
il est tres important que ou soit main ou soit afficherPage soit definie seule!!
Le compilateur traite les FS en séquence et decompose leur contenu en tokens (" { " pour l'ouverture " } " pour la fermeture)
c'est pareil pour les noms de fonctions ou les opérateurs(le cours sur les opérateur viendra par la suite).
Bien la je crois qu'on a assez bavé de théorie pour l'instant passons a la pratique!!
La le compilateur que je vous montre c'est DEV C++
je vais maintenant parler pour finir des identificateurs
2/ Identificateurs:
l'indentificateur(IDE) designe le nom des variables, des fonctions, (des macro-instruction), des types. ils obeissent
aux regle de construction que je vous donne ci dessous:
*un IDE est formé d'une suite de lettres (A à Z, a à z),
de chiffre (0 à 9) ou de caractere de soulignage( _ ).
*le 1er caractere d'un IDE ne peut etre un chiffre.
*les IDE sont sensible a la casse.
*il n'y a aucune limite a la longeur des IDE , mais seul les 31 premier caractere sont courament significatif.
Voila le prochain cour portera sur la creation d'un premier programme simple
et des categorie et portee des IDE(je mettrais aussi une liste des mot cles a savoir).
Voila pour vous, a bientot!! :c1bm:
- KorndorStaffeux retraité
- Nombre de messages : 4959
Age : 111
Localisation : Erem Vehyx
Distinction : Champion de boxe et au lit ! :O [Wax]
Être Mythique [Mister]
Papi Korndor qui a l'ostéoporose [Skillo]
Soldat Ikéa [Coco']
Un bonhomme, un vrai ! [Neresis]
Vieillard acariâtre [Didier Gustin]
Date d'inscription : 16/12/2007
Re: Cours sur le langage C:
Lun 10 Nov 2008 - 20:47
Ok, c'est cool mais c'est pas la bonne section.
Je déplace...
Je déplace...
- ArayashikiMembre
- Nombre de messages : 655
Age : 34
Localisation : Trois lettres me demangent. Oserai-je ?
Distinction : FUCKING nouveau dieu du mal. Gros connard en chef.
Date d'inscription : 18/08/2008
Re: Cours sur le langage C:
Mar 11 Nov 2008 - 3:34
Bonne initiative mais ton tuto est difficilement compréhensible pour les gens qui n'ont jamais fait de prog'. Donne plus de définition d'explication parce que la tu nous balance tout comme si c'était évident pour tout le monde ^^".
Je te souhaite bonne continuation.
Je te souhaite bonne continuation.
- LightNoxMembre
- Nombre de messages : 1759
Age : 34
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008
Re: Cours sur le langage C:
Mar 11 Nov 2008 - 8:31
OK Aucun souci,
je vais taper des cours apres je l'ai met sur le forum
avec des explication approfondi,
cc'est vrai que la je suis aller un peu trop vite merci
je vais taper des cours apres je l'ai met sur le forum
avec des explication approfondi,
cc'est vrai que la je suis aller un peu trop vite merci
- KorndorStaffeux retraité
- Nombre de messages : 4959
Age : 111
Localisation : Erem Vehyx
Distinction : Champion de boxe et au lit ! :O [Wax]
Être Mythique [Mister]
Papi Korndor qui a l'ostéoporose [Skillo]
Soldat Ikéa [Coco']
Un bonhomme, un vrai ! [Neresis]
Vieillard acariâtre [Didier Gustin]
Date d'inscription : 16/12/2007
Re: Cours sur le langage C:
Mar 11 Nov 2008 - 11:17
Bon, bah à ce que je vois ça a été édité
Pas mal du tout; merci du cours
+3 en prog'! =)
Pas mal du tout; merci du cours
+3 en prog'! =)
- LightNoxMembre
- Nombre de messages : 1759
Age : 34
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008
Re: Cours sur le langage C:
Lun 17 Nov 2008 - 12:32
Bonjour a tous de Dark34590:
Voilà j’ai préparer mon cours n°2 sur le C!
1/ Mots clés:
Pour commencer le cours en douceur je vous ai préparé la liste des mots clés a savoir!
Ces mots clés en question sont réservés et ils ne doivent pas être utilisés comme identificateurs!
Auto, enum, restrict(*), unsigned;
Break, extern, return, void;
Case, float, short, volatile;
Char, for, signed, while;
Const, goto, sizeof, _bool(*);
Continue, if, static, _complex(*);
Default, incline(*), struct, _imaginary(*);
Do, int, switch,
Double, long, typedef,
Else, register, union.
Les noms externes, c’est-à-dire les identificateurs de fonction et de variable externes liées peuvent faire l’objet d’autre restrictions.
Ces restrictions dépendent de l’éditeur de liens(EL).
Pour des programme en C, seuls les 8 premiers caractères des noms externes ne devraient être significatifs.
Même si l’EL est insensible à la casse.
Pour cela je donne quelque exemples d’identificateurs:
(ils sont un peu bizarre, ne vous en faite pas pour l’instant je les donnes,
Mais nous en avons pas l’utilité).
Variables:
a, DM, dm, FLOAT, _vari, HautDeFenetre;
Non Valides:
Do, 586cpu, z%hler, nl - flag, US_$.
2/ Catégories et portée des identificateurs:
Tout les identificateur quel qu’il soit appartiennent à l’une des quatre catégories suivantes:
Les noms d’étiquette;
Les marqueurs de structure, d’union et d’énumération. Ce sont des identificateurs placés à la suite
Des mot clés struct, union et enum .
Les noms des membres d’une structure ou d’une union.
Chaque structure ou union possède un espace de noms distinct pour ses membres.
Tous les autres identificateurs, qui sont appelés identificateurs ordinaires.
Des identificateurs appartenant à des catégories différentes peuvent être identiques.
Un nom d’étiquette peut aussi, si vous le souhaitez être utilisé comme nom de fonction.
Un tel réemploi est fréquent dans les structures ou la même chaîne peut désigner un type structure, l’un
De ses membres, et une variable.
Struct person {char *person; /*commentaire…*/} personne;
Les mêmes noms peuvent aussi désigner les membres de structures différentes.
Chacun de ses IDE dans le code source possède une certaine portée. Cette portée correspond à la portion de programme dans laquelle d’IDE peut être employé. Les quatre portées possibles sont:
Prototype d’une fonction:
Les IDE contenus dans liste des déclarations de paramètre du prototype d’une fonction (PAS DANS SA DEFINITION!!) ont une portée confinée a ce prototype;
Fonction:
Seuls les noms d’étiquettes ont comme portée le corps d’une fonction. Leur emploi est limité au bloc ou ce situe la fonction dans lequel l’étiquette est définie.
Les noms d’étiquettes doivent être uniques à l’intérieur de la fonction.
L’instruction goto provoque un saut vers l’instruction qui suit une étiquette à l’intérieur de la fonction courante.
Bloc:
Les IDE, autres que les noms d’étiquettes, déclarés à l’intérieur d’un bloc ont une portée confinée à ce bloc. Les paramètres définis d’une fonction ont aussi une portée limité au bloc. A l’intérieur d’un bloc, la portée d’un IDE commence avec sa définition et se termine à l’accolade fermante ou token fermé
(« } ») du bloc.
Fichier:
Les IDE déclaré à l’extérieur de tout bloc ou liste de paramètre ont comme portée le fichier lui-même. Leur portée commence à leur définition et se prolonge jusqu’à la fin du FS(rappel: FS=fichier source).
Voilà le prochain cour que je donnerais portera sur:
Les types élémentaire
Les types entiers
Types d’entier standard
Types d’entier à taille définie
3. Les types flottants réels et complexes(ou je passerais du temps dessus)
Types réels flottant
Types flottant complexes
Type void
Si vous avez des questions me contacter par MP ou bien sur MSN (si je ne suis pas connecter c’est parce que je n’ai pas encore internet alors laissez moi un message )
Mon email: zerraga@hotmail.fr
Dark34590.…………….à votre service :lol':
Voilà j’ai préparer mon cours n°2 sur le C!
1/ Mots clés:
Pour commencer le cours en douceur je vous ai préparé la liste des mots clés a savoir!
Ces mots clés en question sont réservés et ils ne doivent pas être utilisés comme identificateurs!
Auto, enum, restrict(*), unsigned;
Break, extern, return, void;
Case, float, short, volatile;
Char, for, signed, while;
Const, goto, sizeof, _bool(*);
Continue, if, static, _complex(*);
Default, incline(*), struct, _imaginary(*);
Do, int, switch,
Double, long, typedef,
Else, register, union.
Les noms externes, c’est-à-dire les identificateurs de fonction et de variable externes liées peuvent faire l’objet d’autre restrictions.
Ces restrictions dépendent de l’éditeur de liens(EL).
Pour des programme en C, seuls les 8 premiers caractères des noms externes ne devraient être significatifs.
Même si l’EL est insensible à la casse.
Pour cela je donne quelque exemples d’identificateurs:
(ils sont un peu bizarre, ne vous en faite pas pour l’instant je les donnes,
Mais nous en avons pas l’utilité).
Variables:
a, DM, dm, FLOAT, _vari, HautDeFenetre;
Non Valides:
Do, 586cpu, z%hler, nl - flag, US_$.
2/ Catégories et portée des identificateurs:
Tout les identificateur quel qu’il soit appartiennent à l’une des quatre catégories suivantes:
Les noms d’étiquette;
Les marqueurs de structure, d’union et d’énumération. Ce sont des identificateurs placés à la suite
Des mot clés struct, union et enum .
Les noms des membres d’une structure ou d’une union.
Chaque structure ou union possède un espace de noms distinct pour ses membres.
Tous les autres identificateurs, qui sont appelés identificateurs ordinaires.
Des identificateurs appartenant à des catégories différentes peuvent être identiques.
Un nom d’étiquette peut aussi, si vous le souhaitez être utilisé comme nom de fonction.
Un tel réemploi est fréquent dans les structures ou la même chaîne peut désigner un type structure, l’un
De ses membres, et une variable.
Struct person {char *person; /*commentaire…*/} personne;
Les mêmes noms peuvent aussi désigner les membres de structures différentes.
Chacun de ses IDE dans le code source possède une certaine portée. Cette portée correspond à la portion de programme dans laquelle d’IDE peut être employé. Les quatre portées possibles sont:
Prototype d’une fonction:
Les IDE contenus dans liste des déclarations de paramètre du prototype d’une fonction (PAS DANS SA DEFINITION!!) ont une portée confinée a ce prototype;
Fonction:
Seuls les noms d’étiquettes ont comme portée le corps d’une fonction. Leur emploi est limité au bloc ou ce situe la fonction dans lequel l’étiquette est définie.
Les noms d’étiquettes doivent être uniques à l’intérieur de la fonction.
L’instruction goto provoque un saut vers l’instruction qui suit une étiquette à l’intérieur de la fonction courante.
Bloc:
Les IDE, autres que les noms d’étiquettes, déclarés à l’intérieur d’un bloc ont une portée confinée à ce bloc. Les paramètres définis d’une fonction ont aussi une portée limité au bloc. A l’intérieur d’un bloc, la portée d’un IDE commence avec sa définition et se termine à l’accolade fermante ou token fermé
(« } ») du bloc.
Fichier:
Les IDE déclaré à l’extérieur de tout bloc ou liste de paramètre ont comme portée le fichier lui-même. Leur portée commence à leur définition et se prolonge jusqu’à la fin du FS(rappel: FS=fichier source).
Voilà le prochain cour que je donnerais portera sur:
Les types élémentaire
Les types entiers
Types d’entier standard
Types d’entier à taille définie
3. Les types flottants réels et complexes(ou je passerais du temps dessus)
Types réels flottant
Types flottant complexes
Type void
Si vous avez des questions me contacter par MP ou bien sur MSN (si je ne suis pas connecter c’est parce que je n’ai pas encore internet alors laissez moi un message )
Mon email: zerraga@hotmail.fr
Dark34590.…………….à votre service :lol':
- ArtemisMembre
- Nombre de messages : 6
Age : 34
Localisation : Paris
Distinction : aucune
Date d'inscription : 22/11/2008
Re: Cours sur le langage C:
Mar 2 Déc 2008 - 11:06
merci dark pour le cours c'est bien expliqué bravo
- momohinioMembre
- Nombre de messages : 176
Age : 41
Localisation : Lille
Distinction : aucune
Date d'inscription : 12/03/2009
Re: Cours sur le langage C:
Mar 17 Mar 2009 - 15:32
J'ai un gros problème avec ces tutos,
on parle d'IDE pour identificateur soit le nom des variables, fonctions....
hors en programmation l'IDE (Integrated Development Environment) c'est l'ensemble de l'outil que tu utilises pour
programmer (editeur de texte, compilateur, debogueur...)
"Chaque fonction effectue une tache donnée, des fonctions sont pretes à l'emploi
suivant le compilateur.
COMPILATEUR:
- Dev C++
- Code Blocks
- Visual C++ express"
Ces logiciels sont des IDE et non des compilateurs, d'ailleurs si je ne me trompe pas les 3 utilises gcc comme compilateur.
L'auteur a déjà un soucis de langage donc la pour des débutants c'est sur qu'ils vont s'y perdre
on parle d'IDE pour identificateur soit le nom des variables, fonctions....
hors en programmation l'IDE (Integrated Development Environment) c'est l'ensemble de l'outil que tu utilises pour
programmer (editeur de texte, compilateur, debogueur...)
"Chaque fonction effectue une tache donnée, des fonctions sont pretes à l'emploi
suivant le compilateur.
COMPILATEUR:
- Dev C++
- Code Blocks
- Visual C++ express"
Ces logiciels sont des IDE et non des compilateurs, d'ailleurs si je ne me trompe pas les 3 utilises gcc comme compilateur.
L'auteur a déjà un soucis de langage donc la pour des débutants c'est sur qu'ils vont s'y perdre
Re: Cours sur le langage C:
Mar 17 Mar 2009 - 17:46
Nécropost... mais bon... soyons indulgents
En effet quelques erreurs de vocabulaire
je crois que certains IDE embarquent Mingw32 par defaut (devc++)
berka
En effet quelques erreurs de vocabulaire
je crois que certains IDE embarquent Mingw32 par defaut (devc++)
berka
- momohinioMembre
- Nombre de messages : 176
Age : 41
Localisation : Lille
Distinction : aucune
Date d'inscription : 12/03/2009
Re: Cours sur le langage C:
Mar 17 Mar 2009 - 18:02
et donc si je ne m'abuse Mingw32 est basé sur gcc.
Si je me suis permis de repondre dans ce topic c'est juste que comme c'est un tuto voire un cours quelqu un pourrait s'en servir, de plus, on me parle de necropost mais si je taf à l'aide d un tuto de plus de 3 mois et que personne n'y poste plus, je poste où mes questions?
enfin la question n'est pas la, je voulais juste corriger ces problèmes de termes au cas ou ca pourrait aider quelqu un à ne pas s'embrouiller ^^
en tous cas merci de ton indulgence ^^
Si je me suis permis de repondre dans ce topic c'est juste que comme c'est un tuto voire un cours quelqu un pourrait s'en servir, de plus, on me parle de necropost mais si je taf à l'aide d un tuto de plus de 3 mois et que personne n'y poste plus, je poste où mes questions?
enfin la question n'est pas la, je voulais juste corriger ces problèmes de termes au cas ou ca pourrait aider quelqu un à ne pas s'embrouiller ^^
en tous cas merci de ton indulgence ^^
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum