6663b6c9
adorian
projet complet av...
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
ecris(n,b):={
//n est en base 10 et b<=10, ecrit est une fonction iterative
//ecris(n,b)=la liste des caracteres de l'ecriture de n en base b
local L;
L:=[];
while (n>=b){
L:=concat([irem(n,b)],L);
n:=iquo(n,b);
}
L:=concat([n],L);
return(L);
};
ecritur(n,b):={
//n est en base 10 et b<=10, ecritur est une fonction recursive
//ecritur(n,b)=la liste des caracteres de l'ecriture de n en base b
if (n>=b)
return(append(ecritur(iquo(n,b),b),irem(n,b)));
else
return([n]);
};
chiffre(n,b):={
//chiffre(n,b) transforme n (0<=n<b) en son caractere ds la base b
if (n>9)
n:=char(n+55);
else
n:=char(48+n);
return(n);
};
ecritu(n,b):={
//n est en base 10 et b<=36, ecritu est une fonction iterative
//ecritu(n,b)=la liste des caracteres de l'ecriture de n en base b
local L,r,rc;
L:=[];
while (n>=b){
r:=irem(n,b);
rc:=chiffre(r,b);
L:=concat([rc],L);
n:=iquo(n,b);
}
n:=chiffre(n,b);
L:=concat([n],L);
return(L);
};
ecriture(n,b):={
//n est en base 10 et b<=36, ecriture est une fonction recursive
//ecriture(n,b)=la liste des caracteres de l'ecriture de n en base b
local r,rc;
if (n>=b){
r:=irem(n,b);
rc:=chiffre(r,b);
return(append(ecriture(iquo(n,b),b),rc));
}
else {
return([chiffre(n,b)]);
}
};
ecrit(n,b):= {
//ecrit(n,b)=la sequence des chiffres de n dans la base b
local m,u,cu;
m:=(NULL);
while(n!=0){
u:=(irem(n,b));
if (u>9) {
cu:=(char(u+55));
}
else {
cu:=(char(u+48));
};
m:=(cu,m);
n:=(iquo(n,b));
};
return(m);
};
nombre(m,b):={
local s,k,am,nm,n;
s:=(size(m));
n:=(0);
k:=(0);
if (s!=0) {
while(k<s){
am:=(asc(m[k])[0]);
if (am>64) {
nm:=(am-55);
}
else {
nm:=(am-48);
};
if (nm>(b-1)) {
return("erreur");
}
n:=(n*b+nm);
k:=(k+1);
};
}
return(n);
};
|