Les machines à registre ... - Divers - Programmation
Marsh Posté le 13-05-2003 à 21:06:49
pour le pgcd tu fais le bon vieil algo d'Euclide
pour fibonnacci... tu fais une boucle toute bete et tu conserves en mémoire la valeur des deux termes précédents
Marsh Posté le 13-05-2003 à 21:16:35
Bon allez, je détaille...
Algo d'euclide : Tu as deux nombres a et b
a = b * q + r
Tout ce qui divise a et b divise a et b*q et par conséquent r. De meme, tout ce qui divise b et r divise b*q et r et par conséquent a. Donc pgcd(a, b) = pgcd(b, r)
b = r * q1 + r1
pgcd(b, r) = pgcd(r, r1)
et ainsi de suite...
Le dernier reste non nul est le pgcd.
Marsh Posté le 13-05-2003 à 21:23:06
ReplyMarsh Posté le 13-05-2003 à 21:25:16
C'est clair que ce n'est pas le plus agréable a utiliser...
Marsh Posté le 13-05-2003 à 21:26:30
Mouais, mais c'est formateur... Bon, j'ai une kholle de maths demain moi
Marsh Posté le 12-05-2003 à 19:04:54
Dans le cadre d'un projet, on m'a demandé de créer un interpréteur de commande selon le même principe que les machines à registre et on m'a aussi demandé une serie d'algorithmes simple executables sur cette machine ... J'ai été capable de creer l'interpreteur et les premiers algo mais là je commence à avoir mal à la tête pour les suivants ... si quelqu'un pouvait m'aider ...
initi : Les lignes qui suivent sont des registres que
l'utilisateur doit renseigner
trava : Les lignes qui suivent sont des registres de travail
resul : Les lignes qui suivent sont des registres de résulat
codex : Les lignes qui suivent sont des lignes de code
k :nul registre => registre:=0;
k:=k+1;
k :dec registre,etiquette => registre:=registre-1;
k:=etiquette;
k :inc registre => registre:=registre+1;
k:=k+1;
k :jump etiquette => k:=etiquette;
k :halt => k:=$+1;
Ce que j'ai réussi à programmer :
initi
R1
R2
resul
R3
codex
nul R3
2 :dec R1 ,5
inc R3
jump 2
5 :dec R2 ,8
inc R3
jump 5
8 :halt
initi
A
B
trava
W
resul
S
codex
nul S
nul W
3 :dec A ,7
inc S
inc W ,10
jump 3
7 :dec W ,10
inc A
jump 7
10 :dec B ,14
inc S
inc W
jump 10
14 :dec W ,17
inc B
jump 14
17 :halt
initi
A
B
trava
W
resul
S
codex
nul S
nul W
3 :dec A ,6
inc W
jump 3
6 :dec B ,11
7 :dec W ,3
inc A
inc S
jump 7
11 :halt
initi
A
B
trava
C
resul
Q
R
codex
nul C
nul Q
nul R
dec B ,17
inc B
jump 8
7 :inc Q
8 :dec B ,11
inc C
jump 8
11 :dec C ,7
dec A ,14
inc B
jump 11
14 :dec B ,17
inc R
jump 14
17 :halt
initi
X
E
trava
S
W
X1
X2
resul
Y
codex
nul X1
nul X2
nul Y
inc Y
bcl :dec E ,fin
1 :dec X ,2
inc X1
inc X2
jump 1
2 :nul S
nul W
3 :dec Y ,6
inc W
jump 3
6 :dec X1 ,11
7 :dec W ,3
inc Y
inc S
jump 7
11 :dec S ,14
inc Y
jump 11
14 :dec X2 ,bcl
inc X
jump 14
fin :halt
Ce que je n'arrive pas à faire : calcul du PGCD et Suite de Fibonacci ... Donc si quelqu'un peu m'aider ...
Message édité par get@fix le 12-05-2003 à 19:05:46