Travaux dirigés de Fortran – Niveau 2

École normale supérieure
L3 sciences de la planète Terre
Travaux dirigés de Fortran – Second semestre
28 janvier 2015
Table des matières
1 Ordre d’une suite de trois caractères
1
2 Dessin de rectangles
1
3 Équation du second degré
1
4 Le carré magique
3
5 Population
3
1
Ordre d’une suite de trois caractères
Écrire un programme qui demande à l’utilisateur d’entrer une suite de trois
caractères et qui indique si les caractères sont dans l’ordre ASCII croissant, décroissant, ou dans le désordre. Le programme redemandera à l’utilisateur d’entrer trois nouveaux caractères jusqu’à ce que l’utilisateur entre trois étoiles :
***. Utilisez une fonction logique qui indique si une suite de caractères est dans
l’ordre croissant.
2
Dessin de rectangles
Écrire un programme qui affiche la forme représentée sur la figure (1), à
l’aide de simples caractères, par exemple des étoiles : *. Utilisez une procédure
qui ajoute un rectangle unique.
3
Équation du second degré
La procédure quadrat de la bibliothèque Jumble trouve les racines réelles
d’une équation du second degré à coefficients réels :
ax2 + bx + c = 0
Cf. listing (1). La bibliothèque Jumble se trouve dans le répertoire :
1
10
x
10
30
50
70
y
Figure 1 – Dessin de rectangles.
Listing 1 – Documentation de la procédure quadrat.
subroutine q u a d r a t ( a , b , c , d e l t a , r o o t )
!
!
!
!
!
This s u b r o u t i n e computes t h e r e a l r o o t s o f a q u a d r a t i c e q u a t i o n
with r e a l c o e f f i c i e n t s . I f t h e r e i s a d o u b l e r o o t , i t a p p e a r s i n
d o u b l e i n t h e ou tp ut a r r a y . I f t h e r e a r e two d i s t i n c t r o o t s ,
t h e y a r e ou tp ut i n i n c r e a s i n g o r d e r . I f t h e r e i s no r e a l r o o t ,
t h e ou tp ut a r r a y i s u n d e f i n e d .
real , intent ( in ) : : a , b , c
! a x ^2 + b x + c = 0
real , intent ( out ) : : d e l t a ! d i s c r i m i n a n t
real , intent ( out ) : : r o o t ( : ) ! ( 2 )
2
/users/staffs/lguez/User_install/lib/Jumble
Écrivez un programme qui demande à l’utilisateur des valeurs de a, b et c,
appelle quadrat et écrit les résultats. S’il existe une racine double, le programme
l’indiquera et n’affichera qu’une valeur.
4
Le carré magique
Le but est de créer un carré magique de dimension N , N étant impair et
choisi par l’utilisateur. Des algorithmes de fabrication de carré magique sont
expliqués sur Wikipédia en Français. Utilisez la méthode Siamoise.
Le carré magique devra être écrit dans un fichier sous la forme d’un carré.
Que se passe-t-il si dans votre instruction d’écriture vous donnez simplement le
tableau contenant le carré magique entier ?
Faites afficher par le programme la constante magique : n(n2 + 1)/2.
5
Population
Le fichier recensement.txt contient pour chaque département (colonne 1)
la population en 1999 (colonne 2) et celle en 1990 (colonne 3) (source INSEE).
Écrire un programme qui enregistre ces données dans un tableau à deux dimensions et qui affiche le numéro des départments dont l’évolution de la population entre 1990 et 1999 est soit supérieure à 5 %, soit inférieure à - 5
%. On pourra supposer dans le programme que le nombre de départements
dans recensement.txt est de 99. Le programme demandera ensuite à l’utilisateur de saisir un numéro de départment et affichera l’évolution de sa population et son rang en terme de nombre d’habitants en 1999 et 1990. On
pourra supposer dans le programme que les départements apparaissent dans
recensement.txt dans l’ordre croissant de leurs numéros. Vous pouvez voir
dans le fichier recensement.txt que les 95 premiers départements sont numérotés de 1 à 95 et les 4 derniers de 971 à 974.
Procédures intrinsèques Fortran pouvant vous être utiles : abs, count.
3