1/41
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No study sessions yet.
Qu’est-ce qu’une variable statique ?
Une variable statique est une variable dont la mémoire est réservée à la compilation.
Qu’est-ce qu’une variable dynamique ?
Une variable dynamique est une variable dont la mémoire est réservée à l’exécution.
À quoi sert l’instruction save en Fortran ?
L’instruction save permet de garder la valeur d’une variable entre deux appels d’une même subroutine.
Pourquoi save icom n’est-il pas nécessaire dans l’exemple du compteur interne ?
Parce que icom est initialisée, donc elle devient automatiquement statique.
Pourquoi save pi est-il nécessaire dans l’exemple du compteur interne ?
Parce que la variable pi doit conserver sa valeur entre deux exécutions de la subroutine.
Quels sont les trois types d’unités de programme en Fortran ?
Le programme principal (program), le sous-programme (subroutine) et la fonction (function).
Comment appelle-t-on un sous-programme en Fortran ?
On appelle un sous-programme avec l’instruction call nom_du_sous_programme(...).
Comment se déclare une fonction en Fortran ?
Une fonction se déclare avec type function nom(arg) et se termine par end. Elle retourne une valeur.
Comment déclare-t-on un tableau dynamique en Fortran ?
Avec la syntaxe real, dimension(:), allocatable :: a.
Comment allouer un tableau dynamique ?
Avec allocate(a(n)).
Quelle est la méthode de travail pour un tableau dynamique ?
deallocate(a).Où faut-il allouer les tableaux dynamiques ?
Dans le programme principal (main), et non dans les sous-programmes.
Pourquoi allouer les tableaux dans le main ?
Pour rendre les sous-programmes portables et indépendants de la dimension.
Comment déclare-t-on un tableau statique ?
Avec integer, parameter :: n=5 puis real a(n).
Quel est l’ordre de stockage en mémoire d’un tableau en Fortran ?
En Fortran, l’indice le plus à gauche varie le plus vite (contrairement au C).
Qu’est-ce que le profil d’un tableau ?
C’est sa forme ou ses dimensions, obtenue avec la fonction shape(SOURCE).
Quand deux tableaux sont-ils dits conformants ?
Lorsqu’ils ont le même profil (mêmes dimensions).
Un scalaire est-il conforme à un tableau ?
Oui, un scalaire est conforme à tout tableau.
Quelles sont les opérations importantes sur les tableaux ?
matmul, dot_product, transpose.
Quelle est la différence entre A.*B et A*B en MATLAB ?
A.*B fait un produit élément par élément, alors que A*B fait un produit matriciel.
À quoi sert l’instruction allocate(array, stat=err) ?
À allouer dynamiquement un tableau et vérifier s’il y a une erreur via err.
Comment libérer la mémoire d’un tableau en Fortran ?
Avec l’instruction deallocate(array, stat=err).
Comment vérifier si un tableau est alloué ?
Avec la fonction logique allocated(array).
À quoi sert lbound(array [,dim]) ?
À renvoyer la borne inférieure d’une ou plusieurs dimensions d’un tableau.
À quoi sert ubound(array [,dim]) ?
À renvoyer la borne supérieure d’une ou plusieurs dimensions d’un tableau.
Donne un exemple de lbound et ubound
Pour integer, dimension(21:2,45:49)::tab, lbound(tab)=(/21,45/), ubound(tab)=(/2,49/).
Que fait la fonction all(mask [,dim]) ?
Elle retourne vrai si tous les éléments du masque logique sont vrais.
Que fait la fonction any(mask [,dim]) ?
Elle retourne vrai si au moins un élément du masque logique est vrai.
Que fait la fonction count(mask [,dim]) ?
Elle compte le nombre d’éléments pour lesquels le masque est vrai.
Que retournent minval et maxval ?
La plus petite et la plus grande valeur du tableau (avec options dim et mask).
Que retournent minloc et maxloc ?
L’indice de la plus petite ou de la plus grande valeur d’un tableau.
Comment initialiser un tableau en Fortran ?
Avec la syntaxe t1 = (/ 6,5,10,1 /) ou des boucles comme t2 = (/ (i+1, i=1,n) /).
Que fait la fonction sum(array [,dim][,mask]) ?
Elle calcule la somme des éléments du tableau (éventuellement filtrés).
Que fait la fonction product(array [,dim][,mask]) ?
Elle calcule le produit des éléments du tableau (éventuellement filtrés).
Que fait la fonction transpose(matrix) ?
Elle retourne la transposée d’une matrice 2D.
Que fait la fonction dot_product(a,b) ?
Elle calcule le produit scalaire entre deux vecteurs.
Que fait la fonction matmul(a,b) ?
Elle calcule le produit matriciel entre a et b.
Que fait la fonction norm2(a) ?
Elle retourne la norme euclidienne du tableau (vecteur ou matrice).
À quoi sert l’instruction where ?
À effectuer des opérations sur certains éléments d’un tableau suivant une condition logique.
Exemple d’utilisation de where
where(a>0.) a=sqrt(a) puis elsewhere a=1. permet d’agir sélectivement sur les éléments du tableau.