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 [29/11/2014 18:27]
Hypathie [Exo 1 : procédure compter le nombre de caractères dans une phrase]
utilisateurs:hypathie:tutos:algo-exo-constructions-d-algorithmes-de-procedure [30/11/2014 08:23]
Hypathie [Exo 3 : procédure rechercher un palindrome]
Ligne 125: Ligne 125:
 </​note>​ </​note>​
 ===== Exo 2 : procédure "​compter occurrences de deux caractères successifs"​ ===== ===== Exo 2 : procédure "​compter occurrences de deux caractères successifs"​ =====
 +//​**Rechercher si deux lettres choisies par l'​utilisateur sont dans une phrase entrée par l'​utilisateur.**//​
  
 +
 +====1) Schéma de la procédure (la moulinette)====
 +<​code>​
 +                     ​schéma procédure
 +                    |                |
 + ​phrase ----------->​|cherche si deux |------> si caractère1 ET caractère2 sont dans la phrase et successifs ​
 +                    |                |        alors terminateur ​        
 +                    |lettres succ    |        deuxlettres = VRAIE 
 +caractère 1 ------->​| ​ dans          |
 +caractère 2 ------> |  cette phrase ​ |
 +
 +</​code>​
 +
 +====2) Définition des données====
 +
 +<​code>​
 +CONSTANTES\\ ​
 +terminateur = '​.'​ // caractère d'​arrêt\\ ​
 + 
 +  ​
 +TYPES\\ ​
 +chainetableau tableau[MAX] caractère\\ ​
 +
 +VARIABLES\\ ​
 +phrase : caractère\\ ​
 +car1   : caractère\\ ​
 +car2   : caractère\\ ​
 +nbr    : entier\\ ​
 +</​code>​
 +
 +====3) Jeu d'​essai====
 +
 +^phrase ​    ​^terminateur ​          ​^caractère1 ​ ^caractère2 ​  ​^nombre ^
 +|blablobli. | <​nowiki>'​.'</​nowiki> ​ |  "​l" ​     | "​r" ​        ​| ​  ​0 ​  |
 +|bonjour. ​  | <​nowiki>'​.'</​nowiki> ​ |  "​b" ​     | "​." ​        ​| ​  ​0 ​  |
 +|blablo. ​   | <​nowiki>'​.'</​nowiki> ​ |  "​b" ​     | "​l" ​        ​| ​  ​2 ​  |
 +|blablobli. | <​nowiki>'​.'</​nowiki> ​ |  "​b" ​     | "​l" ​        ​| ​  ​3 ​  |
 +
 +  ​
 +====4) Interface (définir la procédure)====
 +
 +//vérifier si une phrase contient deux lettres// ​
 +
 +PROCEDURE
 +
 +<​code>​
 +procédure DeuxLettresID ( entrée phrase : chainetableau ;\\ 
 +                          sortie nbreoccurrence : entier )\\ 
 + 
 +    // CompterDeuxLettres  ​       : procédure qui recherche deux lettres successives et définies extérieurement dans une phrase terminée par un point\\ ​
 +    // phrase  ​           : phrase saisie par l'​utilisateur\\ ​
 +    //​nbreoccurrence  ​       : décompte du nombre d'​occurrence de mot contenant deux lettres successives\\ ​
 +</​code>​
 +''​chainetableau''​ : c'est le type créé\\ ​
 + 
 +====5) Programme de test====
 +<code c>
 +CONSTANTES
 +max = 100
 +
 +TYPES
 +chaine tableau[MAX] caractère
 +
 +VARIABLES
 +phrase ​        : chaine
 +lettre 1       : caractère
 +lettre 2       : caractère
 +nbreoccurrence : entier
 +
 +
 + début
 +
 + écrire ("​entrez une phrase terminée par un point"​)
 +
 + lire (phrase)
 +
 + écrire ("​entrez une première lettre"​)
 +
 + lire (lettre 1)
 +
 + écrire ("​entrez une deuxième lettre"​)
 +
 + lire (lettre 2)
 +
 +   DeuxLettresID ( entrée phrase : chainetableau , sortie nbreoccurrence : entier )
 +   ​
 +    ​écrire ("le nombre d'​occurrences des lettres choisies dans la phrase donnée est", nbreoccurrence"​)
 +
 + fin
 +</​code>​
 +
 +====6) Procédure compter deux lettres====
 +
 +<code c>
 +CompterDeuxLettres( lettre phrase chaine
 +                    entrée ​
 +                    car1   : caractère
 + car2 ​  : caractère
 + FIN ​   : caractère
 + sortie occurrence : entier
 +
 +VARIABLE
 +
 + i : entier
 + occurrence : 0
 +
 + ​début
 +
 + i := 1
 + occurrence := 0
 +
 + tantque (phrase [i] <> FIN)
 +
 + si (phrase[i] = car1)
 +
 + si (phrase [i + 1] = car2
 +
 + occurrence + 1
 +  
 + finsi
 +
 + finsi
 +
 +   i := i + 1
 +   ​
 + fintantque
 +
 + fin
 +
 +</​code>​
 ===== Exo 3 : procédure "​rechercher un palindrome"​ ===== ===== Exo 3 : procédure "​rechercher un palindrome"​ =====
 +//​**Procédure pour déterminer si une chaîne de caractère terminée par un point est un palindrome.**//​
 +
 +====1) Moulinette (schéma de la procédure)====
 +
 +chaîne. ---> | recherche palindrome | ---> palindr : booléen (Vrai ou FAUX)
 +
 +<​code>​
 +i (indice ->​) ​     ​
 +  1   ​2 ​  ​3 ​  ​4 ​  5 | 6 |... | MAX
 +----------------------------------
 +| L | A | V | A | L | . |
 +        j (indice <-|.| )
 +</​code>​
 +        ​
 +====2) Jeu d'​essai====
 +
 +^         ​^ ​                           ^
 +| '​.' ​    | c'est un palindrome ​       |
 +| '​a.' ​   | c'est un palindrome ​       |
 +|'​aa.' ​   | c'est un palindrome ​       |
 +| '​aba.' ​ | c'est un palindrome ​       |
 +| '​acb' ​  | ce n'est pas un palindrome |
 +| '​aacba.'​| ce n'est pas un palindrome |
 +|'​aacab ​  | ce n'est pas un palindrome |
 +
 +====3) Définition des données du problème====
 +<​code>​
 +CONSTANTES ​
 +taille =80 //nombre max de caractères de la chaîne
 +carterm ='​.'​ // caractère terminaleur de la chaîne
 +
 +TYPE 
 +chaine =tableau[taille] de caractères // type crée pour contenir une liste 
 +
 +VARIABLES ​
 +phrase : chaine // phrase où une symétrie est recherchée
 +i      : entier // 
 +j      : entier // indice de parcours de la phrase depuis la fin.
 +</​code>​
 +
 +====4)Interface (notice) de la procédure ==== 
 +
 +====5)Programme de test ====
 +
 +====6)Algorithme de la procédure Palindrome terminé par un point====
 +
 +<​code>​
 +CONSTANTES
 +taille =80 //nombre max de caractères ​ de la chaine
 +carterm = '​.'​ // caractère terminateur
 +
 +TYPES
 +chaîne =tableau[taille] de caractère
 +
 +VARIABLES
 +phrase :chaîne //phrase dont on va déterminer la symétrie
 +i      :entier //indice de parcours de la phrase par le début
 +j      :entier //indice de parcours de la phrase par la fin
 +
 +  Début
 +  ​
 +    écrire('​Donnez une phrase."​
 +    lire(phrase)
 +    ​
 +    j := 1
 +    ​
 +    TantQue ​ phrase[j] <> carterm FAIRE //arrêt sur terminateur
 +          ​
 +          j := j + 1
 +    ​
 +    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>​
  
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