hg S’enregistrer Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie

Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie  forum informatique Tunisie Index du Forum

hg Bac Tunisie Algorithmique et programmation TIC réseaux php javascript sql access activités programmation c
hg
FAQ FAQ Rechercher Rechercher Membres Membres Groupes Groupes Profil Profil Se connecter pour vérifier ses messages privés Messages Privés Connexion Connexion


 Forum de l'excellence et l'excellence en innovation 
Pour participer à notre Forum, vous devez
 
inscrire sur notre forum a partir d'ici
 
  NB :
Les membres ''zéro messages'' seront supprimés automatiquement après un nombre de jours donné !!!!
             
   
 
  
forum d'aide informatique : internet, réseau, programmation informatique ...
Problème du société de transport
 
 
Poster un nouveau sujet   Répondre au sujet    Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie Index du Forum -> Algorithmique & programmation -> (¯`·._.·[Devoirs et séries']·._.·´¯)
hg Sujet précédent :: Sujet suivant   hd
Auteur Message
KARIMOS
Administrateur

Hors ligne

Inscrit le: 02 Nov 2008
Messages: 1 710
Masculin
Point(s): 5 479
Moyenne de points: 0

Posté le: Ven 26 Fév - 14:53 (2010)    Sujet du message: Problème du société de transport Répondre en citant

PublicitéSupprimer les publicités ?
Sujet: Pour les statistiques d'une société de transport on enregistre dans un fichier les fiches de chacun de ses trains.
Cette fiche comporte les informations suivantes:

  • Le code représentant le seul identificateur de train (entier de 4 chiffres)
  • La date des voyages de la semaine représentée sous forme de numéro de semaine de l'année *Exemple 2/2007: correspond à la 2éme semaine de l'année 2007
    *Exemple 52/2007: correspond à la dernière semaine de 2007
    *NB: Une année compte 52 semaines au maximum
  • Le nombre de voyageurs de chaque jour de la semaine notés respectivement dans un tableau de 7 entiers.

D'où les structures de données à utiliser en Pascal seront déclarés comme suit:
Type
Date = RECORD
s, a:integer;
end;
tab_nb_voy = array[1..7] of integer;
Train = RECORD
Code:integer;
Semaine: date;
Nb_voy:tab_nb_voy;
end;
Fichier = file of train;
Var f:fichier;

On vous demande de proposer un programme Pascal organisé par un menu qui permet de choisir à chaque fois une tâche à faire:
  1. Afficher toutes les fiches
  2. Ajouter un fiche
  3. Rechercher le meilleur score
  4. Quitter l'application

Donc on vous demande de proposer:
a. une procédure INIT permettant d'ouvrir le fichier "C:\fichier.bird" s'il existe et le créer sinon.
b. une procédure AFFICHAGE permettant d'afficher fiche par fiche le contenu de ce fichier.
c. une procédure AJOUT permettant d'ajouter une autre fiche.
d. une procédure MEILLEUR-SCORE permettant de rechercher et d'afficher la fiche d'un train ayant le meilleur score (celui dont le nombre des voyageurs de la semaine est le plus important).

Code:

program PST;
uses wincrt;
type
    date = RECORD
           s, a:integer;
           end;
 
    tab_nb_voy = array [1..7] of integer;
 
    train = RECORD
            code:integer;
            semaine:date;
            nb_voy:tab_nb_voy;
            end;
 
    fichier = file of train;
 
var f:fichier;
 
{----------------------------------}
 
procedure init;
 
begin
assign(f,'c:\fichier.bird');
{$i-}
reset(f);
if (ioresult <> 0)
then begin
     {$i+}
     rewrite(f);
     reset(f);
     end;
end;
 
{----------------------------------}
 
procedure ajouter;
var i:byte;
    liste: train;
 
begin
clrscr;         {pour éffacer l'ecran "clear screen"}
repeat
      write('Donner le code du train: ');
      readln(liste.code);
until (liste.code >= 0) or (liste.code <= 9999);
repeat
      write('Donner la semaine du voyage: ');
      readln(liste.semaine.s);
until (liste.semaine.s in [0..52]);
write('Donner l''année du voyage: ');
readln(liste.semaine.a);
for i:=1 to 7 do
begin
     write('Donner le nombre des voyageurs du jour N°:',i,' ');
     readln(liste.nb_voy[i]);
end;
init;
seek(f, filesize(f));
write(f, liste);
close(f);
 
writeln;
writeln('La nouvelle fiche a été ajoutée avec succée, appuyer sur Entree pour passer...');
readln;
end;
 
{----------------------------------}
 
procedure afficher;
var i:byte;
    liste:train;
 
begin
clrscr;
init;
while (not(eof(f))) do
begin
     clrscr;
     read(f, liste);
     writeln('Code: ',liste.code);
     writeln('Semaine: ', liste.semaine.s);
     writeln('Année: ', liste.semaine.a);
     writeln('Nombre de voyageurs: ');
     for i:=1 to 7 do
     begin
          write(liste.nb_voy[i], ' | ');
     end;
     writeln;
     writeln('Appuyer sur Entree pour passer...');
     readln;
end;
 
close(f);
end;
 
{----------------------------------}
 
function verif_score(t:tab_nb_voy):longint;
var j:byte;
    s:longint;
 
begin
s := 0;
for j:=1 to 7 do
begin
     s := s+t[j];
end;
verif_score := s;
end;
 
{----------------------------------}
 
procedure score;
var ms, s:longint;
    j,i:integer;
    liste:train;
 
begin
clrscr;
init;
ms := 0;
while (not(eof(f))) do
begin
     read(f, liste);
     if (ms < verif_score(liste.nb_voy))
     then begin
          ms := verif_score(liste.nb_voy);
          j := filepos(f)-1;
          end;
end;
seek(f, j);
read(f,liste);
writeln('Le meilleur score: ', ms);
writeln('Code: ', liste.code);
writeln('Semaine: ', liste.semaine.s);
writeln('Année: ', liste.semaine.a);
for i:=1 to 7 do
begin
     write('Nombre des voyageurs dans le jour N°:',i,' ');
     writeln(liste.nb_voy[i]);
end;
 
writeln;
writeln('Appuyer sur Entree pour passer...');
readln;
 
close(f);
end;
 
{----------------------------------}
 
procedure menu;
var m, k:char;
 
begin
repeat
clrscr;
writeln('http://www.4si1.bestoof.com -> Bienvenue !');
writeln;
writeln('1: Afficher toutes les fiches');
writeln('2: Ajouter une fiche');
writeln('3: Rechercher le meilleur score');
writeln('4: Quitter');
m := readkey;      {readkey permet de lire le caractére saisit au clavier}
case m of
     '1':afficher;
     '2':ajouter;
     '3':score;
     end;
if (m = '4')
then begin
     clrscr;
     writeln('Voulez-vous vraiment quitter ?');
     writeln('O: Oui   |   n''importe qu''elle touche: Non');
     k := readkey;
     end;
until (upcase(k) = 'O');        {pour éviter la casse}
donewincrt;      {cette procedure permet de fermer la fenetre Pascal}
end;
 
{----------------------------------}
 
 
BEGIN
 
menu;
 
END.

 


 
Revenir en haut
r.nsiri
recent membre
recent membre

Hors ligne

Inscrit le: 09 Jan 2009
Messages: 262
Masculin
Point(s): 304
Moyenne de points: 0

Posté le: Mer 3 Mar - 08:13 (2010)    Sujet du message: Problème du société de transport Répondre en citant


_________________
Cordialement


 
Revenir en haut
Contenu Sponsorisé






Posté le: Aujourd’hui à 17:01 (2016)    Sujet du message: Problème du société de transport

 
Revenir en haut
Montrer les messages depuis:   
bg bd
Poster un nouveau sujet   Répondre au sujet    Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie Index du Forum -> Algorithmique & programmation -> (¯`·._.·[Devoirs et séries']·._.·´¯) Toutes les heures sont au format GMT + 1 Heure
 
Page 1 sur 1

 
Sauter vers:  
Index | créer forum gratuit | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation