Forum INFOMATH
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
LEGO Icons 10331 – Le martin-pêcheur
35 €
Voir le deal

Exercice corrigé: Remplissage aléatoire de tableau, min, max, nombre

Aller en bas

Exercice corrigé: Remplissage aléatoire de tableau, min, max, nombre Empty Exercice corrigé: Remplissage aléatoire de tableau, min, max, nombre

Message par methodiX Mar 6 Avr - 11:55

ENONCE

On se propose de remplir aléatoirement un tableau T de n (5<n<50) entiers de l'intervalle [a, b] où a<b, deux entiers saisis par l'utilisateur.

1) Déterminer le max, le min ainsi que leurs rangs dans le tableau T.
2) Déterminer le nombre d'entiers de T qui sont supérieurs à la moyenne
M = (max + min)/2.

EXEMPLE

n = 7, a = 10, b = 20,
T = {12,10,17,14,10,13,15}.
min = 10, max = 17, M = 13.5,
Il y a 3 nombres supérieurs à 13.5.
methodiX
methodiX
Admin
Admin

Masculin
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7256
Date d'inscription : 22/03/2007

Feuille de personnage
Capacité linguistique:
Exercice corrigé: Remplissage aléatoire de tableau, min, max, nombre Left_bar_bleue1000/1000Exercice corrigé: Remplissage aléatoire de tableau, min, max, nombre Empty_bar_bleue  (1000/1000)

Revenir en haut Aller en bas

Exercice corrigé: Remplissage aléatoire de tableau, min, max, nombre Empty Re: Exercice corrigé: Remplissage aléatoire de tableau, min, max, nombre

Message par methodiX Mar 6 Avr - 11:56

SOLUTION

Code:
program random1;
uses wincrt;
type
  TAB = array[1..100] of integer;

procedure saisie(var n:integer; var a:integer; var b:integer);
begin
  repeat
      write('Taille du tableau = ');
      readln(n);
  until (n>=5) and (n<=50);
  write('a = ');
  readln(a);
  repeat
    write('Entrer un entier (b) supérieur à ',a,'= ');
    readln(b);
  until (b>a);
end;

procedure remplissage(var T:TAB; n,a,b:integer);
var
  i:integer;
begin
  for i:=1 to n do
  begin
    T[i] := a + random(b-a+1);   
  end;
end;

procedure afficher(T:TAB;n:integer);
var i:integer;
begin
    for i:=1 to n do
      writeln('T[',i,'] = ',T[i]);
end;
procedure minmax(T:TAB;n:integer;var pmin,pmax:integer);
var
 i: integer;
begin
  pmin:=1;
  pmax:=1;
  for i:=2 to n do
  begin
      if (T[i]<T[pmin]) then
        pmin := i;
      if (T[i]>T[pmax]) then
        pmax := i;
  end;
end;

function nombre(T:TAB;n:integer;M:real):integer;
var
  i,nbr: integer;
begin         
  nbr := 0;
  for i:=1 to n do
      if (T[i]>=M) then
          nbr := nbr + 1;
  nombre := nbr;
end;

var
  n,a,b,pmin,pmax: integer;
  M: real;
  T:TAB;
begin
  randomize;
  saisie(n,a,b);
  remplissage(T,n,a,b);
  afficher(T,n);
  minmax(T,n,pmin,pmax);
  M := (T[pmin] + T[pmax]) / 2;
  writeln('MIN = ',T[pmin],', POSMIN = ',pmin);
  writeln('MAX = ',T[pmax],', POSMAX = ',pmax);
  writeln('NOMBRE D''ENTIERS SUPERIEUR A ',M:2:2,' = ',nombre(T,n,M));
end.
methodiX
methodiX
Admin
Admin

Masculin
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7256
Date d'inscription : 22/03/2007

Feuille de personnage
Capacité linguistique:
Exercice corrigé: Remplissage aléatoire de tableau, min, max, nombre Left_bar_bleue1000/1000Exercice corrigé: Remplissage aléatoire de tableau, min, max, nombre Empty_bar_bleue  (1000/1000)

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum