Notions de base: Partie 2

Cette leçon couvre les notions de base de la programmation en langage C, en particulier les opérations d'entrée/sortie, les opérateurs fondamentaux, les types de données et leur gestion. Elle s'inscrit dans un cours d'initiation à la programmation, fournissant les outils essentiels pour manipuler des variables, effectuer des calculs et interagir avec l'utilisateur.

D'après le document Notions de base: Partie 2

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source

Notions de base: Partie 2

Programming in C · PDF · 13 pages · 2020

Afficher l'aperçu du document

Consulter le document original →

Cette leçon couvre les notions de base de la programmation en langage C, en particulier les opérations d'entrée/sortie, les opérateurs fondamentaux, les types de données et leur gestion. Elle s'inscrit dans un cours d'initiation à la programmation, fournissant les outils essentiels pour manipuler des variables, effectuer des calculs et interagir avec l'utilisateur.

Affichage des données avec printf

La fonction printf permet d'afficher des données à l'écran en suivant un format spécifié. Elle utilise une chaîne de format contenant des spécificateurs, suivie des arguments correspondants.

  • Pour afficher un entier :
    int x = 5; printf("%i", x);
  • Pour afficher un réel :
    float taille = 1.74; printf("%f", taille);
  • Pour afficher un entier et un réel simultanément :
    printf("%i %f", x, taille);
  • Pour afficher un message simple :
    printf("Bonjour");
  • Pour afficher un message suivi d'un entier :
    printf("La valeur de x est %i", x);

Lecture des données avec scanf

La fonction scanf permet de lire des données saisies par l'utilisateur, en fonction d'un format donné, et de stocker ces données dans des variables via leurs adresses.

  • Saisie d'un nombre réel :
    float pu; scanf("%f", &pu);
  • Saisie de trois entiers (jour, mois, année) :
    int j, m, a; scanf("%i %i %i", &j, &m, &a);
  • Saisie d'un entier et d'un réel :
    scanf("%i %f", &j, &pu);
  • Demander une valeur puis la saisir :
    printf("Donner une valeur de x:"); scanf("%i", &x);

Opérateurs de base en C

Opérateurs arithmétiques

  • + : addition (a + b)
  • - : soustraction (a - b)
  • * : multiplication (a * b)
  • / : division (entière ou flottante)
    • Si a et b sont entiers (exemple : a = 7, b = 2), alors a / b donne 3 (division entière).
    • Si l'un est réel (exemple : a = 7, b = 2.0), alors a / b donne 3.5 (division flottante).
  • % : modulo, reste de la division entière (exemple : 7 % 2 donne 1)
  • - unaire : négation (exemple : -a)

Opérateurs logiques

En C, il n'existe pas de type booléen natif. Les valeurs 0 et 1 sont utilisées pour faux et vrai respectivement. Toute valeur différente de zéro est considérée comme vraie.

  • && : et logique (AND)
  • || : ou logique (OR)
  • ! : négation (NOT)

Exemple de table de vérité :

a b a && b a || b !a
00001
01011
10010
11110

Exemples d'expressions logiques :

  • (4 < 10) donne 1 (vrai)
  • !(5 > 1) donne 0 (faux)
  • (5 > 1) || !(4 < 8) donne 1 (vrai)

Opérateurs de comparaison

Ils retournent 1 pour vrai et 0 pour faux :

  • == : égal à (a == b)
  • != : différent de (a != b)
  • < : strictement inférieur (a < b)
  • <= : inférieur ou égal (a <= b)
  • > : strictement supérieur (a > b)
  • >= : supérieur ou égal (a >= b)

Opérateurs d’affectation

L'affectation simple consiste à attribuer une valeur à une variable :

int x;
x = 4;

On peut modifier la valeur d'une variable en utilisant son ancienne valeur :

int x;
x = 2;
x = x + 1;

Les affectations combinées permettent d'écrire plus succinctement :

i = 3;
i = i + 1;
i += 1;

Incréments et décréments

  • ++ : augmente la valeur de 1 (x++; équivalent à x = x + 1)
  • -- : diminue la valeur de 1 (x--; équivalent à x = x - 1)

Exemple avec post-incrément :

int x = 3;
int y = x++;
// Après exécution : x = 4, y = 3

Exemple avec post-décrément :

x--;
y = x--;
// Après exécution : x = x - 1, y = valeur initiale de x

Priorités des opérateurs

L'ordre d'évaluation des opérateurs en C suit des règles proches des mathématiques. Voici les classes de priorité du plus fort au plus faible :

  1. Parenthèses : ()
  2. Opérateur logique de négation et incrément/décrément : ! ++ --
  3. Multiplication, division, modulo : * / %
  4. Addition et soustraction : + -
  5. Comparaisons : < <= > >=
  6. Égalité et différence : == !=
  7. Et logique : &&
  8. Ou logique : ||
  9. Affectations : = += -= *= /= %=

Par exemple, dans l'expression :

x = 2 + a - 5 * 4 - b / c + 6;

Les multiplications et divisions sont évaluées avant les additions et soustractions.

Exemple complet : calcul de moyenne

Le programme suivant demande à l'utilisateur de saisir deux notes, puis calcule une moyenne pondérée :

#include <stdio.h>
void main()
{
    float note_ex, note_cc, moyenne;
    const float coef_ex = 0.8, coef_cc = 0.2;

    printf("Donner la note de l’examen: ");
    scanf("%f", ¬e_ex);
    printf("Donner la note du controle continu: ");
    scanf("%f", ¬e_cc);

    moyenne = (note_ex * coef_ex) + (note_cc * coef_cc);

    printf("La moyenne de l’etudiant: ");
    printf("%f", moyenne);
}

Types de données en C

Le langage C propose plusieurs types de données de base :

  • Entiers : int, short (entier court), long (entier long)
  • Réels : float (décimal simple), double (décimal double), long double (décimal longue précision)
  • Caractères : char, qui est en réalité un type numérique représentant un code de caractère

Chaque type est caractérisé par :

  • Le domaine des valeurs possibles
  • Le nombre d'octets mémoire alloué
  • Les opérations possibles sur ce type

Tailles et domaines des types

Type Nombre d’octets Domaine
intDépend de la machineDépend de la machine
unsigned intDépend de la machineDépend de la machine
short2[-32768, 32767]
unsigned short2[0, 65535]
long4[-2^31, 2^31-1]
unsigned long4[0, 2^32-1]
char1[-128, 127]
unsigned char1[0, 255]
float4[-3.4*10^38, 3.4*10^38]
double8[-1.7*10^308, 1.7*10^308]
long double10[-3.4*10^4932, 1.7*10^4932]

Le nombre d’octets occupés par une variable de type T peut être obtenu avec l’expression sizeof(T).

Formats pour la lecture et l’écriture

Les fonctions scanf et printf utilisent des spécificateurs de format adaptés aux types de données :

Format Données
%i ou %dNombre entier
%uNombre entier non signé
%cCaractère
%fNombre à virgule flottante

Lecture et écriture de caractères

Pour lire un caractère, on peut utiliser :

char lettre;
scanf("%c", &lettre);

Ou bien :

lettre = getchar();

Pour afficher un caractère :

char lettre = 'A';
printf("%c", lettre);

Ou bien :

putchar(lettre);

Points clés

  • printf et scanf sont les fonctions principales pour afficher et lire des données en C.
  • Les opérateurs arithmétiques, logiques et de comparaison permettent de manipuler les données et de construire des expressions conditionnelles.
  • L’affectation peut être simple ou combinée, avec des opérateurs d’incrémentation et de décrémentation.
  • L’ordre de priorité des opérateurs est essentiel pour comprendre l’évaluation des expressions.
  • Les types de données en C ont des tailles et domaines variables selon la machine, avec des types entiers, réels et caractères.
  • Les formats de lecture/écriture doivent correspondre au type de la variable manipulée.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions