Manipulation des types de données et opérateurs fondamentaux en langage C

Cette étude technique se concentre sur la manipulation des types de données de base en C (entiers, caractères, flottants) ainsi que sur l'aplication des opérateurs arithmétiques, logiques et d'affectation.

1. Transformation de caractères par décalage ASCII

L'objectif est de transformer une chaîne de caractères en appliquant un décalage de 4 posisions dans la table ASCII. Pour le mot "China", chaque lettre est stockée individuellement, incrémentée, puis affichée.

#include <stdio.h>

int main() {
    char letter1 = 'C', letter2 = 'h', letter3 = 'i', letter4 = 'n', letter5 = 'a';
    
    // Application du décalage de 4
    letter1 += 4;
    letter2 += 4;
    letter3 += 4;
    letter4 += 4;
    letter5 += 4;
    
    printf("Résultat du codage : %c%c%c%c%c\n", letter1, letter2, letter3, letter4, letter5);
    
    return 0;
}

2. Calcul commercial avec constantes et entrées utiliasteur

Ce programme utilise des constantes symboliques pour définir un prix unitaire et un taux de remise. L'utilisateur saisit une quantité comprise entre 399 et 899 pour calculer le montant total brut et net.

#include <stdio.h>

#define UNIT_PRICE 29.84
#define DISCOUNT_FACTOR 0.75

int main() {
    int quantity;
    float total_raw, total_discounted;
    
    printf("Veuillez saisir une quantité (entre 399 et 899) : ");
    scanf("%d", &quantity);
    
    if (quantity >= 399 && quantity <= 899) {
        total_raw = UNIT_PRICE * quantity;
        total_discounted = total_raw * DISCOUNT_FACTOR;
        
        printf("Prix total brut : %.2f\n", total_raw);
        printf("Prix après remise : %.2f\n", total_discounted);
    } else {
        printf("Quantité hors limite.\n");
    }
    
    return 0;
}

3. Évaluation d'expressions logiques et opérateurs séquentiels

L'exercice suivant analyse le comportement des opérateurs logiques (ET, OU) et de l'opérateur virgule dans des expressions complexes.

#include <stdio.h>

int main() {
    int i = 2, j = 3, k = 4;
    int res_x, res_y, res_z, res_n, res_m;
    
    res_x = (i + j < k) && i != j;
    res_y = (i + j < k) || i != j;
    
    // Utilisation de l'opérateur virgule
    res_z = (i + j, j + k); // res_z prend la valeur de la dernière expression
    res_n = i / j;
    res_m = (i + j, i / j, k % j);
    
    printf("x=%d, y=%d, z=%d, n=%d, m=%d\n", res_x, res_y, res_z, res_n, res_m);
    
    return 0;
}

4. Priorité des opérateurs d'affectation composée

Cet exemple illustre l'ordre d'évaluation lors de l'utilisation d'affectations multiples et composées (+=, -=, *=).

#include <stdio.h>

int main() {
    int val_a, val_b, val_c;
    
    // Affectation simple
    val_a = (val_b = 4) + (val_c = 6);
    printf("Valeur initiale de a : %d\n", val_a);
    
    // Affectations composées successives
    // L'évaluation se fait de droite à gauche
    val_a += val_a -= val_a * val_a;
    printf("Valeur finale de a : %d\n", val_a);
    
    return 0;
}

Étiquettes: C-Language ASCII-Encoding Arithmetic-Operators Data-Types Logic-Operators

Publié le 2 juin à 07h10