Sous Programmes : Procédures et Fonctions Exercice 1 : Pour ...

Exercice 1 : Pour chacun des cas suivants donner l'algorithme et le code Pascal
d'un sous programme qui permet de : 1) Saisir un caractère Majuscule. .....
déterminer et d'afficher le nombre total d'appuies sur les touches du clavier d'un
téléphone portable pour saisir un mot donné de N lettres, supposées non
accentuées.

Part of the document


Exercice 1 :
Pour chacun des cas suivants donner l'algorithme et le code Pascal d'un
sous programme qui permet de :
1) Saisir un caractère Majuscule.
Def Proc saisie (var c : caractère)
Répéter
Ecrire (''Donner un caractère alphabétique'')
Lire(c)
Jusqu'à majus(c) dans [''A''..''Z'']
Fin saisie
2) Saisir une chaîne de caractère non vide et de longueur maximale égale à
20.
Def Proc saisie (var ch : chaine)
Répéter
Ecrire (''Donner une chaine non vide de longueur max 20'')
Lire(ch)
Jusqu'à long(ch) dans [1..20]
Fin saisie
3) Vérifier est-ce qu'une chaîne de caractère donnée est alphabétique ou
non.
Def FN Verif (ch : chaine) : booléen
Répéter
Si majus(ch[i]) dans [''A''..''Z''] Alors
Test ( vrai
Sinon
Test ( faux
FinSi
i( i+1
Jusqu'à i>long(ch) ou test=faux
Verif ( test
Fin Verif
4) Remplir un tableau T par N entiers positifs croissant.
Def Proc CroiTab(var t : tab, n : entier)
Ecrire (''Donner élément 1 du tableau'')
Lire(t[1])
Pour i de 2 a n faire
Répéter
Ecrire (''Donner T['',i,''] supérieur à '', t[i-1])
Lire(t[i])
Jusqu'à (t[i]>t[i-1])
FinPour
Fin CroiTab
5) Remplir un tableau T par N caractères Majuscules aléatoires
Def Proc Aleatoire(var t : tab, var n : entier)
Repeter
Ecrire (''Donner 0long(ch) ou test=vrai
present( test
Fin Present
9) Déterminer le maximum d'un tableau.
Def FN max (t : tab) : entier
M(t[1]
Pour i de 2 à n faire
Si t[i]>m alors
M ( t[i]
FinSi
Fin Pour
Max (m
Fin Max
10) Inverser une chaîne de caractère.
Def Proc Inverse (var ch : chaine)
Pour i de 1 à n div 2 faire
X ( Ch[i]
Ch[i] ( ch[n-i+1]
Ch[n-i+1] ( x
Fin Pour
Fin Inverse
Exercice 2 :
Soit la fonction Traitement suivante écrite en Pascal :
FUNCTION Traitement (d,f :integer;T:tab): Integer;
VAR indmin, i : integer ;
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 ?
( Détermine le minimum d'une suite d'éléments successifs dans un tableau T
entre d et f
Exercice 3 :
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" |
|X :=inconnu(ch,c) ; |Inconnu(ch,c,x) ; | Exercice 7 :
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.
program Ex7 ;
uses WinCrt;
var
m,n,i,j:byte;
procedure saisie(var m,n:byte);
begin
repeat
writeln('Donner m dans [1..100]');
readln(m);
until m in [1..100];
repeat
writeln('Donner n dans [2..15]');
readln(n);
until n in [2..15];
end;
procedure couple(m,n:byte);
var
chm, chp:string;
p:byte;
begin
str(m,chm) ;
str(n*m,chp);
p:=pos(chm,chp);
if p0 then
writeln(' Le couple ',m,' , ',n,' vérifie les propriétés')
else
writeln('Le couple ne vérifie pas les propriétés');
end;
begin
saisie(m,n);
couple(m,n);
end.
Exercice 8 :
Sur les touches (2, 3, 4, 5, 6, 7, 8 et 9) du clavier d'un téléphone
portable, sont inscrites des lettres pour écrire des messages en plus des
chiffres.
Par exemple, sur la touche 5 sont inscrites les lettre J, K et L.
Pour taper la lettre J on appuie une seule fois.
Pour taper la lettre K on tape deux fois.
Pour taper la lettre L on appuie trois fois.
Ecrire un programme pascal permettant de déterminer et d'afficher le nombre
total d'appuies sur les touches du clavier d'un téléphone portable pour
saisir un mot donné de N lettres, supposées non accentuées. (4