Tableaux statiques

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall with Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/41

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No study sessions yet.

42 Terms

1
New cards

Qu’est-ce qu’une variable statique ?

Une variable statique est une variable dont la mémoire est réservée à la compilation.

2
New cards

Qu’est-ce qu’une variable dynamique ?

Une variable dynamique est une variable dont la mémoire est réservée à l’exécution.

3
New cards

À 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.

4
New cards

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.

5
New cards

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.

6
New cards

Quels sont les trois types d’unités de programme en Fortran ?

Le programme principal (program), le sous-programme (subroutine) et la fonction (function).

7
New cards

Comment appelle-t-on un sous-programme en Fortran ?

On appelle un sous-programme avec l’instruction call nom_du_sous_programme(...).

8
New cards

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.

9
New cards

Comment déclare-t-on un tableau dynamique en Fortran ?

Avec la syntaxe real, dimension(:), allocatable :: a.

10
New cards

Comment allouer un tableau dynamique ?

Avec allocate(a(n)).

11
New cards

Quelle est la méthode de travail pour un tableau dynamique ?

  1. Lire la dimension, 2. Allouer le tableau, 3. Remplir, 4. Travailler, 5. Désallouer avec deallocate(a).
12
New cards

Où faut-il allouer les tableaux dynamiques ?

Dans le programme principal (main), et non dans les sous-programmes.

13
New cards

Pourquoi allouer les tableaux dans le main ?

Pour rendre les sous-programmes portables et indépendants de la dimension.

14
New cards

Comment déclare-t-on un tableau statique ?

Avec integer, parameter :: n=5 puis real a(n).

15
New cards

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).

16
New cards

Qu’est-ce que le profil d’un tableau ?

C’est sa forme ou ses dimensions, obtenue avec la fonction shape(SOURCE).

17
New cards

Quand deux tableaux sont-ils dits conformants ?

Lorsqu’ils ont le même profil (mêmes dimensions).

18
New cards

Un scalaire est-il conforme à un tableau ?

Oui, un scalaire est conforme à tout tableau.

19
New cards

Quelles sont les opérations importantes sur les tableaux ?

matmul, dot_product, transpose.

20
New cards

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.

21
New cards

À quoi sert l’instruction allocate(array, stat=err) ?

À allouer dynamiquement un tableau et vérifier s’il y a une erreur via err.

22
New cards

Comment libérer la mémoire d’un tableau en Fortran ?

Avec l’instruction deallocate(array, stat=err).

23
New cards

Comment vérifier si un tableau est alloué ?

Avec la fonction logique allocated(array).

24
New cards

À quoi sert lbound(array [,dim]) ?

À renvoyer la borne inférieure d’une ou plusieurs dimensions d’un tableau.

25
New cards

À quoi sert ubound(array [,dim]) ?

À renvoyer la borne supérieure d’une ou plusieurs dimensions d’un tableau.

26
New cards

Donne un exemple de lbound et ubound

Pour integer, dimension(21:2,45:49)::tab, lbound(tab)=(/21,45/), ubound(tab)=(/2,49/).

27
New cards

Que fait la fonction all(mask [,dim]) ?

Elle retourne vrai si tous les éléments du masque logique sont vrais.

28
New cards

Que fait la fonction any(mask [,dim]) ?

Elle retourne vrai si au moins un élément du masque logique est vrai.

29
New cards

Que fait la fonction count(mask [,dim]) ?

Elle compte le nombre d’éléments pour lesquels le masque est vrai.

30
New cards

Que retournent minval et maxval ?

La plus petite et la plus grande valeur du tableau (avec options dim et mask).

31
New cards

Que retournent minloc et maxloc ?

L’indice de la plus petite ou de la plus grande valeur d’un tableau.

32
New cards

Comment initialiser un tableau en Fortran ?

Avec la syntaxe t1 = (/ 6,5,10,1 /) ou des boucles comme t2 = (/ (i+1, i=1,n) /).

33
New cards

Que fait la fonction sum(array [,dim][,mask]) ?

Elle calcule la somme des éléments du tableau (éventuellement filtrés).

34
New cards

Que fait la fonction product(array [,dim][,mask]) ?

Elle calcule le produit des éléments du tableau (éventuellement filtrés).

35
New cards

Que fait la fonction transpose(matrix) ?

Elle retourne la transposée d’une matrice 2D.

36
New cards

Que fait la fonction dot_product(a,b) ?

Elle calcule le produit scalaire entre deux vecteurs.

37
New cards

Que fait la fonction matmul(a,b) ?

Elle calcule le produit matriciel entre a et b.

38
New cards

Que fait la fonction norm2(a) ?

Elle retourne la norme euclidienne du tableau (vecteur ou matrice).

39
New cards

À quoi sert l’instruction where ?

À effectuer des opérations sur certains éléments d’un tableau suivant une condition logique.

40
New cards

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.

41
New cards
42
New cards