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
Programming in C · PDF · 13 pages · 2020
Afficher l'aperçu du document
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 |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
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 xPriorité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 :
- Parenthèses :
() - Opérateur logique de négation et incrément/décrément :
! ++ -- - Multiplication, division, modulo :
* / % - Addition et soustraction :
+ - - Comparaisons :
< <= > >= - Égalité et différence :
== != - Et logique :
&& - Ou logique :
|| - 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 |
|---|---|---|
| int | Dépend de la machine | Dépend de la machine |
| unsigned int | Dépend de la machine | Dépend de la machine |
| short | 2 | [-32768, 32767] |
| unsigned short | 2 | [0, 65535] |
| long | 4 | [-2^31, 2^31-1] |
| unsigned long | 4 | [0, 2^32-1] |
| char | 1 | [-128, 127] |
| unsigned char | 1 | [0, 255] |
| float | 4 | [-3.4*10^38, 3.4*10^38] |
| double | 8 | [-1.7*10^308, 1.7*10^308] |
| long double | 10 | [-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 %d | Nombre entier |
| %u | Nombre entier non signé |
| %c | Caractère |
| %f | Nombre à 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.
Commentaires
Aucun commentaire pour le moment. Posez la première question.