Série III
Exercice 1.
Soit T un tableau de N chaines de caractères non vides et dont la taille maximale est 5.
On se propose d’écrire un programme Pascal permettant de réaliser le traitement
suivant :
Remplir le tableau T par N chaines (n entre 2 et 20)
Eliminer de chaque chaine tous les caractères non alphabétiques
Convertir toutes les chaines non vides en majuscules
Afficher toutes les chaines dont la taille est strictement supérieur à 2 Exemple : Pour N=4, soit le tableau suivant aB*+y 23 ?uy 879 ! YHga
1 2 3 4
Alors le programme affiche : ABY YHGA
program ex1; uses wincrt; type tab=array[1..20]of string[6]; var t:tab; n:integer; procedure saisie(var n:integer); begin repeat writeln('Donner n entre 2 et 20'); readln(n); until n in [2..20]; end; procedure remplir(var t:tab; n:integer); var i:integer; begin for i:=1 to n do repeat writeln('Donner t[',i,']='); readln(t[i]); until length(t[i]) in [1..5]; end; procedure elimine(var t:tab;n:integer); var ch,chx:string; i,j:integer; begin for i:=1 to n do begin ch:=t[i]; chx:=''; for j:=1 to length(ch) do if upcase(ch[j]) in ['A'..'Z'] then chx:=chx+ch[j]; t[i]:=chx;
Série III
end; end; procedure convertir (var t:tab; n:integer); var i,j:integer; ch:string; begin for i:=1 to n do begin ch:=t[i]; for j:=1 to length(ch) do ch[j]:=upcase(ch[j]); t[i]:=ch; end; end; procedure affiche(t:tab;n:integer); var i:integer; begin for i:=1 to n do if length(t[i])>2 then write(t[i],' | '); end; begin saisie(n); remplir(t,n); elimine(t,n); convertir(t,n); affiche(t,n); end.
Exercice 2.
Ecrire un programme qui détermine la position de la 2
ème
voyelle d’un tableau T de N lettres
Majuscules (N entre 10 et 20)
. S’il y a moins que 2
voyelles, le programme affichera
–
1
program ex2; uses wincrt; type tab=array[1..20]of char; var t:tab; n:integer; procedure remplissage(var t:tab;var n:integer); var i:integer; begin repeat writeln('Donner n entre 10 et 20'); readln(n);
Série III
until n in [7..20]; for i:=1 to n do repeat writeln('Donner T[',i,']='); readln(t[i]); until t[i] in ['A'..'Z']; end; function nbvoy(t:tab;n:integer):integer; var i,x:integer; begin x:=0; for i:=1 to n do if t[i] in ['A','E','Y','U','I','O'] then x:=x+1; nbvoy:=x; end; function posvoy(t:tab;n:integer):integer; var pp,i:integer; begin pp:=0; i:=1; repeat if t[i] in ['A','E','Y','U','I','O'] then pp:=i else i:=i+1; until (pp<>0); i:=pp+1; pp:=0; repeat if t[i] in ['A','E','Y','U','I','O'] then pp:=i else i:=i+1; until (pp<>0); posvoy:=pp; end; begin remplissage(t,n); if nbvoy(t,n)<2 then writeln('-1') else writeln('La position de la deuxiéme voyelle est ',posvoy(t,n)); end.
Satisfaites votre curiosité
Tout ce que vous voulez lire.
À tout moment. Partout. Sur n'importe quel appareil.
Aucun engagement. Annulez à tout moment.