Université de Pau et des pays de l`Adour T.

Transcription

Université de Pau et des pays de l`Adour T.
Université de Pau et des pays de l’Adour
Département de mathématiques
Licence de mathématiques, LMA-5
Année 2000-2001. Sujet A.
T.-Z. Boulmezaoud
CONTRÔLE CONTINU
La calculatrice et tout document autre que le résumé concernant le cours sont interdits.
NOM:
Prénom:
Date de naissance:
Groupe:
Les réponses à toutes les questions doivent être écrites directement sur la présente feuille. Veuillez
donc inscrire votre nom, prénom, date de naissance et numéro de groupe en haut de
cette page à droite.
Exercice 1. On considère le programme:
program essai
integer
:: m = 9, k = 2
real
:: s = 10.0, z = 4.5
double precision :: x = 2.0, y = 2.5
logical
:: ok
s = s**(m/k**3-1)
x = x**m*(k/m)/(y*k)
m = (y-0.5)**(m/z) + y
ok = .not.(.not. 2*k == k*k
print *, "s = ", s
print *, "x = ", x
print *, "m = ", m
print *, "ok = ", ok
end
.and.
y == 2.5)
Quelles sont les valeurs affichées par ce programme?
Réponse:
s=
x=
m=
ok =
Exercice 2. On considère les déclarations:
integer, parameter
integer
real
real, dimension(-5:5, 2:25)
real, dimension(0:20, 0:17)
real, dimension (2*n)
integer, dimension (0:2*n+1)
::
::
::
::
::
::
::
n = 4
l = 4, p=9
x = 5.2
a
b
c
d
Parmi les instructions qui suivent, lesquelles sont correctes et lesquelles sont incorrectes (cocher la
case correspondante). Dans les cas où la réponse est “incorrecte” justifier très brièvement pourquoi
(dans la case justification).
INSTRUCTION
p=x
n=l
b=a
b(::2,::n)= 2*a(:,3::5) + 10
c=b
d(2:2n+1) = c
a = 5.e-3
b=x
d=x
CORRECTE
INCORRECTE
JUSTICATION
Exercice 3. On considère les deux fonctions suivantes dont le paramètre est un entier n ≥ 1:
function fonc(n) result(res)
integer
:: n, res, i, p
res = 1
do i = 2, n
p = n/i
if ((n - p*i) == 0 .and. i < n) res = i
enddo
end function fonc
!----------------------------------------------------recursive function calc(n) result(p)
interface
function fonc(n) result(res)
integer
:: n, res
end function fonc
end interface
integer
:: n, p, i
if (n == 1) then
p = 1
else if (n>=2 .and. fonc(n) == 1) then
p = n + calc(n-1)
else if (n >= 2) then
p = calc(n-1)
endif
end function calc
1. Que calcule la fonction fonc?
Réponse :
2. Que calcule la fonction calc?
Réponse :
Exercice 4. On considère le programme suivant:
program test
implicit none
integer
:: n, p, s1, s2
p = 2
n = 1
s1 = toto(p, n)
s2 = toto(toto(p, n), n)
print *, s1
print *, s2
contains
function toto(m, i)
integer
:: m, i
integer
:: toto
integer, save
integer
::
::
l = 1
n = 4
toto = m + l + n - i
l = l + 2
end function toto
end
Quelles sont les deux valeurs de s1 et s2 affichées par ce programme:
Valeur de s1 =
Valeur de s2 =
Exercice 5. On considère la fonction suivante:
function Matmat(n, p, a)
integer
:: n, p
integer, dimension(n, p)
:: a
integer, dimension(2*n-2, 2) :: Matmat
Matmat(1:n-1, 1:2)
= a(1:n-1,1:p:p-1)
Matmat(n:2*n-2, 1:2) = a(2:n, p-1:p)
end function Matmat
Quel est le résultat renvoyé par cette fonction quand elle est appelée avec les trois paramètres
n = 3, p = 3 et


1 2 3
a =  4 5 6 .
7 8 9
(on précisera le type et la valeur exacte du résultat)
Réponse:
Exercice 6. Soit f une fonction continue sur un intervalle [a, b]. On subdivise cet intervalle
b−a
en 2n petits intervalles [xk , xk+1 ] avec xk = a + kh pour tout k ∈ {0, 1, ..., 2n} et h =
. On
2n
pose yk = f (xk ), k = 0, 1, ..., 2n. On considère la régle d’approximation suivante (dite régle de
Simpson):
Z
b
f (x)dx ≈
(1)
a
h
(y0 + 4y1 + 2y2 + 4y3 + ... + 2y2n−2 + 4y2n−1 + y2n ).
3
Écrire une fonction Simpson() ayant comme paramètres formels:
• une fonction réelle func() qui, pour x donné (paramètre de func), renvoie la valeur f (x),
• deux réels a et b (les limites de l’intervalle),
• un nombre entier n (2n sera le nombre de pas),
Z b
et qui renvoie la valeur de l’intégrale
f (x)dx calculée par l’approximation (??).
a

Documents pareils