codage d'un message spacial

Aller en bas

codage d'un message spacial

Message  Admin le Dim 13 Mar - 16:41

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
111 0 000 1111 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.


Admin
Admin

Messages : 137
Date d'inscription : 29/12/2010

Voir le profil de l'utilisateur http://aidescolaire.yoo7.com

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