Advertisement
ecto

Untitled

Nov 25th, 2014
4,028
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     ////////////////////////////////////////////////////
  2.     //Saisir un nom et calcul le nombre de caractères
  3.     //              - nom : chaine (Chaine utilisé et retourné au programme)
  4.     //              - longueurnon : entier (Nombre de caratère de nom calculé lors de la saisie)
  5.     ////////////////////////////////////////////////////
  6.     PROCEDURE saisieNom (;nom[] : CHAINE, nbrnom : ENTIER)
  7.     AVEC
  8.         i : ENTIER
  9.     DEBUT
  10.         AFFICHER "Saisir les noms (saisir -1 pour terminer) : "
  11.         REPETER
  12.             AFFICHER "nom n°",i+1," : "
  13.             SAISIR nom[i]
  14.             i <- i+1
  15.         TANT QUE nom[i-1]!="-1" FAIRE
  16.     FIN saisieNom
  17.  
  18.     ////////////////////////////////////////////////////
  19.     //Fonction qui détermine si une chaine de caractère est un palyndrome
  20.     //              - nom : chaine (Chaine utilisé dans la fonction)
  21.     ////////////////////////////////////////////////////
  22.     FONCTION estPalyndrome(nom : CHAINE) RETOURNE BOOLEEN
  23.     DEBUT
  24.         AVEC :
  25.                 i : ENTIER
  26.                 palyndrome : BOOLEEN
  27.                 debut : CHAINE
  28.                 fin : CHAINE
  29.         longueurnom <- longueur(nom)-1
  30.         palyndrome <- VRAI
  31.         POUR i ALLANT DE 1 A (longueurnom / 2) AU PAS DE 1 FAIRE
  32.                 debut <- nom[i]
  33.                 fin <- nom[longueurnom - i]
  34.                 SI (debut != fin) ALORS
  35.                     palyndrome <- FAUX
  36.                 FINSI
  37.         FINFAIRE
  38.         RETOURNER palyndrome
  39.     FIN palyndrome
  40.  
  41.     ////////////////////////////////////////////////////
  42.     //Procedure qui permet de mettre une chaine de caractère en majuscule :
  43.     //              - nom : chaine (Chaine utilisé dans la fonction puis renvoyé au programme)
  44.     //              - longueurnon : entier (Nombre de caratère de nom calculé lors de la saisie)
  45.     ////////////////////////////////////////////////////
  46.     PROCEDURE maj(; nom : CHAINE)
  47.     DEBUT
  48.         AVEC :
  49.             i : ENTIER
  50.             longueurnom : ENTIER
  51.             longueurnom <- longueur(nom)
  52.             POUR i ALLANT DE 0 A longueurnom AU PAS DE 1 FAIRE
  53.                 SI (nom[i] >= 'a' ET nom[i] <= 'z') ALORS //Sélection des minuscules
  54.                     nom[i] <- nom[i]-'a'+'A' //Leur ajoute la valeur correspondante à la différence entre une minuscule et une majuscule
  55.                 FINSI
  56.             FINFAIRE
  57.     FIN maj
  58.  
  59.     ////////////////////////////////////////////////////
  60.     //Procedure d'affichage du menu qui affiche le menu
  61.     ////////////////////////////////////////////////////
  62.     PROCEDURE affichageMenu()
  63.     DEBUT
  64.             AFFICHER "Sélectionner votre option : "
  65.             A LA LIGNE
  66.             AFFICHER "  1- Afficher le nombre de voyelle"
  67.             A LA LIGNE
  68.             AFFICHER "  2- Vérifier si c'est un palyndrome"
  69.             A LA LIGNE
  70.             AFFICHER "  3- Afficher la chaine de caractère en majuscule"
  71.             A LA LIGNE
  72.             AFFICHER "  4- Quitter"
  73.     FIN affichageMenu
  74.  
  75.  
  76.     ////////////////////////////////////////////////////
  77.     //Fonction qui calcul le nombre de voyelles et retourne cette valeur en entier (prend en compte la CASse) :
  78.     //              - nom : chaine (Chaine utilisé dans la fonction puis renvoyé au programme)
  79.     //              - nbrVoyelle : entier (Nombre calcul de voyelle)
  80.     ////////////////////////////////////////////////////
  81.     FONCTION nbrVoyelle(nom: CHAINE) RETOURNE ENTIER
  82.     DEBUT
  83.             AVEC :
  84.                     i : ENTIER
  85.                     nbrVoyelle : ENTIER
  86.                     longueurnom : ENTIER
  87.                     maj(;nom)
  88.                     nbrVoyelle <- 0
  89.                     longueurnom <- longueur(nom)
  90.                     POUR i ALLANT DE 0 A longueurnom PAR PAS DE 1 FAIRE
  91.                             SI (nom[nbrnom][i]='A' OU nom[nbrnom][i]='E' OU nom[nbrnom][i]='I' OU nom[nbrnom][i]='O' OU nom[nbrnom][i]='U' OU nom[nbrnom][i]='Y') ALORS
  92.                                     nbrVoyelle <- nbrVoyelle + 1
  93.                             FINSI
  94.                     FINFAIRE
  95.             RETOURNE nbrVoyelle
  96.     FIN voyelle
  97.  
  98.     PROGRAMME testSurLeNom
  99.     DEBUT
  100.             AVEC :
  101.                     ////////////////////////////////////////////////////
  102.                     //Ce programme permet qu'après la saisie d'un nom, exécuter certaines opération :
  103.                     //              - compter le nombre de voyelle d'un nom
  104.                     //              - vérifier que c'est un palyndrome
  105.                     //              - afficher le nom en majuscule
  106.                     ////////////////////////////////////////////////////
  107.  
  108.                     nom[100] :
  109.                     choix : ENTIER
  110.                     nbrnom : ENTIER
  111.                     k : BOOLEEN
  112.                    
  113.                     PROCEDURE affichageMenu()
  114.                     PROCEDURE saisieNom (;nom[] : CHAINE, nbrnom : ENTIER)
  115.                     PROCEDURE maj(; nom : CHAINE)
  116.                     FONCTION nbrVoyelle(nom: CHAINE) RETOURNE ENTIER
  117.                     FONCTION estPalyndrome(nom : CHAINE) RETOURNE BOOLEEN
  118.  
  119.  
  120.             REPETER
  121.                     affichageMenu()
  122.                     SAISIR choix
  123.                     SELON choix FAIRE
  124.                             CAS default :
  125.                                     AFFICHER : "Erreur de sélection d'option"
  126.                                     A LA LIGNE
  127.                             CAS 1 : //Calcul du nombre de voyelles et l'affiche
  128.                                    
  129.                                     saisieNom(;nom[],nbrnom)
  130.                                     POUR i ALLANT DE 0 A nbrnom AU PAS DE
  131.                                     FAIRE
  132.                                         AFFICHER "Dans ",nom[i]," il y a "
  133.                                         AFFICHER nbrVoyelle(i;nom[])," voyelle(s)"
  134.                                         A LA LIGNE
  135.                                     FINFAIRE
  136.                             CAS 2 : //Vérifie si c'est un palyndrome
  137.                                     saisieNom(;nom[],nbrnom)
  138.                                     POUR i ALLANT DE 0 A nbrnom AU PAS DE
  139.                                     FAIRE
  140.                                         SI (estPalyndrome(nom[i])) ALORS
  141.                                             AFFICHER nom, " est un palyndrome"
  142.                                         SINON
  143.                                             AFFICHER nom, " n'est pas un palyndrome"
  144.                                         FINSI
  145.                                     FINFAIRE
  146.                             CAS 3 : //Affiche le nom en majuscule
  147.                                     saisieNom(;nom[],nbrnom)
  148.                                     POUR i ALLANT DE 0 A nbrnom AU PAS DE
  149.                                     FAIRE
  150.                                         maj(;nom[i])
  151.                                         AFFICHER nom
  152.                                     FINFAIRE
  153.                             CAS 4 :  //Quitte le programme
  154.                                     AFFICHER "Au revoir"
  155.                                     A LA LIGNE
  156.             TANT QUE choix !=4 FAIRE
  157.     FIN testSurLeNom
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement