initial commit

This commit is contained in:
Guillaume-Sanchez
2026-05-26 13:56:03 +02:00
parent 4c720637a1
commit ff4bb12d22
539 changed files with 12415 additions and 0 deletions
@@ -0,0 +1,13 @@
#!/usr/bin/python3
nbDecimal = int(input("Donner un nombre entier à convertir en binaire : "))
nbBinaire = []
tmp = nbDecimal
while tmp != 0:
reste = tmp % 2
nbBinaire.append(reste)
tmp = tmp // 2
nbBinaire.reverse()
print("({})b10 = ({})b2".format(nbDecimal, nbBinaire))
@@ -0,0 +1,11 @@
nbDecimal = int(input("Donner un nombre entier à convertir en binaire : "))
nbBinaire = []
tmp = nbDecimal
while tmp != 0:
reste = tmp % 2
nbBinaire.append(reste)
tmp = tmp // 2
nbBinaire.reverse()
print("({})b10 = ({})b2".format(nbDecimal, nbBinaire))
@@ -0,0 +1,15 @@
#!/usr/bin/python3
''' conversion partie fractionnaire d'un nombre décimal en binaire '''
def calcul(nbDec):
digit = []
while nbDec != 0:
nbDec *= 2
digit.append((int(nbDec)))
nbDec = nbDec - int(nbDec)
return digit
if __name__ == '__main__':
nbDec = float(input("Donner le nombre décimal à convertir : "))
print(calcul(nbDec))
@@ -0,0 +1,15 @@
#!/usr/bin/python3
''' conversion partie fractionnaire d'un nombre décimal en binaire '''
def calcul(nbDec):
digit = []
while nbDec != 0:
nbDec *= 2
digit.append((int(nbDec)))
nbDec = nbDec - int(nbDec)
return digit
if __name__ == '__main__':
nbDec = float(input("Donner le nombre décimal à convertir : "))
print(calcul(nbDec))
@@ -0,0 +1,15 @@
#!/usr/bin/python3
''' conversion partie fractionnaire d'un nombre décimal en binaire '''
def calcul(nbDec):
digit = []
while nbDec != 0:
nbDec *= 2
digit.append((int(nbDec)))
nbDec = nbDec - int(nbDec)
return digit
if __name__ == '__main__':
nbDec = float(input("Donner le nombre décimal à convertir : "))
print(calcul(nbDec))
@@ -0,0 +1,15 @@
#!/usr/bin/python3
''' conversion partie fractionnaire d'un nombre décimal en binaire '''
def calcul(nbDec):
digit = []
while nbDec != 0:
nbDec *= 2
digit.append((int(nbDec)))
nbDec = nbDec - int(nbDec)
return digit
if __name__ == '__main__':
nbDec = float(input("Donner le nombre décimal à convertir : "))
print(calcul(nbDec))
@@ -0,0 +1,16 @@
#!/usr/bin/python3
''' conversion partie fractionnaire d'un nombre décimal en binaire '''
def calcul(nbDec):
digit = []
nbDec = nbDec - int(nbDec)
while nbDec != 0:
nbDec *= 2
digit.append((int(nbDec)))
nbDec = nbDec - int(nbDec)
return digit
if __name__ == '__main__':
nbDec = float(input("Donner le nombre décimal à convertir : "))
print(calcul(nbDec))
+73
View File
@@ -0,0 +1,73 @@
# NSY104 09 01 2025
> Le Module est un 100% parcielle, il n'y a pas e devoir maison.
## Numération de base
### Addition Binaire :
01101+10111 = 100100
### Soustraction Binaire :
1101110-10111 = 1010111
Voir des video car le prof explique ... commme à son habitude.
### Exercice :
#### 2.1 :
397 = 110001101
133 = 10000101
110 = 1101110
101 = 5
0101 = 5
1101110 = 110
#### 2.2
a) 1100+1000 =
1100
+1000
------
10100
b) 1001+1011 =
1001
+1011
------
10100
c) 1100-1000 =
1100
-1000
------
0100
d) 1000-101 =
1000
- 101
------
0011
e) 1+1+1+1 =
1 1 10
+ 1 -> + 1 -> + 10
---- ---- ----
10 10 100
#### 2.3
a) 1011*11
1011
* 11
----
@@ -0,0 +1,36 @@
/*
Ce programme initialise la variable n à 10, et l’élève au carré plusieurs fois. Les valeurs
affichées devraient donc être toutes des puissances de 10, mais en exécutant le programme,
vous verrez que ce nest pas le cas pour les dernières valeurs, qui sont trop grandes pour
être représentées correctement par le type int. Vous pouvez également changer le type de
n de int à long et short pour voir limpact sur les valeurs calculées.
Soyez donc vigilants quand votre programme doit travailler avec de grandes valeurs !
Les entiers :
byte : 1 octet de 128 à 127
short : 2 octets de 32 768 à 32 767
int : 4 octets de 2 147 483 648 à 2 147 483 647
long : 8 octets de 9 223 372 036 854 775 808 à 9 223 372 036 854 775 807
Les réels :
float : 4 octets de 1.40239846e-45F à 3.402823347e38F
double : 8 octets de 4.94065645841246544e-324D à 1.79769313486231570e308D
Note : Pour utiliser les valeurs limites en Java, on peut utiliser les constantes suivantes :
- Integer.MAX_VALUE
- Double.MAX_VALUE
*/
public class Depassement {
public static void main(String[] args) {
int n = 10;
System.out.println( n );
for (int i = 0; i < 5; i++){
n = n * n;
System.out.println( n );
}
}
}
@@ -0,0 +1,56 @@
public class Imprecision {
public static void main(String[] args) {
test1();
test2();
test3();
}//main
static void test1(){
/*Si le type double pouvait représenter parfaitement les valeurs réelles, ce programme
afficherait 0. Or, sur mon ordinateur, jobtiens environ la valeur 7.10E15 , qui est une valeur
très petite mais pas nulle. Cest parce que la variable racine ne peut stocker exactement
la racine de a, et donc lexpression racine * racine ne vaut pas exactement a.
*/
double a = 37.0;
double racine = Math.sqrt(a);
System.out.println("test1 : " + (a - racine * racine) );
}//test1
static void test2(){
/*Cest pour ça que les tests d’égalité ou dinégalité entre double (ou float) NE DEVRAIENT PAS ÊTRE utilisés.
Par exemple, le code suivant, naffiche rien, contrairement à ce quon pourrait sattendre.
*/
double a = 37.0;
double racine = Math.sqrt(a);
if (a == racine * racine) {
System.out.println( "test2 : ok" );
}
else System.out.println("test2 : pas ok !");
}//test2
static void test3(){
/*Si vous devez absolument comparer des valeurs de type double vous pouvez utiliser un test tel que celui-ci :*/
double a = 37.0;
double racine = Math.sqrt(a);
double epsilon = 7.105427357601003E-15; // test1() donne pour (a - racine * racine) = 7.105427357601002E-15
if (Math.abs(a - racine * racine) < epsilon) {
System.out.println( "test3 : ok" );
}
/*où epsilon est une très petite valeur et abs calcule la valeur absolue. Cette valeur de-
vrait être choisie selon la précision du type utilisé, mais comment déterminer cette valeur
idéalement sort largement du cadre de ce cours.*/
}//test3
}//class
@@ -0,0 +1,25 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
def twos_comp(val, bits):
"""compute the 2's compliment of int value val"""
if( (val&(1<<(bits-1))) != 0 ):
val = val - (1<<bits)
return val
binary_string = '1111' # or whatever... no '0b' prefix
out = twos_comp(int(binary_string,2), len(binary_string))
print(out)
hex_string = '0xFFFFFFFF' # or whatever... '0x' prefix doesn't matter
out = twos_comp(int(hex_string,16), 32)
print(out)
overflow = bin(129) # en binaire = 0b1000001 et en hexa = 0x81
out = twos_comp(int(overflow,2), 8)
print(out)
overflow = bin(4294967292) # en binaire = 0b11111111111111111111111111111100 et en hexa = 0xfffffffc
out = twos_comp(int(overflow,2), 32)
print(out)
@@ -0,0 +1,49 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
def dec2bin(d,nb=0):
"""dec2bin(d,nb=0): conversion nombre entier positif ou nul -> chaîne binaire (si nb>0, complète à gauche par des zéros)"""
if d==0:
b="0"
else:
b=""
while d!=0:
b="01"[d&1]+b
d=d>>1
return b.zfill(nb)
def dec2bins(d,nb=0):
"""dec2bins(d,nb=0): conversion nombre entier signé d -> chaîne binaire pour un mot de nb bits (=0 par defaut) """
# calcul de la taille mini du mot permettant de représenter la valeur signée d (signe compris)
n=1
if d>=0:
x=d
else:
x=-d-1
while (1<<n)<=x:
n+=1
n+=1
# valeur de nb à prendre pour la suite des calculs (si nb<n, le nb donné est trop faible pour le d donné)
if (nb==0) or (nb<n):
nb=n
# calculs
if d>=0:
# on renvoie la chaîne normale, complétée par des "0" à gauche et par le bit de signe = "0"
b='0' + dec2bin(d,nb-1)
else:
# on renvoie la chaîne signée, complétée par des "1" à gauche et par le bit de signe "1"
b='1' + dec2bin((1<<(nb-1))+d,(nb-1))
return b
# Exemple d'utilisation:
#print dec2bins(4294967292,32)
#komo
entier = int(input('Donner le nombre entier à convertir : '))
form = int(input('Donner le format de conversion : '))
print dec2bins(entier,form)
@@ -0,0 +1,70 @@
#include <stdio.h>
/*On peut consulter le fichier /usr/include/limits.h pour connaître les valeurs limites des différents types.
Type Occupation mémoire Plage de valeur
char 1 octet 128 to 127
int 2 à 4 octets
selon implémentation
short 2 octet 32,768 to 32,767
long 4 octet 2,147,483,648 to 2,147,483,647
unsigned char 1 octet 0 to 255
unsigned int 2 à 4 octets
selon implémentation
unsigned short 2 octet 0 to 65,535
unsigned long 4 octet 0 to 4,294,967,295
float 4 octet ±3.4 x 10e38 to ±3.4 x 10e38
double 8 octet ±1.7 x 10e308 to ±1.7 x 10e308
long double 10 octet ±3.4 x 10e4932 to ±3.4 x 10e4932
*/
int main(){
int entier = 4294967292;
int entier2 = 129; // sur 4 octets de 0 a 2147483647 et de -1 a -2147483648
char car = 'A'; //sur un octet de 0 a 127 et de -1 a -128
printf(" taille car= %d\n", sizeof( car ));
printf(" taille short = %d\n", sizeof( short ));
printf(" taille unsigned short = %d\n", sizeof( unsigned short ));
printf(" taille int = %d\n", sizeof( int ));
printf(" taille unsigned int = %d\n", sizeof( unsigned int ));
printf(" taille long int = %d\n", sizeof( long int ));
printf(" taille unsigned long int = %d\n", sizeof( unsigned long int ));
printf(" taille long long int = %d\n", sizeof( long long int ));
printf(" taille unsigned long long int = %d\n", sizeof( unsigned long long int ));
printf("4 et 4294967292 en tant que nombre sans signe : %u %u\n", 4, entier);
printf("4 et 4294967292 en tant que nombre avec signe : %d %d\n", 4, entier);
/*
4294967292 -> 11111111111111111111111111111100
complément à 2 : 00000000000000000000000000000011 + 1 = 00000000000000000000000000000100 -> -4
*/
/*entier2 = car;
printf("entier = %d\n", entier);*/
car = entier2;
printf("car = %d\n", car);
// printf("A = %x\n", car); //en hexa
// printf("A = %d\n", car); //en decimal
return 0;
}
+4
View File
@@ -0,0 +1,4 @@
# NSY104 18 02 2025
>Reprise du cours du 09/01/2025
+6
View File
@@ -0,0 +1,6 @@
# NSY104-04-03-25
Reprise "Représentation des nombres"
C'est sur à l'examen
+2
View File
@@ -0,0 +1,2 @@
# NSY 104 21 05 2025
+133
View File
@@ -0,0 +1,133 @@
# NSY104-23-05-2025
## Créer un raid 5 :
### Installation du packet mdadm :
```
apt install mdadm
```
### création des partitions :
```
cfdisk /dev/sdb
```
> -> gpt -> New -> Type -> Linux RAID -> Whrite -> Yes
```
cfdisk /dev/sdc
```
> -> gpt -> New -> Type -> Linux RAID -> Whrite -> Yes
```
cfdisk /dev/sdd
```
> -> gpt -> New -> Type -> Linux RAID -> Whrite -> Yes
```
cfdisk /dev/sde
```
> -> gpt -> New -> Type -> Linux RAID -> Whrite -> Yes
### Création du RAID5 avec mdadm :
```
mdadm --create /dev/md0 --level=raid5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-device=1 /dev/sde1
```
### Sauvegarde de configuration de la matrice :
```
mkfs -t ext4 /dev/md0
```
`en root :`
```
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
```
### Montage du RAID5 :
```
mount /dev/md0 /mnt
```
### Pour voir les info :
```
cat /proc/mdstat
mdadm --detail /dev/md0
```
### Pour simuler une pan :
```
mdadm /dev/md0 -f /dev/sdc1
```
### Force L'arrêt du disque dans le RAID5
```
mdadm /dev/md0 --fail /dev/sdc1
```
### Supprimer un disque du RAID5
```
mdadm /dev/md0 --remove /dev/sdc1
```
### Supprimer les informations d'appartenance du disque
```
mdadm --zero-superblock /dev/sdc1
```
### Ajouter un disque au RAID5 :
```
mdadm /dev/md0 -a /dev/sdc1
```
### Arrêter la matrice :
```
unmount /mnt
mdadm --stop /dev/md0
```
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdc1
## Pour créer un un LVM et suite du TP
apt install lvm2
```
cfdisk /dev/sdb
```
> -> gpt -> New -> Type -> Linux LVM -> Whrite -> Yes
```
cfdisk /dev/sdc
```
> -> gpt -> New -> Type -> Linux LVM -> Whrite -> Yes
fdisk -l /dev/sdb
fdisk -l /dev/sdc
pvcreate /dev/sdb1
pvdisplay /dev/sdb1
vgcreate vg01 /dev/sdb1
vgdisplay vg01
lvcreate -n data01 -L 512 vg01
ls /dev/vg01/data01
lvdeisplay -m /dev/vg01/data01
mkfs -t ext4 /dev/vg01/data01
mkdir /mnt/data01
mount /dev/vg01/data01 /mnt/data01
lvcreate -n data02 -L 512m vg01
lvdisplay -m /dev/vg01/data02
mkfs -t ext4 /dev/vg01/data02
mkdir /mnt/data02
mount /dev/vg01/data02 /mnt/data02
1 : Question de cour représentation de informations - 6 points
2 : Machine de turing - 4 points
3 : Fonctionnement d'une unité central - 4 points
4 : QCM 6 points
+2
View File
@@ -0,0 +1,2 @@
# NSY104 10 06 2025
+5
View File
@@ -0,0 +1,5 @@
# NSY 104 Architecture des systèmes informatiques
* [09/01/25](./NSY104-09-01-25)
* [18/02/25](./NSY104-18-02-25)
* [04/03/25](./NSY104-04-03-25)