Fichier Capytale pour compléter les automatismes
Thème A : types de base⚓︎
Automatisme 1
Représenter en binaire le nombre d’écriture décimale 49.
110001
Automatisme 2
Représenter en base dix, le nombre dont l'écriture en base deux est 1010110
puis le nombre dont l'écriture en base 16 est 'A4'.
1010110
s'écrit \(64+16+4+2=86\) en base dix.
Automatisme 3
Déterminer le successeur des entiers dont l'écriture en base deux est :
- 111
- 10011
- 10111
- 111 a pour successeur 1000
- 10011 a pour successeur 10100
- 10111 a pour successeur 11000
Automatisme 4
On considère les nombres dont l'écriture en base 16 (en hexadécimal) sont de la forme suivante : un 1 suivi de 0 en nombre quelconque, comme 1, 10, 100, 1000 etc ... Tous ces nombres sont exactement :
- les puissances de 2
- les puissances de 8
- les puissances de 10
- les puissances de 16
Ce sont les puissances de 16.
Automatisme 5
Le résultat de l'addition en binaire \(101001 + 101\) est égal au nombre binaire :
101102
010101
101110
110000
Le résultat de l'addition en binaire \(101001 + 101\) est égal à \(101110\)
Automatisme 6
Quelle est la représentation hexadécimale de l'entier dont la représentation binaire s'écrit : 0100 1001 1101 0011 ?
- 18899
- 3D94
- 49D3
- 93A3
On remplace chaque bloc de 4 bits par sa représentation sur un chiffre en base 16 et on obtient
49D3
Thème B : types construits⚓︎
Automatisme 7
Programmer la fonction dont on donne la spécification (référence Upylab : CAIx-0300 chapitre tableaux)
def au_moins_un_zero(t):
"""
Paramètre : t un tableau de nombres (int ou float)
Précondition : t non vide
Valeur renvoyée : un booléen indiquant si t contient au moins un zéro
"""
def un_zero(tab):
for e in tab:
if e == 0:
return True
return False
Automatisme 10
Automatisme 11
On travaille sur des tableaux à deux dimensions qui représentent des images binaires : un pixel a pour valeur un entier : 0 pour un pixel noir et 1 pour un pixel blanc.
Compléter les fonctions ci-dessous en respectant leurs spécifications, les postconditions doivent être vérifiées.
def image_noire(largeur, hauteur):
"""
Paramètre :
largeur et hauteur deux entiers non nuls
Valeur renvoyée :
un tableau à 2 dimensions représentant une image
binaire de dimensions (largeur, hauteur)
rempli de 0
"""
# à compléter avec un tableau en compréhension
def dimensions(tab):
"""
Paramètre :
tab un tableau à deux dimensions d'entiers
représentant une image binaire rectangulaire
Valeur renvoyée :
un tableau de deux entiers [largeur, hauteur]
représentant les dimensions de l'image
"""
# à compléter
def nombre_blancs(tab):
"""
Paramètre :
tab un tableau à deux dimensions d'entiers
représentant une image binaire rectangulaire
Valeur renvoyée :
un entier représentant le nombre de pixels
blancs (valeur 1)
"""
# à compléter
# postconditions pour la fonction image_noire
assert image_noire(2,1) == [[0,0]]
assert image_noire(1,2) == [[0], [0]]
assert image_noire(3,2) == [[0,0,0], [0,0,0]]
# postconditions pour la fonction dimensions
assert dimensions([[], []]) == [2,0]
assert dimensions([[0,1,2], [3,4,5]]) == [2,3]
# postconditions pour la fonction nombre_blancs
assert nombre_blancs([[0,0], [0,0]]) == 0
assert nombre_blancs([[0,1,1], [0,1,0]]) == 3
assert nombre_blancs([[], []]) == 0
def image_noire(largeur, hauteur):
"""
Paramètre :
largeur et hauteur deux entiers non nuls
Valeur renvoyée :
un tableau à 2 dimensions représentant une image
binaire de dimensions (largeur, hauteur)
rempli de 0
"""
return [[0 for _ in range(largeur)] for _ in range(hauteur)]
def dimensions(tab):
"""
Paramètre :
tab un tableau à deux dimensions d'entiers
représentant une image binaire rectangulaire
Valeur renvoyée :
un tableau de deux entiers [largeur, hauteur]
représentant les dimensions de l'image
"""
largeur = len(tab[0])
hauteur = len(tab)
return [largeur, hauteur]
def nombre_blancs(tab):
"""
Paramètre :
tab un tableau à deux dimensions d'entiers
représentant une image binaire rectangulaire
Valeur renvoyée :
un entier représentant le nombre de pixels
blancs (valeur 1)
"""
largeur, hauteur = dimensions(tab)
c = 0
for i in range(hauteur):
for j in range(largeur):
if tab[i][j] == 1:
c = c + 1
return c
# postconditions pour la fonction image_noire
assert image_noire(2,1) == [[0,0]]
assert image_noire(1,2) == [[0], [0]]
assert image_noire(3,2) == [[0,0,0], [0,0,0]]
# postconditions pour la fonction dimensions
assert dimensions([[], []]) == [0,2]
assert dimensions([[0,1,2], [3,4,5]]) == [3,2]
# postconditions pour la fonction nombre_blancs
assert nombre_blancs([[0,0], [0,0]]) == 0
assert nombre_blancs([[0,1,1], [0,1,0]]) == 3
assert nombre_blancs([[], []]) == 0
Thème C : traitement de données en tables⚓︎
Thème D : interactions entre l'homme et la machine sur le Web⚓︎
Thème E : architectures matérielles et systèmes d'exploitation⚓︎
Automatisme 12
Quelle commande permet de connaître le répertoire courant ?
cd
ls
pwd
chmod
pwd
Automatisme 13
Quelle commande permet de lister le contenu du répertoire courant ?
cd
ls
pwd
chmod
ls
Automatisme 14
Lorsque, en ligne de commande, on saisit la commande chmod u+rw a.txt
ceci a pour effet :
- de permettre au propriétaire du fichier de modifier le contenu de ce fichier
- d'interdire au propriétaire de modifier le contenu de ce fichier
- d'interdire à tous les autres utilisateurs de lire le fichier
- d'effacer le fichier
chmod u+rw a.txt
a pour effet de permettre au propriétaire du fichier de modifier le contenu de ce fichier
Automatisme 15
Dans un terminal sous Linux, quelle commande faut-il écrire pour donner à tout le monde le droit d'écriture sur un fichier information.py
?
chmod o+w information.py
chmod a+w information.py
chmod o+x information.py
chmod a+x information.py
chmod a+w information.py
Automatisme 16
Pour renommer un fichiertext1.txt
en text1.old
dans un même répertoire, quelle commande faut-il utiliser ?
mv text1.txt ../text1.old
mv text1.txt text1.old
cp text1.txt text1.old
lns text1.txt text1.old
mv text1.txt text1.old
Automatisme 17
Sous UNIX, que va réaliser la ligne de commande cat file.txt
?
- rien du tout
- l'affichage du contenu du fichier
file.txt
dans la console - la création d'un fichier
file.txt
- la suppression du fichier
file.txt
l'affichage du contenu du fichier file.txt
dans la console
Automatisme 18
Sous UNIX, que va réaliser la ligne de commande cat file.txt
?
- rien du tout
- l'affichage du contenu du fichier
file.txt
dans la console - la création d'un fichier
file.txt
- la suppression du fichier
file.txt
l'affichage du contenu du fichier file.txt
dans la console
Automatisme 19
Lorsque, en ligne de commande, on saisit la commande rm *
ceci a pour effet :
- d'activer une télécommande
- d'accéder au répertoire parent du répertoire courant
- d'effacer tous les fichiers du répertoire courant et ses sous-répertoires
- d'effacer tous les fichiers du répertoire courant
d'effacer tous les fichiers du répertoire courant
Automatisme 20
On a exécuté la commande ls -l
et obtenu l’affichage suivant :
total 0
-rw-rw-rw- 1 etudiant etudiant 15 Jul 2 13:29 exercice
drwxrwxrwx 1 etudiant etudiant 512 Jul 2 13:37 seances
Que permettent d’affirmer les informations obtenues ?
- exercice et seances sont deux fichiers
- exercice est un fichier et seances est un répertoire
- exercice et seances sont deux répertoires
- exercice est un répertoire et seances est un fichier
exercice est un fichier et seances est un répertoire
Automatisme 21
Sachant que le répertoire courant contient les fichiers fich.txt
, mafich.txt
et programme.py
, quel est
le résultat de la commande ls fich*
dans un shell Linux ?
fich.txt mafich.txt
mafich.txt
fich.txt
programme.py
fich.txt
Automatisme 22
Dans la console Linux, quelle commande faut-il exécuter pour obtenir la documentation sur la commande pwd
?
man pwd
cd pwd
mkdir pwd
ls pwd
man pwd
Automatisme 23
Dans un shell sous Linux, Alice utilise la commande pwd
.
Cette commande :
- liste les fichiers du répertoire courant
- liste les répertoires du répertoire courant
- affiche le chemin du répertoire courant
- affiche les permissions relatives au répertoire courant
affiche le chemin du répertoire courant
Automatisme 24
Sous Linux, la console indique que l'utilisateur se trouve dans le dossier /var/lib
. Quelle commande doit-il exécuter pour revenir dans son dossier personnel /home/martin
?
cd ~
cd /home
dir
dir /home/martin
cd ~
Automatisme 25
Le shell Linux renvoie ce résultat à la commande ls -al
:
lrwxr--r-- 2 toto toto 807 juin 26 14:06 eclipse
drwxr-xr-x 2 toto toto 4096 juin 26 15:00 Doc_1
-rw-r-xr-x 2 toto toto 4096 juin 26 14:06 QCM
-rwxr-xr-x 2 toto toto 4096 juin 26 14:06 Doc_Travail
Quel est le nom du fichier du répertoire courant, de taille 4096 octets, exécutable par son propriétaire ?
- eclipse
- Doc_1
- QCM
- Doc_Travail
Doc_Travail
Thème F : langages et programmation⚓︎
Automatisme 26
Pour déterminer la liste des chiffres en base dix d'un entier naturel, un élève a écrit la fonction ci-dessous :
def liste_chiffres(n):
L = [n % 10]
while n > 0:
n = n // 10
L.insert(0, n % 10)
return L
Malheureusement sa fonction ne retourne pas le résultat attendu pour l'entier 730 :
>>> liste_chiffres(730)
[0, 7, 3, 0]
Proposer une version corrigée de la fonction liste_chiffres
.
def liste_chiffres(n):
L = [n % 10]
while n >= 10:
n = n // 10
L.insert(0, n % 10)
return L