Sciences de l'informatique
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Sciences de l'informatique

Bienvenue dans notre forum de partage et d'échange d'information technique dans le domaine NTIC (Informatique, Programmation, Réseau, Multimédia), ce forum est destinée à tous les élèves Tunisiens
 
AccueilDernières imagesS'enregistrerConnexion
Sujets similaires
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Derniers sujets
» Cours sur les fichiers
Exercice 2 (Enregistrement et fichiers) Icon_minitime1Lun 2 Mai - 13:32 par kaouther

» série révision finale
Exercice 2 (Enregistrement et fichiers) Icon_minitime1Ven 15 Avr - 2:32 par Dhifallah Fethi

» Conversion de nombre décimal vers un nombre binaire
Exercice 2 (Enregistrement et fichiers) Icon_minitime1Mar 29 Mar - 2:27 par Dhifallah Fethi

» Divisibilité par 5 (Algoritmes arithmétiques)
Exercice 2 (Enregistrement et fichiers) Icon_minitime1Mar 29 Mar - 2:24 par Dhifallah Fethi

» Divisibilité par 4 (Algoritmes arithmétiques)
Exercice 2 (Enregistrement et fichiers) Icon_minitime1Mar 29 Mar - 2:18 par Dhifallah Fethi

» Série enregestrement et fichier avec corection
Exercice 2 (Enregistrement et fichiers) Icon_minitime1Mar 29 Mar - 1:30 par Dhifallah Fethi

» Exercice 8 (Algorithmes récurrents)
Exercice 2 (Enregistrement et fichiers) Icon_minitime1Lun 28 Mar - 2:34 par Dhifallah Fethi

» Exercice 7 (Algorithmes récurrents)
Exercice 2 (Enregistrement et fichiers) Icon_minitime1Lun 28 Mar - 2:23 par Dhifallah Fethi

» Exercice 6 (Algorithmes récurrents)
Exercice 2 (Enregistrement et fichiers) Icon_minitime1Lun 28 Mar - 2:18 par Dhifallah Fethi

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 6 le Ven 13 Jan - 2:22

 

 Exercice 2 (Enregistrement et fichiers)

Aller en bas 
AuteurMessage
Dhifallah Fethi
Admin
Dhifallah Fethi


Messages : 74
Date d'inscription : 02/03/2011

Exercice 2 (Enregistrement et fichiers) Empty
MessageSujet: Exercice 2 (Enregistrement et fichiers)   Exercice 2 (Enregistrement et fichiers) Icon_minitime1Dim 27 Mar - 1:31

Exercice 2 (Enregistrement et fichiers)

"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 :

[Vous devez être inscrit et connecté pour voir cette image]


Correction de l'exercice

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 Aller en bas
https://ntic.yoo7.com
 
Exercice 2 (Enregistrement et fichiers)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Exercice 1 (Enregistrement et fichiers)
» Exercice 4 (Enregistrement et fichiers)
» Exercice 1 (récursivité)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Sciences de l'informatique :: 4ème SI :: Programmation :: Exercices & Devoirs-
Sauter vers: