Solution d'un exercice!!

Fermé
Rahmouni007 Messages postés 155 Date d'inscription vendredi 10 octobre 2008 Statut Membre Dernière intervention 17 avril 2017 - 25 janv. 2013 à 20:37
Rahmouni007 Messages postés 155 Date d'inscription vendredi 10 octobre 2008 Statut Membre Dernière intervention 17 avril 2017 - 28 janv. 2013 à 20:51
Bonjour,
Je cherche une solution de cet exercice:

Le fichier nombre.dat a déjà été crée par un programme et existe dans la partition « c » dans le dossier Nombre est qui comporte des entiers positifs non nul.
Nous voulons maintenant créer deux fichiers textes dans le même dossier et la même partition que le fichier nombre.dat.
- Le premier fichier nombre_modif.txt qui comporte dans :
- La première ligne les éléments du fichier nombre.dat trié dans l'ordre croissant (le tri se fait dans un tableau à l'aide de la méthode de tri par Shell, puis, copier les éléments trié dans le fichier texte).
- La deuxième ligne la somme des éléments du fichier nombre.dat (la somme se fait en utilisant un procédé récursif après la copie des éléments du fichier dans un tableau).
- La troisième ligne le factoriel du premier élément du fichier nombre.dat (le factoriel de l'élément se fait en utilisant un procédé récursif).
- Le deuxième fichier triangle.txt comporte les lignes du triangle de pascale qui correspond au premier élément du fichier nombre.dat.


3 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 416
25 janv. 2013 à 20:39
0
Rahmouni007 Messages postés 155 Date d'inscription vendredi 10 octobre 2008 Statut Membre Dernière intervention 17 avril 2017 2
25 janv. 2013 à 20:40
voilà ma proposition:

program dc2;
uses wincrt;
type fich1=file of integer;
     tab=array [1..30] of integer;
     matrice=array [1..20 , 1..20] of integer;
     
var f2:text;
    f3:text;
    f1:fich1;
    t:tab;
    mat:matrice;
    n,s,f,x:integer;


procedure creation(var f1:fich1;var f2:text;var f3:text);
begin
assign(f1,'c:\nombre\nombre.dat');
rewrite(f1);
assign(f2,'c:\nombre\nombre_modif.txt');
rewrite(f2);
assign(f3,'c:\nombre\pascal.txt');
rewrite(f3);
end;

procedure remplir(var f1:fich1);
var n:integer;
begin
reset(f1);
repeat
write('donner un entier: ');
read(n);
write(f1,n);
until(n<=0);
close(f1);
end;

procedure chargement (var t:tab;var f1:fich1;n:integer);
var i:integer;
begin
reset(f1);
for i:=1 to n do
write(f1,t[i]);
close(f1);
end;

procedure TriShell(n : integer ; var t : tab);
var
  p, k, i, j : integer;
begin
  p := 1;
  while (p < n) do p := 3 * p + 1; 
  while (p <> 1) do
  begin
    p := p div 3;
    for i := p+1 to n do
    begin
      k := t[i]; 
      j:= i;
      while (j > p) and (t[j - p] > k) do
      begin
        t[j] := t[j - p];
        j := j - p;
      end;
      t[j] := k;
    end;
  end;
end;


function somme (t:tab;n:integer):integer;
var i:integer;
begin
if n=0 then somme:=0
   else somme:=t[n]+somme(t,n-1);
{s:=0;
for i:=1 to n do
s:=s+t[i];
somme:=s;}
end;


function fact(x:integer):longint;
begin
if x=0 then fact:=1
       else fact:=x*fact(x-1);
end;


PROCEDURE Remplir_MAT (N: integer; VAR MAT : Matrice);
VAR i,j : Word ;
Begin
MAT [1,1] := 1 ;
MAT [2,1] := 1 ;
MAT [2,2] := 1 ;
For i := 3 To N Do
Begin
MAT [i, 1] := 1;
MAT [i, j] := 1;
For j := 2 To j-1 Do
Begin
MAT [i, j] := MAT [i-1, j] + MAT [i-1, j-1];
End ;
End ;
End ;

procedure remplir1(var f2:text;t:tab;n:integer;s:integer;f:longint);
var i:integer;

begin
reset(f2);
for i:=1 to n do
writeln(f2,t[i],' ');
writeln(f2,s);
writeln(f2,f);
close(f2);
end;

procedure remplir2(var f3:text;var f1:fich1;mat:matrice;x:integer);
var i,j :integer;
begin

reset(f3);
For i := 1 To x Do
Begin
WriteLn(f3,'') ;
For j := 1 To i Do
Write(f3,Mat [i, j]:2,' ') ;
End;
end;



begin

creation(f1,f2,f3);

remplir(f1);

reset(f1);

n:=filesize(f1);

chargement(t,f1,n);

TriShell(n,t);

s:=somme(t,n);

reset(f1);
read(f1,x);

f:=fact(x);

remplir1(f2,t,n,s,f);

remplir_mat(x,mat);

remplir2(f3,f1,mat,x);

end.
0
Rahmouni007 Messages postés 155 Date d'inscription vendredi 10 octobre 2008 Statut Membre Dernière intervention 17 avril 2017 2
28 janv. 2013 à 20:51
où es le problème dans mon programme?!
0
Rahmouni007 Messages postés 155 Date d'inscription vendredi 10 octobre 2008 Statut Membre Dernière intervention 17 avril 2017 2
26 janv. 2013 à 19:05
J'ATTENDS TOUJOURS VOS RÉPONSES MERCI
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
26 janv. 2013 à 19:12
ON ATTENDS TOUJOURS LA QUESTION !!!
0
Rahmouni007 Messages postés 155 Date d'inscription vendredi 10 octobre 2008 Statut Membre Dernière intervention 17 avril 2017 2
27 janv. 2013 à 22:41
La question c'est que je cherche une solution pour cette exercice exécutable et réponds au question sachant que mon essai est compilable mais pas exécutable...
0