Forum INFOMATH
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Boutique Nike : -25% dès 50€ sur TOUT le site Nike avec le code ...
Voir le deal

Exercice: Matrice: Codage, chiffrement d'un texte

Aller en bas

Exercice: Matrice: Codage, chiffrement d'un texte Empty Exercice: Matrice: Codage, chiffrement d'un texte

Message par Napoléon Lun 28 Sep - 1:16

Problème (CODAGE D'UN TEXTE)

Une manière de coder un texte consiste en l'opération suivante. On se fixe un entier n donné. On considère que le texte à coder est une chaîne de caractères. En commençant à partir du premier caractère, on divise le
texte en blocs de longueur n2 (nxn) caractères consécutifs. Si la longueur du texte n'est pas un multiple de n2, on lui ajoute autant d'espaces qu'il en faut pour que sa longueur devienne un multiple de n2. Chaque bloc est divisé à son tour en n sous-blocs de longueur n caractères. En disposant ces sous-blocs l'un en dessous de l'autre, on obtient alors n colonnes. Chaque colonne, lue du haut vers le bas, va donner une chaîne de n caractères. En rassemblant dans l'ordre toutes ces chaînes, on obtient une nouvelle chaîne qui sera le texte codé.


Exemple :
Pour n = 3 et le texte à coder ="Je vais à Tunis pour l'OTI"
La longueur de ce texte est égale à 26. On lui ajoute 1 espace pour que sa longueur devienne multiple de 9. La chaîne devient "Je vais à Tunis pour l'OTI" Sa longueur devient donc 27.

En appliquant les étapes ci-dessus évoquées, on obtient :


J

e

T

u

u

r

v

a

i

n

i

s

l

'

O

s

à


p

o

T

I


La chaîne codée sera :
Jvsea ià n TipusoulTr'I O "


Écrire un programme qui saisit un entier naturel n tel que 2<9 et le texte à coder (une chaîne de caractères). Il fait sortir ensuite le texte codé.


Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7874
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
Exercice: Matrice: Codage, chiffrement d'un texte Left_bar_bleue999/1000Exercice: Matrice: Codage, chiffrement d'un texte Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

Exercice: Matrice: Codage, chiffrement d'un texte Empty Re: Exercice: Matrice: Codage, chiffrement d'un texte

Message par Napoléon Lun 28 Sep - 1:18

Solution en Pascal (extraite du net):

Code:
program codes;

uses wincrt;

Var  ch : string;

    nc : integer;

function coder(m : integer; ch_org:string):string;

var    i,j,k,l,d    : integer;

      p,db,nb_bloc : integer;

      ch_out      : string;

begin

l:=length(ch_org);

d:=sqr(m)-(l mod sqr(m));

if d<>0 then

                  begin

                          For i:=1 to d do ch_org:=ch_org+' ';

                  end;

ch_out:=ch_org;

nb_bloc:=length(ch_org) div sqr(m);

p:=1;

For i:=1 to nb_bloc do

                        begin

                          db:=(i-1)*sqr(m) + 1;

                          for j:=0 to m-1 do

                              begin

                                      for k :=0 to m-1 do

                                        begin

                                          ch_out[p]:=ch_org[db+j+k*m];

                                          p:=p+1;

                                        end;

                              end;

                          end;

coder:=ch_out;

end;

procedure saisie(var m :integer; var txt_coder:string);

begin

  repeat

          write('Donner un entier entre 1 et          5 : '); readln(m);

  until m in [1..5];

  write('Saisir le texte ŕ coder : ');readln(txt_coder);

  writeln;

end;

begin

  saisie(nc,ch);

  writeln('le texte codé sera : ',coder(nc,ch));

end.
Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7874
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
Exercice: Matrice: Codage, chiffrement d'un texte Left_bar_bleue999/1000Exercice: Matrice: Codage, chiffrement d'un texte Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum