Notions de base: Partie 2
Année universitaire 2020/2021 – Semestre 1
1
Écriture des données (Affichage)
printf (“format”, [argument_1], [argument2],…)
// Affichage d’un entier
int x = 5; printf ("%i", x);
// Affichage d’un réel
float taille = 1.74; printf ("%f", taille);
// Affichage d’un entier et d’un réel
printf (“%i %f", x, taille);
// Affichage d’un message
printf (“Bonjour”);
// Affichage d’un message et d’un entier
printf (“La valeur de x est %i”, x);
2
Lecture des données (Saisie)
scanf(“format”, [argument_1, argument2,…])
// Saisie du prix d’un produit
float pu; scanf ("%f", &pu);
// Saisie du jour, mois et 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);
// Saisie d’un message et d’un entier
printf (“Donner une valeur de x:”); scanf ( “%i”, &x);
3
Opérateurs de base
Opérateurs arithmétiques :
+ : addition a + b
- : soustraction a – b
: multiplication a b
/ : division (entière et rationnelle) a / b
Si a et b sont des entiers (a = 7; b = 2) a / b donne 3
Si a ou b est un réel (a = 7; b = 2.0) a / b donne 3.5
% : modulo (reste de la division entière) a % b
a = 7; b = 2 alors a % b donne 1
-
: le moins unaire - a
4
Opérateurs de base
Opérateurs logiques:
Pas de type booléen en C.
1: vrai ou 0: faux
&& : et logique (AND)
|| : ou logique (OR)
! : négation (NOT)
a
0
0
1
Publicité
1
b
0
1
0
1
a && b
a || b
! a
0
0
0
1
0
1
1
1
1
1
0
0
Les opérateurs logiques considèrent toute valeur différente
de zéro comme vrai et zéro comme faux.
(4 < 10)
!(5 > 1)
(5 > 1) || !(4 < 8)
1 (vrai)
0 (faux)
1 (vrai)
5
Opérateurs de base
Opérateurs de comparaison : (1: vrai ou 0: 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
Les résultats des opérateurs de comparaison et des opérateurs
logiques sont du type int:
la valeur 1 correspond à la valeur booléenne vrai.
la valeur 0 correspond à la valeur booléenne faux.
6
Opérateurs d’affectation
Affectation simple
int x; x = 4;
Affectation simple
int x;
x = 2;
x = x + 1;
x
Publicité
4
x
3
Affectation combinée
expr1 = (expr1) op (expr2)
i = 3;
i = i + 1;
i += 1 ;
i
3
i
4
expr1 op= expr2
7
Opérateurs d’affectation
Incréments et décréments:
++ : augmentation de 1
x++;
x = x+1;
y = x++;
int x = 3;
x
y = x; x = x+1;
4
y
3
-- : diminution de 1
x--;
y = x--;
x = x-1;
y = x; x = x-1;
8
Priorités
L’ordre d ’évaluation des différentes parties d’une expression
est en principe le même qu’en mathématiques.
x = 2+a-5*4-b/c+6;
Classe de priorité:
Priorité 1 (la plus forte)
Priorité 2
Priorité 3
Priorité 4
Priorité 5
Priorité 6
Priorité 7
Priorité 8
Priorité 9 (la plus faible) : = += -= *= /= %=
: ()
: ! ++, --
: * / %
: + -
: < <= > >=
Publicité
: == !=
: &&
: | |
9
Exemple
#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);
}
10
Types en C
(1)
Dans le langage C:
Entier
: entier standard
int
short : entier court
long : entier long
Réel
float : décimal
double : décimal double
long double : décimal long double
Caractère
char : caractère
Le langage C implémente le type
char est en fait numérique.
Caractéristiques d’un type:
le domaine des valeurs admissibles.
Le nombre d’octets réservé pour une variable.
L’ensemble de ses opérations.
11
Types en C
(2)
Type
Nombre d’octets
Domaine
int
Ça dépend de la machine Ça dépend de la machine
unsigned int
Ça dépend de la machine Ça dépend de la machine
short
unsigned short
Publicité
long
unsigned long
char
Unsigned char
Float
double
long double
2
2
4
4
1
1
4
8
10
[-32768, 32767]
[0, 65535]
[-231, 231-1]
[0, 232-1]
[-128, 127]
[0, 255]
[-3.41038, 3.41038]
[-1.710308, 1.710308]
[-3.4104932, 1.7104932]
Nombre d’octets occupés par une variable de type T: sizeof (T)
12
Format pour Lecture / Ecriture
Lecture scanf
Écriture printf
Format Données
%i ou %d Nombre entier
Nombre entier non signé
Caractère
Nombre à virgule flottante
%u
%c
%f
…
Lecture d’un caractère: scanf ou getchar()
char lettre;
scanf (“%c”, &lettre)
lettre = getchar();
Ecriture d’un caractère: printf ou putchar()
char lettre = ‘A’;
printf (“%c”, lettre)
putchar (lettre);
13