• Aucun résultat trouvé

Algorithmique et Langage C

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmique et Langage C"

Copied!
14
0
0

Texte intégral

(1)

Algorithmique et Langage C

Algorithmique et Langage C

www.polytech.unice.fr/žvg/index-xidian.html

Granet Vincent - Vincent.Granet@univ-cotedazur.fr

Xi’an - Octobre 2019 - Avril 2020

(2)

55/214 Algorithmique et Langage C

Actions Structurées

Actions Structurées

(3)

Algorithmique et Langage C Actions Structurées

Énoncé composé

Composition d’énoncés

pour grouper des actions E i qui sont ensuite considérées comme une seule action E c

les actions sont exécutées séquentiellement

{P} début E

1

; E

2

; E

3

f i n {Q}

Règle de déduction

si {P} ⇒ {P

1

} ⇒ {Q

E1 1

} ⇒ {P

2

} ⇒ {Q

E2 2

} ... {P

n

} ⇒ {Q

En n

} ⇒ {Q}

alors

{P} début {P

1

} E

1

{Q

1

} ; {P

2

} E

2

{Q

2

} ; ... ; {P

n

} E

n

{Q

n

} fin {Q}

(4)

57/214 Algorithmique et Langage C

Actions Structurées Énoncé composé

Composition d’énoncés en C

un bloc groupe des énoncés entre des 2 accolades

/ x = 10 / y = x + 1; / y = 11 / / y = 11 / z = y; / z = 11 /

/ x = 10 /

{ y = x + 1; z = y; }

/ x = 10 et y = 11 et z = 11 /

Il peut contenir des déclarations locales

/ x = 10 / { i n t y = x + 1;

z = y;

}

/ x = 10 et z = 11 /

(5)

Algorithmique et Langage C Actions Structurées

Énoncé si

Énoncé conditionnel si

permet d’exécuter ou non une action en fonction d’un critère booléen.

si je gagne au loto alors je fais le tour du monde sinon je reste à la maison

{P} s i B a l o r s E

1

s i n o n E

2

f i n s i {Q}

Règle de déduction

si {P et B} ⇒ {Q} E

1

et {P et non B} ⇒ {Q} E

2

alors { P } énoncé-si { Q }

(6)

59/214 Algorithmique et Langage C

Actions Structurées Énoncé si

Exemple

{x est un entier quelconque}

s i x<0 a l o r s y← − x s i n o n y ← x f i n s i

{ y = |x|}

(7)

Algorithmique et Langage C Actions Structurées

Énoncé si

forme réduite

pas de partie sinon

{P} s i B a l o r s E f i n s i {Q}

Règle de déduction

si {P et B} ⇒ {Q} E et {P et non B} ⇒ {Q}

alors {P} énoncé-si-réduit {Q}

{x est un entier quelconque}

s i x<0 a l o r s x ← −x f i n s i

{ x> 0}

(8)

61/214 Algorithmique et Langage C

Actions Structurées Énoncé si

L’énoncé si en C

i f (B) E 1 e l s e E 2

i f (B) E 1

B est de type entier (ou convertible en entier)

/ x est un entier quelconque / i f (x<0) y = −x; e l s e y = x;

/ y = |x| /

/ x est un entier quelconque / i f (x<0) x = −x;

/ x>=0 /

(9)

Algorithmique et Langage C Actions Structurées

Énoncé si

Le sinon ( else ) se rapporte au si le plus proche

i f (x == 1) i f (y == 1)

printf("x et y sont égaux à 1\n");

e l s e { / y 6= 1 / a = 0; b = 1;

}

i f (x == 1) { i f (y == 1)

printf("x et y sont égaux à 1\n");

} e l s e { / x 6= 1 / a = 0; b = 1;

}

(10)

63/214 Algorithmique et Langage C

Actions Structurées Énoncé choix

Énoncé conditionnel choix

permet d’exécuter une action en fonction d’un critère sur plusieurs valeurs possibles

critère : expression de type scalaire discret

c h o i x couleur du feu parmi

rouge : s'arrêter vert : passer

orange : s'arrêter si possible, sinon passer

f i n c h o i x

(11)

Algorithmique et Langage C Actions Structurées

Énoncé choix

{P}

c h o i x expr parmi val

1

: E

1

val

2

: E

2

. . . val

n

: E

n

f i n c h o i x {Q}

Règle de déduction

si ∀k ∈ [1,n], {P et expr = val k } ⇒ {Q} E

k

alors {P} énoncé-choix {Q}

{Q} peut être l’union de conséquents {Q k } des énoncés E k .

Le conséquent {Q} doit être vérifié, même si aucun énoncé E k n’a

(12)

65/214 Algorithmique et Langage C

Actions Structurées Énoncé choix

L’énoncé choix en C (1)

s w i t c h ( expr ) {

c a s e v 1 : E 1 ; br eak;

c a s e v 2 : E 2 ; br eak;

. . .

c a s e v n−1 : E n−1 ; br eak;

c a s e v n : E n ; br eak ; [ d e f a u l t : E d ;]

}

enum couleur { vert, orange, rouge };

s w i t c h (couleurDuFeu) {

c a s e rouge : s'arrêter; br eak ; c a s e vert : passer; br eak ;

c a s e orange : i f (possible) s'arrêter e l s e passer;

br eak;

}

(13)

Algorithmique et Langage C Actions Structurées

Énoncé choix

L’énoncé choix en C (2)

/ a et b 2 opérandes entiers et op == +,, ou / / / évaluer a op b /

s w i t c h (op) {

c a s e '+' : res = a+b; br eak ; c a s e ' −' : res = a− b; br eak ; c a s e ' ' : res = a b; br eak ; c a s e '/' : i f (b!=0) res = a/b;

e l s e fprintf(stderr,"div par 0\n");

br eak;

d e f a u l t : fprintf(stderr,"op inconnu\n");

}

/ erreur ou res = a op b /

(14)

67/214 Algorithmique et Langage C

Actions Structurées Énoncé choix

L’énoncé choix en C (3)

des valeurs différentes pour un même énoncé

/ x[1;10] / s w i t c h (x) {

c a s e 1 : c a s e 2 :

c a s e 3 : printf("16x63"); br eak ; c a s e 4 :

c a s e 5 : printf("46x65"); br eak;

d e f a u l t : printf("5<x610");

}

Références

Documents relatifs

Début algorithme : Ouverture de la porte d’un garage.

On

Parmi toutes les coalitions qu’on peut former entre ces pays, il en existe de q pays sans frontières communes, mais dans toute coalition de plus de q pays, certains d’entre eux

• le modèle d’une structure décrit le type des variables membres d’une structure  c’est un type. • une instance d’une structure a une existence réelle

Les instructions d’un programme sont décrites à l’aide d’un langage langage machine. langage d’assemblage langage de

Il est question à travers cette étude de faire un diaporama de la gouvernance de la forêt Boucher dans la ville de Gatineau, en s’intéressant particulièrement

Rappelons qu’un fibré vectoriel adélique sur Spec K est par définition un espace vectoriel de rang fini E sur K muni d’une famille (k.. Construre une structurede fibré

This question leads to diffcult realization problems over Q: I f the answer is negative then there exists an extension K/Q with Galoisgroup GI (2, q) unramified over