Langage C

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Langage C as PDF for free.

More details

  • Words: 1,420
  • Pages: 10
Langage C INTRODUCTION •





Langage machine  101110011101111011 001001110010100110  Propres au microprocesseur  On peut TOUT faire (TOUT programmer) Langages évolués  C – Pascal – Basic Système – Math – Débutant Cobol – RPG… Gestion  C : D. Ritchie • B. Kerningham (1968)  Le 1er UNIX a été programmé en C  Portabilité des programmes Les types de programmation  Les langages procéduraux (C, Cobol)  La prog. orientée objet (JAVA)  La programmation web (XML , PHP, HTML,…)





Langage assembleur  1 instruction lang. machine = 1 instruction assembleur  |ZAP|I, ZERO i=c |APZ|I, C  On peut TOUT programmer Langages de 4ème génération  JAVA .NET WINDEV PowerBuilder …

pas de la prog. c’est un META langage

CHAPITRE 1 : PREMIERS PAS 1.1. Exemple de programmes C Soit écrire un programme qui calcule la surface d’un cercle en fonction de son rayon. Illustration : Rayon : 2.5 Surface = 19.63… Code source :

1

1.2. • • • 1.3. •

Identificateurs Le C fait la différence entre MAJ et min. Le premier caractère doit être une lettre Un ID peut-être composé de lettres et/ou de chiffres et/ou de _ (underscore) Les données Les variables

int float char (4bytes) (4bytes) (1byte) • Les constantes (4bytes) entières décimales : 0, 1, 753, 999, -78 (4bytes) entières octales(8) : 01361, 01747, -0116 (4bytes) entières hexa(16) : 0x0, 0x1, 0x2F1, 0x3E7, -0x4E (4bytes) (1byte)

réelles : 0., 43.7, 2E-8, -78.7, -2E-8 caractères : ‘a’, ‘A’, ‘3’, ‘ !’, …

Ecrire un programme C qui calcule la cotisation et le salaire net à partir du salaire brut. Illustration : Salaire brut : 3000.5 Cotisation : 420.07 Salaire net : 2580.43 Code source :

2

CHAPITRE 2 : LES TYPES DE VARIABLES 2.1 Rappel Binaire 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Octal 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17

Hexa 0 1 2 3 4 5 6 7 8 9 A B C D E F

Exercice : Représentez le contenu de a : -en binaire -en hexa Représentez le contenu de car1 et car2 : -en binaire -en hexa Code source :

Représentations : a=78 ; 4E a = 0000 0000 0100 1110 0 0 4 E C=43(16) car1 = 0100 0011 111=6F(16) car2 = 0110 1111

3

Décimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

2.2 Rappel sur entiers en mémoire Notion de complément à 2 : Soit 56(10) devant être codifié dans une variable de type short int. 0000 0000 0011 1000 0  nombre positif ou nul  +56 56(10)=38(16) Soit -56(10) devant être codifié dans une variable de type short int. -56(10)=-38(16)  +56(10) : 0000 0000 0011 1000 Cpl à 1 : 1111 1111 1100 0111 +1: + 1 Cpl à 2 : 1111 1111 1100 1000 1  nombre négatif +56(10) : 0038 Cpl à 15 : FFC7 +1 : + 1 FFC8

Ejecté car

0038 +FFC7 10000

Exercice :

Représentez le contenu de a et b : -en binaire -en hexa E a = 78  4 a = 0000 0000 0100 1110 0 0 4 E +78 b = -120  120  0078 120 = 0000 0000 0111 1000  0078 0 0 4 8 Cpl à 1 : 1111 1111 1000 0111 FF87 + 1 + 1 1111 1111 1000 1000 FF88

4

Représentez le contenu de car1 et car2 : -en binaire -en hexa car1 = 0101 1111 5 F car2 = 1000 0010 8 2 car1 = 95  5F car2 = 130  82 Binaire 1000 0010 0111 1101 c à 1 + 1 0111 1110 c à 2 7 E  126 2.3 Les types de variables 2.3.1 Introduction DONNEE VARIABLE

CONSTANTE

Doit être déclarée Ne doit pas être déclarée • La déclaration permet de fixer : - Le type de donnée - Et parfois une valeur initiale • Le type de donnée permet de fixer : - L’ensemble des valeurs admissibles - Le nombre de bytes en RAM - Les opérateurs qu’on peut appliquer • Format de déclaration : [,var2,…] ; int a ; 4 bytes int c, b ; On peut ajouter un qualificateur de type : ou short int a ;  2bytes short a ;

5

2.3.2 Les variables caractères 2.3.2.1 Le type char Pourquoi de -128 à 127 ? char car ; car=0 ; //0000 0000 car=1 ; //0000 0001 car=2 ; //0000 0010 … … car=127; //0111 1111 car=-128; //1000 0000 … … Expérience Qu’afficheront les programmes suivants ? a)

b)

2.3.2.2 Le type unsigned char • Dans un contexte ASCII, rien ne change Ex :



6

Dans un contexte arithmétique, son domaine s’étend de 0 à 255 car on ne tient plus compte du bit de signe. a)

car1 = 0000 0000 0000 0000 0000 0000 0000 0000 3 bytes 1 byte car2 = 0000 0000 0000 0000 0000 0000 1111 1111 3 bytes 1 byte 01 FE +1 FF  -1 b) Idem mais car1 et car2 sont en char car1 = 0000 0000 0000 0000 0000 0000 0000 0000 3 bytes 1 byte car2 = 1111 1111 1111 1111 1111 1111 1111 1111 F F F F F F F F 00 00 00 00 00 00 00 00 +1 00 00 00 00 00 00 00 01 Affichage : 0 0 4294967295 -1 -1 Exemples supplémentaires : C2-1 0100 0001  car1 0110 0001  car2 4 1 6 1 car1=A car2=a Affichage n°1: car1 : A car2 : a Affichage n°2: car1 : Z car2 : z 0101 1010  car1 5 A car1=90 C2-2 0100 0001  car1 Affichage n°1: Affichage n°2:

0110 0001  car2 7 A car2=122 0110 0001  car2 car1 : A car2 : a car1 : Z car2 : z

0000 0000 0000 0000 0000 0000 0101 1010  car1 (90)10 0000 0000 0000 0000 0000 0000 0111 1010  car2 (122)10 7

2.3.3 Les variables entières 2.3.3.1 Le type short ou short int C2-3 Que se passe-t-il si on entre : a) 5 b) -5 c) 32.767 10 5 2 a) 0005  5 000A  10 000F  15

a : 5 b : 10 15

b) FFFB  -5 0005  5 1 0000  0

a : -5 b : 5 0

c) 7FFF  32.167 0002  2 8001

a : 32.767 b : 2 -32.767

1000 0000 0000 0001 8001 7FFE + 1 7FFF  32.767 2.3.3.2 Le type unsigned short ou unsigned short int C2-4 short 8000  %hd = -32.768  %hu = 32.768 unsigned short 8000  %hu = 32.768  %hd = -32.768 Affichage : -32.768 32.768 0

-32.768

32.768

2.3.3.3 Le type int 2.3.3.4 Le type unsigned int 2.3.3.5 Le type long ou long int 2.3.3.6 Le type unsigned long ou unsigned long int 2.3.3.7 Quelques erreurs à éviter avec les entiers A savoir : Entier par entier  entier Entier par réel  réel Réel par entier  réel Réel par réel  réel 8

C2-5 100 50 41 33 ? z0 z1 z2 z3 z4 z1=z0/2 ; 100/2 50

z2=z0/2.4 ; 100/2.4 ; 41.666…

z3=z0/3 ; 100/3 33

z4=z1/z2*z3 ; 50/41*33 1 33

Affichage : Le résultat : 100 50 41 33 Z4 = 33 2.3.4 Les variables réelles • Il s’agit de la représentation en VFN (Virgule Flottante Normalisée) • L’ordinateur calcule toujours faux en réel • Le 0 absolu n’existe pas 2.3.4.1 Le type float 2.3.4.2 Le type double 2.3.4.3 Le type long double TYPE NB BYTES EN CONSTANTE MASQUE DOMAINE ALGÉBRIQUE RAM char unsigned char short int unsigned shor int

unsigned int long int unsigned long int

1 1 2 2 2 pour 16 bits 4 pour 32 bits " 4 4

float

4

double

8

%lf

long double

12

%Lf

int

9

‘Z’ ‘Z’

%c ou %d %u ou %d %hd %hu

7, 0x45

%d ou %i

56u, 0x45u 56, 0x45 56u, 0x45u

%u %ld %lu

6.7, 3.0

%f

-128->0->127 0->255 -32.768->0->32.767 0->65.535 -2.147.483.648->0-> 2.147.483.647 0->4.294.967.296 Même qu’int Même qu’unsigned -3.4x1038->1.17x10-38-> 1.17x10-38->3.4x1038 -1.79x10-308->-2.22x10-308-> 2.22x10-308->1.797x10308 -1.02x10-4923->-3.37x10-4932 ->3.37x10-4932->1.02x104932

2.1.1

Les séquences d’échappement C2-6 Cours de langage De

programmation

Fonction

Echappement

Code ASCII

Sonnerie Backspace Tabulation Retour à la ligne Retour chariot (début de ligne) Null byte

\a \b \t \n \r \0

7 8 9 10 13 0

10

Related Documents

Langage C
May 2020 17
Langage C
June 2020 16
Langage C
June 2020 12
Langage C
June 2020 16
Langage C
June 2020 15
Langage C
June 2020 13