BAC 2008/2009

Voir le sujet précédent Voir le sujet suivant Aller en bas

BAC 2008/2009

Message  Mohamedh hafedh bellil le Ven 24 Oct - 22:54

Bonne chance à tous dans ce forum et j'espère que tout va bien pour nous cheers
avatar
Mohamedh hafedh bellil

Messages : 7
Date d'inscription : 24/10/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

4 SI Algo & Programmation

Message  Hanafi le Dim 26 Oct - 1:52

Pour reussir il faut travailler, travailler et encore une fois travailler. Bonne chance pour tous les bacheliers de notre lycée Exclamation
Voici un exercice interessant avec les fichiers typés.
Pour un certain modèle de poste radio, une station radio est caractérisée par :
- son nom qui ne dépasse pas 10 caractères.
- sa fréquence d’ondes qui se classe en trois catégories :
  • Ondes Moyennes MW (Medium Wave) ayant des fréquences comprises entre 530 et 1600 khz.
    Ondes Longues LW (Long Wave) ayant des fréquences comprises entre 150 et 280 khz.
    Ondes Courtes SW (Short Wave) ayant des fréquences comprises entre 3200 et 12000 khz.

- sa longueur d’onde exprimée en mètre.
- son code :
  • ‘’LW’’ pour les ondes longues (LW).
    ‘’MW’’ pour les ondes moyennes (MW).
    ‘’SW’’ pour les ondes courtes (SW).


L’utilisation de ce poste est gérée par un programme intitulé RADIO. Les données sont enregistrées dans une mémoire non volatile permettant selon le choix de l’utilisateur de faire les opérations ci-dessous :
1. avoir un espace d’enregistrement dont le chemin et le nom sont fixes.
2. capter (saisir) un certain nombre de stations.
3. vérifier l’existence d’une station par son nom.
4. supprimer une ou plusieurs stations existantes.
5. ajouter une ou plusieurs stations captées.
6. classer les stations par leurs codes en ordre croissant.
7. afficher une ou plusieurs stations par : nom, fréquence, longueur et code.
8. quitter le programme.

QUESTIONS

1. Proposez une structure de données adéquate pour les objets globaux à utiliser.
2. Donner une déclaration algorithmique de ces objets.
3. En utilisant l’analyse modulaire, proposer une analyse du programme principal ainsi que l’analyse de chaque module.

Essayez de le faire en attendant la correction sunny
avatar
Hanafi

Messages : 106
Date d'inscription : 25/10/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Essai.

Message  Akram le Mer 29 Oct - 22:14

Bonjour,
j'ai essayer de résoudre le problème avec Rami essaafi,je veux savoir si la procédure vérifier est juste ou pas:

Procedure verifier ( var f: fiche );
var nm:string;
test:boolean;
begin
writeln ('donner nom');
readln(nm);
reset(f);
test:=false;
while (not eof(f))or(not test) do
begin
read (f,station);
test:= station.nom = nm;
end;
if test then
writeln('Station existante')
else
writeln('Station inexistante');
end;

Merci d'avance.

Akram

Messages : 8
Date d'inscription : 25/10/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Radio

Message  Saafi RAMI le Lun 3 Nov - 15:35

Voila Mme c'est mon Essai

program Radio;
uses wincrt;

type
enr=record
nom:string [10];
freq:integer;
long:integer;
code:integer;
end;

fiche = file of enr;

tab=array [1..100] of enr;

var
f:fiche;
station:enr;
re:char;
choix:integer;

procedure creation(var f:fiche);
var cond:boolean;
begin
clrscr;
writeln(' *** Création ***');
writeln;
writeln;
rewrite(f);
repeat
with station do
begin
write('Donner le nom du station : ');readln(nom);
repeat
write('Donner la fréquence du station : ');readln(freq);
cond:=((freq>530)and(freq<1600))or((freq>150)and(freq<280))or((freq>3200)and(freq<12000));
until cond;
write('Donner la longuer du station : ');readln(long);
write('Donner le code du station : ');readln(code);
end;
write(f,station);
repeat
write('Vouler vous continuer ? (O/N)');
readln(re);
re:=upcase(re);
until (re='O')or(re='N');
until re='N';
close(f);
end;

procedure affiche(var f:fiche);
begin
clrscr;
writeln(' *** Affichage ***');
writeln;
writeln;
reset(f);
while not eof(f) do
begin
read(f,station);
with station do
writeln('Nom: ',nom,' | Fréquence : ',freq,' | Longueur : ',long,' | Code : ',code);
end;
close(f);
readln;
end;

function position(var f:fiche;x:string):integer;
var test:boolean;
begin
reset(f);
test:=false;
while (not eof(f))and(not test)do
begin
read(f,station);
test:=((station.nom)=x);
end;
if test then
position:=filepos(f)-1
else
position:=-5;
end;

procedure verifier(var f:fiche);
var
x:string;
begin
clrscr;
writeln(' *** Verification ***');
writeln;
writeln;
write('Donner le nom du station a chercher : ');readln(x);
if position(f,x)<>-5 then
writeln('Chaine existante')
else
writeln('Chaine inexistante');
readln;
end;

procedure supprimer(var f:fiche);
var
x:string;
p:integer;
begin
clrscr;
writeln(' *** suppression ***');
writeln;
writeln;
write('Donner le nom du station a supprimerr : ');readln(x);
p:=position(f,x);
if (p<(filesize(f)+1))and(p>-1 )then
begin
if p<>filesize(f)-1 then
begin
p:=p+1;
seek(f,p);
while p<filesize(f) do
begin
seek(f,p);
read(f,station);
seek(f,p-1);
write(f,station);
p:=p+1
end;
end;
seek(f,filesize(f)-1);
end;
truncate(f);
end;

procedure ajout(var f:fiche);
var cond:boolean;
begin
clrscr;
writeln(' *** Ajout ***');
writeln;
writeln;
reset(f);
seek(f,filesize(f)-1);
repeat
with station do
begin
write('Donner le nom du station : ');readln(nom);
repeat
write('Donner la fréquence du station : ');readln(freq);
cond:=((freq>530)and(freq<1600))or((freq>150)and(freq<280))or((freq>3200)and(freq<12000));
until cond;
write('Donner la longuer du station : ');readln(long);
write('Donner le code du station : ');readln(code);
end;
write(f,station);
repeat
write('Vouler vous continuer ? (O/N)');
readln(re);
re:=upcase(re);
until (re='O')or(re='N');
until re='N';
close(f);
end;

procedure tri(var t:tab;n:integer);
var
i:integer;
test:boolean;
begin
clrscr;
writeln(' *** Tri ***');
writeln;
writeln;
write('tri des stations en cours ');
repeat
test:=true;
for i:=1 to n-1 do
if (t[i].code)>(t[i+1].code) then
begin
station:=t[i];
t[i]:=t[i+1];
t[i+1]:=station;
test:=false;
write('_');
end;
until test;
end;

procedure croissant(var f:fiche);
var
i,n:integer;
t:tab;
begin
clrscr;
writeln(' *** Tri ***');
writeln;
writeln;
write('lecture du fichier en cours.');
reset(f);
i:=0;
while not eof(f) do
begin
i:=i+1;
read(f,t[i]);
write('_');
end;
n:=i;
tri(t,n);
clrscr;
writeln(' *** Tri ***');
writeln;
writeln;
write('ecriture du fichier en cours.');
reset(f);
for i:=1 to n do
write(f,t[i]);
close(f);
end;

begin
assign(f,'c:\4SI\XXX');
repeat
clrscr;

writeln(' ******POSTE RADIO******');
writeln;writeln;writeln;
writeln('Appuyer sur -1- pour capter des stations.');
writeln('Appuyer sur -2- pour verifier l''existance d''une station.');
writeln('Appuyer sur -3- pour supprimer une station.');
writeln('Appuyer sur -4- pour ajouter une ou plusieur stations.');
writeln('Appuyer sur -5- pour trier les stations par leurs codes.');
writeln('Appuyer sur -6- pour afficher des stations.');
writeln('Appuyer sur -7- pour quitter la poste radio.');
writeln;
repeat
write('Quel est votre choix ? ');readln(choix);
until choix in[1..7];
case choix of
1:creation(f);
2:verifier(f);
3: supprimer(f);
4:ajout(f);
5:croissant(f);
6:affiche(f);
end;
until choix=7;
clrscr;
write(' POSTE RADIO fermé.');
end.
avatar
Saafi RAMI

Messages : 37
Date d'inscription : 16/10/2008
Age : 27

Voir le profil de l'utilisateur http://www.imraude.skyrock.com

Revenir en haut Aller en bas

Exercice radio

Message  Hanafi le Mar 4 Nov - 0:27

Bravo, Rami !!! Très bien ! Continue comme ça et BAC fi jibik Exclamation Une petite remarque concernant la saisie du code - plus juste vont être d'affecter par les valeurs "LW" ou "MW" ou "LW" en fonction de fréquence ( avec SI (frequence>=150) ET (frequence<=280) Alors
Code <--'LW' etc...)
Voici les liens vers la correction - analyse : http://www.usaupload.net/d/blhxkpf2bjw et pour un programme en Pascal : http://www.usaupload.net/d/voi5yz5o06j Bonne continuation, Rami et tous les élèves de 4SI Laughing
Voila un document interessant pour la gestion des erreurs : http://img42.xooimage.com/files/c/4/8/annexe-1-7b32b9.pdf
avatar
Hanafi

Messages : 106
Date d'inscription : 25/10/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: BAC 2008/2009

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

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