Chargement en cours...
Connexion au forum informatique de Sur-la-Toile
La discussion « Programmation en Pascal » se trouve dans le forum « Programmation »
Statut de la discussion » Programmation en Pascal « ( résolue)

Programmation en Pascal

» Liste des Forums » Programmation » Discussion

Le 26 mars à 09:23 #

Bonjour,
Mon problème existe au niveau de cette procédure :

Ecrivez la procédure remplir_tableau qui remplit le tableau de valeurs aléatoires prises dans {’J’, ’R’, ’V’} (rappel : la fonction RANDOM(x) renvoi une valeur aléatoire prise dans {0, .. , x-1}).

J'ai besoin de votre aide le plus tôt possible !!
Merci d'avance.

Le 26 mars à 10:09 #

Et c'est quoi ta question, car là on peut te répondre aussi bien:
"Oui c'est bon les oiseaux sont bleus" que " 2+2 =4" ...

Le 26 mars à 10:56 #

Voilà l'énoncé de tout l'exercice :

On considère un tableau rempli aléatoirement de N caractères, chaque élément ayant l’une des trois valeurs suivantes : ’J’, ’R’, ou ’V’. On désire trier le contenu de ce tableau de façon à y obtenir, de gauche à droite, d’abord tous les ’V’ puis tous les ’J’ puis tous les ’R’.
Par exemple, si le tableau contient à l’origine J R V V J R V J J , après avoir été trié il contient V V V J J J J R R .

Pour cela :
a) Définissez une constante N de valeur 50, et une variable globale tab de type tableau de N caractères.
b) Ecrivez la procédure remplir_tableau qui remplit le tableau de valeurs aléatoires prises dans {’J’, ’R’, ’V’} (rappel : la fonction RANDOM(x) renvoi une valeur aléatoire prise dans {0, .. , x-1}).
c) Ecrivez la procédure afficher_tableau qui écrit à l’écran, sur une ligne, le contenu du tableau.
d) Ecrivez la procédure permuter qui permute les éléments d’indices i et j du tableau.
e) Ecrivez la procédure trier_tableau qui effectue le tri demandé.
f ) Ecrivez le programme principale.


En fait, je n'ai pas pu écrire cette procédure.
J'éspère que c'est clair maintenant.

(Modifié par med_89 le 26-03-2008 à 10:58)

Le 27 mars à 10:53 #

Tu peut utiliser la fonction Random (3)
et selon la valeur retouner tu va insérer un caractère.
Si 0 donc vous insérer 'J'
Si 1 donc vous insérer 'R'
Si 2 donc vous insérer 'V'
Tu peut utiliser dans ce cas case of ou bien une structure conditionnelle généraliser.

Le 27 mars à 12:01 #

Merci beaucoup pour cette proposition Mr Zouari .Voilà ma proposition et j'éspère trouver des réctifications!
Code:
  1.   Program tri;
  2.   Uses wincrt;
  3.   Const n=50;
  4.   Type
  5.    tableau=array [1..n]of char;
  6.   Var Tab:tableau;
  7.   
  8.   Procedure remplir_tableau (var T:tableau;b:integer);
  9.   var i:integer;
  10.   Begin
  11.   For i:=1 to n do
  12.   Begin
  13.   Case random(3) of
  14.   0 :T[i]:='J';
  15.   1 :T[i]:='R';
  16.   2 :T[i]:='V';
  17.   end;
  18.   End;
  19.   end;
  20.   
  21.   Procedure afficher_tableau (A:tableau;m:integer);
  22.   var i:integer;
  23.   begin
  24.   For i:=1 to m do
  25.   write(A[i],',');
  26.   end;
  27.   
  28.   Procedure trier_tableau (var c:tableau;k:integer);
  29.   var i:integer;
  30.    trie:boolean;
  31.   
  32.   Procedure Permuter(var i,j:char);
  33.   var aux:char;
  34.   begin
  35.   aux:=i;
  36.   i:=j;
  37.   j:=aux;
  38.   end;
  39.   
  40.   begin
  41.   Repeat
  42.   trie:=false;
  43.   For i:=1 to k-1 do
  44.   begin
  45.   If ((c[i]='J') and (c[i+1]='V')) or ((c[i]='R') and (c[i+1]='V')) or ((c[i]='R') and (c[i+1]='J'))
  46.    then begin permuter(c[i],c[i+1]);
  47.    trie:=true;
  48.    end;
  49.   end;
  50.   k:=k-1;
  51.   Until (k=1) or not(trie);
  52.   end;
  53.   
  54.   Begin
  55.    remplir_tableau(tab,n);
  56.    trier_tableau (tab,n) ;
  57.    afficher_tableau(tab,n);
  58.   end.

    Merci encore !

    (Modifié par med_89 le 03-04-2008 à 12:49)
    » Liste des Forums » Programmation

    Sujets Connexes

    Arakien & WéWé


    Forums

    Navigation


    Publicité

    Connectés

    Il y a actuellement 471 visiteurs et 16 toiliens en ligne.

    Recherche

    Concours


    Sauf mention contraire, le contenu du blog et du forum est sous licence Creative Commons By-Sa. Vous avez le droit de le reproduire à condition de citer l'auteur, de faire un lien vers la page d'origine, et de partager vos travaux dérivés selon les mêmes conditions.

    Conditions d'utilisation -

    Partenaires: [Informatique Multimédia] [Portail du Maroc] [Actualité High Tech]
    [Tutoriaux Photoshop] [éligibilité ADSL] [Astuces Windows]

    Page générée en 369 millisecondes sur WWW1.