codage d'un message spacial
Page 1 sur 1
codage d'un message spacial
ENONCE
Une antenne parabolique est à l’écoute des signaux en provenance de l’espace à la recherche de communications extraterrestre. Les signaux reçus sont convertis en paquets de chaînes de caractères de quatre chiffres binaires chacune et rangées dans un tableau T.
On se propose de calculer et d’afficher les fréquences (nombre d’apparition) des séquences « 1111 » et « 0000 » au sein des signaux traités dans le tableau T de N chaînes de caractères (8=<N<=100)
Exemple :
Pour N=8
Résultat :
• La fréquence de la séquence « 1111 » est égale à 3
• La fréquence de la séquence « 0000 » est égale à 2
cette fréquence d’apparition est prise par rapport à tout le tableau formé par les chaines de caractères
Questions :
1. Analyser ce problème en le décomposant en modules.
2. Analyser les modules envisagés dans la question N°1.
3. Déduire les algorithmes à partir des analyses faites dans les questions1 et 2.
PASCAL
program signaux;
uses wincrt;
type
tab=array[1..100] of string;
var
i,n,app,app1:integer;
ch,ch1:string;
t:tab;
function napp(ch1,ch:string):integer;
var
app0:integer;
begin
app0:=0;
while(pos(ch1,ch)>0) do
begin
delete(ch,pos(ch1,ch),4);
app0:=app0+1;
end;
napp:=app0;
end;
procedure saisie(var n :integer);
begin
repeat
write('saisir n=: ');
readln(n);
until n in [8..100];
end;
procedure lecture(var t:tab;var ch:string;n:integer);
var
j,i:integer;
ch2:string;
ok:boolean;
begin
for i:=1 to n do
begin
repeat
ok:=true;
j:=1;
write('saisir l''elemnt n°',i,'=: ');
readln(t[i]);
ch2:=t[i];
repeat
if (not(ch2[j] in ['0','1'])) or (length(ch2)<>4) then ok:=false; j:=j+1;
until (ok=false) or (j> length(ch2)) ;
until ok;
ch:=concat(ch,ch2);
end;
end;
procedure affichage( ch:string;ap:integer);
begin
writeln('le nombre d''apparition de ', ch,' est =',ap);
end;
begin {*** programme principal***}
saisie(n); {la valeur de n est comprise entre 8 et 100}
ch:='';
lecture(t,ch,n);
app:=napp('0000',ch);
app1:=napp('1111',ch);
affichage('0000',app);
affichage('1111',app1);
end.
Une antenne parabolique est à l’écoute des signaux en provenance de l’espace à la recherche de communications extraterrestre. Les signaux reçus sont convertis en paquets de chaînes de caractères de quatre chiffres binaires chacune et rangées dans un tableau T.
On se propose de calculer et d’afficher les fréquences (nombre d’apparition) des séquences « 1111 » et « 0000 » au sein des signaux traités dans le tableau T de N chaînes de caractères (8=<N<=100)
Exemple :
Pour N=8
111 0 | 000 1 | 111 1 | 1110 | 00 11 | 11 00 | 0111 | 0000 |
Résultat :
• La fréquence de la séquence « 1111 » est égale à 3
• La fréquence de la séquence « 0000 » est égale à 2
cette fréquence d’apparition est prise par rapport à tout le tableau formé par les chaines de caractères
Questions :
1. Analyser ce problème en le décomposant en modules.
2. Analyser les modules envisagés dans la question N°1.
3. Déduire les algorithmes à partir des analyses faites dans les questions1 et 2.
PASCAL
program signaux;
uses wincrt;
type
tab=array[1..100] of string;
var
i,n,app,app1:integer;
ch,ch1:string;
t:tab;
function napp(ch1,ch:string):integer;
var
app0:integer;
begin
app0:=0;
while(pos(ch1,ch)>0) do
begin
delete(ch,pos(ch1,ch),4);
app0:=app0+1;
end;
napp:=app0;
end;
procedure saisie(var n :integer);
begin
repeat
write('saisir n=: ');
readln(n);
until n in [8..100];
end;
procedure lecture(var t:tab;var ch:string;n:integer);
var
j,i:integer;
ch2:string;
ok:boolean;
begin
for i:=1 to n do
begin
repeat
ok:=true;
j:=1;
write('saisir l''elemnt n°',i,'=: ');
readln(t[i]);
ch2:=t[i];
repeat
if (not(ch2[j] in ['0','1'])) or (length(ch2)<>4) then ok:=false; j:=j+1;
until (ok=false) or (j> length(ch2)) ;
until ok;
ch:=concat(ch,ch2);
end;
end;
procedure affichage( ch:string;ap:integer);
begin
writeln('le nombre d''apparition de ', ch,' est =',ap);
end;
begin {*** programme principal***}
saisie(n); {la valeur de n est comprise entre 8 et 100}
ch:='';
lecture(t,ch,n);
app:=napp('0000',ch);
app1:=napp('1111',ch);
affichage('0000',app);
affichage('1111',app1);
end.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum