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 [30/11/2014 17:16]
Hypathie [Exo 3 : procédure rechercher un palindrome]
utilisateurs:hypathie:tutos:algo-exo-constructions-d-algorithmes-de-procedure [06/12/2014 10:52]
Hypathie [Exo 3 : procédure rechercher un palindrome]
Ligne 1: Ligne 1:
-======Algo: exo constructions d'algorithmes de procédure======+======algo-exo-constructions-d-algorithmes-de-procedure======
  
-  * Objet : S'exercer à la construction d'​algorithmes de procédure+  * Objet : Comment élaborer l'algorithme une procédure ​?
   * Niveau requis :  {{tag>​débutant avisé}}   * Niveau requis :  {{tag>​débutant avisé}}
   * Commentaires : //Contexte d'​utilisation du sujet du tuto. //    * Commentaires : //Contexte d'​utilisation du sujet du tuto. // 
Ligne 298: Ligne 298:
 </​code>​ </​code>​
  
-====4)Interface (notice) de la procédure ====  +====4)Interface (notice) de la procédure ==== 
 +<​code>​ 
 +procédure cherchePalinPoint(entrée ​        texte : chaine, 
 +                            entrée sortie ​ ind1  : entier, ind2 : entier) 
 +          // 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 
 +          // ind2 : c'est l'​indice de parcours du texte par la fin 
 +</​code>​
 ====5)Programme de test ==== ====5)Programme de test ====
 +<​code>​
 +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.
 +constanteFIN ='​.'​ // caractère terminaleur de la chaîne (Un tableau peut ne pas être tout rempli)
  
-====6)Algorithme ​de la procédure Palindrome terminé par un point====+TYPES  
 +Type chaine ​=tableau[MAX] ​de caractères // type crée pour contenir une liste 
  
-<​code>​ +VARIABLES ​ 
-CONSTANTES +variable phrase : chaine // phrase où une symétrie est recherchée 
-taille =80 //nombre max de caractères  ​de la chaine +variable i      : entier ​//  
-carterm = '.' // caractère terminateur+variable j      : entier // indice ​de parcours ​de la phrase depuis la fin.
  
-TYPES +PROCEDURES 
-chaîne =tableau[taille] ​de caractère+procédure cherchePalinPoint(entrée ​        texte : chaine, 
 +                            entrée sortie ​ ind1  : entier, ind2 : entier) 
 +          // 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 
 +          // ind2 : c'est l'​indice de parcours du texte par la fin
  
-VARIABLES +Début 
-phrase :​chaîne ​//​phrase ​dont on va déterminer ​la symétrie +     ​// Saisie de la phrase ​
-     :entier ​//indice de parcours de la phrase ​par le début +     ​ECRIRE ('​Entrez votre phrase et n'​oubliez pas de la terminer par un point.'​ 
-j      ​:entier //indice de parcours de la phrase ​par la fin+     ​LIRE(phrase) 
 +     ​i := palindrome[1] 
 +     j := palindrome[MAX-1 
 +  
 +    ​// Recherche d'un palindrome fini par un point : 
 +    ​cherchePalinPoint(entrée phrase:​chaine , entrée/​sortie i:entier, entrée/sortie j:entier) 
 +    SI i >= j ALORS 
 +        ECRIRE('​La ​phrase', phrase 'est un palindrome.'​) 
 +    SINON 
 +        ECRIRE('​La phrase',​ phrase '​n'​est pas un palindrome.'​) 
 +    FINSI 
 +Fin
  
-  Début 
-  ​ 
-    écrire('​Donnez une phrase."​ 
-    lire(phrase) 
-    ​ 
-    j := 1 
-    ​ 
-    TantQue ​ phrase[j] <> carterm FAIRE  
-          ​ 
-          j := j + 1   //​arrêt car on est sur terminateur 
-    ​ 
-    FinTantQue 
-    ​ 
-    //Parcours par les deux bouts 
-    j := j - 1 
-    i := 1 
-    ​ 
-    TantQue (i<j) ET (phrase[i] = phrase[j]) FAIRE 
-        ​ 
-        j := i + 1 
-        i := j - 1 
-    FinTantQue 
-    ​ 
-    //Affichage du résultat 
-    ​ 
-    SI i >= j ALORS // Fin du parcours 
-       ​écrire("​C'​est un palindrome"​) 
-    SINON 
-       ​ecrire("​Ce n'est pas un palindrome"​) 
-    FinSI 
-    ​ 
-  Fin 
 </​code>​ </​code>​
  
-Autre solution :+ 
 +====6)Algorithme de la procédure Palindrome terminé par un point==== 
 <​code>​ <​code>​
-CONSTANTES +procédure cherchePalinPoint(entrée ​        texte : chaine, 
-carterm ='.'+                            ​entrée sortie ​ ind1  : entier, ind2 : entier) 
 +          // 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 
 +          // ind2 : c'est l'indice de parcours du texte par la fin
  
-TYPES +CONSTANTE 
-phrase ​=tableau[i,j] de caractères+MAX : 80 
 + 
 +TYPE chaine ​= tableau[MAX] de caractères
  
 VARIABLES VARIABLES
-i : entier // indice de début du tableau 
-j : entier //indice de fin 
-resultat : booléen // VRAI si symétrie 
  
 +i    : entier
 +j    : entier
  
- ​Début +TERM : '​.'​ : caractère 
-     + 
-    //​initialisation + 
-    i := phrase[1] + début 
-    j := phrase[carterm ​- 1] +  ​i := chaine[1] 
-     +  j := chaine[TERM - 1]
-    SI (carterm) ALORS +
-        lire(phrase[i,​j]) +
-         +
-        SI (phrase[i] = phrase[j]) ALORS +
-         +
-           ​resultat = VRAI +
-            +
-           i := i + 1  // Parcours dans les deux sens +
-           j := j - 1  +
-         +
-           TQ (i < j) ET (resultat = VRAI) FAIRE +
-              écrire("​C'​est un palindrome"​) +
-           ​FINTQ +
-            +
-         SINON  +
-             ​resultat = FAUX +
-             ​écrire("​Ce n'est pas un palindrome"​) +
-         ​FINSI ​     ​+
  
 +    SI chaine[i] < chaine[j]
 +      TQ (i < j et chaine[i] = chaine[j])
 + i := i + 1
 + j := j - 1
 +      FinTQ
     FINSI     FINSI
-    ​+
  fin  fin
 </​code>​ </​code>​
  
  
-=====recherche ​dichotomique ===== +=====Recherche ​dichotomique ===== 
 +VOIR les tris :​[[http://​axiomcafe.fr/​tri-dans-un-tableau]]
 <​code>​ <​code>​
  
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