Obligement - L'Amiga au maximum

Mardi 17 octobre 2017 - 06:04  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Programmation : C - les variables
(Article écrit par Chorizo Kid et extrait d'A-News (Amiga News) - août 1988)


Initiation au C n°2 : Simone, touche pas au frein à main, on est en pente

Causerie concernant l'utilisation des variables à l'usage du néophyte et des conducteurs d'appareil électro-chimique : comme nous l'avons entrevu la dernière fois, un programme C utilise des constantes concervant leur valeur tout au long du programme, ou des variables dont la valeur pourra varier au cours du programme.

En C, toutes les variables utilisées dans le programme doivent être déclarées. A ces deux types d'objets correspond un espace en mémoire devant être réservé. Une variable C sera alors caractérisée par son nom et son type. Il existe une troisième caractéristique (classe d'allocation), optionnelle sur laquelle nous reviendrons plus tard.

Le nom d'une variable est un identificateur quelconque composé des lettres A..Z, a..z, _ (souligné).
Le type : nous verrons aujourd'hui les types de base. Nous trouvons :
  • char : le type caractère ; la variable est un caractère.
  • int : le type entier ; nombres entiers.
  • short : entier court sur deux octets.
  • long : entier long sur quatre octets.
Ces déclarations peuvent être complétées par le "typeunsigned", entier sans signe :
  • float : type flottant, nombre réel sur quatre octets.
  • double : réel double précision sur huit octets.
Exemple de déclarations

int i,j;long l1,l2,l3;
char c1,c2;
unsigned short k;/* entier court entre 0 et 216-1*/

Ce sera donc à vous de choisir vos types de variables selon vos besoins.

De la grandeur des instructions et autres structures de contrôle : en C, une instruction élémentaire est obtenue à partir d'une expression quelconque suivie du caractère ";" :

x=x+4;
y=x+z;z=2*z;

Une instruction composée ou bloc est une suite d'instructions élémentaires délimitées par une paire d'accolades {}. Un bloc sera de la forme :

{
instruction;
instruction;
...
instruction;
}

Exemple : un programme contient toujours un bloc principal :

main() {
   liste d'instruction;
}

Dans la famille structure de contrôle, je voudrais le test if-else :

if (<expression>)
    <instruction1>
else
    <instruction2>

L'expression est évaluée, si sa valeur est vraie, c'est-à-dire non nulle, l'instruction 1 est exécutée, sinon c'est l'instruction 2 qui l'est.

Le else <instruction2> peut être omis, dans ce cas si l'expression est fausse on passe à l'instruction suivant le if (<expression>) <instruction1>

Exemple : calcul du double d'un nombre positif (géant, non ?)

#include <stdio.h>
main() {
   int nombre,result;
   printf("Entrez votre nombre :");
   scanf("%d",&nombre);
   if (nombre <0)
      printf(" Votre nombre est négatif.\n");
   else {
      result=2*nombre;
      printf("Le double de %d est %d\n",nombre,result);
   }
}

Oh lui ! Où va-t-il chercher des choses aussi grandioses ? La fée C le sponsorise-t-elle ? Connaît-il Bernard Tapie ? Quand est-ce qu'on mange ? Que nenni, que nenni glapissais-je haut et fort, et je vous explique : le programme, que vous pouvez baptiser "exemple.c", est constitué tout d'abord par l'inclusion de la bibliothèque stdio.h puisque nous allons utiliser des fonctions d'entrée-sortie (printf, scanf) définies dans stdio.h. Ensuite, vient le programme principal main(){...}. On déclare alors toutes les variables du programme "nombre" et "result" qui sont deux entiers donc déclarés avec "int".

On demande d'entrer le nombre par un "printf" que l'on récupère par un "scanf (%d" puisque nombre entier que l'on stocke dans "nombre" (&nombre)). Nous arrivons à l'illustration du if-elsc : if (<expression>) est ici if (nombre <0) c'est-à-dire que l'on teste si le nombre entré est négatif. Si c'est le cas, on va exécuter l'<instruction1>, ici l'affichage par "printf" fait que le nombre est négatif.

Remarque : l'instruction1 est ici une instruction élémentaire, c'est-à-dire qu'il n'y a qu'une seule instruction terminée par le ";". De même, la présence de ce ";" entre le "if" et le "else" peut paraître quelque peu déroutante mais se comprend aisément lorsqu'on se réfère à la définition du if-else.

Par contre, pour le else <instruction2>, instruction2 va être composée par un bloc (une suite d'instructions encadrée par {}).

Dès à présent pensez à bien indenter vos programmes : on met l'accolade ouvrante à côté de l'instruction à laquelle elle se rapporte ( else {, if (...) {, main() { ), on écrit les instructions du bloc sur les lignes suivantes, décalées d'une tabulation, l'accolade fermante sera affichée sous l'instruction qui l'ouvrait.

Donc notre bloc du else contient deux instructions élémentaires terminée par un le calcul du double dans "result" puis l'affichage des résultats. A ce propos, deux mots explicatifs. La chaîne de caractères entre guillemets du "printf" contient tout ce qui va être affiché à l'écran : du texte évidemment, mais aussi les valeurs de nos variables ; celles-ci sont remplacées dans la chaîne de caractères par autant de "%d" que l'on veut afficher de variables (%d car les variables sont entières). Après le guillemet fermant on donne dans l'ordre souhaité d'affichage le nom des variables séparé par des virgules. A l'affichage le premier "%d" sera remplacé par la valeur de nombre, le second "%d" sera remplacé par la valeur de result. Enfin, le "\n" à la fin de la chaîne de caractères indique au curseur de revenir en début de ligne suivante (return). Ce caractère de contrôle permettant de sauter une ligne peut être affiché n'importe quand dans la chaîne de caractères d'un "printf".

Le programme se termine par la fermeture de l'accolade du bloc du "else" puis de celle du "main".

Enfin, sachez que dans l'expression du "if", là où nous avons employé le test "<", on peut utiliser les opérateurs <, >, <=, >=, != (différent de), == (égal à).

Remarque : "=" est le symbole d'affectation (x=4; x reçoit 4) alors que "==" est le symbole de test d'égalité (x==4, x est-il égal à 4).

Conclusion

Bien, je vais devoir vous quitter, il y a la porte de la fortune qui commence à la télé. Alors bon apétit, et pensez à mettre votre bonnet quand vous sortirez : de la neige est prévue pour août dans le Luberon.


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]