Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours Algorithme » Exercices Algorithme »

Articles similaires

  • Exercice algorithme fonctions et procédures
  • Exercices algorithmique boucles for et while
  • Exercices PHP : Les Fonctions
  • Tutoriel Python : les instructions de boucles
  • PowerPoint : comment faire tourner en boucle un diaporama
  • Python : Calculer la somme, moyenne d'une liste
  • Exercice VB: Fonctions et Procédures
  • Tutoriel Excel : fonctions avancées
  • Exercices PHP : Les Tableaux
  • Tuto Python : Trouver les valeurs max et min d'une liste
  • Exercice PHP : Fonctions & Tableaux
  • Comment enchainer automatiquement les diapositives sur PowerPoint

Documents similaires

  • Exercice bureautique pour réviser ensemble

  • Cours d'introduction au VIsua Basic : les Fonctions et les procédures

  • Algorithmique-cours-algorithme

  • Algorithmique avancée formation

  • Cours Algorithmique en PPT

  • Initiation à l’algorithmique

  • Exercice de bureautique pour débutant

  • Apprendre l’algorithmique

Exercice algorithmique tri, boucle par récurrence et fonctions

Participez au vote ☆☆☆☆☆★★★★★

Objectifs

  • Construction de boucle par récurrence
  • Tris
  • Fonctions et procédures

Exercice

On souhaite inverser un tableau de valeurs boursières. Une valeur boursière  est caractérisée par sa dénomination (un sigle de 5 caractères) et sa cotation. Le tableau est préalablement trié selon l'ordre croissant des cotations, on veut le ranger selon l'ordre décroissant.

Question 1

  • Ecrire l'algorithme de l'inversion

-- Invariant :
--     T(a..i-1) et T(j+1..b) sont déjà inversés
-- Condition d'Arrêt de l'Itération :
--      si longueur(T) est impaire alors i=j
--      si longueur(T) est paire alors i=j+1
--      donc la CAI est : i>=j
-- Corps de boucle :
--      permuter(T(i) et T(j); incrémenter i; décrémenter j;
-- Initialisation :
--      le tableau T(a..b) est initialement non inversé, donc i=a et j=b

-- Algorithme
début
i<-a;
j<-b;
-- T(a..i-1) et T(j+1..b) sont déjà inversés
tant que non(i>j) faire
permuter(T(i) et T(j);
incrémenter i;
décrémenter j;
fin tant que;
fin.

Question 2

  • Déclarer et définir les types permettant de représenter des tableaux de valeurs boursières.

subtype Cotation is Float range 0.0..Float'last;
type Sigle is String(1..5);
type ValeurBoursiere is
record
cote:Cotation;
nom:Sigle;
end record;
type Bourse is array(Natural range ) of ValeurBoursiere;

Question 3

  • Déclarer la procédure d'inversion

procedure inverser(T: in out Bourse);

Question 4

  • Définir la procédure d'inversion

procedure inverser(T: in out Bourse) is
i:Integer:=T'first;
j:Integer:=T'last;
begin
loop
exit when i>=j;
permuter(T(i),T(j));
i:=i+1;
j:=j-1;
end loop;
end inverser;

Question 5

  • Ecrire un programme de test.

with Ada.Text_io;use Ada.Text_io;
with Ada.Float_Text_io;use Ada.Float_Text_io;

procedure inversion is
subtype Cotation is Float range 0.0..Float'last;
type Sigle is String(1..5);
type ValeurBoursiere is
record
nom:Sigle;
cote:Cotation;
end record;
type Bourse is array(Natural range ) of ValeurBoursiere;

procedure permuter(x,y:in out ValeurBoursiere) is
z:ValeurBoursiere:=x;
begin
x:=y;
y:=z;
end permuter;

procedure inverser(T: in out Bourse) is
i:Integer:=T'first;
j:Integer:=T'last;
begin
loop
exit when i>=j;
permuter(T(i),T(j));
i:=i+1;
j:=j-1;
end loop;
end inverser;

procedure put(T:in Bourse) is
begin
put("(");new_line;
for i in T'range loop
put("(");
put(T(i).cote);
put(T(i).nom);
put(")");
new_line;
end loop;
put(")");
end put;

tab:Bourse(1..5):=(("BULL#",78.91),("accor",275.17),("valeo",406.69),("rexel",511.65),("Dexia",939.33));

begin
put(tab);
new_line;
inverser(tab);
put(tab);
new_line;
end inversion;




  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02