Structures de base [bs] Exercices de cours

publicité
Structures de base [bs]
Exercices de cours
Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner
Unisciel
algoprog
Version 3 octobre 2016
Table des matières
1 Appréhender le cours
1.1 Compréhension d’algorithmes / qzexercs .
1.2 Simplification de programme / qzsimplific
1.3 Réutilisation d’une variable / pgaffect3 . .
1.4 Exponentiation 16-ème / pgexponent1 . .
.
.
.
.
2
2
4
5
6
2 Appliquer le cours
2.1 Opérations sur deux entiers / pgcalcul1 . . . . . . . . . . . . . . . . . . .
2.2 Durée de trajet / pgtrajet1 . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Un peu de trigo / pgtrigo1 . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
8
9
3 Approfondir le cours
3.1 Moyennes de deux entiers / pgmoyenne1 . . . . . . . . . . . . . . . . . .
3.2 Codage d’une date / pgdate1 . . . . . . . . . . . . . . . . . . . . . . . .
10
10
11
alg - Exercices de cours (TD)
Mots-Clés Structures de base Difficulté • ◦ ◦ (1 h 30) 1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Unisciel algoprog – bs00exerc-texte, October 3, 2016
1
1.1
Appréhender le cours
Compréhension d’algorithmes / qzexercs
Utilise Variable, Affectation, Calculs Durée estimée 10 min Objectif
Cet exercice demande de comprendre des algorithmes.
alg : Algorithme 1
Algorithme QZExerc1
Variable a , b : Entier
Début
| Saisir ( a , b )
| a <- a + 2 * b
| Afficher ( a )
Fin
Que fait-il ?
Qu’affiche-t-il pour les valeurs 2 et 3 ?
alg : Algorithme 2
Algorithme QZExerc2
Variable a , b : Entier
Variable q : Réel
Début
| Saisir ( a , b )
| q <- a / b
| Afficher ( q )
Fin
Que fait-il ?
Qu’affiche-t-il pour les valeurs 2 et 3 ?
alg : Algorithme 3
Algorithme QZExerc3
Variable a , b , c , e : Entier
Début
| Saisir ( c , e )
| a <- 2 * c + 5 * e
2
Unisciel algoprog – bs00exerc-texte, October 3, 2016
| b <- 2 + c * 3 + e
| c <- Modulo ( a , b )
| Afficher ( DivEnt ( a , c ) )
Fin
Que fait-il ?
Qu’affiche-t-il pour les valeurs 2 et 3 ?
alg : Algorithme 4
Algorithme QZExerc4
Variable x , y : Réel
Début
| Saisir ( x , y )
| x <- x * x
| x <- x * x + y * y
| x <- RacineCarrée ( x )
| Afficher ( x )
Fin
Que fait-il ?
Qu’affiche-t-il pour les valeurs 2 et 3 ?
alg : Algorithme 5
Algorithme QZExerc5
Variable x : entier
Début
| Saisir ( x , x )
| x <- Modulo ( x , x ) + DivEnt ( x + 1 , 2 )
| Afficher ( x + 3 )
Fin
Que fait-il ?
Qu’affiche-t-il pour les valeurs 2 et 3 ?
3
Unisciel algoprog – bs00exerc-texte, October 3, 2016
1.2
4
Simplification de programme / qzsimplific
Utilise Variable, Affectation, Calculs Durée estimée 10 min Soit le programme suivant : @[qzsimplific1a.alg]
Début
| Saisir (
| b <- a
| c <- b +
| Saisir (
| e <- 4 *
| s <- e +
| s <- s *
| f <- s
| Afficher
Fin
a )
b * b
x )
x
b
s + c
( "Le resultat est " , f )
Déclarez les variables de type entier.
Quel est le résultat avec 3 et -2 ?
Justifiez.
Les variables b et f étant inutiles,
Écrivez une première version simplifiée du programme.
Quelles sont les variables incompressibles (c.-à-d. les données et les résultats) ?
Écrivez une deuxième version simplifiée en ne déclarant que les données et les résultats.
Unisciel algoprog – bs00exerc-texte, October 3, 2016
1.3
Réutilisation d’une variable / pgaffect3
Utilise Variable, Affectation, Calculs Durée estimée 10 min Écrivez un algorithme qui ne fait rien.
Déclarez deux entiers x et y.
Affectez 3 à x.
Affectez x à y.
Affectez 3 * x + 1 à x.
Affectez 2 * x - 5 * y à x.
Affichez (où [x] désigne le contenu de x) :
x vaut [x] et y vaut [y]
Donnez la valeur des variables à l’issue de votre algorithme.
5
Unisciel algoprog – bs00exerc-texte, October 3, 2016
1.4
Exponentiation 16-ème / pgexponent1
Utilise Variable, Affectation, Calculs Durée estimée 5 min Écrivez un algorithme qui saisit un entier X dans x.
Affichez l’invite :
Valeur de X?
Calculez le plus rapidement X 16 dans x.
Aide simple
Calculez X 2 puis X 4 puis X 8 puis X 16 .
Affichez (où [x] désigne le contenu de x) :
La valeur de X^16 est [x]
6
Unisciel algoprog – bs00exerc-texte, October 3, 2016
2
2.1
7
Appliquer le cours
Opérations sur deux entiers / pgcalcul1
Utilise Variable, Calculs Durée estimée 10 min Écrivez un algorithme qui saisit deux entiers dans n1 et n2.
Affichez l’invite :
Deux entiers?
Calculez et affichez directement :
La somme est ...
La différence est ...
Le produit est ...
Supposez le deuxième entier n2 non nul.
Calculez et affichez :
La division entière est ...
Et le modulo est ...
Outil alg
L’opération a div b de la division entière s’écrit DivEnt(a,b) et celle du reste a mod b
s’écrit Modulo(a,b).
Unisciel algoprog – bs00exerc-texte, October 3, 2016
2.2
8
Durée de trajet / pgtrajet1
Utilise Variable, Calculs Durée estimée 10 min Objectif
Cet exercice calcule la durée en minutes du trajet d’un véhicule :
Écrivez un algorithme qui saisit la vitesse moyenne en km/h d’un véhicule dans vmoy
(réel) et la distance parcourue en m par ce véhicule dans dist (réel). Affichez les invites :
Vitesse moyenne (en km/h)?
Distance en m?
La formule qui lit les trois éléments est :
vitesse =
distance
temps
d’où temps =
distance
vitesse
pour autant que les unités soient compatibles. Dans notre cas, on peut d’abord convertir
la distance en km d’où le temps sera exprimée en heure que l’on divisera par 60 pour
l’exprimer en minutes. Par conséquent :
Calculez la distance en km dans km (réel) puis affichez :
==> Distance en km : ...
==> Duree en minutes : ...
Autre solution : Calculez la vitesse en m/s dans vitesse (réel) et la durée en secondes
du trajet de ce véhicule dans nsecs (entier).
Affichez finalement :
==> Vitesse en m/s : ...
==> Duree en secondes : ...
==> Duree en minutes : ...
Unisciel algoprog – bs00exerc-texte, October 3, 2016
2.3
Un peu de trigo / pgtrigo1
Utilise Variable, Calculs Durée estimée 5 min Écrivez un algorithme qui saisit un entier dans n.
Affichez l’invite :
Valeur de n?
Calculez et affichez les valeurs de cos(n ∗ π/2) et de sin(n ∗ π/2).
9
Unisciel algoprog – bs00exerc-texte, October 3, 2016
3
3.1
Approfondir le cours
Moyennes de deux entiers / pgmoyenne1
Utilise Variable, Calculs Durée estimée 10 min Écrivez un algorithme qui saisit deux entiers dans n1 et n2.
Affichez l’invite :
Deux entiers?
Calculez et affichez (où [x] désigne le contenu de x) :
Moyenne décimale de [n1] et [n2] est ...
Calculez et affichez :
Moyenne entière de [n1] et [n2] est ...
10
Unisciel algoprog – bs00exerc-texte, October 3, 2016
3.2
11
Codage d’une date / pgdate1
Utilise Variable, Calculs Durée estimée 10 min Objectif
On choisit de coder une date par un entier composé de la façon suivante :
a × 10000 + m × 100 + j
où a est l’année (a ≥ 1), m le mois (1 ≤ m ≤ 12) et j le jour (1 ≤ j ≤ 31).
Exemple : La date « 14 juillet 1789 » sera codée par l’entier 17890714.
Cet exercice décode une telle date (dont on supposera qu’elle est valide).
Écrivez un algorithme qui saisit une date codée dans d (entier).
Affichez l’invite :
Votre date codee?
Calculez le numéro du jour, le numéro du mois et l’année dans les variables respectives
j, m et a de type entier.
Affichez (où [x] désigne le contenu de x) :
jour=[j] mois=[m] annee=[a]
Téléchargement