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

Autres IDE Pascal Discussion :

Exercice sur un tableau de nombres entiers


Sujet :

Autres IDE Pascal

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Exercice sur un tableau de nombres entiers
    Bonjour,

    Je dois écrire un programme Pascal qui :
    -lit un entier n compris entre (1 et 25) et crée un tableau A de n entiers
    - affiche le contenu de A
    - determine le plus petit element de A et le place en derniere position(indice n) dans le tableau
    SVP aidez-moi à résoudre ce problème.

    Bon voici ce que j'ai fait :

    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
    program Question_1;
     
    var  A : array[1..25] of integer;
    n, i, reserve, p, id:integer;
    begin
     
         repeat
               writeln('Donner le nombre d`element de votre tableau');
               readln(n);
         Until(n in [1..25]);
           for i :=1 to n do
           begin
                writeln('saisir l`element N°',i);
                read(A[i]);
           end
          for i :=1 to 25 do
    		 begin
                   writeln('le contenu du tableau est:', A[i]);
                    writeln;            
              end;
    p:= A[1];
    id:= 1;
                 for i:=2 to n do
                 begin
                      if A[i]<p then
                      begin
                           p:= A[i];
                           id:= i;
                      end
                 end
    reserve:= A[n];
    A[n]:= A[id];
    A[id]:= reserve;
     
    end.

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 416
    Points : 5 814
    Points
    5 814
    Par défaut
    Salut

    bon on va essayer de comprendre ce que tu as ecrit

    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
    program Question_1;
     
    var  A : array[1..25] of integer;
    n, i, reserve, p, id:integer;
    begin
     
         repeat
               writeln('Donner le nombre d`element de votre tableau');
               readln(n);
         Until(n in [1..25]); // j'usqu'ici tout vas bien tu fait une boucle jusqu'a que n soit dans l'intervale 1..25
     
           for i :=1 to n do
           begin
                writeln('saisir l`element N°',i);
                read(A[i]);
           end
           // ici tu saisi les differente valeur dans le tableau
          for i :=1 to 25 do
          begin
             writeln('le contenu du tableau est:', A[i]);
             writeln;            
          end;
           // ici tu affiche les differente valeur du tableau 
           // 1er souci tu n'as pas initialisé ton tableau donc tout les valeur superieur a ton indice n peuvent prendre n'importe quel valeur
     
           p  := A[1];
           id  := 1;
           for i:=2 to n do
           begin
               if A[i]<p then // ici on recherche la plus petite valeur
               begin
                  p:= A[i]; 
                  id:= i;
               end
            end
           // on intervertie la valeur en position par la valeur en position ID 
           reserve := A[n]; 
           A[n]     := A[id];
           A[id]    := reserve;
        end.
    tout cela me parais pas mal au vu de l’énoncé.
    ou se produit le soucis ?
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 069
    Points : 15 442
    Points
    15 442
    Billets dans le blog
    9
    Par défaut
    C'est un détail mais à chaque fois que je vois ce genre de chose,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i := 1 to n do
    begin
      writeln('Saisir l''element n°', i);
      read(A[i]);
    end;
    j'ai mal pour la personne qui, à chaque essai de son programme, va saisir manuellement 25 valeurs.

    Je propose donc une modification au moins temporaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Randomize;
    for i := 1 to n do
    begin
      writeln('Saisir l''element n°', i);
      //read(A[i]);
      A[i] := Random(1000); // pour un nombre de 0 à 999
    end;
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Bonjour,
    Citation Envoyé par Roland Chastain Voir le message
    Je propose donc une modification au moins temporaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Randomize;
    for i := 1 to n do
    begin
      writeln('Saisir l''element n°', i);
      //read(A[i]);
      A[i] := Random(1000); // pour un nombre de 0 à 999
    end;
    Ok, sans oublier de supprimer le writeln ...
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par anapurna Voir le message
    tout cela me parais pas mal au vu de l’énoncé.
    ou se produit le soucis ?
    Comment initialiser les valeurs du Tableau?

    Lorsque je compile le programme, le compilateur me fait remarquer une erreur au niveau de la ligne 16( au niveau de l’affichage du contenu du tableau)... Je ne sais pourquoi

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 069
    Points : 15 442
    Points
    15 442
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Pclever Voir le message
    lorsque je compile le programme, le compilateur me fait remarquer une erreur au niveau de la ligne 16( au niveau de l’affichage du contenu du tableau)... Je ne sais pourquoi
    Il manque un point-virgule à la fin de la ligne précédente.

    Citation Envoyé par droggo Voir le message
    Ok, sans oublier de supprimer le writeln ...
    En effet.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Février 2013
    Messages : 70
    Points : 146
    Points
    146
    Par défaut
    Ce bout de code à beau être correct du point de vue syntaxique et sémantique, il en demeure pas moins non recommandable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
         repeat
               writeln('Donner le nombre d`element de votre tableau');
               readln(n);
         Until(n in [1..25]);
    Comment l'utilisateur qui n'a pas accès au code source pourrait connaître les limites permises? Il pourrait entrer 400, 300, 200 etc. et devenir très frustré de ne pas comprendre la nature du problème. Les limites, 1 et 25 devraient avoir été communiquées à l'utilisateur.

  8. #8
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Bonjour,
    Citation Envoyé par Pierre le Grand Voir le message
    Ce bout de code à beau être correct du point de vue syntaxique et sémantique, il en demeure pas moins non recommandable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
         repeat
               writeln('Donner le nombre d`element de votre tableau');
               readln(n);
         Until(n in [1..25]);
    Comment l'utilisateur qui n'a pas accès au code source pourrait connaître les limites permises? Il pourrait entrer 400, 300, 200 etc. et devenir très frustré de ne pas comprendre la nature du problème. Les limites, 1 et 25 devraient avoir été communiquées à l'utilisateur.
    C'est un fait, et ça devrait être un réflexe pour le programmeur.
    Si les cons volaient, il ferait nuit à midi.

  9. #9
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 552
    Points : 3 918
    Points
    3 918
    Par défaut
    Citation Envoyé par Pierre le Grand Voir le message
    Comment l'utilisateur qui n'a pas accès au code source pourrait connaître les limites permises?
    C'est tout l'intérêt de l'Open Source !

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci

Discussions similaires

  1. Calcul des facteurs premiers d'un nombre entier
    Par guillonnano dans le forum Débuter
    Réponses: 7
    Dernier message: 04/02/2014, 12h48
  2. Comment calculer le nombre de chiffres d'un entier ?
    Par fearyourself dans le forum Télécharger
    Réponses: 23
    Dernier message: 10/01/2012, 17h29
  3. Fonction de calcul de somme des chiffres d'un entier
    Par sam343 dans le forum Langage
    Réponses: 3
    Dernier message: 07/10/2009, 17h35
  4. Lecture binaire écriture sous forme d'entier
    Par titours254 dans le forum Débuter
    Réponses: 4
    Dernier message: 03/04/2008, 22h03
  5. Réponses: 9
    Dernier message: 12/10/2006, 00h36

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