Vous êtes sur la page 1sur 8

Sous Programmes : Procédures et Fonctions Prof : Mme Hassen Nour

***************** Série d’exercices Nº5 *******************

1
Sous Programmes : Procédures et Fonctions Prof : Mme Hassen Nour

2
Sous Programmes : Procédures et Fonctions Prof : Mme Hassen Nour
Exercice 7 :
Pour chacun des cas suivants donner l’algorithme et le code Pascal d’un sous programme qui permet de :
1) Vérifier est-ce qu’une chaîne de caractère donnée est alphabétique ou non.
2) Compter l'occurrence (nombre d'apparition) d'un caractère dans une chaîne.
3) Vérifier la présence d'un caractère dans une chaîne.
4) Déterminer le maximum d’un tableau.
5) Inverser une chaîne de caractère.
6) Saisir un caractère Majuscule.
7) Saisir une chaîne de caractère non vide et de longueur maximale égale à 20.
8) Remplir un tableau T par N entiers positifs croissant.
9) Remplir un tableau T par N caractères Majuscules aléatoires
10) Afficher un tableau T de N éléments.
Exercice 8:
Soit la fonction Traitement suivante écrite en Pascal :
FUNCTION Traitement (d,f :integer;T:tab): ……………………..;
VAR …………………………………. ;
BEGIN
Indmin: =d;
For i: = d+1 to f do
IF T[i] < T[indmin] THEN
Begin
Indmin: = i;
End;
Traitement: = indmin;
END;
1. Déterminer et compléter le type de cette fonction ainsi que la partie déclaration des variables locales.
2. Quelle est la valeur renvoyée par la fonction Traitement si d=2, f=5 et le tableau contient les éléments suivants :
T -10 5 0 -6 10 13
i 1 2 3 4 5 6
3. Quel est le rôle de cette fonction ?
Exercice 9:
Soit l'Algorithme suivant :
0) DEF FN Traitement (T : Tab ; N : Entier) : Entier
1) NB  0
2) Pour i de 1 à N faire
Si Non (majus (T [i]) dans ["A", "E", "O", "I", "U", "Y"]) alors
NB  NB + 1
Fin si
Fin Pour
3) Traitement  NB
4) Fin Traitement
1. Préciser le rôle de la fonction Traitement suite à l'exécution suivante :
T "T" "e" "c" "h" "n" "o" "l" "o" "g" "i" "e"
1 2 3 4 5 6 7 8 9 10 11
2. Transformer la fonction Traitement en une procédure
Exercice 10:
Soit la fonction booléenne VERIF suivante :

3
Sous Programmes : Procédures et Fonctions Prof : Mme Hassen Nour
FUNCTION VERIF (Ch: string): If Not (Upcase (Ch [Vc] )in
…………………..; ['A'..'Z']) Then
Var ……………………….; Begin
……………………….; Test: = True;
Begin End;
Test: = False; Until (Test) or (Vc = Length (Ch));
Vc: = 0; ……………………………………. ;
Repeat End;
Vc: = Vc+1; 1. Compléter les pointillés par les données manquantes.
2. Quel est le rôle de cette fonction ?

Exercice 11 :
Soit l’algorithme de la fonction suivante : Cette fonction permet de calculer le nombre des mots
0) DEF FN Traitement (ch : ………….) : dans une phrase ch.
………………….. On suppose que :
1) P  pos (‘ ’, ch) o La phrase ch ne commence pas par un
2) Nb 0 espace
3) Tant que (p<>0) faire o La phrase ch ne se termine pas par un
Efface (ch, p, 1) espace
……………….…….. o Entre deux mots de la phrase ch il y a un
……………………... espace unique
Fin tant que a. Compléter les points par le code convenable.
4) Traitement  …………….. b. Transformer la fonction Traitement en une
5) Fin Traitement procédure Traitement.
Exercice 12 :
function inconnu (......... : ..........;........... : ........):..................;
var
......................................;
......................................;
begin
tr:=(1=0) ; i:=0;
repeat
i:=i+1;
tr:=(ch[i]=c);
until (i=length(ch)) or (tr);
inconnu:=................................;
end;
1) Compléter les pointilles par les données manquantes.
2) Déterminer le résultat retourné par la fonction pour chacun des cas suivants :
a. inconnu ('algorithme', 'g') > …………………………..
b. inconnu ( 'pascal' ,'H') > …………………………...
c. inconnu ( '1H5','5') > ……………………………
3) donner le rôle de la fonction inconnu
4) convertir la fonction inconnue en une procédure
5) recopier et compléter le tableau suivant sachant que l’appel se fait en utilisant une variable X:
Appel de la fonction inconnu Appel de la procédure inconnu
……………………………………….. …………………………………………….
Exercice 13 :
Ecrire un programme permettant d’afficher tous les couples d’entiers (m,n) vérifiant la propriété suivante :
M [1,100] et n[2,15]
Et m figure dans l’écriture du produit m.n
Exemples :
1- Si m = 20 et n= 6
Alors le produit m.n = 120 contient le nombre 20 dans ce cas le couple (20,6) sera affiché.
2- Si m = 20 et n = 12 Alors le produit m.n = 20 * 12 = 240 ne contient pas le nombre 20.
Exercice 14:
Soit l'algorithme suivant :
0)DEF FN Somme (p : entier) : entier Pour i de 1 à (p div 2) faire
1) S 0 Si (p mod i = 0) Alors
4
Sous Programmes : Procédures et Fonctions Prof : Mme Hassen Nour
S S+i 2) Somme  S
FinSi 3) Fin Somme
Fin pour

5
1. Exécuter cet algorithme pour p=6 puis donner son rôle.
2. Transformer la fonction Somme en une procédure.
3. Écrire un algorithme d'une procédure Saisie, permettant de saisir deux entiers positifs non nuls.
4. En utilisant les deux modules Somme et saisie, écrire un algorithme d'un programme intitulé Amis, qui permet de
saisir deux entiers positifs non nuls et d'afficher s'ils sont amis ou non. Sachant que deux entiers m et n sont dis amis, si
la somme des diviseurs de n est égal à m et inversement.

Exercice 15:
T étant un tableau de dimension N_MAX (N_MAX = 100), remplir par N caractères alphabétiques (N ≤N_MAX).
On vous demande d’écrire un programme nommé ECLATEMENT qui permet de:
 Lire un entier N strictement positif (0 < N ≤ N_MAX).
 Remplir le tableau T.
 Éclater T en deux tableaux Tc (contenant J élément consonnes de T) et Tv (contenant K élément voyelles de
T).
 Afficher les deux tableaux Tv et Tc.
Exercice 16:
L'algorithme suivant permet de rendre un tableau T symétrique.
0- DEBUT Tab_Sym FinPour
1-Répéter 3- Proc Symétrie (T)
Lire (n) 4- Pour i de 1 à n faire
Jusqu'à (n>l) et (n mod 2=0) Ecrire (T[i] : 3)
2- Pour i de 1 à n div 2 faire FinPour
Lire(T[2i-l]) T[2i] ←T[2i-l] 5-FINTab_Sym
Questions :
1) Traduire l'algorithme ci-dessus en Turbo Pascal et l'enregistrer dans le dossier bac2004 situe à la racine C : en lui
donnant comme nom le numéro de votre carte d'identité suivi des deux caractères "V1".
2) Développer le Module Symétrie permettant de transformer T en un tableau symétrique
3) Donner, sous forme de commentaire dans le programme, le rôle de la séquence 2.
Exercice 17:
Soit le programme intitulé info qui permet de :
 Saisir la taille N d’un tableau T, avec (1<N<15).
 Remplir un tableau T par N chaînes des caractères tel que la taille de chacune est dans [3..20].
 Chercher et afficher toutes les chaînes Totalogrammes contenue dans T.
« Une chaîne de caractères est dite Totalogramme si elle commence et se termine par la même lettre. » (Sans distinction
entre majuscule et minuscule)
Exemple : Pour N=6 :
T Samir système temporairement Bonjour ses elle
1 2 3 4 5 6
Les mots totalogramme sont : temporairement, ses, elle
Exercice 18:
Un texte est dit tautogramme si tous les mots commencent par la même lettre.
Exemple :
« Mazarin, ministre malade, méditait même moribond malicieusement mille maltôtes »
On suppose que la phrase est écrite correctement. (Pas d’espace en double)
Ecrire un programme qui permet de vérifier si une chaîne de caractère saisie au clavier est tautogramme ou non.
Exercice 19:
Ecrire un programme qui permet de dire si deux chaînes ch1 et ch2 (en majuscule et non vides) sont anagrammes ou
non.
Deux chaînes sont dites anagrammes si elles sont formées par les mêmes caractères.
Exemple : « Chien » et « Chine » sont anagrammes.
Exercice 20:
Soit la suite (Pi) définie par :
(i>1 et i impair)

Écrire un module qui permet de calculer et d’afficher les termes de la suite P jusqu’à ce que la différence entre
deux termes consécutifs devient inférieure ou égale à 10 -4.
Exercice 21:
Écrire un programme qui détermine puis affiche le nombre de combinaisons de p objets parmi n. n et p sont deux entiers
naturels strictement positifs (avec n ≥ p).La solution doit comporter une fonction intitulée FACTORIEL (x) qui
détermine la factorielle de x.

(x ! = x * (x-1) * (x-2) * .... * 3 * 2 * 1).

Exercice 22:
La suite de Fibonacci est définie par :
Écrire un programme qui permet de saisir un entier
naturel n strictement supérieur à 1 puis calcule et
affiche, pour toutes les valeurs de i inférieures ou
égales à n, les valeurs du rapport :

Exercice 23:
On se propose de crypter un message composé par des mots séparés par un seul espace et ne contenant aucun signe de
ponctuation (, ; . : ! ?) en utilisant le principe suivant :
1) Placer chaque mot du message initial dans une case d'un tableau T. On suppose que le message est composé d'au
maximum 20 mots.
2) Pour chaque élément du tablgg eau T, ajouter autant de fois le caractère "*" pour que sa longueur sera égale à celle
du mot le plus long dans le tableau T.
3) Dans un nouveau tableau T1 de taille N1 (N1 = longueur du mot le plus long), répartir les lettres du mot se trouvant
dans la case T[1] de façon à placer la lettre d'indice i du mot dans la case d'indice i du tableau T1.
4) Répartir de la même façon les lettres du mot contenu dans la case T[2] en concaténant à chaque fois la lettre d'indice i
avec le contenu de la case i du tableau T1.
5) Répartir de la même façon le reste des mots de T dans T1.
6) Concaténer les mots obtenus dans T1 en les séparant par un espace pour obtenir le message crypté.
Exemple :Si le message à crypter est "Bonjour Sami j'ai fini mon travail", les étapes de cryptage sont :
Etape 1 : Répartir les mots du message dans le tableau T :
T= Bonjou Sam J’a fini mon travail
r i i
Etape 2 : Ajouter le caractère "*" autant de fois pour obtenir des mots dont la longueur de chacun est égale à celle
du mot le plus long. Etant donné que "Bonjour" est le mot le plus long du message (7 caractères), on obtient le
tableau T suivant :
T Bonjou Sami* J’ai** Fini* Mon* travail or nna v **a **i **l
r ** * ** ***
Etape 3 : Répartir les lettres de T[1] dans T1
T1 B o n j o u r
=
Etape 4 : Répartir les lettres de T[2] dans T1
T1 Bs oa nm ji o* u* r* Le message crypté sera alors "BSjfmt oa'ior nmanna
= jiii*v o****a u****i r****l"
Etape suivante: Répartir le reste des mots de T dansT1 Travail demandé :
T1 Bsjfmt Oa’i nma Jiii* o** u** r** 1- Analyser le problème en le décomposant en module
2- Analyser chacun des modules proposés.
Exercice 24:
Un nombre est dit "rigolo", si la somme de ses chiffres est égale à la somme de tous les chiffres de ses facteurs premiers.
Exemple
Si M=690, alors M est un nombre rigolo. En effet :
La somme des chiffres de 690 est 6+9+0=15
Les facteurs premiers de 690 sont 2,3,5 et 23
La somme des chiffres des facteurs premiers de 690 est 2+3+5+2+3=15
Écrire un programme pascal qui permet de déterminer tous les nombres rigolos compris dans l’intervalle [100..1000]

Exercice 25:
Écrire un programme qui permet de convertir un entier au hasard (composé de trois chiffres) en binaire

Exercice 26:
On appelle le nombre keith un nombre k de n chiffres ayant la propriété suivante : en partant des nombres composés chacun
d’un des n chiffres de k, on compose une sorte de suite en calculant la somme des n derniers nombres de la suite pour
déterminer le suivant. Si cette suite fournit à un moment le nombre k, ce nombre est dit nombre keith.
Exemple : k=197
1+9+7=17 ; 9+7+17=33 ; 7+17+33=57 ; 17+33+57=107 ; 33+57+107=197 ; 57+107+197=361

On obtient alors la suite : 1,9,7,17,33,57,107,197, 361 dans laquelle se trouve le nombre 197, donc 197 est un nombre de keith
Écrire un programme pascal qui permet de déterminer et d’afficher tous les nombres de keith dans l’intervalle [10..200000]

Vous aimerez peut-être aussi