intra Flashcards

1
Q

Définition processeur

A

Un processeur est le composant principal d’un ordinateur ou d’un appareil électronique responsable de l’exécution des instructions des programmes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Expliquez comment un langage de programmation est conçu pour être compréhensible à la fois par les humains.

A

Il permet aux développeurs de donner des instructions à une machine informatique pour accomplir des tâches spécifiques. Il est traduit (par un compilateur ou un interpréteur) en un code machine exécutable. (Permet codage plus intuitif pour humains).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Définition code

A

Instructions données dans un language de programmation qu’un appareil exécute.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Le langage assembleur est un langage de programmation de haut niveau ou de bas niveau? Quelle est la différence entre les deux?

A

Bas niveau. Très proche du code machine. Instructions précises, processeur peut comprendre directement. Permet : 1.Opérations de transfert de données (chargement et stockage), 2.Opérations arithmétiques sur des nombres (addition, soustraction, multiplication, etc.) 3.Opérations logiques

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Nommez les avantages du language assembleur (bas niveau).

A

1.performance maximale 2.compréhension profonde du matériel 3.Optimisation du code au maximum pour tirer le meilleur parti des ressources matérielles disponibles 4.faible consommation de ressources 5.Une visibilité complète et directe sur ce qui se passe dans le système. Offrent un contrôle direct sur les ressources matérielles.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Nommez les désavantages du language assembleur (bas niveau).

A

1.Complexité et difficulté (pas intuitif) 2.temps de développement long 3.Nommez les avantages du language assembleur (bas niveau).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Nommez les avantages du language de haut niveau.

A

1.lisibilité et clarté du code 2.gestion de memoire simplifiée 3.richesse des bibliothèques, frameworks et documentations 4. Accessible et grande communauté 5.Moins probable de causer des erreurs mémoires dû à l’abstraction du matériel 6.Portabilité augmentée. Programmes peuvent être exécutés sur des ordinateurs variés (traduction).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Nommez les désavantages du language de haut niveau.

A

1.Moins de contrôle sur le matériel 2.Programmes plus lents 3.Traduction obligatoire 4.Gestion automatique de la mémoire 5.Fichiers plus gros 6.Accès limité aux détails du matériel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Programme definition

A

Ensemble d’instructions à réaliser par une machine informatique afin de réaliser une tâche spécifique. Un ensemble de programmes compose une application. Un logiciel est un programme.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Raison la plus fréquente pour laquelle un programme se bloque de manière inattendue

A

Mauvaise utilisation des ressources mémoire, e.g., fuite memoire, dépassement de tampon.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Compilateur definition

A

Programme qui traduit le code source écrit dans un langage de programmation de haut niveau (comme C, C++, Java, Rust, etc.) en code machine ou en un autre format intermédiaire exécutable, tel que le bytecode.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Avantages compilateur

A

1.Performance : Le code compilé s’exécute généralement plus rapidement que le code interprété, car il est converti en code machine (programme lisible par machine) directement exécutable par le processeur. 2.Optimisation : Les compilateurs peuvent optimiser le code pour améliorer les performances d’exécution. 3.Protection du code source : Le code source n’est pas distribué avec l’application, ce qui peut aider à protéger la propriété intellectuelle. (pour languages de haut niveau).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Désavantages compilateur

A

1.Temps de compilation : La compilation peut prendre du temps, surtout pour de gros programmes. 2.Moins flexible : Chaque changement dans le code source nécessite une nouvelle compilation avant d’exécuter le programme. 3.Spécialisé à une architecture : Puisque le compilateur produit un exécutable spécifique à une architecture machine (x86, ARM, etc.), il faut re-compiler le code pour chaque architecture machine (et ce, à chaque mise à jour du programme)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Interpréteur definition

A

Programme qui exécute le code source sans avoir besoin de le compiler en un langage machine au préalable. Code source - interpréteur -résultat (affichage ligne par ligne).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Interpréteur avantages

A

1.Flexibilité : Le code peut être exécuté immédiatement sans attendre la compilation. 2.Facilite le débogage : Les erreurs peuvent souvent être détectées et identifiées à l’endroit où elles arrivent, car le code source est accessible à l’interpréteur lors de l’exécution. 3.Portabilité : Les programmes interprétés peuvent généralement être exécutés sur n’importe quelle machine qui dispose de l’interpréteur approprié, rendant le code plus portable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Interpréteur désavantages

A

1.Exécution plus lente : L’exécution de l’interpréteur est plus lente qu’un compilateur (car execution ligne par ligne). 2.Dépendance : Le code source doit être interprété à chaque exécution, et nécessite donc la présence de l’interpréteur sur la machine.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Nommez une différence entre compilateur et interpréteur lors de l’execution du programme (“run”).

A

Le compilateur compile le programme en language machine et detecte une erreur (si elle a lieu) au moment de la compilation. Les lignes où le code est correct ne sera pas montré. Tandis que l’interpréteur exécute le programme tel quel, ligne par ligne, et détecte les erreurs au moment de l’exécution. La première ligne sera exécutée avant l’erreur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Python est un langage interprété ou compilé?

A

Les deux: language semi-compilé, car il compile automatiquement le code source en bytecode (un format intermédiaire) avant de l’interpréter. Mais aussi, exécuté ligne par ligne, par interpréteur. (Il est possible de voir le bytecode généré par python avec le module “dis”).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Nommez les 6 principales phases du développement d’une application

A

1.Analyse des besoins (étape de spécification) 2.Conception (Design) 3.Développement (Development) 4.Tests (Testing) 5.Déploiement (Deployment) 6.Maintenance, support et évaluation. Analogie en classe potager.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Dans quelle phase essaye-t-on de comprendre et documenter les exigences d’une application à développer avec la description des comportements attendus?

A

Analyse des besoins, première phase (specification). Recueillir des informations auprès des parties prenantes (utilisateurs, clients, etc.). Définir les fonctionnalités, les performances, et les contraintes. Élaborer un document de spécifications des besoins.

21
Q

Qu’est-ce qu’une expression et une constante?

A

Une expression est une combinaison d’opérateurs, de valeurs, de variables et d’appels de sous-algorithme. Une expression en elle-même ne fait rien, il est nécessaire de l’évaluer pour obtenir le résultat de l’expression (e.g., 2 + 2 = 4 est une expression représentant l’addition de deux valeurs, à l’aide de l’opérateur d’addition +). Donc expression= calculs effectués. Tandis que constate indique simplement un nombre, e.g., print(4)=4.

22
Q

Différence entre entiers (int) et flottants (float).

A

Les entiers sont des nombres sans décimales, de valeurs aussi grandes que la mémoire le permet. Cependant, les flottants sont des nombres à virgule flottante, c’est-à-dire des nombres avec des décimales (précision limitée par la machine (généralement 64 bits en Python)).

23
Q

Expliquez la notation scientifique

A

S’agit d’une manière de représenter les nombres très grands ou très petits de façon compacte et lisible. Elle utilise des puissances de 10 pour simplifier l’écriture et la manipulation des nombres. E.g., print(2.5e-3)
# équivalent à 0.0025. Cependant, toute valeur plus grande que ou égale à 10e15 est équivalente à un mole. Par exemple, print(10e20) va afficher 1e+21.

24
Q

Que fait le symbole “//”?

A

Divise deux nombres mais garde seulement la partie entière. E.g., 7 // 4 = 1 (car 7 / 4 = 1.75).

25
Q

Que représente le symbole “%”?

A

Reste de la divison euclidienne (modulo).
Par exemple 40 % 9 = 4, comme 4 * 9 = 36 et + 4 = 40. Donc la réponse est 4.
Un autre exemple, 22 % 5 = 2, comme 5 * 4 = 20 et il reste 2 pour faire 22. Donc la réponse est 2.

26
Q

Quel symbole représente la multiplication et lequel représente l’exponentiation?

A
  • = multiplication et ** = exponentiation
27
Q

Expliquez la différence entre les opérateurs binaires et unaires.

A

Un opérateur binaire opère sur deux expressions. Il nécessite donc deux entrées pour produire un résultat. Par exemple, print((10 + 2) / 6) ou
print(10 - 5 * 2 + 4).
Syntaxe: <expression> <opérateur> <expression></expression></opérateur></expression>

Tandis qu’un opérateur unaire opère sur une seule expression. Il nécessite donc une seule entrée pour produire un résultat. Par exemple, print(+10) ou
print(–8).
Syntaxe : <opérateur> <expression></expression></opérateur>

28
Q

Est-ce que les opérateurs +, – unaires (ex: -10) sont moins prioritaires que les opérateurs +, - binaires ou non? Pourquoi?

A

Les opérateurs +, – unaires sont prioritaires. Opérateurs binaires représente simplement une addition/soustraction. Moins prioritaires (pemdas).

29
Q

Expliquez l’opérateur ^ en Python et donnez un exemple.

A

L’opérateur ^ en Python = l’opérateur XOR binaire. E.g., 2. Multiplication 2. Premier = 1 . Après 2, 4, 8, 16, 32, 64, 128, 256 et ajout d’autres au besoins, e.g, 256, etc.
Opération XOR entre 2 et 5:
2 en binaire : 2 = 2 + 0 = donc 000000010.
5 en binaire : 5 = 4 + 1 = donc 000000101.
Ensemble= 000000111 (4+2+1=7).

ou e.g. 2 ^ 8 = 000001000 avec 8 et avec 2 = 000000010. Ensemble = 000001010= réponse = 10

30
Q

Quelle fonction arrondit vers le bas (partie entière)?

A

math.floor(n) (ne pas oublier de import math avant)

31
Q

Quelle fonction arrondit vers le haut (entier immédiatement supérieur)?

A

math.ceil(n) (ne pas oublier de import math avant)

32
Q

Que représente la fonction math.pow(n1, n2)?

A

n1 puissance n2. E.g., print(math.pow(4, 5)).

33
Q

Cette fonction est plus précise que l’opérateur%pour lesflottants.

A

math.fmod(f1, f2). Calcule le modulo entre flottants

34
Q

Que fait cette fonction: print(random.randint(0, 10))

A

Genere un chiffre aléatoire entre 0 et 10. (Incluant le 0 et 10).

35
Q

Que fait cette fonction: print(random.random( ))

A

Génère un chiffre aléatoire entre 0 et 1( le 1 est exclu)

36
Q

Pourquoi ajoutons-nous +1 dans ce code:
import random
import math
print(math.floor(random.random() * 6) + 1)

A
37
Q

Vrai ou Faux. Les chiffres sont permis au début d’un identificateur.

A

Faux. Pas de chiffres au début, mais possible à la fin.

38
Q

Vrai ou Faux. Python n’est pas sensible à la casse. Donc java, Java, JAva et JAVA sont quatres identificateurs identiques.

A

Faux. Python est sensible à la casse (distinction entre majuscules et minuscules).
Par conséquent, java, Java, JAva et JAVA sont quatres identificateurs différents

39
Q

Voir cours 2 (sem1), certains mots prédéfinis pas possible à utiliser. Mettre dans feuille de notes. (Les identificateurs de Python).

A

-

40
Q

Expliquez le but de PEP 8 (Python Enhancement Proposal 8). Pourquoi devons nous l’utiliser et est-il obligatoire?

A

PEP 8 est un document officiel qui définit les conventions de style pour écrire du code en Python. Il vise à améliorer la lisibilité et la cohérence du code Python dans la communauté. Bien que suivre PEP 8 ne soit pas obligatoire, il est fortement recommandé.

41
Q

Comment nommons-nous les variables et fonctions?

A

Utilisez des noms en minuscules avec des underscores pour séparer les mots (snake_case).

42
Q

Comment nommons-nous les constantes?

A

Utilisez des noms en majuscules séparés par des underscores pour séparer les mots. Les constantes sont en majuscule, e.g., DISTANCE_TERRE_SOLEIL = 1.496e8

43
Q

Comment nommons-nous les classes?

A

Utiliser PascalCase. Tous les mots commencent par une majuscule. MaClasse, Foo, FooBar

44
Q

Qu’est-ce que l’affectation (ou assignement)?

A

Permet d’associer une valeur à une variable. Permet de stocker cette valeur en mémoire pour une utilisation ultérieure.
Syntaxe:

<identificateur> (le nom de la variable à laquelle on assigne une valeur) = <expression>
</expression></identificateur>

45
Q

= et == signifient la même chose?

A

Il ne faut pas confondre l’opérateur d’assignement = qui sert à assigner une valeur à une variable (exemple: x = 4) , et l’opérateur de comparaison == qui sert à comparer une valeur à une autre (ex: x == 4).

46
Q

Pourquoi est-ce que sous Python, il n’est pas nécessaire de définir le type d’une variable avant de l’utiliser?

A

Car python est caractérisé par un typage dynamique (comme Lisp, Scheme) et non un typage statique (C, Java, Rust, etc.) Tandis que dans les langages statiques, il faut toujours d’abord déclarer (définir) le nom et le type des variables, et ensuite seulement leur assigner un contenu, lequel doit bien entendu être compatible avec le type déclaré.

47
Q

Que font les opérateurs arithmétiques d’affectation?

A

Combinent une

48
Q
A
49
Q
A