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 :
Cartes Pokémon 151 : où trouver le coffret Collection Alakazam-ex ?
Voir le deal

Exercice de révision BAC PRATIQUE 2012 + corrigé

Aller en bas

Exercice de révision BAC PRATIQUE 2012 + corrigé  Empty Exercice de révision BAC PRATIQUE 2012 + corrigé

Message par Napoléon Lun 28 Mai - 1:08


ENONCE:

Remplir un tableau T par N (2 (a) chaque entier doit avoir la même parité que l'entier représentant son rang dans le tableau.
(b) aucun entier ne doit exister plus que 2 fois dans le tableau.

Puis afficher les informations suivantes:
(a) le plus grand entier pair
(b) le plus petit entier impair
Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7654
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
Exercice de révision BAC PRATIQUE 2012 + corrigé  Left_bar_bleue999/1000Exercice de révision BAC PRATIQUE 2012 + corrigé  Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

Exercice de révision BAC PRATIQUE 2012 + corrigé  Empty Re: Exercice de révision BAC PRATIQUE 2012 + corrigé

Message par Napoléon Lun 28 Mai - 1:09

La solution proposée écrite en PASCAL:

Code:
uses wincrt;

Type
  TAB = array[1..100] of integer;

Function Occurence(x: integer; t:TAB; pos: integer): integer;
var i,occ: integer;
begin
  occ := 0;
  for i:=1 to pos do
  begin
      if (t[i] = x) then occ := occ + 1;
  end;
  occurence := occ;
end;

Procedure Saisie(var t:TAB; var n: integer);
var i,x: integer;
begin
  repeat
      write('Taille du tableau: ');
      readln(n);
  until (n in [3..99]);

  for i:=1 to n do
  begin
      repeat
        write('T[',i,'] = '); readln(T[i]);
      until (T[i] mod 2 = i mod 2) and (Occurence(T[i], T, i) <= 2);
  end;
end;

Function maxPair(t:TAB; n:integer):integer;
var max, i: integer;
begin
  max := t[2];
  for i:=4 to n do
      if ((i mod 2=0) and (max < t[i])) then
          max := t[i];
  maxPair := max;
end;

Function minImpair(t:TAB; n:integer):integer;
var min, i: integer;
begin
  min := t[1];
  for i:=3 to n do
      if ((i mod 2=1) and (min > t[i])) then
          min := t[i];
  minImpair := min;
end;

Procedure AfficheTab(t:TAB; n: integer);
var i: integer;
begin
    for i:=1 to n do
        writeln('T[',i,'] = ',t[i]);
end;

VAR
  T: TAB;
  N: integer;

BEGIN

  Saisie(T, N);

  AfficheTab(T, N);

  Writeln('Le plus grand entier pair = ', maxPair(T, N));

  Writeln('Le plus petit entier impair = ', minImpair(T, N));

END.
Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7654
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
Exercice de révision BAC PRATIQUE 2012 + corrigé  Left_bar_bleue999/1000Exercice de révision BAC PRATIQUE 2012 + corrigé  Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

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