informatique smpc5 fgf, Exercises of Science education

deazzegfre geggg dsf sfsgr gg th h th th t ht f s gg fg d fg fd

Typology: Exercises

2019/2020

Uploaded on 12/17/2020

Wassil
Wassil 🇹🇳

3 documents

1 / 128

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Le Langage
C
1
Mohamed Rahal
Année universitaire 2019/2020
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Partial preview of the text

Download informatique smpc5 fgf and more Exercises Science education in PDF only on Docsity!

Le Langage

C

Mohamed Rahal

[email protected] Année universitaire 2019/

Plan du cours (1)

1. Introduction

2. Types, opérateurs et expressions

3. Les entrées-sorties (printf, scanf, …)

4. Les structures de contrôle

5. Les tableaux

Langages informatiques

 Un langage informatique est un outil permettant de

donner des ordres ( instructions ) à la machine

  • A chaque instruction correspond une action du processeur 

Intérêt : écrire des programmes (suite consécutive

d’instructions) déstinés à effectuer une tache donnée

  • Exemple: un programme de gestion de comptes bancaires 

Contrainte: être compréhensible par la machine

Langage machine

 Langage binaire : l’information est exprimée et manipulée sous

forme d’une suite de bits

 Un bit ( binary digit ) = 0 ou 1 (2 états électriques)

 Une combinaison de 8 bits= 1 Octet  28  256 possibilités qui permettent

de coder tous les caractères alphabétiques, numériques, et symboles tels que ?,*,&, …

  • Le code^ ASCII^ ( American Standard Code for Information Interchange )^ donne les correspondances entre les caractères alphanumériques et leurs représentation binaire, Ex. A= 01000001, ?=

 Les opérations logiques et arithmétiques de base (addition,

multiplication, … ) sont effectuées en binaire

Langages haut ^ niveau

Intérêts multiples pour le haut niveau:

  • proche du langage humain «anglais» (compréhensible)
  • permet une plus grande portabilité (indépendant du matériel)
  • Manipulation de données et d’expressions complexes (réels, objets, a*b/c, …)

 Nécessité d’un traducteur (compilateur/interpréteur),

exécution plus ou moins lente selon le traducteur

Code source en langage évolué Langage machine Compilateur ou interpréteur

Compilateur/ interpréteur

 Compilateur: traduire le programme entier une fois pour toutes

    • plus rapide à l’exécution
    • sécurité du code source
    • il faut recompiler à chaque modification

Interpréteur: traduire au fur et à mesure les instructions

du programme à chaque exécution

    • exécution instantanée appréciable pour les débutants
    • exécution lente par rapport à la compilation Compilateur exemple.c exemple fichier source (^) fichier exécutable exécution exemple.bas fichier source Interprétation+exécution

Historique du C  (^) Le langage C a été conçu en 1972 dans «Bell Laboratories » par Dennis Ritchie avec l’objectif d’écrire un système d'exploitation (UNIX).  (^) En 1978, une première définition rigoureuse du langage C ( standard K&R-C ) a été réalisée par Kernighan et Ritchie en publiant le livre «The C Programming Language ».  (^) Le succès du C et l’apparition de compilateurs avec des extensions particulières ont conduit à sa normalisation.  (^) En 1983, l’organisme ANSI (American National Standards Institute) chargeait une commission de mettre au point une définition explicite et portable pour le langage C. Le résultat est le standard ANSI-C.

Caractéristiques du C  (^) Universel : n'est pas orienté vers un domaine d'application particulier (applications scientifiques, de gestion, …)  (^) Près de la machine : offre des opérateurs qui sont proches de ceux du langage machine (manipulations de bits, d’adresses, …)  efficace  (^) Modulaire: peut être découpé en modules qui peuvent être compilés séparément  (^) Portable: en respectant le standard ANSI-C, il est possible d'utiliser le même programme sur plusieurs systèmes (hardware,système d'exploitation ) Remarque : Une programmation efficace et compréhensible en C n'est pas facilement accessible à des débutants

Compilateurs C

 Pour pouvoir écrire des programmes en C, vous avez

besoin d’un compilateur C sur votre machine

Il existe plusieurs compilateurs respectant le standard

ANSI-C. Une bonne liste est disponible sur :

c.developpez.com/compilateurs/

Nous allons utiliser l'environnement de développement

Dev-C++ avec le système d’exploitation Windows

Vous pouvez télécharger Dev-C++ librement, par exemple

sur le site www.bloodshed.net

Exemple d’une fenêtre Dev-

C++

Remarques sur ce premier programme  (^) #include<stdio.h> informe le compilateur d’inclure le fichier stdio.h qui contient les fonctions d’entrées-sorties dont la fonction printf  (^) La fonction main est la fonction principale des programmes en C: Elle se trouve obligatoirement dans tous les programmes. L'exécution d'un programme entraîne automatiquement l'appel de la fonction main.  (^) L’appel de printf avec l’argument "notre premier programme C\n" permet d’afficher : notre premier programme C et \n ordonne le passage à la ligne suivante  (^) En C, toute instruction simple est terminée par un point-virgule ;  (^) Un commentaire en C est compris entre // et la fin de la ligne ou bien entre /* et */

Chapitre

Variables, types, opérateurs et

expressions

Les identificateurs Le choix d’un identificateur (nom d’une variable ou d’une fonction) est soumis à quelques règles :  (^) doit être constitué uniquement de lettres, de chiffres et du caractère souligné _ (Eviter les caractères de ponctuation et les espaces) correct: PRIX_HT, prixHT incorrect: PRIX-HT, prix HT, prix.HT  (^) doit commencer par une lettre correct : A1, A (y compris le caractère souligné) incorrect: 1A  (^) doit être différent des mots réservés du langage : auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned voidvolatile while Remarque : C distingue les majuscules et les minuscules. NOMBRE et nombre sont des identificateurs différents

Les types de base  (^) Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre et le nombre d'octets à lui réserver en mémoire  (^) En langage C, il n’y a que deux types de base les entiers et les réels avec différentes variantes pour chaque type Remarques:  (^) Un type de base est un type pour lequel une variable peut prendre une seule valeur à un instant donné contrairement aux types agrégés  (^) Le type caractère apparaît en C comme cas particulier du type entier (un caractère est un nombre entier, il s’identifie à son code ASCII)  (^) En C il n'existe pas de type spécial pour chaînes de caractères. Les moyens de traiter les chaînes de caractères seront présentés aux chapitres suivants  (^) Le type booléen n’existe pas. Un booléen est représenté par un entier (un entier non nul équivaut à vrai et la valeur zero équivaut à faux)