Algorithmique 1 - Exercices

publicité
2015
Algorithmique 1 Exercices
Patrick Dezécache
ULCO – EILCO - CUEEP
01/09/2015
Algorithmique – Concepts de base
Sommaire
Table des matières
1. INTRODUCTION
2
2. DEMARCHE DE CONCEPTION
2
3. IDENTIFICATION DES OBJETS ET DECLARATION DES DONNEES
2
4. L'AFFECTATION
3
5. EXPRESSIONS DE CALCULS NUMERIQUES ET LOGIQUES
4
6. ECHANGES AVEC L’UTILISATEUR : ENTREES/SORTIES
5
7. SEQUENCE D’ACTION NOMMEE
6
8. STRUCTURE DE CONTROLE CONDITIONNELLE - TESTS
6
9. STRUCTURE DE CONTROLE ITERATIVE - BOUCLES
8
10. STRUCTURES DE DONNEES COMPOSEES : TABLEAUX
15
PROPOSER LA REPRESENTATION DES ALGORITHMES SUIVANTS : (1 TABLEAU 1 DIMENSION)
PROPOSER LA REPRESENTATION DES ALGORITHMES SUIVANTS : (PLUSIEURS TABLEAUX A 1 DIMENSION)
PROPOSER LA REPRESENTATION DES ALGORITHMES SUIVANTS : (TABLEAUX A PLUSIEURS DIMENSIONS)
PROPOSER LA REPRESENTATION DES ALGORITHMES SUIVANTS : (TRI)
15
17
17
17
11. STRUCTURES DE DONNEES COMPOSEES : ENREGISTREMENT
18
12. MODULARITE ET SOUS-PROGRAMMES : FONCTIONS ET PROCEDURES
18
FONCTIONS
PROCEDURES
18
19
Algorithmique 1 - Exercices
Page 1
Algorithmique – Concepts de base
Pour chaque exercice dans lequel un algorithme est demandée :
•
Déterminer les données utilisées
o constante ou variable,
o type de donnée
o identifiant
o valeur initiale
o dans un commentaire, préciser la signification de la donnée (si son identifiant n’est pas explicite) et
son utilisation (saisi, calculé, aléatoire, …)
• Déterminer la suite d’actions à réaliser en 3 parties en précisant, dans au moins 3 commentaires, ce qui est
à réaliser (en non pas comment on va le réaliser : çà, c’est l’objet des instructions qui vont suivre le
commentaire):
o initialiser les variables (demander la saisie de …, remises à 0, etc.),
o effectuer les traitements,
o afficher ou retourner les résultats
• Si certaines parties du traitement sont plus complexes, un commentaire complémentaire précisera l’objet
des calculs qui seront réalisés (cf. commentaire plus haut !)
Certains algorithmes nécessitent l’utilisation de fonctions mathématiques. Les fonctions suivantes peuvent être
utilisées :
•
•
•
•
•
alea(min, max) : retourne un nombre pseudo-aléatoire entre min et max inclus, nombres entiers
sinus(angle) : retourne le sinus d’un angle exprimé en radians
cosinus(angle) : retourne le cosinus d’un angle exprimé en radians
racine(nombre) : retourne la racine carrée d’un nombre réel
puissance(nombre, exposant) : retourne la valeur de nombre élévée à la puissance de exposant, nombres
réels
1.Introduction
1. Proposer des exemples de la vie courante susceptibles de faire l’objet d’algorithmes (au même titre d’une
recette, par exemple)
2. Proposer des exemples susceptibles de faire l’objet d’algorithmes calculatoires
2.Démarche de conception
1. Analyser les différents problèmes suivants et les reformuler de manière plus formelle :
a. Comment connaitre la taille de mon champ en hectares (1 ha = 10.000 m2) sachant que je vais en
mesure la longueur et la largeur en pas (mon pas vaut 0.60 m) ?
b. Comment connaitre le nombre de pots de peintures pour repeindre les 4 murs d’une pièce qui
comporte 1 porte et 2 fenêtres identiques ?
3.Identification des objets et déclaration des données
1. Parmi les identifiants suivants, indiquer ceux qui sont conformes à la convention, et pour ceux qui ne le
sont pas, proposer un identifiant correct :
a)
b)
c)
2.
nom_etudiant
d) 2emeAdresse
prenom etudiant
e) variable
adresse1
f) afficher
Indiquer le type de donnée de chacune des valeurs littérales suivantes :
g) 2ème note
h) moyenne-générale
i) fMoyenne
a)
b)
c)
d)
15000
-5.0
vrai
‘a’
i) 1234.4567
j) "entier"
k) "12"
Algorithmique 1 - Exercices
e)
f)
g)
h)
" nombre entier"
-5E10
"faux"
-581236
Page 2
Algorithmique – Concepts de base
3. algo002 - Effectuer les déclarations des variables (?) suivantes : a) l'effectif de la classe, b) la moyenne
annuelle d'un étudiant, c) une note est-elle sous la moyenne ou pas ?, d) une mention au Bac, e)la note
minimale pour l'obtention du Bac
4. algo003 - Effectuer la déclaration des données d'un algorithme à partir du texte suivant : "on souhaite
connaître la valeur du panier estival de produits bio pour la consommation d’une semaine pour un foyer
(pommes de terre, tomates et courgettes). On devra connaitre la quantité moyenne par semaine par personne
de chacun des 3 produits (par exemple, une personne peut consommer par semaine : 0.5 kg de pommes de
terres, 1kg de tomates et 800g de courgettes) et le nombre de personnes composant le foyer ; le prix unitaire
est fixé à respectivement 2.10 euros, 3.00 euros et 2.00 euros pour chacun des 3 produits."
4.Erreur ! Source du renvoi introuvable.
1. A partir des déclarations proposées, quelles sont les anomalies d’affectations ?
entier a
réel r
caractère c
booléen b
a) a 5
d) c a
g) c "faux"
b) r 6
e) r a
h) b faux
c) b "faux"
f) a r
i) b a
2. quelles sont les valeurs affichées si les valeurs saisies sont respectivement 3, 6 et 9 ?
entier x,y
debut
lire y
lire x,y
ecrire y,x,y
fin
3. quelles sont les valeurs affichées si les valeurs saisies sont respectivement 3, 6 et 9 ?
entier x,y
debut
lire x
lire x
lire y
ecrire y,x,x
fin
4. quelles sont les valeurs affichées si les valeurs saisies sont respectivement 5 et 5 ?
entier x,y
debut
x 5
y x
x x + 5
y x + 5
ecrire x,y
fin
5. les 2 portions de code qui suivent sont-elles équivalentes ? (= produisent-elles un résultat identique ?)
x 10
y 5
x y
y x
ecrire x,y
x 10
y 5
y x
x y
ecrire x,y
6. les 2 portions de code qui suivent sont-elles équivalentes ? (= produisent-elles un résultat identique ?)
Algo.Base1
Page 3
Algorithmique – Concepts de base
x 10
y 5
x y
y x
ecrire x,y
x 10
y 5
z x
x y
y z
ecrire x,y
7. quelles sont les valeurs affichées si les valeurs saisies sont respectivement 5 et 6 ?
entier x,y
debut
lire x,y
x x + y
y x – y
x x - y
ecrire x,y
fin
8. Quelle sont les valeurs de a, b et c après exécution de la séquence d’actions suivante :
Algorithme Algo_4_8
Déclarations
Variables
entier
a,
b,
c
Début
a 15
b a
c 2
a c
c a
b a
fin
9. a et b étant 2 nombres entiers, proposer un algorithme permettant de permuter leur valeur :
a. si, au départ, a vaut 4 et b vaut 5
b. après permutation, a vaudra 5 et b vaudra 4
5.Expressions de calculs numériques et logiques
1. Donner le type le plus probable de chacune des expressions suivantes
a)
b)
c)
d)
e)
f)
g)
(quantite >= 100)
(2 * 3.14 * 12)
(nombre < NBMAXI)
((100 * 2) < MinNb)
(i - 2500) – (j – 2000)
(i > 15) ET (j > 156)
(i < 150)
h)
i)
j)
k)
l)
m)
n)
((i + 1) < 150)
(2 * 3.14 * 12)
(mtHT < MtMaxi)
((100 * TxTVA) < maxMt)
(nb <= 100)
(i > 10) ET (j > 2)
(i - 10) – (j – 1)
2. Découvrir les tautologies, contradiction et redondances dans les expressions logiques suivantes
a)
b)
(a < b) ET (b < a)
(a <= b) OU (b <= a)
c) (a < 1000) ET (a > 2000)
d)
(a > 1000) ET ( a > 2000)
3. Ecrire la table de vérité des expressions logiques suivantes
Algo.Base1
Page 4
Algorithmique – Concepts de base
a) (a et non b) ou c
b) (a et non b) ou (non a et b)
4. Ecrire les expressions logiques correspondant aux situations suivantes : (x, y et z sont des nombres entiers)
a. les valeurs de x et y sont supérieures à 5
b. les valeurs de x, y et z sont égales
c. les valeurs de x et y sont identiques mais différentes de z
d. la valeur de x est comprise entre y et z, mais différente de y et de z
e. parmi les valeurs de x, y et z, 2 valeurs au plus sont identiques
f.
parmi les valeurs de x, y et z, 2 valeurs au moins sont identiques
5. Effectuer la trace d’exécution de la séquence d’actions suivantes (x et y sont des nombres entiers) et
déterminer ainsi les valeurs finales de x et y
Algorithme Algo_4_8
Déclarations
Variables
entier
x,
y
Début
x 2
y 4 + x * 2
x x * y - 2
y x - y
x x - y
fin
Proposer les algorithmes relatifs aux demandes suivantes :
6. algo004 – Calculer et afficher l’aire du rectangle de côtés 10 et 5
7. algo005 - Calculer et afficher la distance entre les points A(1,1) et B(5,5) ; il existe une fonction ‘racine’ qui
attend un nombre réel et retourne la racine carrée de ce nombre ; par exemple : racine(4) retourne 2
8. algo006 - Calculer et afficher le discriminant de l’équation du 2nd degré : 3x2+5x-8
9. algo007 – Déterminer, en utilisant une expression logique, la valeur booléenne permettant de vérifier si oui ou
non la valeur de la variable a est positive (a est un nombre entier qui sera initialisé à -10) ; le résultat de cette
expression logique devra être mémorisé.
10. algo008 - Déterminer, en utilisant une expression logique, la valeur booléenne permettant de vérifier si oui ou
non la valeur de la variable a est plus petite que celle de b (a et b sont des nombres réels qui seront initialisés
respectivement à 5 et 10) ; le résultat de cette expression logique devra être mémorisé.
11. algo009 – Déterminer, , en utilisant une expression logique, la valeur booléenne permettant de vérifier si oui
ou non la valeur du produit de a par b est plus petite que celle de la somme de a et b (a et b sont des nombres
réels qui seront initialisés respectivement à 5 et 10) ; le résultat de cette expression logique devra être
mémorisé.
6.Echanges avec l’utilisateur : entrées/sorties
Proposer les algorithmes relatifs aux demandes suivantes :
1. algo010 – A partir de 2 nombres entiers demandés, afficher successivement la somme, la différence, le produit
et le quotient de ces 2 nombres.
2. algo011 - Calculer et afficher le carré d’un nombre entier saisi
Algo.Base1
Page 5
Algorithmique – Concepts de base
3. algo012 - Calculer et afficher le cube d’un nombre entier saisi, en n’utilisant qu’une seule fois l’opérateur de
multiplication par calcul (= il y aura plusieurs expression de calculs et plusieurs affectations …)
4. algo013 - Déterminer et afficher le nombre minimal supérieur de billets de 50, 20, 10 et 5 euros correspondant
à un montant saisi en euros (sans centimes), puis déterminer la monnaie à rendre en euros et centimes.
5. algo014 - Déterminer puis afficher une heure de fin à partir de la saisie d’une heure de début (heures, minutes
et secondes saisis séparément) et d’une durée (heures, minutes et secondes saisis séparément).
6. algo015 - Calculer et afficher le discriminant de l’équation du 2nd degré : ax2+bx+c, a, b, et c étant des
nombres réels demandés à l’utilisateur.
7. algo016 - Calculer et afficher la différence entre les moyennes arithmétiques et géométriques de 2 nombres
donnés par l’utilisateur. a) calcul de la moyenne arithmétique des nombres a et b : (a+b) / 2 ; b) calcul de la
moyenne géométrique des nombres a et b : racine(a * b) (il s’agit en fait de la puissance 1/2 : avec trois
nombres, puissance 1/3 ;
8. algo017 - Calculer et afficher la distance entre les points A(xa, ya) et B(xb, yb) , les informations nécessaires
seront demandées et le résultat affiché
9. algo018 - Calculer et afficher le taux d’accroissement moyen d’un placement sur 2 ans comportant des taux
différents (le taux moyen global est la moyenne géométrique des taux de chaque année)
10. algo019 - Calculer et afficher la vitesse d’un avion qui parcourt à l’aller une distance d à la vitesse v1 et au
retour la même distance à la vitesse v2 (la vitesse moyenne est la moyenne harmonique des vitesses de l’aller
et du retour)
11. algo020 - Certains champs des Etats-Unis sont circulaires (un système d'arrosage effectue une rotation autour
d'un point central). Déterminer puis afficher la surface perdue par rapport à un champ carré. On considère un
champ circulaire inscrit dans le champ carré. On demandera à l'utilisateur le rayon du cercle.
12. algo030 – (tp) Convertir une somme saisie en euros en un montant en Livre Sterling (GBP - taux de change 1
euro = 0,80 GBP) et en Dollar US (USD - taux de change 1euro = 1.15 USD)). Afficher le résultat
13. algo035 - Convertir en heures, minutes et secondes une durée exprimée en secondes et donnée par
l’utilisateur; l’opérateur modulo (%) calcule le reste d’une division euclidienne (ou division entière)
14. algo040 - Calculer puis afficher la valeur du panier estival de produits bio (pommes de terre, tomates et
courgettes) pour une semaine pour un foyer à partir des données suivantes : la quantité moyenne par semaine
par personne de chacun des 3 produits et le nombre de personnes composant le foyer seront saisis. (par
exemple, une personne peut consommer par semaine : 0.5 kg de pommes de terres, 1kg de tomates et 800g de
courgettes) ; on prend comme prix unitaire respectif de chacun des produits : 2.10 euros, 3.00 euros et 2.00
euros.
15. algo042 - Un démarcheur à domicile est rémunéré avec un salaire fixe de 1000 Euros par mois. Il perçoit aussi
une commission qui représente 5% du montant des ventes qu'il a réalisées. Le salaire ainsi obtenu (fixe et
commission) est augmenté de 10 % pour prendre en compte ses frais de déplacement. Calculer et afficher son
salaire en fonction d'un montant des ventes réalisées qui sera demandé.
7.Séquence d’action nommée
Elle correspond aux commentaires décrivant les différentes actions à réaliser :
8.Structure de contrôle conditionnelle - tests
1. Quelle sont les valeurs de a, b et c après exécution de la séquence d’actions suivante :
Algorithme 1
Algorithme 2
Algorithme Algo_8_1
Déclarations
Variables
Algorithme Algo_8_2
Déclarations
Variables
Algo.Base1
Page 6
Algorithmique – Concepts de base
entier
a,
entier
b,
c
Début
a 15
b a
Si (b < a)
c 2
sinon
c 1
finSI
a c
Si (c < b)
c a
sinon
b a
finSi
fin
booléen
Début
a 4
b 6
b a + 4
c (a < b)
Si (c)
b a + b
sinon
a a + 4
finSI
fin
a,
b,
c
Proposer les algorithmes relatifs aux demandes suivantes :
2. algo101 - demander la saisie d’un nombre entier : si ce nombre est inférieur ou égal à 0, afficher le message
"le nombre est négatif ou nul"
3. algo102 - demander la saisie de 2 nombres entiers différents, n1 et n2, et afficher la valeur la plus élevée
4. algo105 - déterminer le signe du produit de 2 nombres (sans calculer ce produit) : afficher ‘positif’, ‘négatif’
ou ‘nul’.
5. algo110 - Un commerçant accorde une remise de 10% sur le prix unitaire d’un article si la quantité
commandée est supérieure à 100 unités. Demandez la saisie de la quantité commandée et du prix unitaire ;
calculer et afficher le montant à payer (en tenant éventuellement compte de la remise)
6. algo115 - Un numéro de groupe a été attribué aux étudiants; vous afficherez un texte selon le numéro du
groupe ; dans le cas 1, « option anglais », dans le cas 2, « option allemand », dans le cas 3, « option espagnol
», et, dans les autres cas, « pas d’option »
7. algo130 - (tp) déterminer puis afficher le cout total des entrées du parc « scoubidou » pour une famille (le
nombre de membres est à demander), sachant entre le tarif unitaire est dégressif : 4 euros/pers entre 1 et 4
personnes, 3.20 euros jusqu’à 10 personnes et 2.4 euros au-delà.
8. algo140 - Déterminer puis afficher le salaire net d’un employé à partir de son salaire brut (taux horaire brut et
un nombre d’heures à demander), auquel on ajoute une prime d’ancienneté en fonction de son nombre
d’années de présence (à demander) : 2% du salaire brut entre 10 et 20 ans de présence, 4% au-delà; on déduit
de ce total un montant de charges sociales (taux de charges sociales de 20%) pour obtenir le salaire net versé.
9. algo150 - Demander la saisie d’un nombre entier : si ce nombre est compris entre 1 et 12, afficher le message
"correct" sinon afficher le message "incorrect"
10. algo151 - Demander la saisie d’un nombre entier: si ce nombre est compris entre 1 et 12, on écrira le message
« correct » suivi du nombre sinon si le nombre est négatif ou nul, on écrira « trop petit » et si le nombre est
supérieur à 12 on écrira « trop grand »
11. algo160 - Un niveau a été attribué aux étudiants en fonction de leur note ; selon la valeur du niveau vous
afficherez le texte correspondant : Pour A, afficher "Tres bien", pour B, "Bien", pour C, "moyen" et dans les
autres cas "attention" suivi du niveau.
12. algo162 - déterminer une appréciation en fonction d’une note saisie : faible si inférieur à 8, insuffisant si
inférieur à 9, moyen si inférieur à 12, satisfaisant si inférieur à 16, très bien si inférieur à 18 sinon excellent.
13. Trouver les erreurs :
Algo.Base1
Page 7
Algorithmique – Concepts de base
ALGO calculMontant
ROLE calculer un montant
DECLARATIONS
CONST
reel TAUX 1.56
VAR
reel montant
DEBUT
LIRE montant
SI montant < 0
ALORS
TAUX TAUX * -1
SINON
montant1 montant * TAUX
ECRIRE montant2
ECRIRE "terminé"
FIN
Proposer les algorithmes relatifs aux demandes suivantes :
14. algo170 Déterminer si un nombre x est multiple d'un nombre y, tous deux saisis.Aide : un nombre x est
multiple d’un nombre y si le reste de la division entière de x par y vaut 0. (cf. modulo).
15. algo175 - Afficher le plus grand de 3 nombres saisis
16. algo180 - Vérifier que trois nombres saisis peuvent être les longueurs des côtés d’un triangle. Aide : 3
segments peuvent former un triangle si la somme des longueurs des 2 cotés les plus petits est supérieure à la
longueur du plus grand.
17. algo182 - Vérifier qu’un point de coordonnées (x,y) se trouve bien dans un rectangle définit par (x1, y1),
coordonnées de son point haut gauche, et par sa largeur et sa hauteur. Afficher s’il est à l’intérieur ou à
l’extérieur.
18. algo185 – Demander la saisie de 3 nombres et les afficher dans l'ordre croissant.
19. algo190 - Résoudre (dans R), une équation du 2nd degré, les coefficients a, b et c étant saisis, entiers et
différents de 0. Afficher, selon le cas, le nombre de racines et leurs valeurs.
20. algo191 – Déterminer si une année donnée par l’utilisateur est bissextile ou pas ; une année est bissextile si
elle est un multiple de 4 et pas de 100, ou bien un multiple de 400
21. algo192 – Déterminer et afficher, à partir des valeurs d’un jour du mois, d’un mois et d’une année, ces 3
éléments étant entiers et demandés à l’utilisateur, la date du jour suivant
22. algo195 - calculer les frais de transport des colis sachant que : a) La taxe de base applicable à tout colis est de
50 euros. ; b) Si le colis pèse plus de 60 Kg, une surtaxe de 10 euros par kilo supplémentaire est ajoutée. ; c)
Si la somme des 3 dimensions (largeur, longueur, hauteur) du colis dépasse 1 mètre, 5 euros sont perçus par
10 cm excédentaire; d) 10% du total obtenu sont ajoutés pour tout trajet supérieur à 100 Km. Etant donnés la
largeur, la hauteur, la longueur, le poids du colis et la distance à parcourir, calculer le prix à payer pour le
transport d'un colis.
9.Structure de contrôle itérative - boucles
1. Quelle sont les valeurs de a, b et c après exécution de la séquence d’actions suivante :
Algorithme 1
Algorithme Algo_9_1_1
Déclarations
Variables
entier
a,
b,
c
Algo.Base1
Algorithme 2
Algorithme Algo_9_1_2
Déclarations
Variables
entier
a,
b,
booléen
c
Page 8
Algorithmique – Concepts de base
Début
a 4
b a * 2
TantQue a < b
c c + a
a a + 1
finTantQue
fin
Début
a 4
b 12
c (a < b)
TantQue (c)
a a + 2
c (a < b)
finTantQue
fin
2. Transformer les algorithmes suivants en y plaçant une structure itérative adaptée en complétant les
déclarations si nécessaire. Les points de suspension (« . . . ») indique que l’affichage se poursuit selon la
même suite arithmétique (un+1 = un + r, avec r = raison de la suite).
Algorithme 1
Algorithme Algo_9_2_1
Déclarations
Variables
entier
a,
b
Début
Lire a, b
Afficher (a * 0 + b)
Afficher (a * 1 + b)
Afficher (a * 2 + b)
Afficher (a * 3 + b)
. . .
Afficher (a * 8 + b)
Afficher (a * 9 + b)
fin
Algorithme 3
Algorithme Algo_9_2_1
Déclarations
Variables
entier
a,
b,
c
Début
Lire a, b, c
Afficher (a * (c – c) + b)
Afficher (a * (c – c + 1) + b)
Afficher (a * (c – c + 2) + b)
. . .
Afficher (a * (c - 1) + b)
Afficher (a * c + b)
fin
Algorithme 2
Algorithme Algo_9_2_2
Déclarations
Variables
entier
a,
b
Début
Lire a, b
Afficher (a * 15 + b)
Afficher (a * 12 + b)
. . .
Afficher (a * 6 + b)
Afficher (a * 3 + b)
fin
Algorithme 4
Algorithme Algo_9_2_2
Déclarations
Variables
entier
a,
b, c
Début
Lire a, b, c
Afficher (a * c + b)
Afficher (a * (c - 1) + b)
. . .
Afficher (a * 2 + b)
Afficher (a * 1 + b)
fin
3. Indiquer à quoi correspondent les résultats puis proposer les algorithmes permettant de les obtenir
Pour chacun d’eux, 2 algorithmes sont possibles :
•
•
l’un utilisant une seule structure itérative,
l’autre utilisant une structure conditionnelle imbriquée dans une structure itérative.
Comparer les 2 solutions pour chaque algorithme en comptant le nombre d’instructions réalisées.
Algo.Base1
Page 9
Algorithmique – Concepts de base
La valeur n sera saisie (nombre entier naturel positif).
Résultat de l’algorithme 6
Résultat de l’algorithme 7
0
1 x 1 = 1
2
1 x 3 = 3
1 x 5 = 5
4
n lignes
6
. . .
8
3 x 1 = 3
10
3 x 3 = 9
. . .
3 x 5 = 15
n x n lignes
. . .
5 x 1 = 5
5 x 3 = 15
5 x 5 = 25
. . .
Dans les exercices de création d’algorithme, vous choisirez dans un premier temps la structure de contrôle la plus
adaptée, puis vous utiliserez une autre structure de contrôle itérative.
4. déterminer le dernier texte affiché après l’exécution de chacun des 2 algorithmes :
// afficher une variable de boucle
ALGO Repeter
VAR entier i
DEBUT
Saisir nombre
POUR i DE 1 A 9 PAS DE 1
AFFICHER "valeur de i = ", i
finPOUR
FIN
// afficher une variable de boucle
ALGO Repeter
VAR entier i
DEBUT
Saisir nombre
POUR i DE 1 A 9 PAS DE 1
AFFICHER "valeur de i = ", i
finPOUR
AFFICHER "valeur de i = ", i
FIN
5. Localiser le problème et apportez une correction puis le représenter sous forme d’arbre programmatique
problème : rien ne s’affiche
// afficher une variable de boucle
ALGO Repeter
VAR entier i, j, nombre
DEBUT
Saisir nombre
POUR i DE 1 A j
AFFICHER "boucle numero ", i
finPOUR
FIN
6. Localiser le problème et apportez une correction puis le représenter sous forme d’arbre programmatique
problème : l’algorithme ne s’arrête jamais
Algo.Base1
Page 10
Algorithmique – Concepts de base
// choisir une option dans
proposé
ALGO Repeter
VAR entier choix
DEBUT
TANTQUE
REPETER
AFFICHER "Menu :")
AFFICHER " . . . etc. ")
AFFICHER "9- quitter")
TantQue(choix !=9)
FIN
le
menu
7. Localisez le problème et apportez une réponse
// table de multiplication %
ALGO Repeter
VAR entier i, j, Vnombre, Vresultat
DEBUT
AFFICHER "Entrez un nombre positif : "
SAISIR Vnombre
POUR i de 1 A 9 FAIRE
Vresultat <-- Vnombre * j
AFFICHER "multiplication ", i, " X ", Vnombre, " = ", Vresultat
finPOUR
FIN
Proposer les algorithmes relatifs aux demandes suivantes :
8. algo200 - Afficher les nombres entre n1 et n2, nombres entiers saisis, de 2 en 2
9. algo202 - Ecrire la table de multiplication d'un nombre entier saisi par les nombres de 0 à 12 en utilisant la
structure POUR
10. algo203 - Ecrire la table de multiplication d'un nombre entier saisi par les nombres de 0 à 12 en utilisant la
structure TANTQUE
11. algo206 – Calculer et afficher la moyenne d’un certain nombre de notes : l’utilisateur donnera le nombre de
notes à saisir, puis on permettra la saisie de ces notes et enfin on calculera la moyenne, qui sera affichée
12. algo208 - On souhaite calculer la moyenne d’un certain nombre de notes : permettre la saisie des notes tant
que l’utilisateur saisi une note supérieure ou égal à 0. Calculer et afficher la moyenne
13. algo210 - Déterminer et afficher le plus petit et le plus grand nombre d’une série de nombres entiers saisis par
l’utilisateur. La saisie sera arrêtée dès que la valeur 0 sera saisie.
14. algo220 - Afficher les multiples de 4 entre 1 et 100
15. algo222 - Afficher les nombres de n1 à n2, entiers saisis, sauf les multiples de 3 et les multiples de 5
16. algo225en – Print the table of Fahrenheit temperatures and their Celsius equivalent. It uses the formula : tc =
(5/9)*(tf -32), where tc is Celcius temperature and tf is Fahrenheit temperature. The lower temperature value
is set to 0 and the upper one is set to 300.
17. algo226en – Print the table of Celsius temperatures and their Fahrenheit equivalent. It uses the formula : tc =
(5/9)*(tf -32), where tc is Celcius temperature and tf is Fahrenheit temperature. The user gives the lower and
the upper temperature values.
18. algo230 – (tp) Afficher les valeurs des sinus et cosinus des angles de 0 à 90 degrés par pas de 15 degrés. Les
fonctions ‘sinus’ et ‘cosinus’ sont disponibles : elles attendent toutes un angle exprimé en radians.
Algo.Base1
Page 11
Algorithmique – Concepts de base
19. algo232 - Afficher les valeurs des sinus et cosinus des angles entre un angle de début et une valeur de fin,
saisis et exprimé en degrés, et selon un pas qui sera également saisi. Les fonctions ‘sinus’ et ‘cosinus’ sont
disponibles : elles attendent toutes un angle exprimé en radians.
20. algo235 – Calculer et afficher la longueur des tronçons de droite d’une courbe ax2 + bx + c, a, b et c étant
demandés (nombres entiers), pour les valeurs de x allant de d à e par incrément de 1, ces 2 valeurs étant
également demandées.
21. Remplacer la structure de contrôle POUR par TANTQUE
ALGO Calculer
VAR entier i, j, nombre
DEBUT
nb 0
POUR
i
DE 1 A
30 PAS DE 1
REPETER
SAISIR nombre
nb nb + nombre
finPOUR
AFFICHER nb
FIN
22. Représenter l’arbre programmatique correspondant et effectuer la trace d'exécution, sachant qu’on saisira
successivement les valeurs suivantes : 1, 4, 6, 9
ALGO Calculer
VAR entier a, n, i x
DEBUT
n 4
a 0
POUR
i DE 1 A n
REPETER
SAISIR x
a a + x
finPOUR
AFFICHER a
FIN
PAS DE 1
Proposer des algorithmes aux problèmes posés :
23. algo240 - Proposer l’affichage d’une liste d’options (= une forme de menu) du style "Menu : choix 1 …, choix
2… ou 3…, 0 pour quitter – Entrer votre choix :". Afficher ce menu tant que l’utilisateur n’a pas saisi le
nombre 0. Comme traitement de chacun des choix, afficher simplement l’option choisie.
24. algo242 – Demander la saisie d’un nombre et en vérifier la validité : il doit être compris entre 0 et 20. Afficher
« ok » quand c’est bon, sinon redemander la saisie.
25. algo244 - Calculer et d’afficher la moyenne de n nombres entiers saisis, en ne tenant compte que des nombres
saisis supérieurs ou égaux à 10 pour le calcul de la moyenne), n étant saisi par l’utilisateur
26. algo246 - Afficher le plus petit et le plus grand nombre d’une série de 6 nombres entiers saisis
27. algo248 - Calculer la factorielle d'un nombre saisi et afficher le résultat
28. algo250 - On souhaite écrire l’algorithme d’un programme qui simule le fonctionnement d’un ascenseur : a)
L’utilisateur va se voir proposer un menu à partir duquel il pourra : 0=sortir de l’ascenseur, 1=descendre et
9=monter puis en donnant le nombre d’étages à monter ou descendre ; b) lors de la montée ou lors de la
descente, les numéros d’étages intermédiaires seront affichés et l’étage atteint sera signalé par ‘vous êtes à
l’étage nnn’ ; c) au départ, l’utilisateur se trouve à l’étage 0 ; l’algorithme s’arrête dès qu’on sort de
l’ascenseur.
Algo.Base1
Page 12
Algorithmique – Concepts de base
29. algo252 – Déterminer si un nombre donné par l’utilisateur est premier ou pas.
30. algo253 – Déterminer si un nombre donné par l’utilisateur est premier ouo pas (optimisé)
31. Trouver la cause de l’erreur d’exécution
L’exécution ne s’arrête jamais
ALGO Somme de valeurs
VAR entier a, s
DEBUT
a 0
s 0
TQ a = 0
REPETER
LIRE x
s s + 1
fTQ
AFFICHER s
FIN
32. algo280 – algo260 - Ecrire un algorithme du jeu du juste prix : un nombre aléatoire entre 1 et 100 est généré
(la fonction alea(min, max) retourne un nombre pseudo-aléatoire entre min et max) . Le joueur doit deviner ce
nombre en un minimum de coups. A chaque proposition, on affiche si le nombre à trouver est plus grand ou
plus petit. A la fin, afficher le nombre de coups qui ont été nécessaires..
33. algo262 - Simuler le fonctionnement d’une calculette simple prenant en compte les opérateurs arithmétiques
+,-, / et *, et s'arrêtant à la saisie de =. Les calculs intermédiaire sont effectués dès la saisie d’un opérateur puis
d’une valeur. La valeur initiale du résultat est 0.
34.
35. algo270 - Proposer 2 algorithmes permettant le calcul du PGCD de 2 nombres entiers naturels non nuls à
.partir des 2 méthodes décrites ci-dessous : a) en essayant la division par tous les entiers ; b) en utilisant la
méthode d’Euclide (« algorithme d'Euclide ») : on divise le plus grand des deux nombres par le plus petit des
deux, puis le plus petit des deux par le reste de la première division euclidienne. On recommence jusqu'à ce
que le reste (qui diminue sans cesse) devienne nul. Le PGCD cherché est le dernier reste non nul (ou le
premier diviseur, si le premier reste est nul).
36.
37. algo272 - Utiliser la méthode des rectangles pour le calcul approché d’une intégrale. On utilisera une
fonction ax2 + bx + 2, a, b et c étant données par l’utilisateur (nombres entiers). Les bornes de calcul et le pas
de calcul seront aussi donnés par l’utilisateur. Le résultat sera affiché.
38. algo273 - Utiliser la méthode des milieux pour le calcul approché d’une intégrale. On utilisera une fonction
ax2 + bx + 2, a, b et c étant données par l’utilisateur (nombres entiers). Les bornes de calcul et le pas de calcul
seront aussi donnés par l’utilisateur. Le résultat sera affiché.
39. algo274 - Utiliser la méthode des trapèzes pour le calcul approché d’une intégrale. On utilisera une fonction
ax2 + bx + 2, a, b et c étant données par l’utilisateur (nombres entiers). Les bornes de calcul et le pas de calcul
seront aussi donnés par l’utilisateur. Le résultat sera affiché.
40. algo275 - Convertir une suite de 8 valeurs binaires (0 ou 1) en valeur décimale
41. algo276 - Convertir un nombre décimal en binaire en utilisant la méthode des divisions.
42. algo260 – algo280 - Ecrire la table de multiplication des nombres de 1 à 10 par les nombres de 1 à 10 en
utilisant la structure TANTQUE
43. algo261 – algo281 - Ecrire la table de multiplication des nombres de 1 à 10 par les nombres de 1 à 10 en
utilisant la structure POUR
Algo.Base1
Page 13
Algorithmique – Concepts de base
44. algo282 - Proposer un algorithme qui affiche tous les couples possibles (x,y) de nombres entiers tels que x soit
compris entre 1 et p, et y soit compris entre 1 et q. L’affichage sera réalisé selon la forme suivante :
(1,1)(1,2)(1,3)…(1,q), puis (2,1)(2,2)(2,3), etc., et enfin (p,1)(p,2)(p,3)…(p,q)
45. algo284 - Donner les valeurs de la fonction "ax + b" pour toutes les valeurs de ‘a’ et de ‘b’ comprises entre 1
et aMax d'une part, 1 et bMax d'autre part ; aMax et bMax étant donnés par l’utilisateur
46. algo286 - Donner les nombres premiers entre 1 et 50
47. algo287 - Donner les 100 premiers nombres premiers
48. algo290 - Représenter un carré de caractères "*" de dimension 4, décalé vers la droite de 3 espaces
...****
...****
...****
...****
49. algo292 - Représenter un carré de caractères "*" de dimension N, N étant saisi.
Exemple pour N valant 5
*****
*****
*****
*****
*****
50. algo294 - Représenter un triangle de caractères "*" de dimension N, N étant saisi.
Exemple pour N valant 5
*
**
***
****
*****
51. algo296 - Représenter un histogramme à partir de la saisie de 5 nombres entiers positifs ou nuls saisis et
mémorisés dans un tableau
Exemple :
**********10
*****5
**************14
*******7
0
52. algo298 - Représenter la figure suivante pour un nombre N saisi.
Exemple pour n valant 5
*
***
*****
*******
*********
53. algo299 - Représenter un losange de caractères ‘*’. Lire un nombre ‘n’ et afficher un losange ayant (2n – 1)
lignes.
Pour n = 4, par exemple, le résultat sera :
*
***
*****
Algo.Base1
Page 14
Algorithmique – Concepts de base
*******
*****
***
*
10.
Structures de données composées : tableaux
Tableaux
1. algo300 - Donner la déclaration algorithmique des données suivantes : a) un tableau permettant de mémoriser
la date de naissance de 12 personnes ; b) un tableau permettant de mémoriser les 15 lettres d’un mot du
Scrabble ; c) un tableau permettant de mémoriser les notes sur 20 de 12 élèves, d) un tableau permettant de
mémoriser les notes 30 élèves pour 8 matières ; e) le plateau d’un jeu d’échec mémorisant les pièces : 1 pour
le roi, 2 pour la reine, etc. ; f) une matrice carrée d’entiers de taille 3
Proposer la représentation des algorithmes suivants : (1 tableau 1 dimension)
1. algo301 - Initialiser un tableau de 4 nombres entiers à la valeur 0 puis affiche chacune des valeurs. Utiliser la
structure POUR
2. algo302 - Initialiser un tableau de 4 nombres entiers à la valeur d’un nombre entier qui sera demandé, puis
affiche chacune des valeurs. Utiliser la structure TANTQUE
3. algo303 - Initialiser un tableau de 4 nombres entiers à la valeur de l’indice courant de chaque élément plus 1,
puis affiche chacune des valeurs. Utiliser la structure POUR
4. algo304 - Initialiser un tableau de 4 nombres entiers à la valeur de l’indice courant de chaque élément plus 1,
puis affiche chacune des valeurs. Utiliser la structure TANTQUE
5. algo305 Mémoriser la saisie de 4 nombres entiers puis afficher les éléments soit du premier au dernier soit
du dernier au premier selon un choix proposé à l’utilisateur
6. algo306 – Calculer puis afficher la somme des valeurs d’un tableau dont les éléments auront été initialisés de
manière aléatoire, avec des nombre entiers entre 1 et 5. La fonction ‘alea(min, max)’ retourne un nombre
aléatoire entre min et max inclus.
7. algo307 - Calculer puis afficher la moyenne des valeurs d’un tableau dont les éléments auront été initialisés de
manière aléatoire, avec des nombre entiers entre 1 et 5.
8. algo410 - Ce programme permet la saisie d’un nombre entier et la mémorisation dans un tableau du produit de
ce nombre par les nombres de 0 à 10 et l'affichage des valeurs mémorisées en ordre inverse.
9. « CalculerMoyenneTab » , qui, à partir des moyennes des 12 étudiants d’une classe, calcule et affiche la
moyenne de la classe (les moyennes de 12 étudiants seront calculées de manière aléatoire)
10. algo310 - Dans cet algorithme, on effectuera les opérations suivantes : demander la saisie de 4 nombres
entiers qui seront mémorisés dans un tableau, afficher les valeurs du tableau, calculer puis afficher la moyenne
des valeurs, et enfin afficher les valeurs du tableau supérieures à la moyenne.
11. algo315 - Proposer l’algorithme qui demande dans un premier temps la saisie de 12 nombres réels
(correspondant aux durées moyennes d’ensoleillement des 12 mois d’une année), puis calcule et affiche la
durée totale d’ensoleillement de l’année ainsi que la durée mensuelle moyenne d’ensoleillement, et enfin
affiche les numéros des mois pour lesquels la durée d’ensoleillement a été supérieure ou égale à la durée
mensuelle moyenne.
Exemple :
•
si les valeurs suivantes sont saisies : (exemple de l’année 2015 à Paris1)
48.4
1
99.7
143
239.4
200.8
303.7
242.6
212.4
181
109.7
80.6
90.8
Source : http://www.meteofrance.com/climat/france/paris/75114001/releves 2016-01-08
Algo.Base1
Page 15
Algorithmique – Concepts de base
• la durée totale d’ensoleillement est de 1952.1 et la durée mensuelle moyenne 162.675
• les numéros des mois (janvier = 0) affichés seront : 3, 4, 5, 6, 7 et 8
12. algo« AfficherHistoTemperatures », qui, à partir des températures du mois de Juillet ( 31 jours), permet, dans
un premier temps, la saisie des températures et qui affichera ensuite un diagramme à barres horizontales des
températures (une ligne par jour, avec une étoile (*) par degrés (en juillet, les températures seront positives !)
13. utilisé algo320 - utilisé
14. algo321 - Rechercher la plus petite et la plus grande valeur dans un tableau de 100 nombres entiers initialisé
avec des valeurs aléatoires ; la valeur trouvée sera affichée
15. algo322 - Rechercher un nombre donné par l’utilisateur dans un tableau de 100 nombres entiers initialisé avec
des valeurs aléatoires ; si le nombre est trouvé, sa position (la 1ère) dans le tableau sera affichée sinon le
message « non trouvé » sera affiché
16. algo323 - Rechercher un nombre donné par l’utilisateur dans un tableau de 100 nombres entiers initialisé avec
des valeurs aléatoires ; si le nombre est trouvé, sa position (la dernière) dans le tableau sera affichée sinon le
message « non trouvé » sera affiché
17. algo330 – (tp)Compter le nombre d'apparition d'un nombre saisi par l'utilisateur dans un tableau de 100
nombres entiers initialisé avec des valeurs aléatoires entre 1 et 10.
18. « RechercherNombreTab3 », qui permet la recherche la valeur la plus proche d’un nombre donné par
l’utilisateur dans un tableau de 100 nombres entiers initialisé avec des valeurs aléatoires ;
19. « RechercheDichotomique » : utiliser la recherche dichotomique pour rechercher une valeur dans un tableau
de 100 entiers dont les valeurs sont ordonnées
20. « PermutterTab », qui réalise la permutation des éléments d’un tableau de 20 éléments 2 à 2 ; le tableau sera
initialisé à la valeur de l’indice, les éléments du tableau seront affichés avant et après permutation
a. Exemple : si la valeur des 6 premiers éléments du tableau est 0,1,2,3,4,5, on aura, après permutation :
1,0,3,2,5,4
21. « DecalerTab1 », qui efface une valeur située à une position donnée d’un tableau de 20 éléments et décale les
éléments suivants vers la gauche ; la position libérée à droite sera initialisée à 0
a. Exemple : pour un tableau de 6 éléments, si la valeur des éléments est 0, 1, 2, 3, 4, 5, on aura, après
effacement de la 3ème (soit la valeur 2) : 0, 1, 3, 4, 5, 0
22. « DecalerTab2 », qui efface une valeur située à une position donnée d’un tableau de 20 éléments et décale les
éléments suivants vers la droite ; la position libérée à gauche sera initialisée à 0
a. Exemple : pour un tableau de 6 éléments, si la valeur des éléments est 0, 1, 2, 3, 4, 5, on aura, après
effacement de la 3ème (soit la valeur 2) : 0, 0, 1, 3, 4, 5
23. algo320 - demander la saisie de 4 nombres entiers qui seront mémorisés dans un tableau. Décaler les valeurs
du tableau d une position vers la gauche (le 2eme devient le 1er, etc, et le premier devient le dernier). Afficher
le tableau résultant.
24. « RotationTab », qui réalise la translation vers la gauche des éléments d’un tableau de 20 éléments; le tableau
sera initialisé à la valeur de l’indice, les éléments du tableau seront affichés avant et après rotation
a. Exemple : si la valeur des 6 premiers éléments du tableau est 0,1,2,3,4,5, on aura, après permutation :
1,2,3,4,5,0
b. modifier l’algorithme pour accepter un choix de l’utilisateur permettant la rotation vers la gauche de
plusieurs positions
c. modifier l’algorithme pour effectuer la rotation vers la droite également
25. algo390 - Ini de 3 séries de 4 nombres réels afin d’en calculer les sommes horizontale et verticale et
d’afficher un tableau correspondant. Un seul tableau de 4 nombres sera utilisé (en plus des simples variables
intermédiaires)
10.00 15.00
Algo.Base1
8.00
7.00
40.00
Page 16
Algorithmique – Concepts de base
5.00 10.00 15.00
5.25
35.25
8.00 12.00 15.50
0.00
25.50
23.00 37.00 38.50 12.25 100.75
a.
Proposer la représentation des algorithmes suivants : (plusieurs tableaux à 1
dimension)
26. algo400 - gère une classe de 8 élèves : leur moyenne et leur nom, et qui affiche une liste avec le nom, la
moyenne et l’indication « passage » si la moyenne est supérieure ou égale à 10
27. algo402 - gère une classe de 8 élèves : leur moyenne et leur nom ; recopier les noms des élèves qui ont la
moyenne dans un 3ème tableau, puis afficher ces noms
28. algo405 - Initialiser 10 couples de coordonnées x,y, de manière aléatoire dans 2 tableaux, puis calculer et
afficher la distance totale de la polyligne ainsi décrite
29. algo410 - Calculer la valeur d'un mot du scrabble en fonction de la valeur de chacune des lettres (Les valeurs
des lettres vous seront fournies)
30. algo420 - Fusionner 2 tableaux de 6 nombres entiers (les valeurs de chacun des tableaux sont ordonnées) dans
un troisième tableau de 12 nombres entiers.
31. algo430 - Calculer le produit scalaire de 2 tableaux de réels de même dimension (Rappel : si u=(u1,u2, …,un)
et v=(v1,v2,…,vn), le produit scalaire u.v = u1.v1+u2.v2+…+un.vn)
Proposer la représentation des algorithmes suivants : (tableaux à plusieurs
dimensions)
32. algo450 - Initialiser les éléments d'une matrice carrée de 9 éléments (3X3) avec des valeurs aléatoires de 1 à 9.
Mettre à 0 les 2 diagonales. Afficher les valeurs sous forme d'une matrice.
33. algo452 - initialisée une matrice carrée de 4 éléments avec des valeurs aléatoires de 1 à 9, afficher les valeurs
des diagonales (le caractère ‘.’ sera affiché à la place des autres valeurs)
34. algo455 - Trouver la valeur maximale d'une matrice de 12 éléments (3X4) initialisée avec des valeurs
aléatoires de 1 à 9, puis afficher la position (ou les positions) de cette valeur : ligne,colonne
35. algo460 – Initialiser une matrice de 12 éléments (3X4), afficher la matrice, puis permuter la 1ère et la dernière
ligne et afficher la matrice résultante
36. algo465 - Initialiser une matrice de 12 éléments (3X4), afficher la matrice, puis permuter la 1ère et la dernière
colonne et afficher la matrice résultante
37. algo470 - calculer et afficher le déterminant d’une matrice carrée de 4 éléments; det(m) = a11*a22 –
a12*a21
Proposer la représentation des algorithmes suivants : (tri)
38. algo500 – mettre en oeuvre l’algorithme du tri bulle élémentaire sur un tableau de 10 nombres aléatoires entre
1 et 9
39. algo510 - mettre en oeuvre l’algorithme du tri bulle optimisé sur un tableau de 10 nombres aléatoires entre 1
et 9
Algo.Base1
Page 17
Algorithmique – Concepts de base
11.
Structures de données composées : enregistrement
à définir
12.
Modularité et sous-programmes : fonctions et
procédures
Fonctions
Pour chacune des fonctions, décrire son algorithme et donner un exemple de son appel dans un algorithme principal :
1.
« fSomme »
2.
a. attend 2 nombres entiers
b. et retourne la somme des 2 nombres
« fAbs »
3.
a. attend 1 nombre entier
b. et retourne la valeur absolue du nombre
« fMax »
a. attend 2 nombres entiers
b. et retourne le plus grand des 2
4. « fCarre »
a. attend 1 nombre entier
b. et retourne le nombre élevé au carré
5. « fPuissance »
a. attend 2 nombres entiers
b. et retourne le premier nombre élevé à la puissance du second
6. « fDeg2Fahr », qui convertit une température exprimée en Celsius en une température exprimée en Fahrenheit
a. attend un nombre réel
b. retourne la conversion en degré Fahrenheit du nombre (celsius = 5 * (fahrenheit – 32) / 9
7. Proposer la fonction inverse, qui convertit une température exprimée en Fahrenheit en une température
exprimée en Celsius
8.
« fFact »
a. attend 1 nombre entier
b. et retourne la factorielle de ce nombre (rappel : n! = n * n-1 * n -2 * … * 2 * 1)
9. « fEstPair »
a. attend 1 nombre entier,
b. et retourne un booléen à VRAI si le nombre est pair, à FAUX dans le cas contraire
10. « fArrondi »
a. attend 1 nombre réel
b. et retourne le nombre entier arrondi le plus proche (+12,4 donne +12, +12,5 donne +13, -12,4 donne 12, et -12,5 donne -13).
11. « fPosition »
a. attend 1 tableau de NB nombres entiers (un vecteur) et un nombre entier
b. et retourne l’indice du nombre trouvé ou -1 sur le nombre n’a pas été trouvé
12. « fTabCompte1 »
a. attend 1 tableau de NB nombres entiers (un vecteur)
b. et retourne la somme des nombres du tableau
Algo.Base1
Page 18
Algorithmique – Concepts de base
13. « fTabCompte2 »
a. attend 1 tableau de NB nombres entiers (un vecteur), un indice début et un indice fin
b. et retourne la somme des nombres du tableau entre les indices début et fin
14. « fSommeDiag »
a. attend 1 tableau d’entiers à 2 dimensions, NBXNB, (une matrice carrée),
b. et retourne la somme des nombres de la diagonale de la matrice
15. « fCompteVoyelles »
a. attend 1 tableau de NB caractères
b. et retourne le nombre de voyelles du tableau
16. « fEstPalindrome »
a. attend 1 tableau de NB caractères (un mot)
b. et déterminer si le mot est un palindrome ou pas
a. palindrome : mot qui peut être lu de gauche à droite et de droite à gauche (gag, elle, etc.)
17. « fFonction1 » est définie par :
3 + + 1, ≥ 1
0, b. Elle attend un nombre entier
c. Et retourne la valeur calculée
18. « fFonction2 » est définie ainsi :
a. 1
= a. 2
= 1
+ 1
− 1 + ⋯ + 1
1 :
b. Elle attend un nombre entier
c. Et retourne la valeur calculée
Procédures
Pour chacune des procédures, décrire son algorithme et donner un exemple de son appel dans un algorithme principal :
19. « pOperation »
a. attend 2 nombres entiers a et b, un caractère c
b. et écrit « a c b vaut r » où r est le résultat de l’opération : + pour l’addition, - pour la soustraction, *
pour la multiplication et / pour la division (dans les autres cas, on affichera « opération inconnue »).
20. « pAfficherEtudiant »
c. attend 1 variable de type structure étudiant (numéro : entier, nom: chaine de caractères)
d. et écrit « l’étudiant de numéro X se nomme Y », où X et Y correspondent au numéro et au nom de
l’étudiant.
21. « pAfficherTab1 »
e. attend 1 tableau de NB entiers (vecteur) et un caractère c
f. et écrit les valeurs du tableau : horizontalement sur une ligne si le caractère c vaut H ou verticalement
sur une colonne dans le cas contraire.
22. « pAfficherTab2 »
g. attend 1 tableau d’entiers à 2 dimensions, NBLIG X NBCOL (matrice),
h. et écrit le contenu du tableau sous forme d’une matrice (NBLIG lignes et NBCOL colonnes).
23. « pAfficherDiagonale »
i.
j.
attend 1 tableau d’entiers à 2 dimensions NB X NB (matrice carrée)
et écrit les valeurs de la diagonale de la matrice.
Question
24. Est-il possible de transformer la procédure « pOperation » en une fonction qui renverrait le résultat du calcul ?
a. Proposer l’algorithme d’une fonction et son appel dans un algorithme principal
b. Critiquer cette solution
c. Quelle est la spécificité d’un sous-programme « fonction » au regard d’un sous-programme «
procédure »
Algo.Base1
Page 19
Algorithmique – Concepts de base
d.
Algo.Base1
Page 20
Téléchargement