41
3.Premiers pas en 3.Premiers pas en programmation programmation P. Costamagna – ISEN N1

3.Premiers pas en programmation P. Costamagna – ISEN N1

Embed Size (px)

Citation preview

Page 1: 3.Premiers pas en programmation P. Costamagna – ISEN N1

3.Premiers pas en programmation3.Premiers pas en programmation

P. Costamagna – ISEN N1

Page 2: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 2

A. Caractéristiques d’un algorithmeA. Caractéristiques d’un algorithme

Doit être fini

Chaque instruction doit être définie sans ambiguïté

Doit s’appliquer à des données qui peuvent varier nature à préciser

Fournit au moins un résultat

Déroulement manuel

Page 3: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 3

A. Caractéristiques d’un algorithmeA. Caractéristiques d’un algorithme (suite1)(suite1)

Langage intermédiaire

Algorithme nom

Début

Suite

d’instructions

Fin

Langage C

Un problème posé ne conduit pas forcément à un algorithme unique.

void main ( )

{

Suite

d’instructions

}

Page 4: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 4

A. Caractéristiques d’un algorithmeA. Caractéristiques d’un algorithme (suite2)(suite2)

Bloc

Algorithme nom

Début

Suite d’instructions

Début

Suite d’inst.

Fin

Fin

Sous bloc

Indentation

Imbrication

Page 5: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 5

B. Données et instructionsB. Données et instructions

Un marteau enfonce le clou sur lequel il frappe. La scie façonne le morceau de bois qu’elle

tronçonne. Le potier modèle la glaise qu’il fait tourner.

Différence entre la matière qui est manipulée, et la manipulation qu’on lui fait subir.

En informatique on distingue les données et les instructions.

Page 6: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 6

C. Qu’est ce qu’une variable ?C. Qu’est ce qu’une variable ?

Casier

Page 7: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 7

C. Nom ou identificateurC. Nom ou identificateur

Règles

Exemples

NOM_DU_CLIENT, AX212 ok

12Z, Différence, Nom-Client incorrect

Choix judicieux

Page 8: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 8

C. Remarques sur les variablesC. Remarques sur les variables

Trompeuse similitude de vocabulaire entre les mathématiques et l’informatique.

variable inconnue

y=3x +2

nombre infini de variables x et y

Une fois un nom choisi pour représenter une variable, il ne pourra plus être modifié.

Mathématiques Informatique

une valeur et une seule

Page 9: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 9

D. Unité de mesureD. Unité de mesure

Bit

Octet

1 kilooctet (Ko) = 210 octets = 1 024 octets. 1 mégaoctet (Mo) = 220 octets = 1 024 ko =

1 048 576 octets. 1 gigaoctet (Go) = 230 octets = 1 024 Mo 1 téraoctet (To) = 240 octets = 1 024 Go 1 pétaoctet (Po) = 250 octets = 1 024 To

Page 10: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 10

E. Différents types de donnéesE. Différents types de données

1) Les entiers

2 octets = 16 bits Nbres positifs et

négatifs 1 bit signe

Le type de la variable détermine ce qu’elle peut contenir (valeurs maximale et minimale) et les opérations qui peuvent être appliquées.

Ensemble fini -32 768 à 32 767

Page 11: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 11

E. Différents types de données E. Différents types de données (suite1)(suite1)

1 bit 2 possibilités 0 et 12 bits 4 possibilités 00 (=0), 01 (=1), 10 (=2), 11 (=3)N bits 2N possibilités 0 à 2N - 1

Entiers courts (short int), codés sur 1 octet, compris entre -128 et 127

Entiers longs (long int) codés sur 4 octets

Page 12: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 12

E. Différents types de données E. Différents types de données (suite2)(suite2)

27 + 25 + 24 + 22 + 20 = 28 + 32 + 16 + 4 + 1 = 181

Bit de poids fort / faible

Bit poids Fort Bit poids

faible

Page 13: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 13

E. Différents types de données E. Différents types de données (suite3)(suite3)

2) Les réels ou flottants

Différentes représentations :- un entier décimal : 895- un nombre comportant un séparateur

décimal : 845.32           - une fraction : 27 / 11           - un nombre exponentiel: mantisse et

exposant puissance de 10 2.75 E -2 mantisse = 2.75 et exposant = -2

Page 14: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 14

E. Différents types de données E. Différents types de données (suite4)(suite4)

32 bits : 1 bit signe, 8 bits exposant et 23 bits restants mantisse,

Nbre restreint de valeurs en virgule flottante ( 2 milliards)Réels longs (double), codés sur 64 bits

Exemple

Codage de la valeur 525.5 en base 2 = 1000001101,1Si on veut l’écrire sous la forme 1.0000011011 x 29

• Bit de signe = 1• Exposant 9 = 1001• Mantisse = 10000011011 en binaire on obtient

10000100100000000000010000011011

Page 15: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 15

E. Différents types de données E. Différents types de données (suite5)(suite5)

Représentation approchée :Comme par exemple avec la valeur pi …- pour un réel: 6 chiffres après la virgule- pour un double: 15 chiffres après la virgule

Exemples

X réel = 2.35 etY double = 3.12345678901234567890

Affichage standard réel 2.350000 pour X et 3.123457 pour Y (arrondi à la 6ème décimale)Affichage avec 10 décimales 2.3499999046 pour X et 3.1234567890 pour Y

Page 16: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 16

E. Différents types de données E. Différents types de données (suite6)(suite6)

3) Les caractères

Code ASCII

Equivalent numérique de 0 à 255

Exemple

Caractère A - Code ASCII = 65 = 26 + 20 = 64 + 1

Page 17: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 17

E. Différents types de données E. Différents types de données (suite7)(suite7)

4) Les booléens

2 valeurs : Vrai (1) et Faux (0)

1 bit de représentation

Page 18: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 18

F. Déclaration d’une variableF. Déclaration d’une variable

Toute variable utilisée, doit avoir fait l’objet d’une déclaration préalable.

Langage intermédiaire

Liste des variables

id1 de type nature qui contiendra explication

id2 de type nature qui contiendra explication etc …

Exemple

Liste des variables

Nombre de type réel qui contiendra chaque donnée lue

Compteur de type entier qui permettra de les compter

Page 19: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 19

F. Déclaration d’une variable F. Déclaration d’une variable (suite1)(suite1)

Type peut prendre les valeurs:

- int (pour les entiers)

- float (pour les réels)

- char (pour les caractères)

- bool (pour les booléens)

Langage C

type id1 ; /* explication */

type id2 ; /* explication */ etc …

; obligatoire. indique au compilateur la fin de l’instruction

/* */ Commentaire (facultatif)

Exemple

float Nombre; /* contient chaque donnée lue */

int Compteur; /* permet de compter les données lues */

Page 20: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 20

F. Déclaration d’une variable F. Déclaration d’une variable (suite2)(suite2)

Exemple

float Truc , Machin , Bidule;

Il est possible de déclarer plusieurs variables dans une même instruction, à condition qu’elles soient de même type.

Il est possible d’initialiser une variable au moment de sa déclaration.

Exemple

int Chose = 12 ;

Page 21: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 21

G. L’affectationG. L’affectation

Consiste à déposer une information dans un «casier».

Langage intermédiaire

Place information dans casier

Langage C

casier = information ;

Page 22: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 22

G. L’affectation G. L’affectation (suite1)(suite1)

Exemple

- b) en indiquant un autre casier

Place 15 dans (casier) Nombre Nombre = 15 ;

Préciser le casier en citant son nom L’information sera précisée

- a) en donnant une valeur

Exemple

Place (casier) Somme dans (casier )Total Total = Somme ;

Page 23: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 23

G. L’affectation G. L’affectation (suite2)(suite2)

Un casier ne contient jamais plus d’une information à la fois.

Chaque nouvelle information que nous demandons d’y placer remplace la précédente qui est perdue.

Exemple

- c) par une expression

Place 12+A dans (casier) Prix Prix = 12+A ; (*)

(*) le contenu de la variable A doit être déterminé au moment de l’instruction.

Page 24: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 24

G. L’affectation G. L’affectation (suite3)(suite3)

Exemple

L’ordre dans lequel les instructions sont écrites va jouer un rôle essentiel dans le résultat final.

Liste des variables

A de type Entier qui contiendra une 1ère donnée

B de type Entier qui contiendra une 2ème donnée

Début

Place 2 dans A

Place 5 dans B

Place A+B dans A

Place A x 2 dans A

Fin

A = 2

B = 5

A = 2 + 5 = 7

A = 7 x 2 = 14

Page 25: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 25

H. La lectureH. La lecture

Commande à l’exécutant de placer dans une variable une information transmise par l’utilisateur par le clavier.

Langage intermédiaire

Lis et Place dans casier

Langage C

casier = lisEntier ( ) ;

casier = lisFlottant ( ) ;

casier = lisCaractere ( ) ;

Nous n’utiliserons pas directement les instructions classiques d’entrée/ sortie du langage C qui font appel à quelques notions un peu complexe, non abordée en 1ère année.

Nous ferons appel à une bibliothèque spécifique, ESLib.

Page 26: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 26

H. L’affichageH. L’affichage

Commande à l’exécutant de restituer une information vers l’écran.

Langage intermédiaire

Affiche information

Langage C

ecrisEntier ( information [de type entier] ) ;

ecrisFlottant ( information [de type réel] ) ;

ecrisCaractère ( information [de type car] ) ;

ecrisChaine ( information [de type Ch de car] ) ;

Page 27: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 27

H. L’affichage H. L’affichage (suite1)(suite1)

Exemple

- b) une valeur

Affiche « Donnez votre nom » ecrisChaine (« Donnez votre nom » );

L’information affichée pourra être- a) un message

Exemple

Affiche 112.5 ecrisFlottant ( 112.5 ) ;

- c) une variable: c’est son contenu qui est affiché. Exemple

Affiche casier ecris….. (casier) ;

Instruction à déterminer en fonction de la nature de la variable

Page 28: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 28

H. L’affichage H. L’affichage (suite2)(suite2)

Exemple

- e) un mélange de toutes les possibilités

Affiche 4 x Somme ecris ….. (4 x Somme);

- d) une expression : c’est le résultat qui est affiché.

Exemple

Affiche « Résultats: », S1, S2 ecrisChaine (« Résultats» );

ecris ….. (S1);

ecris ….. (S2);

-le contenu de la variable Somme doit être déterminé au moment de l’instruction.-Instruction à déterminer en fonction de la nature du résultat de l’expression

Page 29: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 29

I. Les opérateursI. Les opérateurs Unaire / binaire

1) opérateurs arithmétiques

Page 30: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 30

I. Les opérateurs (suite1)I. Les opérateurs (suite1)

2) opérateurs relationnels

3) opérateurs logiques

Page 31: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 31

I. Les opérateurs (suite2)I. Les opérateurs (suite2)

Tables de vérité

Priorité

Page 32: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 32

J. Conversion de typesJ. Conversion de types

Langage C fortement typéExemple

int operande1 = 3;

int operande2 = 2;

float operande3 = 3.0;

float operande4 = 2.0;

int resultat1;

float resultat2;

resultat1 = operande1 / operande2;

resultat2 = operande3 / operande4;

resultat1 = 1

et resultat2 = 1.5

Page 33: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 33

J. Conversion de types (suite1)J. Conversion de types (suite1)

Exemple

int operande1 = 3;

int operande2 = 2;

float operande3 = 3.0;

float operande4 = 2.0;

int resultat1;

float resultat2;

resultat1 = operande3 / operande4;

resultat2 = operande1 / operande2;

resultat1 = 1 (arrondi)

et resultat2 = 1.0 (entier converti en flottant)

Page 34: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 34

J. Conversion de types (suite2)J. Conversion de types (suite2)

Exemple

int operande1 = 3;

int operande2 = 2;

float operande3 = 3.0;

float operande4 = 2.0;

int resultat1;

float resultat2;

resultat1 = operande1 / operande4;

resultat2 = operande1 / operande4;

resultat1 = 1 (arrondi)

et resultat2 = 1.5

Page 35: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 35

J. Conversion de types (suite3)J. Conversion de types (suite3)

Possibilité d’effectuer des conversions explicites

Exemple

int operande1 = 3;

int operande2 = 2;

float operande3 = 3.0;

float operande4 = 2.0;

int resultat1;

float resultat2;

resultat1 = (int)(operande3 / operande4);

resultat2 = (float)(operande1 / operande2);

resultat1 = 1

Calcul en flottant puis conversion en entier

et resultat2 = 1.0

Calcul en entier puis conversion en flottant

Page 36: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 36

K. Qu’est ce qu’une constante ?K. Qu’est ce qu’une constante ?

Casier dont le contenu est fixé définitivement pour tout le programme.

Toute constante utilisée, doit avoir fait l’objet d’une déclaration préalable.

Langage intermédiaire

Liste des constantes

id1 = valeur (explication si nécessaire)

id2 = valeur (explication si nécessaire) etc …

Page 37: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 37

L. Déclaration d’une constanteL. Déclaration d’une constante

Exemple

Liste des constantes

Pi = 3.14

E = 3 correspondant à un facteur multiplicatif

2 méthodes de déclaration en langage C:Langage C – 1ère méthode

#define id1 valeur  /* explication */

#define = Commande du préprocesseur = macro de remplacement de toutes les occurrences du mot qui le suit par la valeur immédiatement derrière elle. Constantes non typées. Il ne s’agit pas d’une déclaration pas de ; à la fin.

Page 38: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 38

L. Déclaration d’une constante L. Déclaration d’une constante (suite1)(suite1)

Langage C – 2ème méthode

const type id1 = valeur ;  /* explication */

; obligatoire. indique au compilateur la fin de l’instruction

Type peut prendre les valeurs:

- int (pour les entiers)

- float (pour les réels)

- char (pour les caractères)

Mot clef const, permet de déclarer des constantes typées. Correspond à une variable en lecture seule.

Page 39: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 39

M. Structure d’un programmeM. Structure d’un programme

instructions

.................

Insertion de fichiers entête (header)

#include <..........h>

#include <..........h> etc ...

#define ..........

#define .......... etc ...

void main()

{Autre technique de déclaration de constantes

Programme principal

const ..........;

const ..........;

Déclaration de constantes

float ..........;

int ..............; etcDéclaration de variables

}

Liste des actions

Fin du programme principal

Page 40: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 40

N. Instructions complémentairesN. Instructions complémentaires

void fixePrecision (int n);

/* Fixe le nombre de chiffres (n) à afficher après la virgule pour un flottant */

Ces instructions appartiennent à la librairie ESLib.h et non à la bibliothèque standard du langage C.

void tabulation ();

/* Insère une tabulation */

void sautDeLigne ();

/* Passe à la ligne suivante */

void effaceEcran ();

/* Efface l’écran */

Page 41: 3.Premiers pas en programmation P. Costamagna – ISEN N1

P. Costamagna 41

O. Un premier programme …O. Un premier programme …#include <ESLib.h>

void main()

{

const int Fact = 4;

float A1 = 3.0;

int B2, resultat;

effaceECran ();

B2 = lisEntier ();

A1 = A1 x Fact;

resultat = B2 + 3;

ecrisChaine « Voici les résultats:»;

sautDeLigne ();

ecrisEntier (B2);

tabulation ();

ecrisFlottant (A1);

}