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 ...
fichier texte
 
 
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 -> Enregistrements & fichiers
hg Sujet précédent :: Sujet suivant   hd
Auteur Message
HAJRI


Hors ligne

Inscrit le: 23 Jan 2009
Messages: 12
Point(s): 27
Moyenne de points: 0

Posté le: Mar 9 Nov - 11:22 (2010)    Sujet du message: fichier texte Répondre en citant

PublicitéSupprimer les publicités ?
"Exemple.TXT" est un fichier texte enregistré dans d:\statistique. Ecrire un programme pascal permettant de calculer et afficher la fréquence de chaque mot dans le texte sans redondance. L’affichage se fait par ordre alphabétique. Par besoin de simplicité, on suppose que le texte ne contient pas des signes de ponctuation.
Exemple :
 Si le texte : « On peut déranger certains gens tous le temps et tous les gens de temps en temps mais pas tous les gens tous le temps » produit le résultat suivant :
Mot 
Fréquence 
Certains 
1 
De 
1 
Déranger 
1 
En 
1 
Et 
1 
gens 
3 
Le 
2 
les 
2 
Mais 
1 
On 
1 
Pas 
1 
Peut 
1 
Temps 
4 
Tous 
4 


 
Revenir en haut
KARIMOS
Administrateur

Hors ligne

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

Posté le: Mar 9 Nov - 13:30 (2010)    Sujet du message: fichier texte Répondre en citant

MERCI Okay  

 
Revenir en haut
manianis


Hors ligne

Inscrit le: 11 Aoû 2010
Messages: 95
Masculin
Point(s): 102
Moyenne de points: 0

Posté le: Mer 10 Nov - 10:55 (2010)    Sujet du message: fichier texte Répondre en citant

Un exercice pas très facile à vos machines. Okay Okay Okay

 
Revenir en haut
manianis


Hors ligne

Inscrit le: 11 Aoû 2010
Messages: 95
Masculin
Point(s): 102
Moyenne de points: 0

Posté le: Mer 10 Nov - 11:31 (2010)    Sujet du message: fichier texte Répondre en citant

Jetez un coup d'oeil sur ma proposition et essayez de proposer mieux !
Je sais qu'elle n'est pas optimisée.


 
Code:

program frequence;

uses WinCrt;

type
        e_freq = record
                mot : string[20];
                freq : integer;
        end;
        tab_freq = array [1..50] of e_freq;

function Miniscule(var ch : string):string;
var
   i : integer;
begin
     for i:=1 to Length(ch) do
         if (ch[i] in ['A'..'Z']) then
            ch[i] := Chr(Ord(ch[i]) + 32);
     Miniscule := ch;
end;

function Position_Mot(mot : string ; var n : integer ; var t : tab_freq):integer;
var
   p, i : integer;
begin
     p := 0;
     i := 1;

     while (i <= n) and (p = 0) do
     begin
          if (mot = t[i].mot) then p := i else i:=i+1;
     end;

     Position_Mot := p;
end;

procedure Inserer_Mot(mot : string ; var n : integer ; var t : tab_freq);
var
   ne : e_freq;
   p  : integer;
begin
     ne.mot := mot;
     ne.freq := 1;
     p := n;
     while (p > 0) and (ne.mot < t[p].mot) do
     begin
          t[p+1] := t[p];
          p := p - 1;
     end;
     t[p+1] := ne;
     n := n + 1;
end;

procedure MAJ_Freq(mot : string ; var n : integer ; var t : tab_freq);
var
   p : integer;
begin
     p := Position_Mot(mot, n, t);
     if (p = 0) then
        Inserer_Mot(mot, n, t)
     else
        t[p].freq := t[p].freq + 1;
end;

procedure afficher(n : integer; var t : tab_freq);
var
   i : integer;
begin
     for i:=1 to n do
         Writeln(t[i].mot : 21, '-', t[i].freq : 3);
end;

procedure Compter_Mots(var f : text ; var n :integer ; var t : tab_freq);
var
   ch : string;
   c  : char;
begin
     Reset(f);
     ch := '';
     While (not EOF(f)) do
     begin
          Read(f, c);
          if (c = ' ') then
          begin
               ch := miniscule(ch);
               MAJ_Freq(ch, n, t);
               ch := '';
          end else ch := ch + c;

     end;
     ch := miniscule(ch);
     MAJ_Freq(ch, n, t);
     Close(f);
end;

var
   n : integer;
   f : text;
   t : tab_freq;
begin
        Assign(f, 'c:\exemple.txt');
        Compter_Mots(f, n, t);
        Afficher(n, t);
end. 


 
Revenir en haut
Contenu Sponsorisé






Posté le: Aujourd’hui à 23:21 (2016)    Sujet du message: fichier texte

 
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 -> Enregistrements & fichiers 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