[Turbo Pascal] Solution d'un exercice

butterfly66 Messages postés 32 Statut Membre -  
 asma alger -
Bonjour,
Je cherche la solution du preoblème suivant en Pascal:

1- Ecrire une unité qui contient:
a- déclaration d'un tableau à n éléments (1<n<50) entiers.
b- procédure qui lit le tableau.
c- fonction qui retourne l'indice du tableau, du plus grand élément à partir d'une position donée (de k) à l aposition n (1<k<n).
d- procédure qui affiche les éléments du tableau.

2- Ecrire un programme en Turbo Pascal qui fait apple aux procédures et fonctions de l'unité pour ordonner un tableau au sens décroissant.

Merci d'avance, j'ai galéré avec cet exercice..
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. raifie Messages postés 1 Statut Membre 6
     
    salut je suis etudiante a el jadida je veux la solution de l'exercice suivant
    procedure qui inverse le tableau entre deux positions données
    4
  2. ahmedo
     
    ecrire une analyse et en deduir un algorithme intitulé neg qui transfere les elements positifs et les elements negatif d un tableau t dans deux tableaux tp et tn
    3
    1. robin
       
      program neg;
      uses wincrt;
      type
      tab=array[1..60]of integer;
      var
      n,i,j,k:integer;
      t,tp,tn:tab;

      procedure saisie_n(var n:integer);
      begin
      repeat
      writeln('donner entier');
      readln(n);
      until (n>0)and (n<60);
      end;

      procedure remplir_t(n:integer;var t:tab);
      var i:integer;
      begin
      for i:=1 to n do
      begin
      writeln('donner entier');
      readln(t[i]);
      end;
      end;
      procedure classement(n:integer;t:tab;var tp ,tn:tab);
      var i,j,k:integer;
      begin
      for i:=1 to n do
      begin
      if t[i]<0 then
      begin
      for j:=1 to n do
      tn[j]:=t[i];
      end;
      if t[i]>=0 then
      begin
      for k:=1 to n do
      tp[k]:=t[i];
      end;
      end;
      end;
      procedure affichage(n:integer;t,tn,tp:tab);
      begin
      for i:=1 to n do
      writeln('le tableau a analyser :'t[i]);
      for j:=1 to n do
      writeln('le tableau positif est :',tp[j]);
      for k:=1 to n do
      writeln('le tableau negatif est:',tn[k]);
      end;
      begin
      saisie_n(n);
      remplir_t(n,t);
      classement(n,t,tp,tn);
      affichage(n,t,tp,tn);
      end.


      ****************************************************************************************
      essaye le c mieux que rien chui pas sur et je ne l'ai pas encore compilé.bonne chance!
      ****************************************************************************************
      0
      1. KX Messages postés 19031 Statut Modérateur 3 020 > robin
         
        Ta procedure classement ne donne pas le résultat voulu...
        En fait dans ton algoritme tn=t si t[n]<0 et tp=t si t[n]>=0...
        De plus le type de tab est inadapté...
        const Nmax=60;
        
        type Tab=record
                 a:array[1..Nmax] of integer;
                 n:integer;
                 end;
        
        procedure Neg(var t,tn,tp:Tab);
        var i:integer;
        begin
        tn.n:=0;
        tp.n:=0;
        for i:=1 to t.n do
            if t.a[i]<0 then begin
                             tn.a[i]:=t.a[i];
                             inc(tn.n);
                             end
                        else begin
                             tp.a[i]:=t.a[i];
                             inc(tp.n);
                             end
        end;
        Pour le reste il est à noter que remplir_t et affichage sont également fausses
        procedure remplir_t(n:integer;var t:tab); // avec TON type tab
        var i:integer;
        begin
             for i:=1 to n do
                 saisie_n(t[i]);
        end;
        
        procedure affichage(n:integer;t,tn,tp:tab); // avec TON type tab
        var i:integer;
        begin
        write('le tableau a analyser : ');
        for i:=1 to n do
            write(t[i],' ');
        writeln('le tableau positif  : ');
        for i:=1 to n do
            write(tp[i],' ');
        writeln('le tableau negatif  : ');
        for i:=1 to n do
            write(tn[i],' ');
        end; 
        --
        La confiance n'exclut pas le contrôle 
        0
  3. question
     
    Bonjour,
    vous etes etudiant(e) a la fac d'el jadida ?????
    1
    1. asma alger
       
      la solution d'un programme qui cherche les point selle d''une matrice
      0
  4. butterfly66 Messages postés 32 Statut Membre
     
    oui, je suis étudiant à l'UCD
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. amine
     
    Bonjour,
    Je cherche la solution du preoblème suivant en Pascal
    0
    1. mounk
       
      slt amine...
      si c'est le probleme en pascal concernant l'unité sur le tableau, voici une unité qui pourra t'aider....
      pour la taille du tableau, je me suis arreté a 10, a toi d'augmenter juska 50 ou plus si tu veux.


      unit U_Tableau;

      Interface


      type indice = cardinal;

      type tableau = array [ 1 .. 10 ] of cardinal ;


      // Lecture du tableau
      procedure lireTableau ( out t : tableau ) ;

      // Affichage des elements du tableau
      procedure afficherTableau ( const t : tableau ) ;


      // Retourne l'indice du plus grand element du tableau
      // à partir de l'indice k jusqu'a taille du tableau
      function indice_du_max ( t : tableau; k : indice ) : indice;



      Implementation


      // Lecture du tableau
      procedure lireTableau ( out t : tableau ) ;
      var i : cardinal;
      begin
      for i := low(t) to high(t) do begin
      readln(t[i]);
      end;
      end;


      // Affichage des elements du tableau
      procedure afficherTableau ( const t : tableau ) ;
      var i : cardinal ;
      begin
      for i := low(t) to high(t) do begin
      write(t[i],' ') ;
      end;
      writeln;
      end;


      // Retourne l'indice du plus grand element du tableau
      // à partir de l'indice k jusqu'a taille du tableau
      function indice_du_max ( t : tableau; k : indice ) : indice;
      var ind,i : cardinal;
      begin
      ind := k;
      for i := succ(k) to high(t) do begin
      if t[i] > t[ind] then begin
      ind := i;
      end;
      end;
      indice_du_max := ind;
      end;



      End.



      et si tu veux tester l'unité, utilise ce bout de code.....
      il fait aussi le rangement dans l'ordre decroissant.


      program teste_U_Tableau;

      uses crt,U_Tableau;


      // Procedure qui echange les valeurs de 2 elements
      procedure echanger ( var x,y : cardinal );
      var z : cardinal;
      begin
      z := x;
      x := y;
      y := z;
      end;



      var tab : tableau;
      var i,k,a,b : cardinal;

      begin
      clrscr;


      lireTableau(tab);
      writeln('******************');
      afficherTableau(tab);
      writeln('*************************************');
      // Je met juste a partir de l'indice 7 du tableau pour tester
      // tu peux changer l'indice, à condition de ne pas depasser ton indice
      // max de ton tableau.
      writeln('Indice du Max du Tableau = ',indice_du_max(tab,7));


      a := low(tab);
      b := high(tab);
      for k := a to (b-1) do
      begin
      i := indice_du_max(tab,k);
      echanger(tab[k],tab[i]);
      end;

      writeln('*************************************');
      afficherTableau(tab);


      end.


      en esperant ke ca puisse t'aider....
      bon courage.
      0
  7. asma alger
     
    la solution d'un programme qui cherche les points selles d'une matrice
    0