Flashcards : Algorithmique et bases de Python — 83 cartes

Toutes les cartes

1Question

Qu'est-ce qu'un algorithme ?

Réponse

Un procédé automatique transformant une information symbolique d'entrée en sortie par un nombre fini d'opérations.

2Question

Quelle condition doit respecter un algorithme exécutable ?

Réponse

Il doit comporter un nombre fini d'opérations élémentaires.

3Question

Pourquoi un procédé infini ne peut-il pas être exécuté par un ordinateur ?

Réponse

Parce qu'il comporte une quantité infinie d'opérations.

4Question

Que précise la description effective d'un algorithme ?

Réponse

Son nom, spécifications, entrées, sorties, préconditions et opérations élémentaires indentées et commentées.

5Question

Que fait-on dans l'algorithme d'addition de deux entiers ?

Réponse

On initialise p à m, puis on ajoute ou retranche 1 à p selon le signe de n.

6Question

Qu'est-ce que l'implémentation en algorithmique ?

Réponse

La traduction d'un algorithme en pseudo-code dans un langage compris par une machine.

7Question

Quelle différence principale existe entre programmation impérative et fonctionnelle ?

Réponse

La programmation impérative modifie l'état des données, la fonctionnelle utilise des données immuables.

8Question

Quels langages sont utilisés pour la programmation impérative et fonctionnelle dans ce cours ?

Réponse

Python pour impérative et orientée objet, Ocaml pour fonctionnelle.

9Question

Que mesure la complexité d'un algorithme ?

Réponse

Le temps et la mémoire nécessaires à son exécution complète.

10Question

Quels sont les quatre critères essentiels d'un programme ?

Réponse

Spécification, terminaison, correction et complexité.

11Question

Quand et comment doivent être réalisés les tests d'un programme ?

Réponse

Avant l'écriture, progressivement pendant l'implémentation, en couvrant suffisamment de cas.

12Question

Quel type Python représente les entiers ?

Réponse

Le type int.

13Question

Quel type Python représente les nombres flottants ?

Réponse

Le type float.

14Question

Quelle égalité vérifie la division euclidienne de a par b > 0 ?

Réponse

a=qb+ra=qb+r.

15Question

Quelle inégalité vérifie le reste r dans la division euclidienne ?

Réponse

0⩽r<b0\leqslant r<b.

16Question

Que donne l'opérateur // en Python ?

Réponse

Le quotient de la division euclidienne.

17Question

Que produit l'opérateur / en Python ?

Réponse

Un flottant.

18Question

Que vaut -7 // 3 en Python ?

Réponse

-3.

19Question

Qu'est-ce qu'une chaîne de caractères en Python ?

Réponse

Une valeur textuelle de type str délimitée par des guillemets.

20Question

Que fait l'opérateur + avec deux chaînes de caractères ?

Réponse

Il concatène les deux chaînes.

21Question

Que fait la multiplication d'une chaîne par un entier ?

Réponse

Elle répète la chaîne plusieurs fois.

22Question

Que font les fonctions int et float sur une chaîne ?

Réponse

Elles convertissent une chaîne interprétable en entier ou flottant.

23Question

Que fait la fonction str sur une valeur ?

Réponse

Elle convertit une valeur en chaîne de caractères.

24Question

Quelle plage de valeurs le standard ASCII associe-t-il aux caractères courants ?

Réponse

Des valeurs comprises entre 0 et 127.

25Question

Quelle est la valeur de ord('A') en ASCII ?

Réponse

65.

26Question

Combien de valeurs distinctes possède le type booléen ?

Réponse

Deux valeurs distinctes, True et False.

27Question

Qu'impose l'affectation avec = en Python ?

Réponse

Elle évalue d'abord l'expression à droite puis stocke sa valeur à gauche.

28Question

Quelle caractéristique de typage a Python ?

Réponse

Python est un langage à typage dynamique.

29Question

Que permet une variable temporaire lors d'un échange de deux variables ?

Réponse

Elle sauvegarde la première valeur pour permettre l'échange.

30Question

Pourquoi l'affectation simultanée a, b = b, a échange-t-elle les valeurs ?

Réponse

Parce que l'expression de droite est évaluée avant l'affectation.

31Question

Que produit l'expression 2**10 en Python ?

Réponse

Elle produit la valeur 1024.

32Question

Que fait print(2**10) en Python ?

Réponse

Il affiche 1024 et renvoie None.

33Question

Quel type renvoie toujours la fonction input en Python ?

Réponse

Elle renvoie toujours une chaîne de caractères.

34Question

Que faut-il faire pour utiliser un nombre saisi via input ?

Réponse

Il faut convertir la chaîne en int ou float explicitement.

35Question

Qu'est-ce qu'une fonction en programmation ?

Réponse

Une fonction prend une ou plusieurs valeurs en entrée et renvoie une valeur en sortie.

36Question

Comment se définit une liste en Python ?

Réponse

Une liste est une succession ordonnée de valeurs entre crochets, indexée de 0 à sa longueur moins 1.

37Question

Quand l'accès t[k] à une liste t est-il valide ?

Réponse

Pour 0 ≤ k < n où n est la longueur de la liste t.

38Question

Que se passe-t-il si l'indice k est hors bornes pour t[k] ?

Réponse

L'exception list index out of range est levée.

39Question

Comment accéder à un élément d'une matrice représentée par une liste de listes ?

Réponse

On utilise m[i][j] pour accéder à l'élément aux indices i et j.

40Question

Comment fonctionne l'évaluation de l'opérateur and ?

Réponse

Il évalue la première opérande puis la seconde seulement si la première est vraie.

41Question

Comment fonctionne l'évaluation de l'opérateur or ?

Réponse

Il évalue la seconde opérande seulement si la première est fausse.

42Question

Quand l'instruction if exécute-t-elle son bloc ?

Réponse

Seulement si sa condition est vraie.

43Question

Qu'impose l'instruction if en Python ?

Réponse

L'exécution d'une instruction ou d'un bloc dépend d'une condition.

44Question

Comment est délimité le bloc soumis à une instruction conditionnelle en Python ?

Réponse

Par une indentation uniforme, généralement de quatre espaces.

45Question

Quel niveau d'indentation a l'instruction suivant un bloc if en Python ?

Réponse

Elle reprend le niveau d'indentation de l'instruction if.

46Question

Dans quel ordre Python évalue-t-il les conditions avec if, elif et else ?

Réponse

Dans l'ordre d'apparition des conditions.

47Question

Que fait Python quand une condition if ou elif est vraie ?

Réponse

Il exécute uniquement le bloc correspondant à cette première condition vraie.

48Question

Que se passe-t-il si aucune condition if ou elif n'est vraie en Python ?

Réponse

Le bloc else est exécuté.

49Question

Qu'est-ce qu'une boucle for en programmation ?

Réponse

Une boucle for répète un bloc un nombre connu de fois avant son entrée.

50Question

Que fait la boucle for k in range(a, b) avec k ?

Réponse

Elle affecte à k les entiers de a jusqu'à b - 1.

51Question

Comment la fonction range(a, b, p) parcourt-elle les entiers ?

Réponse

Elle parcourt a, a + p, a + 2p jusqu'au plus grand entier strictement inférieur à b si p > 0.

52Question

Que se passe-t-il si p est négatif dans range(a, b, p) ?

Réponse

Elle parcourt a, a + p, a + 2p jusqu'au plus grand entier strictement supérieur à b.

53Question

Comment initialise-t-on un accumulateur pour calculer une somme ?

Réponse

On l'initialise à l'élément neutre de l'addition.

54Question

Que fait-on à l'accumulateur dans une boucle for pour somme ?

Réponse

On lui ajoute successivement chaque terme.

55Question

Quelle est la dernière étape après la boucle for pour somme ?

Réponse

On renvoie la valeur de l'accumulateur.

56Question

Quand utilise-t-on une boucle for plutôt qu'une boucle while ?

Réponse

Quand le nombre d’itérations est connu avant la boucle.

57Question

Quelle condition justifie l'utilisation d'une boucle while ?

Réponse

Le bloc doit être répété tant qu’une condition est vraie sans nombre d’itérations connu.

58Question

Que fait la fonction int_sqrt(n) pour calculer la racine carrée entière ?

Réponse

Elle augmente a de 1 tant qu'a² ≤ n, puis renvoie a - 1.

59Question

Que peut-il arriver si la condition d'une boucle while reste toujours vraie ?

Réponse

La boucle peut ne jamais terminer, créant une boucle infinie.

60Question

Qu'est-ce qu'un variant dans le contexte d'une boucle while ?

Réponse

Une grandeur entière positive qui diminue strictement à chaque itération.

61Question

À quoi sert un variant pour une boucle while ?

Réponse

À prouver que la boucle while termine.

62Question

Comment l'algorithme d'Euclide calcule-t-il le pgcd de a et b ?

Réponse

En remplaçant (a, b) par (b, a mod b) tant que b est positif, puis renvoie a.

63Question

Qu'est-ce qu'une fonction Python ?

Réponse

Une fonction Python est définie par def, peut recevoir des arguments, exécuter un bloc et renvoyer une valeur.

64Question

Que renvoie une fonction Python sans return explicite ?

Réponse

Python renvoie automatiquement None.

65Question

Combien de valeurs une fonction Python renvoie-t-elle avec return ?

Réponse

Une fonction Python renvoie une unique valeur avec return.

66Question

Qu'est-ce que le duck typing en Python ?

Réponse

Une fonction accepte un argument si les opérations utilisées sont définies pour son type, sans déclaration obligatoire.

67Question

Que représente la signature d'une fonction ?

Réponse

La signature indique les types attendus et le type renvoyé de façon documentaire.

68Question

Que fait un test unitaire sur une fonction ?

Réponse

Il exécute la fonction avec des arguments connus et vérifie le résultat avec assert.

69Question

Qu'est-ce qu'une variable locale dans une fonction ?

Réponse

Une variable locale est créée dans une fonction et supprimée à la fin de son appel.

70Question

Quand une variable globale peut-elle être modifiée dans une fonction ?

Réponse

Elle nécessite le mot-clé global pour être modifiée dans la fonction.

71Question

Comment la pile d'appels gère-t-elle les états locaux lors des appels de fonction ?

Réponse

Elle empile un nouvel état local à chaque appel et le supprime à la fin.

72Question

Quelle différence principale existe entre une fonction pure et une procédure Python ?

Réponse

La fonction pure n'a pas d'effet de bord, la procédure produit un effet de bord.

73Question

Que renvoie généralement une procédure Python ?

Réponse

Elle renvoie généralement None.

74Question

Comment la fonction binome(k, n) calcule-t-elle le coefficient binomial ?

Réponse

Elle utilise la relation (nk)=n!k!(n−k)!\binom{n}{k}=\frac{n!}{k!(n-k)!} avec la fonction factorielle.

75Question

Qu'est-ce qu'une fonction récursive ?

Réponse

Une fonction qui s'appelle elle-même en réduisant la taille du problème.

76Question

Qu'impose toute fonction récursive pour garantir la terminaison ?

Réponse

Définir un cas de base et atteindre ce cas en un nombre fini d'appels.

77Question

Quelle formule vérifie la factorielle pour n ≥ 1 ?

Réponse

n!=n(n−1)!n! = n(n-1)!

78Question

Quelle est la valeur de 0!0! ?

Réponse

0!=10! = 1

79Question

Comment calcule-t-on xnx^n en exponentiation rapide si n=2p+rn=2p+r avec r=0r=0 ?

Réponse

xn=(xp)2x^n = (x^p)^2

80Question

Comment calcule-t-on xnx^n en exponentiation rapide si n=2p+rn=2p+r avec r=1r=1 ?

Réponse

xn=x(xp)2x^n = x(x^p)^2

81Question

Combien de multiplications utilise l'exponentiation rapide pour n=2pn=2^p ?

Réponse

2+p2 + p multiplications

82Question

Quelle erreur Python lance-t-il en cas de dépassement de la pile d'appels récursifs ?

Réponse

Une erreur de type RecursionError

83Question

Comment sont représentés les flottants en Python ?

Réponse

Ils sont en base 2 avec une précision limitée.

Teste-toi avec le QCM

Teste tes connaissances avec un QCM de 43 questions sur Algorithmique et bases de Python.

1. Concernant la définition d’un algorithme :

2. Parmi les propositions suivantes concernant la finitude d’un algorithme exécutable, la(les)quelle(s) est(sont) exacte(s) ?

Faire le QCM →

Consultez la fiche

Révisez le cours complet dans la fiche de révision de Algorithmique et bases de Python.

Voir la fiche →

Cours similaires

Crée tes propres flashcards

Importe ton cours et l'IA génère des flashcards en 30 secondes.

Générateur de flashcards