IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Turbo Pascal Discussion :

Recherche du max d'un tableau d'entiers


Sujet :

Turbo Pascal

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Par défaut Recherche du max d'un tableau d'entiers
    salut à tous

    j'ai ce programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    program max;
     
    uses wincrt;
     
    type tab=array[1..54]of integer;
     
    var v:tab;
        maxi,i,n:integer;   
     
    procedure lecture(var  v:tab);
    begin
      writeln('entrer les elements du tableau');
      readln(n);
      for i:=1 to n do
    end;
     
    procedure affichage(v1:tab);
    begin
      for i:=1 to n do
        writeln(v1[i]);
    end;
     
    function maximum(v1:tab):integer;
    begin
      maxi:=v1[1];
      for i:=2 to n do
        if maxi<v[i] then
          maxi:=v1[i];
      maximum:=maxi;
    end;
     
    procedure calcule(v1:tab;var max:integer);
    begin
      max:=v1[1];
      for i:=2 to n do
        if max<v1[i] then
          max:=v1[i];
    end;
     
    begin
      lecture(v);
      affichage(v);
      maximum(v);
      maxi:=maximum(v);
      writeln('le resultat de la fonctin est:',maxi);
      calcule(v,maxi);
      writeln('le resultat de la procedure est:',maxi);
    end.
     
    begin
      readln(n);
      lecture;
      writeln('affichage');
      affichage(v);
      maxi:=maximum(v);
      writeln('les maximum est',);
    end.
    pour résultat aprés l'exécution sur turbo pascal version 5 j'ai trouvé :
    entrer les elements du tableau
    3
    0
    0
    0
    le resultat de la fonction est :0
    le resultat de la procedure est :0
    et pour turbo pascal version 7 j'ai trouvé des erreurs comme
    6 / 24 untitl~1.pas
    Hint: Parameter V not used
    càd dans la ligne 6
    svp est ce que vous pous pouvez essayer ce programme pour confirmer mon résultat ?
    merci

  2. #2
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Salut

    Commence par bien indenter ton code, et la on pourra peut être mieux lire ton programme.

  3. #3
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    Bonjour

    Je rajoute à ce que dit mick605 que tu avais indenté ton code tu verrais tout de suite que ce code ne compilerait pas sous TP7, ou alors tu as dû mal recopier en postant sur le forum.

    Je n'ai jamais utilisé TP5 mais si ce code compile dessus 2 blocs begin/end.

    En plus le code en soi n'est pas tres propre, regardes bien la construction des procédures etc, utilisation du variable global n qui est lu/initialié dans une procedure et apres utilisé dans les autres procédures

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Par défaut max _tab
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    program max;
     
    uses wincrt;
     
    type tab=array[1..54]of integer;
     
    var v:tab;
        maxi,i,n:integer;   
     
    procedure lecture(var  v:tab;var n:integer);
    begin
       for i:=1 to n do
       begin
       writeln('entrer le ',i,' element du tableau');
       readln(v[i]);
       end;
    end;
     
    procedure affichage(var v1:tab;var n:integer);
    begin
      for i:=1 to n do
        writeln(v1[i]);
    end;
     
    function maximum(var v1:tab;var n:integer):integer;
    begin
      maxi:=v1[1];
      for i:=2 to n do
        if maxi<v[i] then
          maxi:=v1[i];
      maximum:=maxi;
    end;
     
    procedure calcule(var v1:tab;var max:integer;var n:integer);
    begin
      max:=v1[1];
      for i:=2 to n do
        if max<v1[i] then
          max:=v1[i];
    end;
     
    begin
      lecture(v,n);
      affichage(v,n);
      maximum(v,n);
      maxi:=maximum(v,n);
      writeln('le resultat de la fonctin est:',maxi);
      calcule(v,maxi,n);
      writeln('le resultat de la procedure est:',maxi);
    end.
     
    begin
     writeln('entrer les elements du tableau');
      readln(n);
      lecture(v,n);
      writeln('affichage');
      affichage(v,n);
      maxi:=maximum(v,n);
      writeln('les maximum est',maxi);
      readln;
    end.

    vous avez besoin que de lafct et non pas la procedure et la fonction

  5. #5
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 042
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    En enlevant le 1er bloc principal begin..end, ton programme tourne. Le compilateur indique que le tableau v n'est pas initialisé, c'est juste un avertissement.

    A présent, il y a une amélioration à apporter au programme : vérifier que l'utilisateur n'entre pas un nombre d'éléments du tableau inférieur à 2 et supérieur à 54. L'idéal est de faire cela dans une procédure ou fonction séparée.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

Discussions similaires

  1. recherche valeur max dans un tableau
    Par www.rubis dans le forum Langage
    Réponses: 4
    Dernier message: 31/01/2011, 17h43
  2. Supprimer occurrence du max dans un tableau d'entiers
    Par momo1367 dans le forum Pascal
    Réponses: 2
    Dernier message: 13/06/2008, 11h44
  3. Réponses: 5
    Dernier message: 27/05/2008, 08h02
  4. Recherche du max d'un tableau récursivement
    Par weld sad9ia dans le forum Pascal
    Réponses: 7
    Dernier message: 23/11/2007, 11h34
  5. Recherche Min/Max dans un tableau
    Par kuroro20 dans le forum C
    Réponses: 4
    Dernier message: 26/10/2007, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo