Exercice 1 ========== Écrire un programme permettant de résoudre le système de 2 équations à 2 inconnues : |u1 x + v1 y = w1 |u2 x + v2 y = w2 On pourra imprimer les solutions à l'aide de l'instruction : PRINT *, 'X = ', X, ', Y = ', Y Exercice 2 ========== Écrire un programme permettant de calculer les racines du trinôme du 2nd degré : ax^2 + bx + c. On s'assurera que a est non nul. Les racines, si elles existent, pourront être imprimées à l'aide de l'instruction : PRINT *, 'X1 = ', X1, ', X2 = ', X2 Exercice 3 ========== Écrire un programme calculant le nombre d'Or. Celui-ci peut être obtenu à partir de la suite u(n), dite de Fibonnacci, définie par : u(0) = 1 u(1) = 1 ... u(n+1) = u(n) + u(n-1) La suite (u(n+1)/u(n)) converge vers le nombre d'Or. Exercice 4 ========== Écrire un programme permettant de déterminer les nombres premiers dans l'intervalle [1,n] à l'aide du crible d'Ératosthène. Il consiste à former une table avec tous les entiers naturels compris entre 2 et n et à rayer (mise à zéro), les uns après les autres, les entiers qui ne sont pas premiers de la manière suivante : dès que l'on trouve un entier qui n'a pas encore été rayé, il est déclaré premier, et on raye tous les multiples de celui-ci. À la fin du procédé, les nombres non barrés sont des nombres premiers. On tiendra compte du fait qu'un nombre donné peut déjà avoir été éliminé en tant que multiple de nombres précédents déjà testés. Par ailleurs, on sait que l'on peut réduire la recherche aux nombres de 2 à sqrt(n) (si un entier non premier est strictement supérieur à sqrt(n) alors il a au moins un diviseur inférieur à sqrt(n) et aura donc déjà été rayé). Exercice 5 ========== Écrire un programme permettant de trier un vecteur de nombres en ordre croissant puis décroissant. On s'appuiera sur l'algorithme appelé tri à bulle qui consiste à comparer 2 éléments consécutifs et les intervertir si nécessaire. Si après avoir terminé l'exploration du tableau au moins une interversion a été effectuée, on renouvelle l'exploration, sinon le tri est terminé. Exercice 6 ========== Écrire un programme permettant d'effectuer le produit de 2 matrices A et B. Leurs profils seront définis à l'aide de constantes symboliques. La matrice résultat C sera imprimée ligne par ligne avec l'instruction PRINT puis stockée dans un fichier binaire que l'on nommera "exo6.matrice". Exercice 7 ========== Le fichier texte séquentiel "musiciens" est constitué de plusieurs enregistrements, chacun contenant un nom de musicien suivi de ses années de naissance et de mort. Écrire un programme dont le but est de lire le fichier "musiciens" et de stocker les enregistrements lus dans un fichier binaire à accès direct que l'on nommera "musiciens.bin". Exercice 8 ========== Imprimer l'enregistrement du fichier "musiciens" dont le rang est entré au clavier. Son extraction sera effectuée à partir d'un fichier temporaire à accès direct, image du précédent. On permettra la saisie de plusieurs rangs. Exercice 9 ========== Les enregistrements des fichiers séquentiels "index_naissance.dat" et "index_deces.dat" sont constitués d'une date de naissance (ou de décès) d'un musicien suivi de son rang dans le fichier "musiciens.bin" créé à l'exercice 7. Écrire un programme permettant d'imprimer le ou les musiciens dont la date de naissance ou de mort est saisie au clavier. Le type de date désirée sera préalablement déterminé. La sélection des enregistrements répondant aux choix spécifiés, s'effectuera par l'intermédiaire du fichier d'index correspondant au type de date. On offrira la possibilité d'effectuer plusieurs recherches. Exercice 10 =========== Le but de cet exercice est de transformer la matrice stockée dans le fichier binaire "exo6.matrice". Cette transformation consiste à modifier chaque élément à l'aide d'une fonction paramétrable de la forme y = f(x). On définira plusieurs fonctions de ce type. La valeur d'un entier lu dans une "namelist" indiquera la fonction à transmettre en argument de la procédure chargée d'effectuer la transformation. Exercice 11 =========== Trier les vecteurs lignes puis les vecteurs colonnes d'une matrice en utilisant l'algorithme de l'exercice 5 et la matrice stockée dans le fichier binaire "exo6.matrice". On se définira une procédure effectuant le tri (croissant ou décroissant) des différents vecteurs au moyen d'une procédure interne.