• Aucun résultat trouvé

Programmation Impérative FLIN202 Vincent BOUDET

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation Impérative FLIN202 Vincent BOUDET"

Copied!
67
0
0

Texte intégral

(1)

Programmation Impérative

FLIN202

Vincent BOUDET

Janvier 

(2)

Avant-Propos

Sommaire

1 Avant-Propos

2 Introduction

3 Langage d’algorithme impératif

(3)

Avant-Propos

Organisation

Organisation

Il y a 11 séances de cours, de td et de tp, les tps suivent toujours les tds,

les tds/tps commencent dès que les 2 premiers cours ont eu lieu :

I si vous avez td/tp le lundi ou le mardi : début le 28 ou 29 janvier,

I sinon : début les 23, 24 ou 25 janvier.

(4)

Avant-Propos

Évaluation

Évaluation

Un premier tp noté avant les vacances de février, un second tp noté la première semaine d’avril, pas de règle du max,

les tp notés comptent ensemble pour 20, l’écrit compte pour 30.

(5)

Avant-Propos

Lecture de Livres

Résumé de poche

C précis et concis

Auteurs : P. PRINZ et U. KIRCH-PRINZ Editeur : O’Reilly

Résumé de cours et exercices

Le langage C

Auteur : Jean-Michel Léry Editeur : Pearson Education

Le plus complet sur C (contient beaucoup plus que IN202

Méthodologie de la programmation en C 3ème édition Auteur : Jean-Pierre Braquelaire

Editeur : Dunod

(6)

Introduction

Sommaire

1 Avant-Propos

2 Introduction

Pourquoi apprendre un langage pour s’adresser à un ordinateur Pourquoi ne pas écrire une solution dans un langage de programmation Algorithme et Ordinateur

3 Langage d’algorithme impératif

(7)

Introduction Pourquoi apprendre un langage pour s’adresser à un ordinateur

Absence de référence au sens

Un ordinateur sait manipuler des formes écrites,sans référence au sens qu’elles peuvent avoir.

Un référendum

1 Formulation de la question

2 Compréhension de la question

3 Choix du bulletin OUI, NON, BLANC ou NUL

4 Comptage des réponses de chaque type

5 Application de la formule qui détermine la réponse gagnante

6 Interprétation de la réponse

Les points 4 et 5 peuvent être exécutés sans comprendre le sens de la question posée : le 4 demande de distinguer deux formes, le 5 demande de savoir appliquer des règles de calculs. Ces points sontinformatisables, i.e.

exécutables par un ordinateur.

(8)

Introduction Pourquoi apprendre un langage pour s’adresser à un ordinateur

Nécéssité d’un langage non ambigu

Les langues naturelles sont ambigües :

Exemple en français

"La belle place à l’ombre la tente."

Le verbe peut êtreplaceou bientente. Cette phrase a deux interprétations possibles, toutes deux correctes. Pour trouver la bonne, il faut avoir le contexte de la phrase et voir quel est celui des sens possibles qui convient.

Si on veut que le résultat donné par l’ordinateur soit fiable, il faut qu’il n’y ait aucune ambiguïté dans le langage qui sert à expliquer à l’ordinateur ce qu’il doit faire.

(9)

Introduction Pourquoi apprendre un langage pour s’adresser à un ordinateur

Nécéssité d’un langage non ambigu

Il faut donc avoir des langages spécifiques, beaucoup plus restreints que des langues naturelles.

Autres Exemples

"Le marchand de nougat mou."

"Le marchand de nougat moustachu."

(10)

Introduction Pourquoi apprendre un langage pour s’adresser à un ordinateur

Nécéssité d’un langage non ambigu

Il faut donc avoir des langages spécifiques, beaucoup plus restreints que des langues naturelles.

Autres Exemples

"Le marchand de nougat mou."

"Le marchand de nougat moustachu."

(11)

Introduction Pourquoi apprendre un langage pour s’adresser à un ordinateur

Catégories de langages de programmation

Tous les langages de programmation sont équivalents: si une solution à un problème donné est informatisable, on théoriquement l’écrire dans n’importe quel langage de programmation.

En pratique, il existe plusieurs catégories de langages, chacune étant plus ou moins commode pour un problème donné.

Principales catégories (par ordre chronologique d’apparition)

langages impératifs (C, Pascal,...) calculs à faire exprimés par des instructions proches de ce que sait faire la machine ;

langages fonctionnels (Lisp, Scheme,...) calculs à faire exprimés par des instructions proches d’une formulation mathématique ;

langages déclaratifs (Prolog,...) calculs à faire exprimés par des instructions proches de formules logiques ;

langages objets (C++, Java, Smalltalk,...) basés sur la structuration des données, accompagnée de calculs de types impératifs (C++, Java) ou fonctionnel (Smalltalk).

(12)

Introduction Pourquoi apprendre un langage pour s’adresser à un ordinateur

Catégories de langages de programmation

Tous les langages de programmation sont équivalents: si une solution à un problème donné est informatisable, on théoriquement l’écrire dans n’importe quel langage de programmation.

En pratique, il existe plusieurs catégories de langages, chacune étant plus ou moins commode pour un problème donné.

Principales catégories (par ordre chronologique d’apparition)

langages impératifs (C, Pascal,...) calculs à faire exprimés par des instructions proches de ce que sait faire la machine ;

langages fonctionnels (Lisp, Scheme,...) calculs à faire exprimés par des instructions proches d’une formulation mathématique ;

langages déclaratifs (Prolog,...) calculs à faire exprimés par des instructions proches de formules logiques ;

langages objets (C++, Java, Smalltalk,...) basés sur la structuration des données, accompagnée de calculs de types impératifs (C++, Java) ou fonctionnel (Smalltalk).

(13)

Introduction Pourquoi apprendre un langage pour s’adresser à un ordinateur

Catégories de langages de programmation

Tous les langages de programmation sont équivalents: si une solution à un problème donné est informatisable, on théoriquement l’écrire dans n’importe quel langage de programmation.

En pratique, il existe plusieurs catégories de langages, chacune étant plus ou moins commode pour un problème donné.

Principales catégories (par ordre chronologique d’apparition)

langages impératifs (C, Pascal,...) calculs à faire exprimés par des instructions proches de ce que sait faire la machine ;

langages fonctionnels (Lisp, Scheme,...) calculs à faire exprimés par des instructions proches d’une formulation mathématique ;

langages déclaratifs (Prolog,...) calculs à faire exprimés par des instructions proches de formules logiques ;

langages objets (C++, Java, Smalltalk,...) basés sur la structuration des données, accompagnée de calculs de types impératifs (C++, Java) ou fonctionnel (Smalltalk).

(14)

Introduction Pourquoi apprendre un langage pour s’adresser à un ordinateur

Catégories de langages de programmation

Tous les langages de programmation sont équivalents: si une solution à un problème donné est informatisable, on théoriquement l’écrire dans n’importe quel langage de programmation.

En pratique, il existe plusieurs catégories de langages, chacune étant plus ou moins commode pour un problème donné.

Principales catégories (par ordre chronologique d’apparition)

langages impératifs (C, Pascal,...) calculs à faire exprimés par des instructions proches de ce que sait faire la machine ;

langages fonctionnels (Lisp, Scheme,...) calculs à faire exprimés par des instructions proches d’une formulation mathématique ;

langages déclaratifs (Prolog,...) calculs à faire exprimés par des instructions proches de formules logiques ;

langages objets (C++, Java, Smalltalk,...) basés sur la structuration des données, accompagnée de calculs de types impératifs (C++,

(15)

Introduction Pourquoi ne pas écrire une solution dans un langage de programmation

Pourquoi ne pas écrire une solution dans un langage de programmation ?

1 La solution d’un problème se compose en général de :

I un ou plusieurs schémas de calculs ("algorithmes"),

I une ou plusieurs structures d’informations,

qui ne s’expriment pas exactement de la même façon dans tous les langages (en particulier les structures d’information).

2 chaque langage demande de fournir des informations techniques, qu’il faut ajouter à la description de la solution.

(16)

Introduction Pourquoi ne pas écrire une solution dans un langage de programmation

Il est utile d’avoir un langage intermédiaire,sans les informations

techniques, et qui gomme le plus possible les différences de détail entre les langages, pour décrire une solution.

On la traduit ensuite dans le langage voulu (et s’il faut changer de langage, on revient à elle au lieu de passer péniblement d’un langage à l’autre).

Un tel langage s’appelle unlangage d’algorithme. On en distingue au moins deux :impératifetfonctionnel.

(17)

Introduction Algorithme et Ordinateur

Définitions

Définitions

action : évènement quelconque prenant untemps finiet produisant un résultatbien définietprévu;

algorithme : description d’une suitefinied’actions, où chaque action est complètement déterminéepar celles qui la précèdent.

Exemples

Multiplication de nombres à plusieurs chiffres, recettes de cuisine, modes d’emploi...

(18)

Introduction Algorithme et Ordinateur

Principe sous-jacent

En supposant connues des notions de base (connaître et savoir écrire les chiffres) et des actions (multiplication de nombres à un chiffre, addition de nombres à plusieurs chiffres) expliquer comment faire quelque chose de plus compliqué (multiplication de nombres à plusieurs chiffres).

Important

Qui est l’exécutant ? Que connaît-il, que sait-il faire ? cf les résultats obtenus par différentes personnes avec la même recette de cuisine, ou les résultats généralement obtenus par des humains avec des modes d’emplois

apparement écrits pour/par des extraterrestres.

Il faut toujours garder à l’esprit ce que sait faire un ordinateur (pas grand chose !).

(19)

Introduction Algorithme et Ordinateur

Algorithme pour ordinateur

Un langade d’algorithme pour ordinateur contient :

des notions de base connues par l’ordinateur ;

des actions élémentaires qu’un ordinateur sait faire (très peu nombreuses) ;

des moyens de composer des actions entre elles pour construire des actions plus complexes ;

un moyen de donner un nom à une action qu’on a construite pour pouvoir l’identifier, et s’en resservir sans la réécrire.

On a donc un petit répertoire d’actions totalement décrites au départ, et un grand nombre d’actions potentielles par composition et nommage (c’est ce qui distingue l’ordinateur de la machine à laver, qui n’a que des actions totalement décrites).

(20)

Langage d’algorithme impératif

Sommaire

1 Avant-Propos

2 Introduction

3 Langage d’algorithme impératif Éléments de bases

Actions élémentaires Compositions d’actions Nommage d’actions Exemples d’algorithmes

(21)

Langage d’algorithme impératif Introduction

Introduction

Les langages impératifs ont été construits en s’appuyant sur les possibilités des machines : on va trouver comme notions de base et actions élémentaires des choses directement liées à la structure logique d’un ordinateur (tous les ordinateurs ont la même, quelle que soit leur structure physique).

Un ordinateur possède une mémoire pour stocker des valeurs et des circuits pour calculer. On va trouver dans les éléments de base supposés connus :

desvariablespour représenter les cases de la mémoire,

desnombres, booléens, et caractèrespour représenter les valeurs stockées,

desopérateurspour représenter les circuits.

(22)

Langage d’algorithme impératif Éléments de bases

Constantes

Constantes

constantes entières : nombre entier appartenant à un intervalle[−α,+α], où αest une valeur liée à la machine (dans la plupart des cas pratiques actuels,α≈231−1)

constantes réelles : nombre rationnel à précision limitée, appartenant à un intervalle[−β,+β], oùβest une valeur liée à la machine (dans la plupart des cas pratiques actuels,β≈1038avec 7 ou 15 chiffres significatifs)

constantes booléennes : vrai ou faux

constantes alphanumériques : caractères ou chaîne de caractères. Un caractère est habituellement représenté entre apostrophes (exemple : a) et une chaîne entre guillemets (exemple :

"machin") ; on ne les écrits jamais sans apostrophes ou guillemets car on se les distinguerait pas des identificateurs utilisés pour nommer les variables, les fonctions, etc.

(23)

Langage d’algorithme impératif Éléments de bases

Constantes

Constantes

constantes entières : nombre entier appartenant à un intervalle[−α,+α], où αest une valeur liée à la machine (dans la plupart des cas pratiques actuels,α≈231−1)

constantes réelles : nombre rationnel à précision limitée, appartenant à un intervalle[−β,+β], oùβest une valeur liée à la machine (dans la plupart des cas pratiques actuels,β≈1038avec 7 ou 15 chiffres significatifs)

constantes booléennes : vrai ou faux

constantes alphanumériques : caractères ou chaîne de caractères. Un caractère est habituellement représenté entre apostrophes (exemple : a) et une chaîne entre guillemets (exemple :

"machin") ; on ne les écrits jamais sans apostrophes ou guillemets car on se les distinguerait pas des identificateurs utilisés pour nommer les variables, les fonctions, etc.

(24)

Langage d’algorithme impératif Éléments de bases

Constantes

Constantes

constantes entières : nombre entier appartenant à un intervalle[−α,+α], où αest une valeur liée à la machine (dans la plupart des cas pratiques actuels,α≈231−1)

constantes réelles : nombre rationnel à précision limitée, appartenant à un intervalle[−β,+β], oùβest une valeur liée à la machine (dans la plupart des cas pratiques actuels,β≈1038avec 7 ou 15 chiffres significatifs)

constantes booléennes : vrai ou faux

constantes alphanumériques : caractères ou chaîne de caractères. Un caractère est habituellement représenté entre apostrophes (exemple : a) et une chaîne entre guillemets (exemple :

"machin") ; on ne les écrits jamais sans apostrophes ou guillemets car on se les distinguerait pas des identificateurs utilisés pour nommer les variables, les fonctions, etc.

(25)

Langage d’algorithme impératif Éléments de bases

Constantes

Constantes

constantes entières : nombre entier appartenant à un intervalle[−α,+α], où αest une valeur liée à la machine (dans la plupart des cas pratiques actuels,α≈231−1)

constantes réelles : nombre rationnel à précision limitée, appartenant à un intervalle[−β,+β], oùβest une valeur liée à la machine (dans la plupart des cas pratiques actuels,β≈1038avec 7 ou 15 chiffres significatifs)

constantes booléennes : vrai ou faux

constantes alphanumériques : caractères ou chaîne de caractères. Un caractère est habituellement représenté entre apostrophes (exemple : a) et une chaîne entre guillemets (exemple :

"machin") ; on ne les écrits jamais sans apostrophes ou guillemets car on se les distinguerait pas des identificateurs

(26)

Langage d’algorithme impératif Éléments de bases

Variables

Variables

Unevariableest un identificateur associé à un morceau de mémoire.

Avant d’utiliser une variable pour la première fois, on ladéclareen donnant le nomqu’on lui a choisi et letypede valeurs qu’on mettra dans le morceau de mémoire associé.

Exemples

i entier ;

t tableau de 10 éléments entiers ; z réel.

(27)

Langage d’algorithme impératif Éléments de bases

Opérateurs

Opérateurs

arithmétiques : +,−,∗, /,mod comparaison : <,≤,=,6=,≥, >

logiques : ou et non

(28)

Langage d’algorithme impératif Éléments de bases

Expressions

En utilisant des constantes, des variables, des opérateurs, des appels de sous-algorithmes (voir plus loin) et des parenthèses, on peut écrire des

expressions arithmétiquespour représenter des calculs, et desexpressions booléennespour représenter des tests.

On utilise dans ces expressions les règles de priorité habituelles pour les opérateurs. Pour des opérateurs de même niveau de priorité, l’évaluation est supposée se faire de gauche à droite.

Exemples

(3×a+2)

(1g(b))ou(b≥12)et(c>5)

(29)

Langage d’algorithme impératif Actions élémentaires

Affectation de valeur

variable

←−

expression

;

Cette action évalue l’expression et range le résultat dans la zone mémoire associée à la variable.

On peut aussi utiliser la notationvariable=expression;Dans ce cas là, il faut faire attention à ne pas confondre avec l’opérateur de comparaison.

Exemples

a←−10+b; c←−a modb; machin←−cos(πc);

(30)

Langage d’algorithme impératif Actions élémentaires

Lecture

Lire variable ;

Cette action lit une valeur sur un support extérieur (clavier...) et la range dans la zone mémoire associée à la variable.

On peut remplacer "lire a ; lire b ; lire c ;" par "lire a,b,c".

Exemples

lire toto ; Attend que l’utilisateur rentre une valeur au clavier et la stocke dans la variable toto

lire a,b ; Attend que l’utilisateur rentredeuxvaleurs (séparées par un espace ou un retour à la ligne) et les stocke dans les variables a et b.

(31)

Langage d’algorithme impératif Actions élémentaires

Écriture

Ecrire expression ;

Cette action évalue l’expression et affiche sa valeur sur un support extérieur (écran, fichier...)

On peut remplacer également "écrire a ; écrire b ; écrire c ;" par "écrire a,b,c".

Exemples

écrire a+3 ; Affiche la valeur de a+3

écrire 2*a, b, a+b ; Affiche,à la suite, les valeurs de 2a,beta+b.

(32)

Langage d’algorithme impératif Compositions d’actions

Séquence

Par défaut, les actions indiquées sont exécutées en séquence, dans l’ordre où elles sont écrites. Lorsque c’est nécessaire (voir ci-dessous), on peut créer un blocpour isoler une sous séquence en écrivant cette sous-séquence entre accolades.

(33)

Langage d’algorithme impératif Compositions d’actions

Choix

Choix à deux possibilités

sicondition

alorsaction ou {séquence d’actions}

sinonaction ou {séquence d’actions}

On peut ommettre la partiesinonsi elle vide.

Exemple

si(i mod 2 = 0)

{ écrire "i est pair" ; }

sinon{écrire "i est impair" ; }

(34)

Langage d’algorithme impératif Compositions d’actions

Choix multiples

Choix à plus de deux possibilités

casexpressionparmi

valeur : action ou {séquence d’actions}

...

valeur : action ou {séquence d’actions}

autres: action ou {séquence d’actions}

On évalue l’expression et on exécute l’action ou le bloc correspondant à la valeur trouvée si elle est dans la liste, l’action ou le bloc correspondant à autressi elle n’y est pas. On peut ommettre la partieautressi elle est vide.

(35)

Langage d’algorithme impératif Compositions d’actions

Choix multiples

Choix à plus de deux possibilités

casexpressionparmi

valeur : action ou {séquence d’actions}

...

valeur : action ou {séquence d’actions}

autres: action ou {séquence d’actions}

Exemple

cas(i mod 2)parmi 0 : { écrire "i est pair" ; } 1 : {écrire "i est impair" ; } autres: {écrire "Erreur ! ! !" ;}

(36)

Langage d’algorithme impératif Compositions d’actions

Itération 1

Itération avec test au début

tant queconditionfaire action ou {séquence d’actions}

Exemple

liren; p←−1 ;

tant que(n> 0)faire {

p←−p×n; n←−n−1 ; }

écrirep;

(37)

Langage d’algorithme impératif Compositions d’actions

Itération 2

Itération avec test au début : cas du parcours d’un intervalle

pourvariable←−borneInitialeàborneFinalepar intervalle depasfaire action ou {séquence d’actions}

Exemple

liren; S←−0 ;

pour(i ←−1)ànpar intervalle de1faire {

S←−S+i; }

écrireS;

(38)

Langage d’algorithme impératif Compositions d’actions

Itération 2

Itération avec test à la fin

faire

action ou {séquence d’actions}

tant quecondition ;

Exemple

faire {

écrire "Entrer un nombre positif " ; lirea;

}

tant quea≤0 ; écrireS;

(39)

Langage d’algorithme impératif Compositions d’actions

1-er exemple

cas 1

n←−20 ;

tant quen mod 2=0faire {

n←−n/2 ; }

écriren;

Cet exemple affiche5.

cas 2

n←−20 ; faire {

n←−n/2 ; }

tant quen mod 2=0 ; écriren;

Cet exemple affiche5.

(40)

Langage d’algorithme impératif Compositions d’actions

2-ème exemple

cas 1

n←−19 ;

tant quen mod 2=0faire {

n←−n/2 ; }

écriren;

Cet exemple affiche19.

cas 2

n←−19 ; faire {

n←−n/2 ; }

tant quen mod 2=0 ; écriren;

Cet exemple affiche9.5.

(41)

Langage d’algorithme impératif Nommage d’actions

Cette section sera traitée dans le chapitre "sous-algoritmes et fonctions"

définir une nouvelle action sous-algorithmeidentificateur

paramêtres non modifiés : descriptions de paramêtres formels paramêtres modifiés : descriptions de paramêtres formels valeur retournée : description de la valeur ourien

{actions, et déclarations de variables utilisées uniquement dans ces actions}

Utiliser une action définie

I s’il n’y a pas de valeur retournée :

identificateur(liste de paramêtres effectifs non modifiés et modifiés) ;

I s’il y a une valeur retournée :

variable←−identificateur(liste de paramêtres effectifs non modifiés et modifiés) ;

(42)

Langage d’algorithme impératif Nommage d’actions

L’idée est de donner un nom à un ensemble d’actions qui forme un

sous-ensemble logique de l’algorithme entier, et d’utiliser ensuite ce nom pour demander l’exécution de l’ensemble.

Les paramêtres permettent de faire quelque chose de plus abstrait en ne donnant pas explicitement dans la définition du sous-algorithme le nom de certaines variables utilisées par ailleurs dans l’algorithme, mais en disant simplement : "une variable de tel type". À chaque utilisation, on doit préciser quels sont les vrais noms qui servent pour cette fois-là.

(43)

Langage d’algorithme impératif Exemples d’algorithmes

PGCD

Données :

a

et

b

tels que

a

b

≥ 0

{entiers a, b, r

lire a, b ; si (b=0)

alors {écrire a ;}

sinon {

r←−a modulo b ; tant que (r6=0) faire {

a←−b ; b←−r ; r←−a modulo b ; }

écrire b ; }

}

(44)

Langage d’algorithme impératif Exemples d’algorithmes

PGCD

Données :

a

et

b

tels que

a

b

≥ 0

{ entiers a, b, r

lire a, b ; si (b=0)

alors {écrire a ;}

sinon {

r←−a modulo b ; tant que (r6=0) faire {

a←−b ; b←−r ; r←−a modulo b ; }

écrire b ; }

(45)

Langage d’algorithme impératif Exemples d’algorithmes

PGCD

Données :

a

et

b

tels que

a

b

≥ 0

{ entiers a, b, r

lire a, b ; si (b=0)

alors {écrire a ;}

sinon {

r←−a modulo b ; tant que (r6=0) faire {

a←−b ; b←−r ; r←−a modulo b ; }

écrire b ; }

}

(46)

Langage d’algorithme impératif Exemples d’algorithmes

PGCD

Données :

a

et

b

tels que

a

b

≥ 0

{ entiers a, b, r

lire a, b ; si (b=0)

alors {écrire a ;}

sinon {

r←−a modulo b ; tant que (r6=0) faire {

a←−b ; b←−r ; r←−a modulo b ; }

écrire b ; }

(47)

Langage d’algorithme impératif Exemples d’algorithmes

PGCD

Données :

a

et

b

tels que

a

b

≥ 0

{ entiers a, b, r

lire a, b ; si (b=0)

alors {écrire a ;}

sinon {

r←−a modulo b ; tant que (r6=0) faire {

a←−b ; b←−r ; r←−a modulo b ; }

écrire b ; }

}

(48)

Langage d’algorithme impératif Exemples d’algorithmes

PGCD

Données :

a

et

b

tels que

a

b

≥ 0

{ entiers a, b, r

lire a, b ; si (b=0)

alors {écrire a ;}

sinon {

r←−a modulo b ; tant que (r6=0) faire {

a←−b ; b←−r ; r←−a modulo b ; }

écrire b ; }

(49)

Langage d’algorithme impératif Exemples d’algorithmes

PGCD

Données :

a

et

b

tels que

a

b

≥ 0

{ entiers a, b, r

lire a, b ; si (b=0)

alors {écrire a ;}

sinon {

r←−a modulo b ; tant que (r6=0) faire {

a←−b ; b←−r ; r←−a modulo b ; }

écrire b ; }

}

(50)

Langage d’algorithme impératif Exemples d’algorithmes

PGCD

Données :

a

et

b

tels que

a

b

≥ 0

{ entiers a, b, r

lire a, b ; si (b=0)

alors {écrire a ;}

sinon {

r←−a modulo b ; tant que (r6=0) faire {

a←−b ; b←−r ; r←−a modulo b ; }

écrire b ; }

(51)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de 10 nombres rangé dans un tableau

Données : 10 nombres

{

entier i ; réel s ; nb tableau de 10 réels ; pouri ←−0 à 9 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 à 9 par pas de 1 faire {

s←−s + nb[i] ; }

écrire s ; }

(52)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de 10 nombres rangé dans un tableau

Données : 10 nombres

{

entier i ; réel s ; nb tableau de 10 réels ; pouri←−0à9par pas de1faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 à 9 par pas de 1 faire {

s←−s + nb[i] ; }

écrire s ; }

(53)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de 10 nombres rangé dans un tableau

Données : 10 nombres

{

entier i ; réel s ; nb tableau de 10 réels ; pouri ←−0 à 9 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 à 9 par pas de 1 faire {

s←−s + nb[i] ; }

écrire s ; }

(54)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de 10 nombres rangé dans un tableau

Données : 10 nombres

{

entier i ; réel s ; nb tableau de 10 réels ; pouri ←−0 à 9 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 à 9 par pas de 1 faire {

s←−s + nb[i] ; }

écrire s ; }

(55)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de 10 nombres rangé dans un tableau

Données : 10 nombres

{

entier i ; réel s ; nb tableau de 10 réels ; pouri ←−0 à 9 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri←−0à9par pas de1faire {

s←−s + nb[i] ; }

écrire s ; }

(56)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de 10 nombres rangé dans un tableau

Données : 10 nombres

{

entier i ; réel s ; nb tableau de 10 réels ; pouri ←−0 à 9 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 à 9 par pas de 1 faire {

s←−s + nb[i] ; }

écrire s ; }

(57)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de 10 nombres rangé dans un tableau

Données : 10 nombres

{

entier i ; réel s ; nb tableau de 10 réels ; pouri ←−0 à 9 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 à 9 par pas de 1 faire {

s←−s + nb[i] ; }

écrire s ; }

(58)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de n nombres rangé dans un tableau

Données :

n

nombres

{

entier i, n ; réel s ; lire n ;

nb tableau de n réels ;

pouri ←−0 àn−1 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 àn−1 par pas de 1 faire {

s←−s + nb[i] ; }

(59)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de n nombres rangé dans un tableau

Données :

n

nombres

{

entier i, n ; réel s ; lire n ;

nb tableau de n réels ;

pouri ←−0 àn−1 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 àn−1 par pas de 1 faire {

s←−s + nb[i] ; }

écrire s ;

(60)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de n nombres rangé dans un tableau

Données :

n

nombres

{

entier i, n ; réel s ; lire n ;

nb tableau de n réels ;

pouri ←−0 àn−1 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 àn−1 par pas de 1 faire {

s←−s + nb[i] ; }

(61)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de n nombres rangé dans un tableau

Données :

n

nombres

{

entier i, n ; réel s ; lire n ;

nb tableau de n réels ;

pouri←−0àn−1par pas de1faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 àn−1 par pas de 1 faire {

s←−s + nb[i] ; }

écrire s ;

(62)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de n nombres rangé dans un tableau

Données :

n

nombres

{

entier i, n ; réel s ; lire n ;

nb tableau de n réels ;

pouri ←−0 àn−1 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 àn−1 par pas de 1 faire {

s←−s + nb[i] ; }

(63)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de n nombres rangé dans un tableau

Données :

n

nombres

{

entier i, n ; réel s ; lire n ;

nb tableau de n réels ;

pouri ←−0 àn−1 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 àn−1 par pas de 1 faire {

s←−s + nb[i] ; }

écrire s ;

(64)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de n nombres rangé dans un tableau

Données :

n

nombres

{

entier i, n ; réel s ; lire n ;

nb tableau de n réels ;

pouri ←−0 àn−1 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri←−0àn−1par pas de1faire {

s←−s + nb[i] ; }

(65)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de n nombres rangé dans un tableau

Données :

n

nombres

{

entier i, n ; réel s ; lire n ;

nb tableau de n réels ;

pouri ←−0 àn−1 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 àn−1 par pas de 1 faire {

s←−s + nb[i] ; }

écrire s ;

(66)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de n nombres rangé dans un tableau

Données :

n

nombres

{

entier i, n ; réel s ; lire n ;

nb tableau de n réels ;

pouri ←−0 àn−1 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 àn−1 par pas de 1 faire {

s←−s + nb[i] ; }

(67)

Langage d’algorithme impératif Exemples d’algorithmes

Somme de n nombres rangé dans un tableau

Données :

n

nombres

{

entier i, n ; réel s ; lire n ;

nb tableau de n réels ;

pouri ←−0 àn−1 par pas de 1 faire {

lire nb[i] ; }

s←−0 ;

pouri ←−0 àn−1 par pas de 1 faire {

s←−s + nb[i] ; }

écrire s ;

Références

Documents relatifs

Pour exécuter le programme, le byte-code est interprété par un interpréteur appelé machine virtuelle Java (JVM). Ainsi, le byte-code d’un programme peut être exécuté

•  Toute valeur (quel que soit son type) qui est égale à 0 a la valeur logique FAUX. •   Toute valeur différente de 0 a la valeur

Par exemple, pour avoir de la documentation sur le printf de la librairie standard C, on tape : man 3 printf (attention, un simple man printf donne des informations sur le printf

Exercice 4.1 On va modifier le programme du TD3 de façon modulaire de telle sorte que les fonctions de gestion de listes soient réutilisables par d’autres programmes1. On écrira

Un programme sera toujours constitué d’un programme principal qui est Un programme sera toujours constitué d’un programme principal qui est le point d’entrée du programme

Les informations de base concernant le mode d'emploi d'une fonction sont résumées dans l'en-tête de la fonction (une description qui peut se trouver dans l'aide

La différence sémantique entre les struct et les unions est la suivante : alors que pour une variable de type structure tous les champs peuvent avoir en même temps une

Ce document archive l’ensemble des notes du cours de langage C donné en première année de la licence MMIA.... 1.4 Le Langage