Mac4Ever PrixMac Acheter un Mac Refurb-Store Débuter sur Mac Forum : 710 connectés
icon
Lundi 11 Mars 2002

Les bases de la programmation

Creation > Programmation
Dans cet article, vous allez pouvoir apprendre les bases de la programmation. Je ne traiterai que du language C, un des languages les plus employés. Cependant, sachez que les connaissances acquises ne se limiteront pas au C. En effet, de nombreux languages tels que le javascript ou le PHP possèdent la même structure. Rassurez-vous, ici, point d'exemples incompréhensibles, je me contenterai de la théorie. Si vous désirez aller plus loin vous partirez au moins sur de bonnes bases en français !

Quelques explications ...


Pour créer un programme, vous devez écrire des lignes de codes, mais cela ne s'arrete pas la. En effet, vos lignes de codes sont en language humain et il faut les rendre compréhensibles et exécutables par un ordinateur. Pour ce faire, on utilise un compilateur qui va créer votre programme.

Les notions de base


• la syntaxe
Lorsque l'on programme dans un language, on se doit de respecter certaines conventions, ne serait-ce que pour ne pas causer de bug. Tout d'abord, toute instruction doit se terminer par un point-virgule afin d'indiquer que l'on passe à une autre instruction. De plus, pour la lisibilité du code, il est conseillé de sauter des lignes régulièrement afin de séparer le code en différentes parties. Je vous recommande également de relire régulièrement votre code afin d'éviter les erreurs de syntaxe, un simple point virgule oublié et c'est le bug !

L'emploi de commentaire est également fortement recommandé si vous vous voulez pouvoir relire votre code par la suite. Il existe 2 types de commentaires: les commentaires qui se ferment tout seuls à la fin de la ligne et ceux que l'on doit fermer soit même. On utilise "//" pour un commentaire qui se termine à la fin de la ligne et "/* */" pour délimiter un commentaire sur plusieur lignes.

exemple:
instruction1 ; //ceci est un exemple de commentaire qui se termine à la fin de la ligne
instruction2 ; /*ceci est un exemple
de commentaire
sur plusieur lignes*/

Quelques conseils pour bien réussir !

Tout d'abord, sachez que l'idée de base du programmeur amateur (voire même du professionnel), c'est de s'inspirer des autres. Lorsque vous récupérez le code source d'un programme (ou d'une page internet) et que vous le lisez, vous assimilez des techniques et des idées.
De plus, quel que soit le language, les 2 choses les plus importantes sont l'esprit mathématique et le fait de "savoir programmer".



• les variables


Une variable est une lettre ou un mot auquel on associe une valeur numérique ou une chaine de caractères ( c'est à dire du texte).

exemple : char message = "Bienvenue sur Mac4ever.com !"
--> la variable message est de type char et contient le texte bienvenue sur Mac4Ever !. Notez les guillemets, obligatoires pour délimiter le texte de la variable.
Pour déclarer une variable, on doit donc également donner son type.
Voici les principaux:
-char: pour les chaines de caractères, la chaine devant être entre guillemets.
-int: pour les valeurs numérique entières
-float: pour les valeurs numériques décimales.

De plus, il est également possible de spécifier la taille d'une variable grâce aux mots clés short et long. Par exemple, si vous avez besoin de manipuler de très grands nombres, la variable sera alors de type long int.



• les fonctions


Une fonction est un ensemble d'instructions qui peuvent être appellées en une seule fois grâce au nom de la fonction.On peut aussi passer des paramètres à la fonction: les arguments. La structure d'une fonction est la suivante :

[type de la fonction] [nom de la fonction] (arguments)
{
[instructions]
}

A noter: les parenthèses qui doivent obligatoirement suivre le nom de la fonction même s'il n'y a pas d'arguments et les accolades qui doivent contenir toutes les instructions.

Une fois que la fonction a été écrite, il devient alors possible d'y faire appel afin de réutiliser les mêmes instructions sans devoir tout réécrire.

exemple:

// déclaration de la fonction
int mafonction(int arg1, int arg2) {
int resultat = arg1+ arg2;
return resultat;
}

// appel à la fonction
mafonction(1,2);

explications: la fonction mafonction de type int (comme la plupart des fonctions) additionne les arguments arg1 et arg2 et renvoie leur somme avec la variable resultat. Lorsque l'on fait appel à la fonction avec 1 et 2 comme arguments, la fonction renvoie 1+2 soit 3.



• les tableaux


Un tableau est un ensemble ordonné de variables. Chaque variable constitue un élément du tableau et peut être identifiée grâce à son indice ( c'est à dire sa position dans le tableau)

exemple:
mon_tableau[10]; // créé un tableau de 10 éléments

On peut donc maintenant appeler chaque élément pour lui attribuer une valeur (nous verrons un peu pluis loin comment automatiser cette tâche).
ATTENTION : le premier élément de ce tableau est l'élément d'indice 0.

exemple:
mon_tableau[2] = 5; // assigne la valeur 5 au 3e élément du tableau

Il est également possible de créer des tableaux à plusieurs dimensions. Pour ce faire, il suffit de rajouter des arguments à la suite de la déclaration du tableau.

exemple:

mon_tableau[10][10]; //créé un tableau avec 10 lignes et 10 colonnes

Les opérateurs


Comme leur nom l'indique, ils servent à effectuer des opérations sur des variables. Il en existe un grand nombre, mais tous ne sont pas indispensables. C'est pourquoi nous ne verrons ici que les pus importants.

Commencons pas les plus simples:

1. Les opérateurs arithmétiques

• nom : +
• syntaxe : op1 + op2
• valeur : somme des 2 valeurs

• nom : -
• syntaxe : op1 - op2
• valeur : différences des 2 valeurs

• nom : *
• syntaxe : op1 * op2
• valeur : produit des 2 valeurs

• nom : /
• syntaxe : op1 / op2
• valeur : rapport des 2 valeurs

• nom : %
• syntaxe : op1 % op2
• valeur : reste de la division des 2 valeurs (entières)

• nom : -
• syntaxe : - op1
• valeur : valeur opposée

2.Les opérateurs d'incrémentation

• nom : ++
• syntaxe : op1 ++
• valeur : la valeur de op1 est incrémentée de 1

• nom : --
• syntaxe : op1 --
• valeur : la valeur de op1 est décrémentée de 1

3. Les opérateurs d'affectation

• nom : =
• syntaxe : op1 = op2
• valeur : la valeur de op2 est afféctée à op1

A partir de cet opérateur, on peut également créer de nombreux autres opérateurs:

• nom : +=
• syntaxe : op1 += op2
• valeur : op1 = op1+op2

• nom : -=
• syntaxe : op1 -= op2
• valeur : op1 = op1-op2

• nom : *=
• syntaxe : op1 *= op2
• valeur : op1 = op1*op2

• nom : /=
• syntaxe : op1 /= op2
• valeur : op1 = op1/op2

• nom : %=
• syntaxe : op1 %= op2
• valeur : op1 = op1%op2

4. Les opérateurs relationnels

• nom : ==
• syntaxe : op1 == op2
• valeur : 0 si op1 est différent de op2 et une valeur non nulle si op2=op1

• nom : !=
• syntaxe : op1 != op2
• valeur : non nulle si op1 est différent de op2, 0 si op1=op2

• nom : <=
• syntaxe : op1 <= op2
• valeur : non nulle si op1 est inférieur ou égal à op2, 0 si op1 supérieur à op2

• nom : <
• syntaxe : op1 < op2
• valeur : non nulle si op1 est strictement inférieur à op2, sinon 0

• nom : >=
• syntaxe : op1 >= op2
• valeur : non nulle si op1 est supérieur ou égal à op2, 0 si op1 est inférieur à op2

• nom : >
• syntaxe : op1 > op2
• valeur : non nulle si op1 est strictement supérieur à op2, sinon 0

et enfin,

5. Les opérateurs logiques

• nom : &&
• syntaxe : op1 && op2
• valeur : non nulle si op1 est vrai ET si op2 est AUSSI vrai

• nom : ||
• syntaxe : op1 || op2
• valeur : non nulle si op1 est vrai OU si op2 est vrai

• nom : !
• syntaxe :  ! op1
• valeur : 1 si op1 est nul,0 s'il est non nul

Les structures de controle conditionnelles


Afin de controler le déroulement d'un programme, il est possible de faire certaines actions différemment selon les paramètres donnés. La structure de controle la plus courante est "if" qui veut dire "si" en anglais.
On l'utilise aussi avec "else" qui veut dire sinon et elseif qui veut dire "sinon si".

exemple:
char message;
if (a==1) {
message = "a est égal à 1";
} elseif (a==2) {
message = "a est égal à 2";
} else {
message = "a n'est ni égal à 1, ni à 2 !";
}

Explications : on déclare une variable de type char qui contiendra une phrase décrivant la valeur de a. Si a est égal à 1, la variable valeur contiendra la phrase "a est égal à 1" sinon si a est égal à 2, la variable message contiendra la phrase "a est égal à 2" sinon, la variable message contiendra la phrase "a n'est ni égal à 1, ni à 2".
Faites attention à votre syntaxe: les parenthèses entre la conditions et les accolades pour délimiter les instructions sont indispensables.

La structure if est bien adaptée losrsqu'il ne s'agit que de poser une ou deux conditions, mais lorsqu'il faut en poser plus de trois, elle devient vite confuse. C'est pourquoi on a inventé la structure switch.

Voici la méthode à suivre:

switch (mavariable) {
case 1: resultat = 18; break;
case 2: resultat = 23; break;
case 56: resultat = 12; break;
}

explications: si la valeur de la variable mabvariable est égale, à 1, alors la valeur 18 sera affectée à la variable résultat. Si mavariable est égale à 2, resultat vaudra 23 et si la variable mavariable est égale à 56, resultat vaudra 12. Le mot clé break sert délimiter la fin d'un "cas".

Les structure itératives


Le language C possède 3 sortes de structures itératives: for,while et do while

1. for
Voici tout d'abord sa syntaxe:
for (expression1;expression2;expression3)
instructions

Ce n'est pas clair ?
Alors, lisez-donc ce qui se passe: au début, l'expression1 est évaluée, elle sert généralement à initialiser une variable. Puis, l'expression2 est évaluée, si le résultat est nul, la boucle s'arrête, sinon, on passe à l'expression3. Ensuite, les instructions sont effectuées le programme retourne à l'expression1 jusqu'à ce que l'expression2 ne soit plus vraie.

Dans l'exemple suivant, nous allons voir comment utiliser cette structure pour initialiser automatiquement tout les éléments d'un tableau à 0:

int num_elements = 10;
mytab[num_elements];

for (i=0;i<=num_elements;i++)
tab[i] = 0;
explications: on déclare une variable num_elements qui est égal à 10. Ensuite, on déclare un tableau possèdant "num_elements" éléments, c'est à dire 10 éléments.
On lance une boucle for avec les paramètres suivants: si i est inférieur ou égal à num_elements (donc à 10), alors i est incrémenté de 1.
La première fois, c'est l'éléments 1 qui est réglé à 0, la 2e fois l'éléments 2 et ainsi de suite.

2. while
while (condition)
instructions
Cette structure est toute simple: pendant qu'une condition est vraie, on effectue des instructions.

3. do while

do
instructions
while (condition)

Celle-ci diffère de la précédente car les instructions sont effectuées une fois avant que la condition soit testée.

Conclusion


Voilà, vous connaissez les bases de la programmations: avec ceci, vous êtes maintenant capable de comprendre et de réaliser un programme en language C, mais aussi en javascript ou en PHP. Vous voulez un exemple ? Sur certains sites, le javascript est beaucoup utilisé: il suffit de faire clic droit->afficher la source et dès que vous rencontrerez la mention de javascript, jetez donc un coup d'oeil aux instructions qui suivent ! Cela vous rapellera surement quelque chose !

Alors maintenant, vous ressortez le CD des developpers tools d'OS X, vous le dépoussierez et vous les installez !
Dans un mois, je veux tous vous voir créer des applications en C ! ;-)

@ Gaime


Les réactions à cet article
Témoignages et avis....
  • Le 12/03/2002, 20:03@ NONInscrit : Cool!

    Super cet article!!
    Moi qui commence à programmer en C c'est génial!
    Continuez comme ça!!!
    A2
  • Le 12/03/2002, 21:21@ Gaime : ;-)

    content que ça te plaise !
  • Le 12/03/2002, 21:47@ Jobs junior : hey !

    Evidemment c'est plus simple en applescipt pour apprendre.De plus les tutorials sont très sympa à utiliser.
  • Le 13/03/2002, 14:38@ kmx : Erreur...

    Hé oui, erreur orthographique très grave... ;-)

    Effectivement, language ça s'écrit langage, sans "u"... language c'est anglais ! non, non, me faites pas de mal...
  • Le 13/03/2002, 17:05@ jedi2300 :

    L'article est bien mais moi je voudrais connaitre la différence entre un entier non signé et un entier signé.
  • Le 14/03/2002, 07:45@ Gaime :

    un élément non signé est un élément qui n'a pas de type.
    ex: unsigned mavar;
    mavar n'a pas de type défini
  • Le 15/03/2002, 11:22@ Zork : hein qu'est ce qu'il dit?

    C'est pas ca du tout !
    le type unsigned se met devant un type existant tel que int. Cela permet de récuperer le bit de signe pour avoir un interval de valeur plus important.

    Un entier non signé c'est entier reel, c'est à dire > 0 car il n'a pas de signe.

    Par ex un int signé est comprit entre -32500 et +32 500 alors qu'un entier non signé pourra être compris entre 0 et 65000.
  • Le 27/03/2002, 09:18@ Rono : ???

    C'est bien beau tout ça mais comment on fait ensuite pour ouvrir le programme que l'on n'a créer???
  • Le 27/03/2002, 19:28@ eKlecthor : Compiler !

    Tu le compile et t'auras une joulie application à ouvrir :)
  • Le 28/03/2002, 13:37@ Zork : Compiler

    pour compiler dans ton terminale tu tapes :
    1) se placer au bon endroit
    cd /dd/endroitfichier.c
    2) Compiler
    gcc fichier.c -o fichiersortie
  • Le 18/04/2002, 18:40@ Coco : précision mathématique

    Zork, je reviens sur ta definition du unsigned int qui est très bonne, à une chose près: en maths les réels sont une classe de nombre, juste en dessous des complexes (en fait ce sont des complexes sans partie imaginaire…) mais ils peuvent tout à fait être negatifs et aussi être rationnels, c-a-d s'écrire sous la forme du rapport de deux entiers relatifs. Au trement dit ils ne sont pas necessairement entiers…
    Donc tu aurais du dire entier naturel et pas entier réel… (ou plus exactement nombre appartenant à l'intervalle [0 ; 65000] intersection (tiens pourquoi y a pas le signe U renversé sur ce foutu clavier ?!) N (et puis y a pas le double N non plus…))

    Voila c tout pour les maths vous inquietez pas…
  • Le 19/04/2002, 12:01@ Zork : math

    oui, un entier naturel :-)
    merci pour la révision de math, toujours employer des termes correctes, mais bon c'est "presque" du chipotage !
  • Le 28/11/2002, 22:39@ NONInscrit : Erreur grave

    Il y a une grosse erreur sur le type pour les chaines de caracteres. Le type char ne contien que des caracteres isolé et non pas des chaines de caracteres. Pour une chaine de caractere il faut un char* , c'est a dire un pointeur sur des caracteres (ou encore un tableau de caracteres ce qui reviens au meme en C).
  • Le 02/01/2003, 11:54@ NONInscrit : Le C oui, mais sous OS X ? et l'interface ?

    Bonjour,
    Je profite de ce tutoriel pour poser ma petite question : Je suis en train d'apprendre le C et me contente pour l'instant du mode texte, dans le terminal. C'est très bien pour l'instant, mais il arrivera bien un momment où j'aurai envie de faire une petite appli (même en mode texte) double clikable... comment puis-je faire pour y intégrer un fenêtre console ? (je me souviens que jadis, codewarrior compilait directement avec une fenêtre dans l'exécutable...).

    Et si un jour j'ai envie de créer une interface (aussi minime soit-elle) avec l'interface builder, comment puis-je la réutiliser ?

    Et si je veux simplement imprimer des points à l'écran, sans forcément avoir un interface, existe-t-il un mode graphisme qui ne soit pas avec des bibliothèques trop compliquées ?


    Merci pour vos réponses !!

    Martin
  • Le 02/01/2003, 12:06@ NONInscrit : Le C oui, mais sous OS X ? et l'interface ?

    Bonjour,
    Je profite de ce tutoriel pour poser ma petite question : Je suis en train d'apprendre le C et me contente pour l'instant du mode texte, dans le terminal. C'est très bien pour l'instant, mais il arrivera bien un momment où j'aurai envie de faire une petite appli (même en mode texte) double clikable... comment puis-je faire pour y intégrer un fenêtre console ? (je me souviens que jadis, codewarrior compilait directement avec une fenêtre dans l'exécutable...).

    Et si un jour j'ai envie de créer une interface (aussi minime soit-elle) avec l'interface builder, comment puis-je la réutiliser ?

    Et si je veux simplement imprimer des points à l'écran, sans forcément avoir un interface, existe-t-il un mode graphisme qui ne soit pas avec des bibliothèques trop compliquées ?


    Merci pour vos réponses !!

    Martin
  • Le 31/05/2003, 12:02@ ammani : création

    bonjour je de monde votre aide pour faire une bonne page perso
  • Le 07/10/2004, 15:09@ naunos : le debut..

    alors voila ma question est simple: j'aimerai me lancer la dedans mais est ce qu'il faut etre fort en math?

    si oui c perdu d'avance :-(
  • Le 08/06/2005, 10:47@ amel : etudiante

    ou est-il le graphisme
  • Le 27/11/2005, 21:10@ arame : le point de depart

    ma questionest concrete je veux etre forte en maths pour pouvoir y faire parti
  • Le 09/12/2009, 11:30@ jean privat : programmation

    je veux apprendre la programmation en c++ mais je sais pas comment commencer la programmation svp aider moi voici mon email(jeanprivat93@live.fr)
  • Le 29/09/2010, 02:44@ aboubacar : TRES BON

    EXCELLENT JE NE PEUT QUE DIRE CELA
Donnez votre avis
Réagissez à cet article...
 
Si vous cherchez de l'aide ou si vous avez une question à poser, ne réagissez pas ici ! Redirigez-vous vers le forum !
Pseudo/Nom : Email (sera protégé contre le Spam) :
Titre :
Réaction :
Quelle est la 3eme lettre de Mac4Ever ?  

Rubriques
  • humeurcreationmateriel
  • logicielsjeuxmacos