Sciences de l'informatique

Bienvenue dans notre forum de partage et d'échange d'information technique dans le domaine NTIC (Informatique, Programmation, Réseau, Multimédia), ce forum est destinée à tous les élèves Tunisiens
 
AccueilCalendrierFAQMembresGroupesS'enregistrerConnexion
Sujets similaires
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Derniers sujets
Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 6 le Ven 13 Jan - 2:22

Partagez | 
 

 Exercice 6 (Algorithmes récurrents)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Dhifallah Fethi
Admin
avatar

Messages : 74
Date d'inscription : 02/03/2011

MessageSujet: Exercice 6 (Algorithmes récurrents)   Lun 28 Mar - 2:18

Exercice 6 (Algorithmes récurrents)

soit la suite u définie par :
U1 = 1 (choix arbitraire)
Un+1 = apparition de chaque chiffre distinct dans Un
exemple :
soit U1 = 1
U2 = 11 (1 apparait 1 fois dans U1)
U3 = 21 (1 apparait 2 fois dans U2)
U4 = 1211
U5 = 3112
U6 = 132112
...
ecrire un programme permettant d'afficher le N ième terme de la suite U ; sachant que U1 et N sont donnés.

Correction de l'exercice

Code:
program suite_n;

function occurence(chif : char ; nombre : string):integer;
var
  cpt, i : integer;
begin
    cpt := 0;
    for i:=1 to Length(nombre) do
      if (nombre[i] = chif) then cpt := cpt + 1;
    occurence := cpt;
end;

function chiffre_distinct(nombre : string):string;
var
  nombre2 : string;
  i, p    : integer;
begin
    nombre2 := '';
    for i:=1 to Length(nombre) do
    begin
        if (Pos(nombre[i], nombre2) = 0) then
                nombre2 := nombre2 + nombre[i];
    end;
    chiffre_distinct := nombre2;
end;

function occ_chiff_dis(nombre : string):string;
var
  ch_d, ch2, occ_s : string;
  i, occ : integer;
begin
    ch_d := chiffre_distinct(nombre);
    ch2 := '';
    for i:=1 to Length(ch_d) do
    begin
          occ := occurence(ch_d[i], nombre);
          Str(occ, occ_s);
          ch2 := ch2 + occ_s + ch_d[i];
    end;
    occ_chiff_dis := ch2;
end;

function un(start : string ; n : integer):string;
var i : integer;
begin
        if (n = 1) then un := start
        else
            begin
                for i:=2 to n do
                begin
                      start := occ_chiff_dis(start);
                end;
            end;
        un := start;
end;


var
  n, nb, i : integer;
  ch_nb : string;
begin
    repeat
          Write('Donner un nombre (>0) : ');
          Readln(nb);
    until (nb > 0);
    Str(nb, ch_nb);

    repeat
          Write('Donner un nombre (>0) : ');
          Readln(n);
    until (n > 0);

    for i:=1 to n do
    begin
        Writeln('U',i,' = ',Un(ch_nb, i));
    end;
end.

king king king king king king king king king king king king king king king king king king king king king king
Revenir en haut Aller en bas
http://ntic.moontada.net
 
Exercice 6 (Algorithmes récurrents)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» les exercice de chimie 2

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Sciences de l'informatique :: 4ème SI :: Programmation :: Exercices & Devoirs-
Sauter vers: