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
 
AccueilCalendrierFAQMembresGroupesS'enregistrerConnexion
Sujets similaires
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Derniers sujets
Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Février 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728     
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

Partagez | 
 

 Exercice 1 (Enregistrement et fichiers)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Dhifallah Fethi
Admin


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

MessageSujet: Exercice 1 (Enregistrement et fichiers)   Sam 26 Mar - 2:08

Exercice 1 (Enregistrement et fichiers)

Les informations relatives à un film sont :

Titre :chaine
Code :chaine
Nombre de sorties de films :entier


Ecrire un programme modulaire qui permet de :

Remplir un tableau T par N films ( 1 ≤ N ≤ 100 ).
* Trier les films par ordre décroissant selon leurs nombres de sortie.
* Afficher le contenu de tableau avant le tri puis après le tri.
* Transférer les films qui sont sortis au moins une seule fois vers un fichier intitulé « acceptable.dat » qui sera créé sous la racine C:
* Transférer les codes des films qui ne sont jamais sortie vers un fichier texte intitulé « Mauvais.doc » qui sera créé sous la racine C:
* Chercher et afficher le nom de film qui à sorti le plus grand nombre de fois ( Remarque : Il est possible qu’on trouve plus qu’un film ayant le même nombre maximal !! ) .
* Supprimer définitivement (à partir de fichier ) les films portant un nombre de sorties inférieur à une valeur vf saisie au clavier. On pourra exploiter la procédure standard TRONQUER ( F ) puisque notre fichier est trié en ordre décroissant !!
* Afficher de nouveau le contenu de fichier.


Correction

Code:
program Exercice;

uses wincrt;

type

film=record

titre,code:string;

NBS:integer;

End;

F_films=file of film;

TAB=array[1..100] of film;

var

F:F_films;

G:text;

T:TAB;

N:integer;

{ ============ CORPS DE LA PROCEDURE CREATION ============== }



procedure creation( VAR F : F_films);

begin

assign (F,' C:/clinique.dat');

rewrite(F);

End;

{ ============ CORPS DE LA PROCEDURE REMPLIR ============== }



procedure remplir (Var T: TAB ; var N:integer);

var

i:integer;

begin

repeat

writeln('saisir le nombre de films: ');

readln(N);

until N in [1..100];

for i:=1 to N do

with t do

begin

write('Titre ....................... : ');Readln(Titre);

write('Code ........................ : ');Readln(Code);

write('Nombre de sorties ........... : ');Readln(NBS);

End;

End;



{ ============ CORPS DE LA PROCEDURE AFFICHER ============== }



procedure Afficher(Var T: TAB ; var N:integer);

var

i:integer;

begin

for i:=1 to N do

with t do

begin

write('Titre ....................... : ');writeln(Titre);

write('Code ........................ : ');writeln(Code);

write('nombre de sorties ........... : ');writeln(NBS);

End;

End;

{ ============ CORPS DE LA PROCEDURE TRIER ============== }



procedure trier(Var T:TAB ; N:integer);

var

i,j:integer;

P,temp:film;



begin

for i:= 2 to N do

if t.NBS < t.NBS then

begin

Temp := t;

j:=i-1;

while (j>=1) AND (t[j].NBS > temp.NBS) do

begin

t[j+1]:= t[j];

j:=j-1;

End;

t[j+1] := temp;

End;

End;

{ ============ CORPS DE LA PROCEDURE TRANSFERT_1 ============== }



procedure transfert_1 (Var T:TAB ; N:integer;Var F:F_films);

var

i:integer;

begin

assign (F,' C:/acceptable.dat');

rewrite(F);

for i:=1 to N do

if (t.NBS > 0) then

write(F,t);

End;



{ ============ CORPS DE LA PROCEDURE TRANSFERT_2 ============== }



procedure transfert_2 (Var T:TAB ; N:integer; Var G:text);

var

i:integer;

begin

assign (G,' C:/mauvais.doc');

rewrite(G);

for i:=1 to N do

if (t.NBS = 0) then

write(G,t.Code);

End;



{ ============ CORPS DE LA PROCEDURE AFFICHAGE ============== }



procedure Affichage (Var F:F_films);

var

Enr:film;

begin

while NOT (eof(F)) do

begin

with Enr do

begin

write('Titre ....................... : ');writeln(Titre);

write('Code ........................ : ');writeln(Code);

write('nombre de sorties ........... : ');writeln(NBS);

End;

End;

End;

{ ============ CORPS DE LA PROCEDURE RECHERCHE ============== }



procedure recherche (T:TAB ; N:integer);

var

i,MAX:integer;

begin

MAX:=t[1].NBS;

for i:=2 to N do

if (t.NBS > MAX) then

MAX:=t.NBS;

for i:=1 to N do

if (t.NBS = MAX) then

writeln('Titre de film .......... : ',t.titre);

End;



{ ============ CORPS DE LA PROCEDURE SUPPRIMER ============== }



procedure supprimer (Var F:F_films);

var

Enr:film;

vf,p:integer;

trouve:boolean;

begin

writeln('saisir une valeur........: ');

readln(vf);

trouve:=false;

while NOT (eof(F)) do

begin

p:=filepos(F);

read(F,Enr);

if (Enr.NBS < vf) then

begin

trouve:=true;

p:=p-1;

End;

End;

seek(F,p);

truncate(F);

End;



{ ============ CORPS DE PROGRAMME PRINCIPAL ============== }



begin

remplir (t,N);

writeln('contenu de tableau avant le tri');

Afficher(t,N);

Trier (t,N);

writeln('contenu de tableau aprés le tri');

Afficher (t,N);

transfert_1(t,N,F);

transfert_2(t,N,G);

recherche(t,N);

supprimer (F);

Affichage (F);

End.

king queen king queen king queen king queen king queen king queen king queen king queen king queen king queen king queen king queen king queen king queen king queen
Revenir en haut Aller en bas
http://ntic.moontada.net
 
Exercice 1 (Enregistrement et fichiers)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» les exercice de chimie 2
» حل مشكل أختفاء option de dossier + تفعيل الخاصية

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: