Publié le 18/05/2016
Auteur James
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Premier pas avec une application en C

Dans l'article précédent, nous avons vu des notions de base en C comme le fonctionnement du compilateur, la structure du programme ou encore les opérateurs. Maintenant, nous allons aborder la saisie de valeur par l'utilisateur, le contrôle de l’exécution et les type de données.

Saisie de valeur par l'utilisateur

Pour l'instant, mon programme manque un peu d'interactivité : l'idéal serait que l'utilisateur puisse choisir la température qu'il veut convertir et que le programme lui donne la réponse. Pour cela, il faut une fonction capable de lire des caractères alpha-numériques au clavier et de les stocker dans une variable. Cette fonction s'appelle scanf. Elle ressemble beaucoup à printf :
Voici le nouveau programme :
    #include <stdio.h>
    main () {
      int centigrade, farenheit;
 
      printf("Entrez la température en degrés centigradenT=");
      scanf("%d", &centigrade);
 
      farenheit = 32 + 1.8 * centigrade;
      printf("n%d°C = %d°Fn", centigrade, farenheit);
 
      return 0;
    }

Sans entrer dans les détails, scanf, comme printf, utilise une chaîne de caractères et une liste de variables. La chaîne de caractères identifie le format dans lequel les données seront entrées (ici en format d'entier décimal), et la liste de variables indique dans quelles variables ces données seront stockées. Toutes les variables utilisées dans scanf doivent commencer par le caractère & tant qu'elles ne sont pas des chaînes de caractères
Vous pouvez dès à présent de programmer par vous même des petits convertisseurs (entre les bases, de francs en euros etc...).

Note: Le préprocesseur est une des premières étapes de la compilation. Pour l'instant, la seule instruction du préprocesseur qui a été utilisée est #include, mais il y en a d'autres. #define sert à définir une constante. Cette constante sera remplacée avant la compilation. Pour une constante utilisée une seule fois, un #define n'est pas très utile, en revanche si la constante est utilisée 100 fois, il suffit de modifier la ligne #define au lieu de modifier les 100 occurrences de la constante.
Par exemple:
    #include <stdio.h>

    #define UN 1
    #define PI 3.141593
    #define AUTEUR "C.Szymanski"

    main () {
      printf("a=%dnpi=%fnProgramme écrit par %sn", UN, PI, AUTEUR);
 
      return 0;
    }

Par convention, les constantes sont écrites en majuscules.

Contrôle de l’exécution

Dans une application, nous avons besoin de test logique, de boucle et de condition pour faire fonctionner le programme.

La boucle while

Elle s’exécute tant qu'une condition est vraie. Par exemple, le programme qui affiche le tableau des températures:
    #include <stdio.h>
    main () {
      int centigrade, farenheit;
 
      printf(" °C  ->  °Fn");
      centigrade = -20;
      while(centigrade <= 50) {
        farenheit = 32 + centigrade * 1.8;
        printf(" =  ]n", centigrade, farenheit);
        centigrade += 5;
      }
 
      return 0;
    }

Les conditions: pour exprimer une condition, on utilise des opérateurs spécifiques < > <= >= != ==
Les symboles sont respectivement inférieur, supérieur, supérieur ou égal, inférieurs ou égal, différent et égal à.
Remarque : Comme on peut utiliser le = dans une expression pour donner une valeur à une variable, il faut utiliser == pour tester si deux valeurs sont égales.

Le bloc if

C'est un des plus utilisés en programmation, il sert à vérifier une condition.
    if (condition1) { %1% }
    elseif (condition2) { %2% }
    ...
    else { %x% }
    %s%

%1% est exécuté si condition1 est vraie ensuite le programme passe à %s% (même si condition2 est vraie). Si condition1 est fausse et que condition2 est vraie, alors %3% est exécuté etc... %x% est exécuté si condition1 condition2 condition3... sont toutes fausses.

Les types de données

Cette partie décrit de façon détaillée tous les types de données. Les apprendre par coeur n'est pas nécessaire, il faut juste savoir quel type de valeur ils servent à représenter.

type int :
Le type int sert à représenter des nombres entiers. Il utilise soit 16bits soit 32bits.
On déclare tout simplement une variable de type int par la commande int :
int chiens, chats, vaches, poussins;
On peut l'initialiser dès sa déclaration :
int chiens = 3, chats = 5, vaches = 10, poussins = 4;

type char :
Le type char sert à représenter un caractère. Il a la capacité d'un octet (256 valeurs maximum). On le déclare par la commande char :
char c, reponse, lettre;
On peut l'initialiser de différentes façons :
Soit par un caractère :
char c = 'A';
Soit par un nombre qui correspond au code ASCII du caractère :
char c = 65;

type float :
Le type float sert à représenter des nombres décimaux à virgule flottante. Le type float a généralement une capacité de 32 bits. Ils peuvent représenter les nombres à virgule de +/- 10-37 à 1038 avec une précision de 6 ou 7 chiffres après la virgule.
On les note en utilisant la lettre 'e' suivie d'un nombre entier représentant l'exposant.
6.36x10^-34 est noté 6.36e-34
on peut aussi le noter .636e-33 ou encore 636e-36
Il existe aussi un autre type, servant à représenter des nombres plus grands, plus petits, ou plus proches de 0 que le type float, c'est le type double. Il a généralement une capacité de 64bits ce qui lui permet de représenter de +/- 10-307 à 10308.
Les règles de déclaration et d'initialisation sont les mêmes :
float soleil = 2e30;

Leur utilisation avec printf se fait grâce à %f (pour float et double) qui affiche en notation décimale et %e qui affiche en notation exponentielle.
Remarque : unsigned supprime le signe, ce qui signifie qu'on peut représenter des nombres de 0 à 1076 en utilisant unsigned float.

On peut convertir n'importe quelle variable dans n'importe quel type. Considérons le programme suivant :
    float nombre;
    nombre = 3.14;
    printf("%f n", (int)nombre);

On obtient un 3 ; pourtant on a utilisé %f. (int) a simplement converti nombre en entier.
Cette méthode fonctionne avec tous les types possibles.

Les tableaux :
On peut créer un tableau à plusieurs dimensions. Chaque élément contient le même type de données. Par exemple :
int nombre[20];
Crée un tableau de nombres entiers. Il y en a 20 : nombre[0], nombre[1], nombre[2]... nombre[19].
Dans un programme, voici ce que ça donne :
    int main() {
      int suite[50], i;
 
      suite[0] = 0;
      suite[1] = 1;
      for (i=2; i<=50; i++)
        suite[i]=suite[i-1]+suite[i-2];
 
      for (i=0; i<50; i++)
        printf("%d: %dn", i, suite[i]);
 
      return 0;
    }

Ce programme calcule puis affiche les 50 premiers éléments de la suite de Fibonacci. Chaque élément de la suite est la somme des deux précédents.


J'espère que les deux tuto sur le langage vous à plus et vous sera utile. Il y a encore beaucoup de choses à voir ensemble comme les pointeurs, la copie de variable et le tri de liste. Restez à l'écoute, je publierais surement d'autres articles sur l'utilisation du langage C pour apprendre à utiliser ces instructions dans vos programmes.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
tuto - webmaster
Mise a jour
18/05/2016
Visualisation
vu 4814 fois
Public
Internaute
Auteur de la publication
James
Membre junior
Auteur de 6 articles
|BIO_PSEUDO|
Commentaires récents

Publié par LMNP occasion dans logiciel

Bonjour,
Je me demandais si ce logiciel permet de trouver les Whois masques.
Merci de votre reponse.

Publié par Fobec dans CMS

//une variante avec UrlMon
uses
UrlMon;

function GetPageContent(URL: string): string;
var
MyFile: file;
Buf: array[0..14] of Char;
Filename: string;

Publié par piranhas dans java

bonjour, je veux te signaler que la piece jointe est fausse car il n\'y pas de liaison entre le modele et la vue, toutes le information passe par le controlleur.

Publié par Diégo DELPY dans CMS

IL FAUT IMPERATIVEMENT DONNER DES CHEMINS COMPLETS à pFrom et à pTo, sinon ça marche
bizzarrement.
Exemple :

// Chemin relatif : PAS BON !
pFrom := \'Bureau\\Tél...

Publié par Elvine dans java

Bonsoir, je voudrais savoir si ce code peut etre utilise avec Netbeans