logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
utilisateurs:hypathie:tutos:algo-exo-constructions-d-algorithmes-de-procedure [06/12/2014 10:52]
Hypathie [Exo 3 : procédure rechercher un palindrome]
utilisateurs:hypathie:tutos:algo-exo-constructions-d-algorithmes-de-procedure [06/12/2014 12:12]
Hypathie [Trier un tableau par remontée des bulles]
Ligne 310: Ligne 310:
 CONSTANTES ​ CONSTANTES ​
 constante MAX =80 //nombre max de caractères de la chaîne (Pour pouvoir créer le type chaine, car un tableau est toujours de taille fixe. constante MAX =80 //nombre max de caractères de la chaîne (Pour pouvoir créer le type chaine, car un tableau est toujours de taille fixe.
-constanteFIN ​='​.'​ // caractère terminaleur de la chaîne (Un tableau peut ne pas être tout rempli)+constante FIN ='​.'​ // caractère terminaleur de la chaîne (Un tableau peut ne pas être tout rempli)
  
 TYPES  TYPES 
Ligne 316: Ligne 316:
  
 VARIABLES ​ VARIABLES ​
-variable ​phrase ​: chaine // phrase où une symétrie est recherchée +variable ​possPalin ​: chaine // phrase où une symétrie est recherchée 
-variable ​i      ​: entier //  +variable ​indiceDeb ​: entier //  
-variable ​j      ​: entier // indice de parcours de la phrase depuis la fin.+variable ​indiceFin ​: entier // indice de parcours de la phrase depuis la fin.
  
 PROCEDURES PROCEDURES
 procédure cherchePalinPoint(entrée ​        texte : chaine, procédure cherchePalinPoint(entrée ​        texte : chaine,
-                            entrée sortie ​ ind1  : entier, ind2 : entier)+                            entrée sortie ​ ind1  : entier, ind2 : entier 
 +                            sortie result : booléen)
           // Cette procédure permet de dire si une chaine de caractère terminée par un point est un palindrome.           // Cette procédure permet de dire si une chaine de caractère terminée par un point est un palindrome.
           // ind1 : c'est l'​indice de parcours du texte par le début           // ind1 : c'est l'​indice de parcours du texte par le début
Ligne 331: Ligne 332:
      ​ECRIRE ('​Entrez votre phrase et n'​oubliez pas de la terminer par un point.'​      ​ECRIRE ('​Entrez votre phrase et n'​oubliez pas de la terminer par un point.'​
      ​LIRE(phrase)      ​LIRE(phrase)
-     := palindrome[1] +     indiceDeb ​:= possPalin[1] 
-     := palindrome[MAX-1+     indiceFin ​:= possPalin[MAX-1
 +     ​result ​   := booléen
    
     // Recherche d'un palindrome fini par un point :     // Recherche d'un palindrome fini par un point :
-    cherchePalinPoint(entrée ​phrase:chaine , entrée/​sortie ​i:entier, entrée/​sortie ​j:entier) +    cherchePalinPoint(entrée ​possPalin:chaine , entrée/​sortie ​ind1:entier, entrée/​sortie ​ind2:entier, sortie result:bool
-    SI i >j ALORS +    SI result ​VRAI 
-        ECRIRE('​La phrase', ​phrase ​'est un palindrome.'​)+        ECRIRE('​La phrase', ​possPalin ​'est un palindrome.'​)
     SINON     SINON
-        ECRIRE('​La phrase', ​phrase ​'​n'​est pas un palindrome.'​)+        ECRIRE('​La phrase', ​possPalin ​'​n'​est pas un palindrome.'​)
     FINSI     FINSI
 Fin Fin
Ligne 350: Ligne 352:
 <​code>​ <​code>​
 procédure cherchePalinPoint(entrée ​        texte : chaine, procédure cherchePalinPoint(entrée ​        texte : chaine,
-                            entrée sortie ​ ind1  : entier, ind2 : entier)+                            entrée sortie ​ ind1  : entier, ind2 : entier ​ 
 +                            sortie result: booléen)
           // Cette procédure permet de dire si une chaine de caractère terminée par un point est un palindrome.           // Cette procédure permet de dire si une chaine de caractère terminée par un point est un palindrome.
           // ind1 : c'est l'​indice de parcours du texte par le début           // ind1 : c'est l'​indice de parcours du texte par le début
Ligne 364: Ligne 367:
 i    : entier i    : entier
 j    : entier j    : entier
 +palindrome : booléen
  
 TERM : '​.'​ : caractère TERM : '​.'​ : caractère
Ligne 372: Ligne 376:
   j := chaine[TERM - 1]   j := chaine[TERM - 1]
  
-    ​SI chaine[i] < chaine[j] + 
-      TQ (i < j et chaine[i] = chaine[j])+    ​SI chaine[i] < chaine[j] ​ALORS 
 +    palindrome := VRAI 
 +      TQ (i < j) ET (chaine[i] = chaine[j])
  i := i + 1  i := i + 1
  j := j - 1  j := j - 1
       FinTQ       FinTQ
 +    SINON 
 +         ​palindrome := FAUX
     FINSI     FINSI
  
Ligne 382: Ligne 390:
 </​code>​ </​code>​
  
 +=====Trier un tableau par remontée des bulles =====
  
 +<​code>​
 +//exo: tri par remontée des bulles
 +
 +I] Procédure "​remplir"​
 +
 +Procédure remplir ( sortie tab_désordonné : les_chiffres_donnés, ​
 +                    sortie tableau_donné : entier )
 + 
 +// La procédure remplir permet de récupérer les données saisies par l'​utilisateur.
 +// les_chiffres_donnés : c'est la table de chiffres rentrés par l'​utilisateur.
 +// taille_tableau_donné : c'​est ​ la taille de la table.
 +
 +
 +Variables
 + taille_finale : entier // nombre de tous les chiffres rentrés par l'​utilisateur.
 + chiffre_donnés : entier ​ // les chiffres rentrés par l'​utilisateur pour mettre ​
 +                                 //​quelque chose dans la tableau ​
 +                                 //​(l'​utilisateur ne rentre pas forcément 80 chiffres) ​
 +
 +Début
 +
 +    // l'​utilisateur rentre la taille de la table d'​entier et ses valeurs.
 +
 + Répéter
 + Ecrire ( 'Quel sera le nombre de nombres à trier?'​ ) // taille du tableau à trier 
 +                                                                     //( sup à 0 , 
 +                                                                     // ​ non égal à 1, 
 +                                                                     // ​ stric inf à 80)
 + Lire ( taille_finale )
 + Jusquà ( taille_finale >= 0 )  et ( taille_finale < = MAX )
 +
 + Ecrire ( "Vous allez entrer",​ taille_finale,​ "​chiffres"​ )
 +
 +    // remplir le tableau
 +
 + chiffre_donnés := 1 // initialisation l'​utilisateur n'a pas encore donné ses chiffres à trier
 +
 + Tantque ​ ( chiffre_donnés <= taille_finale ) Faire
 + Ecrire ( '​Veuillez donner un autre entier"​ ) // on demande ensuite les entiers à l'​utilisateur ​
 +                                                             // pour chaque case du tableau.
 + Lire ( taille_finale [ chiffre_donnés ] )
 + chiffre_donnés := chiffre_donnés + 1     // Incrémentation pour mettre les autres ​
 +                                                           //​entiers dans le tableau.
 + Fintantque
 +
 +Fin
 +
 +///////////////////////////////////////////////////////////////////////​
 +
 +II] procédure "​afficher"​
 +
 +Procédure affichage ( entrée table_utilisateur : listechiffre,​ entrée taille_tableaffichage : entier ​ )
 +
 +// La procédure permet l'​affichage du tableau de chiffre de l'​utilisateur et le tableau trié
 +// table_utilisateur est la table de chiffre rentré par l'​utilisateur.
 +  //​liste_chiffre est le type crée (un tableau)
 +// taille_table définie ​ la taille de la table.
 +
 +
 +
 +Variables
 + nombre_chiffre_affichage : entier ​ // compte le nombre de chiffres rentré par l'​utilisateur.
 +
 +
 +Début
 + nombre_chiffre_affichage := 1
 +
 + Tantque ( nombre_chiffre_affichage <= taille_tableaffichage ) Faire
 +   Ecrire ( ",​liste_chiffre,​ [",​nombre_chiffre_affichage,"​ ] = ",​taille_table [nombre_chiffre_affichage] )
 +   nombre_chiffre_affichage := nombre_chiffre_affichage + 1
 + Fintantque
 +
 +Fin
 +
 +// III] procédure tribulle
 +
 +Procédure tribulle ( entrée/​sortie tablechiffre :​liste_chiffres, ​
 +                     ​entrée tailletablebulle : entier )
 +// **la procédure du tri des bulles** permet de ranger une chaîne de chiffres ​
 +//​désordonnés en ordre croissant.
 +// **tablechiffre** est la liste de chiffres désordonnés rentrée par 
 +   ​l'​utilisateur ainsi que la liste de chiffres triés en sortie.
 +// **tailletable** est le nombre de chiffres rentrés par l'​utilisateur.
 +
 +Variables
 +
 +    i     : entier // indice de parcours du tableau.
 +    cible : entier // variable permettant l'​inversion de 2 entiers dans le tableau.
 +    invert : booléen
 + ​Début
 +
 +     // parcours jusqu'​à qu'il n'y est plus aucune inversion.
 +
 +
 +    i := 1
 +    invert := FAUX
 +    ​
 +    Répéter
 +
 +   Tantque ( i < tailletablebulle ​ ) faire
 +
 + Si tablechiffre [i] > tablechiffre [ i + 1 ] alors // si l'​entier "1 " du tableau ​
 +                                                                           //est supérieur à l'​entier "​2" ​
 +                                                                           // suivant dans le tableau alors.
 +
 +         cible = tablechiffre[1]
 + tablechiffre[1] = tablechiffre[i + 1]                 
 + tablechiffre[i+1] = cible
 + invert := VRAI
 +
 + Finsi
 +
 +          i := i + 1  // incrémentation pour passer aux entiers suivants.
 +   Fintantque
 +
 +    Jusquà ​ invert = faux
 +
 + Fin
 +</​code>​
 =====Recherche dichotomique ===== =====Recherche dichotomique =====
 VOIR les tris :​[[http://​axiomcafe.fr/​tri-dans-un-tableau]] VOIR les tris :​[[http://​axiomcafe.fr/​tri-dans-un-tableau]]
utilisateurs/hypathie/tutos/algo-exo-constructions-d-algorithmes-de-procedure.txt · Dernière modification: 06/12/2014 17:08 par Hypathie

Pied de page des forums

Propulsé par FluxBB