Langages et programmation

1. Dans le programme JavaScript suivant, quelle est la notation qui délimite un bloc d'instruction exécuté à chaque passage dans le boucle while ?

i = 0;
while (i < 10) {
    alert(i);
    i = i + 1;
}
alert('Fin');


 
2. La fonction suivante calcule la racine carrée du double d'un nombre flottant.

from math import sqrt 

def racine_du_double(x): 
    return sqrt(2*x) 


Quelle est la précondition sur les arguments de cette fonction?
3. Avec la définition de fonction capital_double suivante, que peut-on toujours affirmer à propos du résultat n retourné par la fonction?

def capital_double (capital, interet): 
    montant = capital 
    n = 0 
    while montant <= 2 * capital: 
        montant = montant + interet 
        n = n + 1 
    return n 


 
4. Le programme Python suivant ne calcule pas toujours correctement le résultat de x^y .

Parmi les tests suivants, lequel va permettre de détecter l'erreur ?

 

def puissance (x,y): 
    p = x
    for i in range (y - 1): 
        p = p * x
    return p 
5. On a écrit une fonction qui prend en paramètre une liste non vide et qui renvoie son plus grand élément.

Combien de tests faudrait-il écrire pour garantir que la fonction donne un résultat correct pour toute liste ?
6. La documentation de la bibliothèque random de Python précise :

random.randint(a, b)Renvoie un entier aléatoire N tel que a<= N <= b.

Quelle est l'expression Python permettant de simuler le tirage d'un dé à 6 faces après avoir exécuté import random?
7. Qu'affiche le programme suivant ?

for i in range(1000):
    for j in range(1000):
        for k in range(1000):
            for l in range(1000):
                print("Mille sabords !")
8. Que faut il mettre à la place de ... pour que ce programme affiche dans l'ordre tous les nombres de 0 à 999 ?

for i in range(10):
    for j in range(10):
        for k in range(10):
            ...
9. Que construit l'expression suivante :

>>>[i % 3 for i in range(10)]
10. Soit la fonction suivante :

def division_euclidienne(a, b):
    """ chaîne de documentation """
    q = 0
    r = a
    while r >= b:
        q += 1
        r += b
    return q, r


Une chaîne de documentation satisfaisante pourrait être :
11. Le langage Python a été crée en :
12. Combien de fois la fonction print est-elle appelé dans le code suivant :

n = 4
for i in range(2, n):
    print(i)
13. Quelle est la valeur affichée par le script suivant :

x = 1
for i in range(4):
    x = x +i
print(x)
14.
def f(x):
    for d in range(2, x):
        if x % d == 0:
            return d


Que retourne f(15) ?
15. Quelle sont les valeurs affichées par le code suivant ?

x = 4
while x > 0:
    y = 0
    while y < x:
        y = y + 1
        x = x - 1
print(y)
print(x)
16. Voici une fonction écrite en Python, qui prend en paramètre un tableau T d’entiers positifs.

def fonctionMystere(T):
       n = len(T)
       m = 0
       for i in range(n):
             if T[i] > m:
                  m = T[i]
       return(m)

On appelle cette fonction avec l’instruction fonctionMystere([5, 1, 4, 7, 12, 6, 8]).
Que retourne-t-elle ?
17.
On considère un tableau T = [5, 1, 4, 7, 12, 6, 8] défini en Python.
On exécute l’instruction : T == T[:3] + T[3:]
Que retourne-t-elle ?
18.
  Voici un script écrit en Python, définissant une fonction puissance permettant de calculer a^n
, où a est un réel, et n un entier positif ou nul.
def puissance(a, n):
       if n == 0:
             return(1)
       else:
             return (a * puissance(a, n - 1))


Si on exécute puissance(5, 3),  quel est le nombre total d’appels de la fonction puissance, appel initial compris ?

19. Que contient la liste l définie de la manière suivante :

>>>l = [ i**2 for i in range(9)]
20. Que contient la liste l définie de la façon suivante :

>>>l = [ i**2 for i in range(9) if i % 2 == 0]