Exercices d`échauffement : tests et boucles

Transcription

Exercices d`échauffement : tests et boucles
L3 Mag1 Phys. fond. exercices d’échauffement C, 08-09
Informatique
2008-10-27 00 :16 :24.000000000
Exercices d’échauffement : tests et boucles
1
Somme des n premiers nombres
Ecrire un programme qui calcule et affiche la somme des n premiers nombres à l’aide d’une boucle et compare à
n
X
n(n + 1)
i=
l’expression
.
2
i=1
2
Signe d’un nombre entier
1. Ecrire un programme auquel on fournit une valeur entière i et qui affiche à l’écran le message
Positif ou nul si i ≥ 0
Négatif si i < 0.
2. Même question que la précedente mais le message à afficher est :
Positif si i > 0
Nul si i = 0
Négatif si i < 0.
Dans ce cas faire une version avec un if et une avec un switch ... case.
3
Bissextile
Ecrire un programme qui demande l’année à l’utilisateur et dit si c’est une année bissextile ou sinon, donne la
prochaine.
4
Nombres premiers
1. Ecrire un programme qui donne les n premiers nombres premiers (Indication : faire une boucle for à l’intérieur
d’une boucle while).
2. Ecrire un programme qui affiche tout les diviseurs d’un entier n.
3. Ecrire un programme qui affiche tous les nombres premiers jumeaux (c’est à dire qui ne diffèrent que de 2, par
exemple 191 et 193) inférieurs ou égaux à n.
5
Intégrale
Calculer l’intégrale d’une fonction simple (e.g. x2 ) par la méthode des rectangles entre deux bornes choisies par
l’utilisateur. Le pas d’intégration peut soit être écrit dans le programme, soit choisi par l’utilisateur.
6
Pendu
Ecrire un programme qui affiche le nombre de fois où un même chiffre se trouve à la même position dans deux
entiers de 8 chiffres donnés. Par exemple le résultat pour 67549254 et 97029477 sera 2. Après l’étude des tableaux on
pourra écrire le même programme avec des mots de 8 lettres.
7
Equation
Ecrire un programme qui calcule une valeur approchée de la racine d’une équation, sachant que cette racine se
trouve dans l’intervalle [a, b]. Pour trouver la solution, on se promènera le long de l’axe Ox entre a et b jusqu’à ce que
la racine soit dépassée. Alors, soit on affichera la solution comme le milieu entre le dernier point avant et le premier
point après la racine, soit on répètera la recherche dans l’autre sens avec un pas plus fin (autant de fois que l’on
veut). On pourra prendre par exemple l’équation x = ln(x + 2) (résolue en cours par une autre méthode) ou toute
autre équation de son choix.
L3 Mag1 Phys. fond. exercices d’échauffement C, 08-09
Informatique
2008-10-27 00 :16 :24.000000000
Exercices d’échauffement : tableaux
Exercices classés en fonction de leur difficulté.
1
Table des puissances de 3
Ecrire un programme qui calcule et affiche la table des puissance de 3 jusqu’à 314 .
2
Somme des éléments de deux tableaux
Ecrire un programme qui calcule et affiche le tableau somme de deux tableaux à une dimension.
3
Retourner un tableau
Ecrire un programme qui inverse l’ordre des valeurs d’un tableau à un indice, sans utiliser de tableau intermédiaire.
Par exemple le jeu de valeurs 1,6,3,0,8 devient 8,0,3,6,1.
4
Insertion dans un tableau trié
On dispose d’un tableau d’entiers rangés par ordre croissant. Ecrire un programme qui insère un élément à sa
place dans ce tableau, c’est-à-dire en respectant l’ordre croissant.
5
Tableau à deux indices
1. Ecrire un programme qui construit et affiche une matrice diagonale, puis inverse cette matrice diagonale et
l’imprime.
2. Ecrire un programme qui construit un tableau à deux indices t[N][N] (correspondant à une matrice carrée) et
qui calcule et affiche sa trace.
L3 Mag1 Phys. fond. exercices d’échauffement C, 08-09
Informatique
2008-10-27 00 :16 :24.000000000
Exercices d’échauffement : fonctions
1
Écrire une fonction qui prend un nombre n entier positif en argument et retourne la somme des n premiers entiers
positifs1 .
Appeler la fonction dans un programme principal, faire écrire le(s) résultat(s) à l’écran.
Quel est le type de la fonction ?
2
Écrire une fonction qui prend un nombre réel x en argument et retourne la valeur f (x) avec
1
f (x) = (x2 + 5x − 8) exp( p
)
1 + |x|
Appeler la fonction dans un programme principal, faire écrire le(s) résultat(s) à l’écran.
Quel est le type de la fonction ?
3
Écrire une fonction qui prend deux nombres réels x et y en argument et retourne la valeur f (x, y) avec
f (x, y) = x2 + y 2
Appeler la fonction dans un programme principal, faire écrire le(s) résultat(s) à l’écran.
Quel est le type de la fonction ?
4
Écrire une fonction qui prend deux nombres réels x et y en argument et retourne : 0 si la valeur f (x, y) est positive,
1 sinon. Prendre
f (x, y) = x2 − y 2
Appeler la fonction dans un programme principal, faire écrire le(s) résultat(s) à l’écran.
Quel est le type de la fonction ?
5
Écrire une fonction qui prend un tableau de réels à un indice en argument et qui retourne : 0 si les nombres du
tableau sont rangés dans l’ordre croissant, 1 sinon.
Appeler la fonction dans un programme principal, faire écrire le(s) résultat(s) à l’écran.
Quel est le type de la fonction ?
6
Écrire une fonction qui prend un entier i valant 0 ou 1 en argument et écrit :
« Bonjour » si i vaut 0, « Au revoir » si i vaut 1.
Appeler la fonction dans un programme principal, faire écrire le(s) résultat(s) à l’écran.
Quel est le type de la fonction ?
7
Écrire une fonction qui affiche « Bonjour » .
Appeler la fonction dans un programme principal, faire écrire le(s) résultat(s) à l’écran.
Quel est le type de la fonction ?
1 Rappel
:
Pn
i=1
i=
n(n+1)
2
L3 Mag1 Phys. fond. exercices d’échauffement C, 08-09
Informatique
2008-10-27 00 :16 :24.000000000
Exercices d’échauffement : équations différentielles
1
Loi de décroissance radioactive
Les noyaux de 40 K présents dans notre corps et dans le béton des murs qui nous entourent se désintègrent
N
9
2
suivant la loi de décroissance radioactive dN
dt = − τ , avec une durée de vie τ = 1, 8×10 ans . À t=0, on suppose un
9
40
population de 10 noyaux de K.
1. Sur papier : en utilisant la méthode d’Euler de résolution d’équations différentielles, écrire la relation entre
N (t + δt) et N (t).
2. Écrire un programme, sans utiliser de tableau ni de fonction, qui calcule l’évolution du nombre de noyaux N (t)
pendant 1010 ans. Prendre un pas de temps δt = 107 ans. Afficher le résultat dans un fichier. La première
colonne indique le temps t, la seconde N (t) et la troisième colonne la solution théorique Nth (t). Comparer les
solutions approchée et théorique à l’aide de Gnuplot. La commande Gnuplot pour superposer les 2 courbes est :
plot ′ f ich′ u 1 : 2, ′ f ich′ u 1 : 3, si f ich est le nom du fichier.
3. Relancer le calcul avec un pas de temps δt = 2×108 ans et δt = 1 ans. Conclusion ?
4. Modifier le programme en écrivant une fonction qui retourne
dN
dt
à chaque instant t.
5. Le modifier à nouveau pour utiliser la fonction euler sca de la bibliothèque du magistère.
6. Utiliser maintenant la fonction rk4 avec les pas de temps δt = 107 et δt = 2×108 ans. Conclusion ?
2
Oscillateur harmonique
d2 x
= −ω 2 x, avec ω = 1 rad/s.
dt2
1. Sur papier : transformer cette équation en un système de 2 équations différentielles du premier ordre. Soit ~q un
vecteur dont la première composante est x et la seconde ẋ. Soit ~q˙ le vecteur dérivée. Écrire les relations entre
les composantes de ~
q et celles de ~q˙. Donner une expression approchée, par la méthode d’Euler, de ~q(t + δt)
connaissant ~q(t). Choisir des conditions initiales et un temps final tf in . Prendre un pas de temps δt = 0.01
rad/s.
Soit l’équation
2. Ecrire un programme, sans utiliser de fonction, qui calcule et écrit dans un fichier t, x(t), ẋ(t) et la valeur
théorique de xth (t), t variant entre 0 et tf in . Comparer graphiquement x(t) et xth (t). Tracer ẋ en fonction de
x. Conclusion ?
3. Modifier le programme en écrivant une fonction qui renvoie ~q˙ à chaque instant t.
4. Le modifier à nouveau pour utiliser la fonction euler vec de la bibliothèque du magistère.
5. Utiliser maintenant la fonction rk4 avec un pas de temps δt = 0.01 et 0.1 rad/s.
6. Soit un ressort posé sur une table dont une extrémité est fixe. Tracer à l’aide de Gnuplot l’évolution de l’autre
extrémité à laquelle est attachée une masse pour des conditions initiales que vous choisirez.
2 Un
homme pesant 70 kg est le siège de 4400 désintégrations par seconde en moyenne.