Cet ensemble d'algorithme a pour but de coder un texte dans une base inversée comprise entre 2 et 16 et multiple de 2 que l'on nommera base b
Pour cela nous allons partir d'un fichier texte quelconque, et transcrire caractère par caractère en son ordinal et ensuite nous allons le convertir en base b
- l'algo1 sert pour coder un caractère en un nombre inverse en base b
- l'algo2 réinverse le nombre et le converti en base 10
- Ensuite il suffit de convertir le nombre en son caractère associé
--------------------------------------------------------------------------------
Le schéma du programme sera :
procedure codage
procedure decodage
begin
choix codage-decodage (manquant)
si codage choix de la base (manquant)
soit choix aleatoire (manquant)
soit choix précis (manquant)
inscription de la base dans le fichier (manquant)
tant que le fichier d entrée n'est pas fini (manquant)
ALGO1
fin de tant que
sinon decodage (manquant)
lecture de la base (manquant)
détermination de n
tant que la lecture n'est pas finie (manquant)
ALGO2
conversion du nombre en son caractère associé (manquant)
l'écrire dans le fichier de sortie (manquant)
fin de tant que
end.
--------------------------------------------------------------------------------
Cette procedure va servir pour les bases supérieures à 10, gràce à elle on pourra aller jusqu'au code hexadécimal
procedure codage (reste:integer;var:coda:char);
begin
case reste of
10:coda:='A';
11:coda:='B';
12:coda:='C';
13:coda:='D';
14:coda:='E';
15:coda:='F'
end;
--------------------------------------------------------------------------------
Cette autre procédure sera le contraire de la procédure précédente
procedure codage (var:reste:integer;coda:char);
begin
case reste of
'A':reste:=10;
'B':reste:=11;
'C':reste:=12;
'D':reste:=13;
'E':reste:=14;
'F':reste:=15
end;
--------------------------------------------------------------------------------
ALGO1 : Codage d'un caractère en un nombre inversé en une base b
assertion d'entrée : ouverture d'un fichier de caractères pour l'entrée et un autre de sortie et détermination d'une base b et une procedure codage pour associer des lettres pour les bases supérieures à 10
c <- caractère courant du fichier
Nch <- ordinal de c
tant que Nch <> 0
reste <- Nch mod b
Nch <- Nch div b
codage(reste,coda)
écrire dans le fichier de sortie le contenu de coda
fin de tant que
assertion de sortie : un caractère correspondant a ordinal inversé en base b du caractère du fichier d'entrée
--------------------------------------------------------------------------------
Détermination de n : la variable "n" correspond à la surface prévu pour chaque nombre en fonction de la base décidé
case b of
begin
2: n:=8;
4: n:=4;
6: n:=4;
8: n:=3;
10: n:=3;
12: n:=3;
14: n:=3;
16: n:=2
end;
--------------------------------------------------------------------------------
ALGO2 : Conversion du nombre inversé déduit de l'algo1 en un nombre en base 10 normal
assertion d entrée : un fichier de caractère ouvert pour l'entrée et un autre pour la sortie et la base b déterminée par la procédure detbase
base <- 1
Nch2 <- 0
k <- 0
tant que k
c <- caractère du fichier d'entrée
Nch <- ord(c)-48
Nch2 <- Nch2 + Nch*base
base <- base*b
k <- k+1
fin de tant que
--------------------------------------------------------------------------------
1 commentaire:
oula mais commen sa sf ke tu mets sa sur ton blog? et ben on peutse fore dma gueule kan je di ke jem les maths mais toi vec linfo... lol!! pas mal mè pa tt compri e ke sa fesè malgr ke g fè info jtrouve ke tu devrè pte mieux expliké pr ke d gen ki ne fon pa du tt info savent à koi se ser!! ;) enfin c comme tu ve jte donne mon avi!! parske moi kan jvoi sa et ke j comprn rien ben je revien pa forcémen... lol
Enregistrer un commentaire