Qu'est-ce qu'un algorithme ?
Un procédé automatique transformant une information symbolique d'entrée en sortie par un nombre fini d'opérations.
Quelle condition doit respecter un algorithme exécutable ?
Il doit comporter un nombre fini d'opérations élémentaires.
Pourquoi un procédé infini ne peut-il pas être exécuté par un ordinateur ?
Parce qu'il comporte une quantité infinie d'opérations.
Que précise la description effective d'un algorithme ?
Son nom, spécifications, entrées, sorties, préconditions et opérations élémentaires indentées et commentées.
Que fait-on dans l'algorithme d'addition de deux entiers ?
On initialise p à m, puis on ajoute ou retranche 1 à p selon le signe de n.
Qu'est-ce que l'implémentation en algorithmique ?
La traduction d'un algorithme en pseudo-code dans un langage compris par une machine.
Quelle différence principale existe entre programmation impérative et fonctionnelle ?
La programmation impérative modifie l'état des données, la fonctionnelle utilise des données immuables.
Quels langages sont utilisés pour la programmation impérative et fonctionnelle dans ce cours ?
Python pour impérative et orientée objet, Ocaml pour fonctionnelle.
Que mesure la complexité d'un algorithme ?
Le temps et la mémoire nécessaires à son exécution complète.
Quels sont les quatre critères essentiels d'un programme ?
Spécification, terminaison, correction et complexité.
Quand et comment doivent être réalisés les tests d'un programme ?
Avant l'écriture, progressivement pendant l'implémentation, en couvrant suffisamment de cas.
Quel type Python représente les entiers ?
Le type int.
Quel type Python représente les nombres flottants ?
Le type float.
Quelle égalité vérifie la division euclidienne de a par b > 0 ?
.
Quelle inégalité vérifie le reste r dans la division euclidienne ?
.
Que donne l'opérateur // en Python ?
Le quotient de la division euclidienne.
Que produit l'opérateur / en Python ?
Un flottant.
Que vaut -7 // 3 en Python ?
-3.
Qu'est-ce qu'une chaîne de caractères en Python ?
Une valeur textuelle de type str délimitée par des guillemets.
Que fait l'opérateur + avec deux chaînes de caractères ?
Il concatène les deux chaînes.
Que fait la multiplication d'une chaîne par un entier ?
Elle répète la chaîne plusieurs fois.
Que font les fonctions int et float sur une chaîne ?
Elles convertissent une chaîne interprétable en entier ou flottant.
Que fait la fonction str sur une valeur ?
Elle convertit une valeur en chaîne de caractères.
Quelle plage de valeurs le standard ASCII associe-t-il aux caractères courants ?
Des valeurs comprises entre 0 et 127.
Quelle est la valeur de ord('A') en ASCII ?
65.
Combien de valeurs distinctes possède le type booléen ?
Deux valeurs distinctes, True et False.
Qu'impose l'affectation avec = en Python ?
Elle évalue d'abord l'expression à droite puis stocke sa valeur à gauche.
Quelle caractéristique de typage a Python ?
Python est un langage à typage dynamique.
Que permet une variable temporaire lors d'un échange de deux variables ?
Elle sauvegarde la première valeur pour permettre l'échange.
Pourquoi l'affectation simultanée a, b = b, a échange-t-elle les valeurs ?
Parce que l'expression de droite est évaluée avant l'affectation.
Que produit l'expression 2**10 en Python ?
Elle produit la valeur 1024.
Que fait print(2**10) en Python ?
Il affiche 1024 et renvoie None.
Quel type renvoie toujours la fonction input en Python ?
Elle renvoie toujours une chaîne de caractères.
Que faut-il faire pour utiliser un nombre saisi via input ?
Il faut convertir la chaîne en int ou float explicitement.
Qu'est-ce qu'une fonction en programmation ?
Une fonction prend une ou plusieurs valeurs en entrée et renvoie une valeur en sortie.
Comment se définit une liste en Python ?
Une liste est une succession ordonnée de valeurs entre crochets, indexée de 0 à sa longueur moins 1.
Quand l'accès t[k] à une liste t est-il valide ?
Pour 0 ≤ k < n où n est la longueur de la liste t.
Que se passe-t-il si l'indice k est hors bornes pour t[k] ?
L'exception list index out of range est levée.
Comment accéder à un élément d'une matrice représentée par une liste de listes ?
On utilise m[i][j] pour accéder à l'élément aux indices i et j.
Comment fonctionne l'évaluation de l'opérateur and ?
Il évalue la première opérande puis la seconde seulement si la première est vraie.
Comment fonctionne l'évaluation de l'opérateur or ?
Il évalue la seconde opérande seulement si la première est fausse.
Quand l'instruction if exécute-t-elle son bloc ?
Seulement si sa condition est vraie.
Qu'impose l'instruction if en Python ?
L'exécution d'une instruction ou d'un bloc dépend d'une condition.
Comment est délimité le bloc soumis à une instruction conditionnelle en Python ?
Par une indentation uniforme, généralement de quatre espaces.
Quel niveau d'indentation a l'instruction suivant un bloc if en Python ?
Elle reprend le niveau d'indentation de l'instruction if.
Dans quel ordre Python évalue-t-il les conditions avec if, elif et else ?
Dans l'ordre d'apparition des conditions.
Que fait Python quand une condition if ou elif est vraie ?
Il exécute uniquement le bloc correspondant à cette première condition vraie.
Que se passe-t-il si aucune condition if ou elif n'est vraie en Python ?
Le bloc else est exécuté.
Qu'est-ce qu'une boucle for en programmation ?
Une boucle for répète un bloc un nombre connu de fois avant son entrée.
Que fait la boucle for k in range(a, b) avec k ?
Elle affecte à k les entiers de a jusqu'à b - 1.
Comment la fonction range(a, b, p) parcourt-elle les entiers ?
Elle parcourt a, a + p, a + 2p jusqu'au plus grand entier strictement inférieur à b si p > 0.
Que se passe-t-il si p est négatif dans range(a, b, p) ?
Elle parcourt a, a + p, a + 2p jusqu'au plus grand entier strictement supérieur à b.
Comment initialise-t-on un accumulateur pour calculer une somme ?
On l'initialise à l'élément neutre de l'addition.
Que fait-on à l'accumulateur dans une boucle for pour somme ?
On lui ajoute successivement chaque terme.
Quelle est la dernière étape après la boucle for pour somme ?
On renvoie la valeur de l'accumulateur.
Quand utilise-t-on une boucle for plutôt qu'une boucle while ?
Quand le nombre d’itérations est connu avant la boucle.
Quelle condition justifie l'utilisation d'une boucle while ?
Le bloc doit être répété tant qu’une condition est vraie sans nombre d’itérations connu.
Que fait la fonction int_sqrt(n) pour calculer la racine carrée entière ?
Elle augmente a de 1 tant qu'a² ≤ n, puis renvoie a - 1.
Que peut-il arriver si la condition d'une boucle while reste toujours vraie ?
La boucle peut ne jamais terminer, créant une boucle infinie.
Qu'est-ce qu'un variant dans le contexte d'une boucle while ?
Une grandeur entière positive qui diminue strictement à chaque itération.
À quoi sert un variant pour une boucle while ?
À prouver que la boucle while termine.
Comment l'algorithme d'Euclide calcule-t-il le pgcd de a et b ?
En remplaçant (a, b) par (b, a mod b) tant que b est positif, puis renvoie a.
Qu'est-ce qu'une fonction Python ?
Une fonction Python est définie par def, peut recevoir des arguments, exécuter un bloc et renvoyer une valeur.
Que renvoie une fonction Python sans return explicite ?
Python renvoie automatiquement None.
Combien de valeurs une fonction Python renvoie-t-elle avec return ?
Une fonction Python renvoie une unique valeur avec return.
Qu'est-ce que le duck typing en Python ?
Une fonction accepte un argument si les opérations utilisées sont définies pour son type, sans déclaration obligatoire.
Que représente la signature d'une fonction ?
La signature indique les types attendus et le type renvoyé de façon documentaire.
Que fait un test unitaire sur une fonction ?
Il exécute la fonction avec des arguments connus et vérifie le résultat avec assert.
Qu'est-ce qu'une variable locale dans une fonction ?
Une variable locale est créée dans une fonction et supprimée à la fin de son appel.
Quand une variable globale peut-elle être modifiée dans une fonction ?
Elle nécessite le mot-clé global pour être modifiée dans la fonction.
Comment la pile d'appels gère-t-elle les états locaux lors des appels de fonction ?
Elle empile un nouvel état local à chaque appel et le supprime à la fin.
Quelle différence principale existe entre une fonction pure et une procédure Python ?
La fonction pure n'a pas d'effet de bord, la procédure produit un effet de bord.
Que renvoie généralement une procédure Python ?
Elle renvoie généralement None.
Comment la fonction binome(k, n) calcule-t-elle le coefficient binomial ?
Elle utilise la relation avec la fonction factorielle.
Qu'est-ce qu'une fonction récursive ?
Une fonction qui s'appelle elle-même en réduisant la taille du problème.
Qu'impose toute fonction récursive pour garantir la terminaison ?
Définir un cas de base et atteindre ce cas en un nombre fini d'appels.
Quelle formule vérifie la factorielle pour n ≥ 1 ?
Quelle est la valeur de ?
Comment calcule-t-on en exponentiation rapide si avec ?
Comment calcule-t-on en exponentiation rapide si avec ?
Combien de multiplications utilise l'exponentiation rapide pour ?
multiplications
Quelle erreur Python lance-t-il en cas de dépassement de la pile d'appels récursifs ?
Une erreur de type RecursionError
Comment sont représentés les flottants en Python ?
Ils sont en base 2 avec une précision limitée.
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) ?
Révisez le cours complet dans la fiche de révision de Algorithmique et bases de Python.
Voir la fiche →Importe ton cours et l'IA génère des flashcards en 30 secondes.
Générateur de flashcards