Turbo pascal

Résolu
peaceman999 Messages postés 19 Statut Membre -  
peaceman999 Messages postés 19 Statut Membre -
Bonjour,
s.v.p aidez moi sur ce probléme c'est urgent s'il vous plait.
a)-ecrire en pascale une unité qui contient les procedures et fonctions suivantes
*procedure qui lit un tableau à n elements (1<=n<=100) de type entier
*fonction qui calcule la moyenne d'elements positifs du tableau.
*procedure qui affiche les elements du tableau.
b)-ecrire un programme qui fait appel en utilisant un menu les procedures et fonctions de l'unité.
Configuration: Windows XP
Firefox 3.5.3

9 réponses

  1. j'ai vendu mon nick
     
    Salut !

    C'est en fait assez simple :
    1. tu écris la procédure qui lit un tableau à n éléments. Idéalement, le tableau et n sont des arguments de cette procédure
    2. tu écris la fonction qui - alleï, je suis sympa sur ce coup là - cumule les contenus positifs de ton tableau (toujours argument) et en même temps les compte ! <- là, c'est trop fort
    3. tu écris une procédure qui affiche le contenu du tableau reçu en argument.
    4. tu regroupes tout ça dans une unité. Les éléments qui sont nécessaires mais qui ne doivent pas être visibles de l'extérieur doivent être déclarés dans la partie implementation, la partie interface continuant à lister les élements devant être connus de l'extérieur.
    5. du coup, le programme est super facile à écrire :<code>program OhMonTablo;
    uses monUnite;
    var n: integer;
    choix: string;
    t: type_tableau;
    begin
    repeat
    writeln;
    writeln('1. lire le tableau');
    writeln('2. calculer la moyenne');
    writeln('3. afficher le tableau');
    writeln('0. quitter');
    write('tu veux quoi ');
    readln(choix);
    if choix = '1' then lire_elements(t, n)
    else if choix = '2' then moyenner_elements_positifs(t, n)
    else if choix = '3' then afficher_elements(t, n)
    else if choix <> '0' then writeln('choix incorrect')
    until choix = '0'
    end.<code>
    et voilà !
    0
    1. j'ai vendu mon nick
       
      avec le slash:
      program OhMonTablo;
      uses monUnite;
      var n: integer;
      choix: string;
      t: type_tableau;
      begin
      repeat
      writeln;
      writeln('1. lire le tableau');
      writeln('2. calculer la moyenne');
      writeln('3. afficher le tableau');
      writeln('0. quitter');
      write('tu veux quoi ');
      readln(choix);
      if choix = '1' then lire_elements(t, n)
      else if choix = '2' then moyenner_elements_positifs(t, n)
      else if choix = '3' then afficher_elements(t, n)
      else if choix <> '0' then writeln('choix incorrect')
      until choix = '0'
      end.
      0
      1. j'ai vendu mon nick > j'ai vendu mon nick
         
        il se fait tard là... :-(
        program OhMonTablo;
        uses monUnite;
          var n: integer;
              choix: string;
              t: type_tableau;
        begin
          repeat
            writeln;
            writeln('1. lire le tableau');
            writeln('2. calculer la moyenne');
            writeln('3. afficher le tableau');
            writeln('0. quitter');
            write('tu veux quoi ');
            readln(choix);
            if choix = '1' then lire_elements(t, n)
            else if choix = '2' then sommer_elements(t, n)
            else if choix = '3' then afficher_elements(t, n)
            else if choix <> '0' then writeln('choix incorrect')
          until choix = '0'
        end.

        désolé pour le papier gaspillé
        0
  2. peaceman999 Messages postés 19 Statut Membre 4
     
    merci les gars c'est genti de votre part, en tout cas je vouler le code pour faire l'unité mais le programme je me suis trés bien debrouier. merci encore une autre fois.
    0
  3. gilbert
     
    putin j esper pour loui ke l'fracè cè po ca langue
    0
  4. peaceman999 Messages postés 19 Statut Membre 4
     
    lol moi comprendre toi quoi dire.
    moi tuer toi si toi insulte moi :D
    lol je parle français, anglais, espagnole et arabe si tu as besoin d'un soutien je peux t'aider. juste un conseil ne sous estime pas les gents. fais un fil de contact avec eux après tu as tout le droit de les juger.
    en tout cas j'attends encore vos suggestions à propos de l'unité sous forme code pascal.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le concombre démasqué
     
    Salut

    vu que c'est le sujet de ton exercice, je te suggère de t'y atteler pour de bon : personne ne le fera à ta place.
    si t'as un problème ponctuel, tu demandes de l'aide et je suis sûr que qqun te filera un coup de main.
    0
    1. pacorabanix
       
      problème ponctuel = tu as déjà fais un essai, tu le montres en décrivant ce qui ne joue pas ;)
      0
  7. peaceman999 Messages postés 19 Statut Membre 4
     
    ok dacore
    voila j'ai un probléme pour tracer cette fonction f(x)= (sin(x)+sin(x))/2 <x E [-Pi/2,Pi/2]>
    j'ai esseyé avec ce code mais ça m'a donner erreur je sais pas ou réside l'ereur

    uses graph;

    type Fonction = function (x : real) : real;

    function f (x: real) : real;
    begin
    f := (cos(x) + sin(x)) / 2;
    end;

    procedure courbe (f : fonction; x0, y0: integer; echelleX, echelleY : real);
    var x, y : integer; xReel, yReel : real;
    begin
    for x := 0 to 640 do begin
    xReel := (x - x0) * echelleX;
    yReel := f (xReel);
    y := y0 + yReel * echelleY;
    plot (x, y);
    end;
    end;

    begin
    graphInit;
    courbe (f, 320, 200, 0.01, 0.01);
    end.

    s'il vous plait c'est urgent
    merci pour votre aide
    0
  8. pebkac
     
    Plop!

    J'écris à propos de [https://forums.commentcamarche.net/forum/affich-14943339-turbo-pascal?Acces=1#9 f(x)=(sin(x)+sin(x))/2 <x E [-Pi/2,Pi/2]>].
    Primo: pourquoi t'embêter la vie à passer par un type function ? on utilise un type fonction lorsque *avant* l'exécution du programme on ne sait pas encore si c'est la fonction f ou la fonction g qui devra être calculée.
    dans ton cas, tu sais quelle est la fonction à calculer ((sin(x)+sin(x))/2) et tu sais qu'elle n'évoluera pas au cours de l'exécution de ton pgm. donc dans ton cas
    uses graph;
    
    function f(x: real) : real;
    begin
      f := (cos(x) + sin(x)) / 2;
    end;
    
    procedure courbe (x0, y0: integer; echelleX, echelleY : real);
      var
        x, y : integer;
        xReel, yReel : real;
    begin
      for x := 0 to 640 do begin
        xReel := (x - x0) * echelleX;
        yReel := f(xReel);
        y := y0 + yReel * echelleY;
        plot (x, y);
      end;
    end;
    
    begin
      graphInit;
      courbe (320, 200, 0.01, 0.01);
    end.

    nb: note au passage la disparition de l'erreur car l'appel depuis le programme aurait du être courbe(@f, ...)

    Deuxio: tu nous parle de f(x) = (sin(x)+sin(x))/2) mais dans la fonction f, tu codes (sin(x)+cos(x))/2. où est la vérité ?
    0
  9. peaceman999 Messages postés 19 Statut Membre 4
     
    ah pardon c'est juste une erreur de frappe je vouler dire (sin(x)+cos(x))/2
    0
  10. peaceman999 Messages postés 19 Statut Membre 4
     
    on me dit que l'unité graph.tpu est introuvable
    0