Cours de C

Concepts de Base


Notion d'environnement (Déclarations)

● Environnement : ensemble d'objets nécessaires à la résolution d'un problème (déclaration des objets)
Ex. modéle Surface-Disque
Paramètre: R, S
Relation: S = pR2
Environnement: R, S

● En conclusion
Pour programmer un problème sur ordinateur:
Il faut commencer par définir son environnement (déclarer ses objets)

● Deux sortes d'objets de base:
Variables
Constantes

● Ex. Calcul de S à partir de la formule: PI * R * R
Variables: R, S
Constante: PI (3.14)

● Représentation physique en mémoire:
Variable
nom ou identificateur (pour référencer la variable en mémoire).
Type (pour définir sa forme ou sa taille en MC).
Valeur (pour définir sa situation à un moment donné) Le nom et le type sont fixes, La valeur est variable.
Constante
Type.
Nom.
Valeur.
Le nom, le type et la valeur sont fixes.

● Les types d'objets:
Numérique entier (int)
réel (float)
Caractère ou chaîne de caractères (char)
double précision (double)
Logique (ou booléen) (bool)
Pointeur (*)

● Déclaration des variables
En C, les variables sont déclarées au début d'un loc
Un bloc est limité par { et }
Un bloc est composé éventuellement de déclarations et/ou d'instructions.

int a, b;
int c = 0;
float x, y, z;
char m;
bool n;
● Déclaration des Constantes
Déclarer la constante dans la section "const"
Utiliser la directive #define qui permet de emplacer constamment un symbole par la chaîne de caractères qui définit sa valeur
● Rq. On peut utiliser "#define" aussi pour remplacer un appel de fonction ou de procédure
Algorithmique C
Constante C1 = 'a' const char C1 = 'a';
ou
#define C1 'a'
C2 = '#13' (Return) const char C2 = '\13';
ou
#define C2 '\13'
style="padding: 10px;"C3 = "abc" const char C3 = "abc";
ou
#define C3 "abc"
Nmax = 100 const int Nmax = 100;
#define Nmax 100
#define fin printf("Fin de programme")

Les types d'object simples

● Type Entier

C Valeur sur des mots 16 bits
char -128...127
unsigned char 0...255
int / short int / short -32768...32767
unsigned int / unsigned 0...65535
long int / long -2147483648...2147483647
unsigned long int 0...4294967295

● Type Réel

C Valeur sur des mots 16 bits
float 3.4 E-38...3.4 E38
long float / double 1.7 E-308...1.7E308
long double 3.4 E-4932...1.1 E4932

● Type Caractère

Algorithmique C
Caractère char
Exemple:
Algorithmique C
C : Caractère
c ← "b"
char c;
c= 'b';

Remarque:

Le type "char" représente en même temps le caractère et son code ASCII.

● Type Booléen

bool x;
x = true;
Les opérateurs logiques:
Algorithmique C
Vrai 1 ou true
Faux 0 ou false
Non et Ou ! && ||

Les intructions de base

● Affectation

Algorithmique C
<Variable> ← <Expression> <Variable> = <Expression>;
Exemple:
Algorithmique C
i ← i + 1 i = i + 1;

● La spécification de format permet de préciser le format des variables à lire dans l'ordre

● Le format de chaque variable est décrit par un code commençant par le caractère "%" suivi d'un symbole qui dépend de la variable décrite

Type Format du type
int %d %X - Affiché en décimal ou en hexadécemal
unsigned int %u %o %x - Affiché en décimal, en octal ou en hexadécemal
long %ld
unsigned long %lu
float %f %e %E - notations décimale, exponentielle avec e ou E
double %lf %le %lE - notations décimale, exponentielle avec e ou E
long double %lf %le %lE
char %c - caractère
char* %s - chaîn de caractères

● Lecture

Algorithmique C
Lire(<Variable1>, <Variable2>, ...) scanf(<spécification-format>, <adresse-variable1>, <adresse-variable2>, ...);
ou
<Variable-Caractàre> = getchar();
ou
gets(<Variable-Chaîne>;

● L'adresse de la variable à lire est notée par le caractère « & » suivi du nom de la variable.

● Des séparateurs peuvent être utilisés.

● Si on place l'un des séparateurs suivants entre deux valeurs consécutives, on a:

Séparateur Signification
<espace> Caractère "espace" entre les deux valeurs consécutives.
\t Caractère "tabulation".
\b Caractère "curseur arrière".
\r Caractère "retour" début de ligne.
\n Caractère "fin de ligne".
\" Caractère """.
\\ Caractère "\".
\0 Caractère "NULL" ou vide.
\a Caractère "Bip sonore"
Exemples:
● Lecture d'un entier a:
scanf("%d", &a);
● Lecture d'un réel b:
scanf("%f", &b);
● Lecture d'un caractère r:
scanf("%c", &r);
● Lecture avec séparateur:
scanf("%d %f %c", &a, &b, &r);

● Ecriture

Algorithmique C
Ecrire(<Expression1>[:<format>], <Expression2>[:<format>]) printf(<spécification-format>, <expression1>, <expression2>,...);
ou
putchar(<VariableCaractère>);
ou
puts(<VariableChaîne>);
Exemples:
● Afficher un message:
printf(" ***** Bonjour à tous ***** ");
puts(" ***** Bonjour à yous ***** ");

● Afficher une variable de type entier:
printf("%d", a);

● Afficher une variable de type réel:
printf("%.2f", b);

● Afficher une variable de type caractère:
printf("%c", r);

● Afficher message et variables:
printf("Les valeurs saisies : %d %f %c \n", a,b,r);

#include <stdio.h>

void main()
{
char c = 'A';
c = c + 1;
// Le résultat est 'B'
printf("%c \n", c);
// Le résultat est le code ASCII 98
printf("%d \n", c);
}
=